在激光雷达里程计和建图(Lidar Odometry and Mapping, LOAM)任务中,前端在里程计计算位姿前需要对传感器的点云流数据进行滤波(去除噪点)和特征提取处理。
其中点云滤波往往需要根据激光雷达具体的扫描方式、型号、特性以及后续任务等进行调整[4];在点云特征提取方面,论文[3]中率先提出了将点云曲率较大的边缘点(Edge Points)和曲率较小的平面点(Planar Points)作为点云的特征,进行后续ICP匹配,从而减少内存消耗量,后续LOAM论文基本沿用这一方法。
本仓库参考Horizon loam[5]中的点云滤波和特征点提取方法,其中Horizon激光雷达CustomMsg的Tag信息[7]可以用于基本的滤波操作。
调试环境:
- Ubuntu 18.04 ROS melodic. ROS installation
- PCL 1.8. PCL installation
- 硬件: livox Horizon激光雷达
- 安装ROS
- 安装livox ROS驱动[1, 2, 3]
- 安装本仓库
mkdir -p ~/xxx/src
cd ~/xxx/src
catkin_init_workspace
git clone https://github.com/GCaptainNemo/fusion-lidar-camera-ROS.git
cd ..
catkin_make
- 运行激光雷达设备驱动
roslaunch livox_ros_driver livox_lidar_msg.launch
- 运行filter_node和extract_feature_node节点,并在rviz中显示
roslaunch filter_extract_feature launch_filter_extract.launch
[1] livox 驱动安装
[2] livox SDK安装
[3] Ji Z , Singh S . LOAM: Lidar Odometry and Mapping in Real-time[C]// Robotics: Science and Systems Conference. 2014.
[4] Lin J , Zhang F . Loam_livox: A fast, robust, high-precision LiDAR odometry and mapping package for LiDARs of small FoV[J]. 2019.