MARSIM: A light-weight point-realistic simulator for LiDAR-based UAVs¶
1. 概述¶
“MARSIM”是一个专门为基于激光雷达(LiDAR)的无人机(UAV)开发的新型轻量级点真实模拟器。该模拟器的核心创新在于其“点渲染方法”,可以直接从点云地图构建深度图像并进行插值,从而实现逼真的激光雷达点测量。它的主要目标是弥合无人机仿真与实际实验之间的差距,显著促进基于激光雷达的自主无人机的研究。
“低成本、小尺寸和轻量级的固态激光雷达传感器的出现为自主无人机带来了新的机遇,通过提高导航安全性和计算效率。然而,基于激光雷达的无人机的成功开发必须依赖于大量的模拟。现有模拟器由于需要难以获取的密集网格地图,因此很难进行真实世界环境的模拟。”
2. 现有模拟器的局限性与MARSIM的优势¶
现有主流模拟器(如Gazebo、Webots、Airsim)在进行高分辨率真实场景模拟时面临多重挑战:
- 非真实环境: “主流模拟器可以模拟的环境大多是虚拟的、不切实际的简单人造环境,与复杂的真实世界场景存在相当大的差距。”
- 网格地图依赖: 现有模拟器主要导入网格地图,而真实世界的环境数据通常以3D点云形式通过激光扫描仪或激光雷达获取。将点云数据转换为高分辨率、高保真度的网格地图是一个耗时且质量低下的过程,特别是面对遮挡和点密度变化时。
- 高计算要求: 主流模拟器通常需要高性能GPU才能在大复杂网格地图中实现实时模拟,对计算平台要求很高。
为了解决这些问题,MARSIM提出了以下关键特性:
- 直接利用点云地图: “直接利用真实环境的点云地图来渲染逼真的激光雷达扫描。点云地图保留了环境的精细细节,并且可以使用激光雷达传感器轻松获取。”
- 高效的计算和内存消耗: “计算和内存消耗高效,并且能够在没有专用图形处理单元(GPU)卡的个人电脑上运行。”
- 多功能性: “多功能,支持动态障碍物、多无人机系统以及各种现有激光雷达模型(Livox AVIA、Livox MID-360、Velodyne VLP-32、IntelRealsense D455等)的模拟,具有不同的分辨率和扫描模式。”
- 开源与ROS兼容: “开源且与ROS兼容(https://github.com/hku-mars/MARSIM.git)。用户可以轻松地将模拟器与他们在ROS中开发的模块(如同步定位与地图构建(SLAM)和路径规划模块)集成,并在真实的模拟环境中快速进行评估。”
3. 系统架构与方法¶
MARSIM模拟器主要由三个子模块组成:内置飞行控制器模块、动力学和运动学模拟模块以及激光雷达模拟模块。它能够在ROS框架中与规划器、SLAM算法和可视化模块进行交互。
A. 激光雷达模拟: 核心方法是将点云地图中的所有点投影到当前激光雷达的视野(FoV)中,执行插值以获得稠密的深度图像,然后遮蔽掉不在扫描模式上的点。
- 遮挡剔除: 针对稀疏点图像(由于空间下采样)和前景/背景遮挡问题,引入插值范围θmax,并保留最小深度值。
- 平面校正: 当激光雷达光线不垂直于物体表面时,插值点可能偏离表面。通过将地图点视为小平面,并计算像素光线与平面之间的交点来纠正此问题。仅对具有高平面质量的地图点执行此校正。
- GPU加速: 针对大规模点云地图的实时渲染需求,采用OpenGL进行GPU加速,实现每秒10次以上的实时运行,即使在数千万点的地图上。
B. 动力学和运动学模拟: 模拟器提供基于标准刚体模型的无人机动力学和运动学模拟。推力和扭矩由二阶电机模型生成,模型参数可由用户配置。计算出的角速度和特殊加速度会添加测量噪声和偏差以获得IMU测量值,同时发布完整的真实无人机状态。
C. 飞行控制器设计: 采用级联双环PID控制器,内环为姿态控制器,外环为位置控制器,根据无人机模型参数调整控制器增益以实现良好的位置控制性能。
D. 动态障碍物模拟与碰撞检测: 模拟器支持动态障碍物(如随机生成移动的球形物体)的模拟。通过构建KD-Trees并在每个模拟步骤进行最近邻搜索来执行碰撞检测,若发现无人机尺寸范围内的点,则发出碰撞警告。
E. 分布式多无人机模拟: 为了支持无人机群研究,模拟器支持多无人机系统模拟,并采用完全分布式的架构,每个无人机在一个独立的线程(或计算机)中模拟,通过ROS进行通信。模拟器还增加了相互观测功能,以更真实地模拟多无人机之间的交互。
4. 真实高分辨率点云地图构建¶
MARSIM提供了10个高分辨率(0.01米)的真实场景点云地图,包括森林、室内场景、历史建筑、停车场和大型办公室。这些地图的构建过程旨在实现高分辨率和高精度:
- 使用手持设备携带Livox Avia传感器扫描环境。
- 利用FAST-LIO2 [25] 构建粗略地图,并通过激光雷达束平差(LiDAR bundle adjustment)全局优化地图质量 [26]。
- 在CloudCompare软件中,使用统计离群点移除(SOR)滤波器和空间下采样来生成统一且干净的点云地图。
- 手动填充激光雷达扫描无法到达的角落。
5. 评估结果¶
A. 高分辨率真实点云地图: 提供的高分辨率地图(0.01m)展现了真实的场景细节,涵盖了多样化的环境,如表I所示,这些环境为自主无人机提供了多样化的测试场景。
B. 计算资源消耗对比: 与Gazebo模拟器进行对比,MARSIM在时间消耗和内存消耗方面表现出显著优势:
- 时间消耗: 在轻量级计算平台(NUC)上,即使是MARSIM的CPU版本,在低分辨率地图下也略快于Gazebo的GPU加速模拟。在GPU加速下,MARSIM比Gazebo快两倍。在高分辨率地图下,MARSIM的CPU版本比Gazebo的GPU加速模拟快两倍,而GPU版本更是快十倍。这得益于MARSIM直接处理点云,避免了处理大量三角形面的渲染管线和复杂物理模拟。
- 内存消耗: MARSIM的RAM消耗约为Gazebo模拟器的一半,进一步证明了其轻量级特性。
- 实时性: MARSIM在所有测试场景下均能以10 Hz以上的频率实时运行。
C. 实验验证: 通过在真实环境中验证无人机规划方法(Bubble planner),模拟器生成的无人机飞行轨迹与实际轨迹高度吻合,证明了模拟器的实用性。
D. 支持不同类型的激光雷达及其他功能: 模拟器支持多种常见激光雷达和深度相机模型,如Livox Avia、Livox Mid-360、VLP-32、VLP-64、OS1-32和Intel realsense D455,能够重现这些传感器的扫描模式。同时,支持动态障碍物和多无人机模拟。
E. 模拟器的实际应用: MARSIM主要用于为基于激光雷达的无人机算法(特别是需要与环境交互的运动规划和自主探索算法)提供测试和验证平台。它已被成功用于辅助多无人机相互定位 [33] 和运动规划算法 [4, 34] 的开发。
6. 结论与讨论¶
MARSIM为轻量级计算平台上的真实环境模拟提供了一种基于激光雷达的无人机模拟器。它通过直接在点云地图上渲染激光雷达扫描,极大地简化了真实环境的获取过程,并利用现代3D激光雷达的高精度,真实地再现环境,从而显著缩小了模拟与现实之间的差距。其提供的高分辨率点云地图和对多种激光雷达类型、动态障碍物以及多无人机模拟的支持,能够满足单或多无人机运动规划算法和自主探索算法的研发需求。
尽管MARSIM具有显著优势,但也存在一些未来改进方向:
- 当点云地图精度不足或存在噪声点时,模拟器可能无法还原真实环境的正确细节。
- 如果激光雷达扫描稀疏,模拟器在计算不必要的深度图像像素上可能会浪费计算资源,从而降低其计算效率优势。未来可以优化渲染模块以减少这种情况下的资源消耗。
7. 重要引用¶
- “直接利用真实环境的点云地图来渲染逼真的激光雷达扫描。点云地图保留了环境的精细细节,并且可以使用激光雷达传感器轻松获取。”
- “我们开发的模拟器能够在轻量级计算平台上运行,并支持不同分辨率和扫描模式(例如旋转激光雷达和固态激光雷达)、动态障碍物和多无人机系统的激光雷达模拟。”
- “在ROS框架中开发,模拟器可以轻松地与自主机器人的其他关键模块进行通信,如感知、状态估计、规划和控制。”
- “现有模拟器可以模拟的环境大多是虚拟的、不切实际的简单人造环境,与复杂的真实世界场景存在相当大的差距。”
- “评估结果表明,所开发的模拟器在时间消耗和内存消耗方面优于Gazebo,并且模拟的无人机飞行与真实环境中的实际飞行高度匹配。”