简介
前面几篇文章介绍了多线激光雷达转单线,多线激光雷达用cartographer算法构建3D地图,这里介绍用LIO-SAM构建高精度三维地图。
硬件环境的准备
lios_sam建图,一个是需要多线激光雷达、一个是需要IMU,github上的IMU网上找了一下太贵了,好几万,直接吓尿了,简直玩不起,然后在网上找了个国产IMU HFI-A9深圳一家公司的这里就不做广告了,官方建议频率为500hz,测试国产IMU差不多200hz左右,后面测试一下也能用。然后就是安装,IMU安装与雷达X轴方向一致才行,如果想自己随意安装,需要进行imu与雷达校正,具体怎么校正有,有时间出个教程,那玩意太蛋疼了,跑个校正算力不行,花时间可长了。
lio_sam环境准备
- 1、lio_sam的下载到工作空间,直接github下载下来,然后按readme文件安装环境就行
git clone https://github.com/TixiaoShan/LIO-SAM
- 2、安装依赖
sudo apt-get install -y ros-kinetic-navigation
sudo apt-get install -y ros-kinetic-robot-localization
sudo apt-get install -y ros-kinetic-robot-state-publisher
- 3、安装gtsam
wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.2/
mkdir build && cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF …
sudo make install -j8
多线激光雷达环境准备
这里是使用的速腾16线激光雷达,但lio_sam这个包目前是支持威路登激光雷达(velodyne),因此需要把速腾激光雷达数据转换成velodyne数据格式
- 1、更改速腾驱动包数据格式,前面我们在安装速腾雷达驱动时介绍了速腾提供了XYZI与XYZIRT两种数据格式,在转单线时一定要用XYZI数据格式,如果用户自己转单线不成功,可以检测你的数据格式是否正确,但要用lio_sam建图一定要用XYZIRT数据格式,进入rslidar_sdk目录,打开CMakeLists.txt 文件,更改数据格式,更改后保存退出
- 2、下载速腾激光雷达转威路登激光雷达转换包,这个包我重命名了,改成以rikibot为开头的,后面启动不会是这个名称,用户用可以直接用这个包就行
git clone https://hub.fastgit.org/HViktorTsoi/rs_to_velodyne.git
- 3、重新编译环境
catkin_make
录制数据包
编译完成后,可以录制数据包了,这里不建议实时,反正我这边就没成功过,会报imu警告与gtsam错误,而且jetson系列录制播放搞不好也会报,还是X86可靠
- 1、启动底盘连接
roslaunch rikibot bringup.launch
- 2、启动雷达数据转换,这个用记用rs_to_velodyne包就行,启动完成后可以查看rostopic echo /velodyne_points数据,话题输出正常则说明转换成功
roslaunch rikibot_lidar rs_lidar.launch
- 3、录制数据包,执行完成后可以控制车移动就行
rosbag record -O slam /velodyne_points /imu/data
播放数据包建图
- 1、启动lio_sam
roslaunch lio_sam run.launch
- 2 、播放数据,最终效果如下图
rosbag play --clock slam.bag
lio
关键参数配置
录制数据只要雷达与IMU数据,没有什么需要了解的,这里我们关键看lio_sam这里面的配置,我们打开run.launch文件,这里我们基本不需要动从网上下载的文件,关键是params核心文件,这里根据你的情况需要做更改
打开params.yaml文件,这里我们核心看几个关键地方,GPS如果有配置就配,这里我只用IMU
这是如果你要保存地图就配置正确的路径,如果错误,就保存不成功
这里是关于IMU的配置,如果你有做IMU与lidar的校正,这里参数都可以修改,一般修改extrinsicRot与extrinsicRPY这两个参数,也就是要么开启上面的那个,要么开启下面的这组,市面上的IMU我也就发面这两种朝向(记住你的雷达与IMU的X轴一点要在同一个方向),这样建出来的图基本上就是我视频里的那种了,如果需要严格意义上的精确,那就自己做校正,下图的参数修改成校正的参数,怎么校正,后面在说,这个是个花时间的活儿。
交流方式
QQ交流群:130486387
RIKIBOT店铺连接