使用 DLIO 算法
1 概述
当机器人在未知环境中移动时,需要实时获取自身的位姿信息,并构建周围环境的结构表征(如路标或全局地图)。利用 SLAM(Simultaneous Localization And Mapping,同步定位与建图)算法,系统能够在定位自身位置的同时构建环境地图,从而实现对复杂环境的深度理解。
2 使用方法
本文以禾赛 JT128 激光雷达为例,介绍 DLIO (Direct Lidar-Inertial Odometry) 算法的使用流程。
-
JT128 是专为机器人和工业领域设计的迷你型 360° x 189° 超半球 3D 激光雷达,拥有 0.4° (H) x 0.74° (V) 的分辨率以及 内置 IMU,适合进行集成到移动机器人进行感知、建图任务(更多 JT128 信息介绍可详见此处)。
-
DLIO 是一种轻量级的雷达惯性里程计,结构精简且性能稳健,支持多种 Lidar 数据格式。详细介绍以及安装方式见Direct Lidar-Inertial Odometry (DLIO)。
使用 JT128 运行 DLIO 算法的具体步骤如下:
- 配置 ROS 环境(可参考ROS 环境准备)
注:推荐安装使用ROS Noetic
-
根据DLIO 和Hesai ROS 驱动 中的 readme 进行安装和编译
-
正确连接 Lidar 并配置 Hesai ROS 驱动
注:如果使用了 IMU 数据,需要在config.yaml中配置send_imu_ros: true。配置完成后,并参照下图所示方式验证驱动是否正确发送了 IMU 数据和点云数据:
- 另外打开一个终端,输入以下指令运行 DLIO:
roslaunch direct_lidar_inertial_odometry dlio.launch \
rviz:=true \
livox_topic:=/lidar_points \
imu_topic:=/lidar_imu
3 运行效果
运行 DLIO 算法后的 JT128 点云 SLAM 效果示例如下图所示:
DLIO 根据激光雷达点云和 IMU 的数据输出了当前的位姿、历史轨迹以及点云地图,并可以使用以下指令将点云地图导出为.pcd格式。
rosservice call /robot/dlio_map/save_pcd LEAF_SIZE /path/to/your/directory
此文档对您有帮助吗?