Lego-LOAM和LIO_SAM的使用及地图的处理

文章目录

  • lego-loam和lio-sam的使用
  • 一、lego-loam
    • 1.安装编译
    • 2.运行
      • 2.1 使用bag包进行3d建图,保存点云地图
      • 2.2 使用录制好的bag包进行3d建图,并进行3d转2d栅格地图。
    • 3.结果
      • 3.1室内环境
      • 3.1室外环境
  • 二、lio-sam
    • 1.安装编译
    • 2.运行
      • 2.1 使用bag包进行3d建图,保存点云地图
      • 2.2 结果
      • 2.3 点云图转2d栅格地图


lego-loam和lio-sam的使用

本文记录一下lego-loam和lio-sam在使用中遇到的一些问题。


一、lego-loam

1.安装编译

Ubuntu16.04下安装gtsam需要源码编译安装(二进制安装可以的话就不用源码编译了)

编译gtsam 方案1

git clone https://bitbucket.org/gtborg/gtsam.git
cd gtsam
mkdir build && cd build
cmake ..
sudo make install

下载安装之后,在编译lego-loam过程中会出现报错情况:

	Invalid arguments to find_dependency
	/usr/local/lib/cmake/GTSAMConfig.camke:17(find_dependency)
	LeGO-LOAM/LeGO-LOAM/CMakeLists.txt:23(find_package)

解决方案:

cd /usr/local/lib/cmake/GTSAMGT
sudo gedit GTSAMConfig.cmake
将17行的find_dependency修改为find_package

编译gtsam 方案2(Lego-loam github给出的方案,未测试)

wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.0-alpha2/
mkdir build && cd build
cmake ..
sudo make install

ubuntu18.04下命令行安装gtsam

sudo add-apt-repository ppa:borglab/gtsam-release-4.0
sudo apt install libgtsam-dev libgtsam-unstable-dev

下载编译lego-loam

cd ~/catkin_ws/src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
catkin_make 

2.运行

2.1 使用bag包进行3d建图,保存点云地图

#启动lego-loam
roslaunch lego_loam run.launch
#播放bag
rosbag play XXX.bag
#保存pcd,生成许多pcd文件,最后一个为最终结果,用pcl_viewer查看
rosrun pcl_ros pointcloud_to_pcd input:=/laser_cloud_surround

2.2 使用录制好的bag包进行3d建图,并进行3d转2d栅格地图。

#启动lego-loam
roslaunch lego_loam run.launch
#运行octomap_server
roslaunch octomap_server octomap_server.launch
#播放bag
# rosbag play XXX.bag --clock --hz=2
rosbag play XXX.bag
#保存地图
rosrun map_server map_saver -f test map:=/projected_map

3.结果

以下是lego-loam运行得到的结果

3.1室内环境

Lego-LOAM和LIO_SAM的使用及地图的处理_第1张图片

3.1室外环境

环境较大,转换2d地图失败,可以适当降低bag的播放频率或者增大地图的分辨率。
Lego-LOAM和LIO_SAM的使用及地图的处理_第2张图片

二、lio-sam

1.安装编译

命令行安装(按照作者给出的方法进行安装编译)

sudo apt-get install -y ros-melodic-navigation
sudo apt-get install -y ros-melodic-robot-localization
sudo apt-get install -y ros-melodic-robot-state-publisher

sudo add-apt-repository ppa:borglab/gtsam-release-4.0
sudo apt install libgtsam-dev libgtsam-unstable-dev
cd ~/catkin_ws/src
sudo apt install git
git clone https://github.com/TixiaoShan/LIO-SAM.git
cd ..
catkin_make

2.运行

2.1 使用bag包进行3d建图,保存点云地图

使用的是官方给的 casual_walk.bag,修改config文件,对于imu到激光雷达的坐标变换不需要修改。

savePCD: true
savePCDDirectory: "/Downloads/LOAM/"    #保存路径
sudo gedit /opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/nodeprocess.py
##将里面的 _TIMEOUT_SIGINT参数值调大,默认15
#启动lio-sam
roslaunch lio_sam run.launch
#播放bag
rosbag play casual_walk.bag

2.2 结果

也是尝试了几次才跑出来的,有时候还是会出现漂移,无法建图的问题
Lego-LOAM和LIO_SAM的使用及地图的处理_第3张图片
生成最终的点云图
Lego-LOAM和LIO_SAM的使用及地图的处理_第4张图片

2.3 点云图转2d栅格地图

使用lio-sam建图时,也可以采用最终得到的点云图进行2d栅格地图的构建,使用pcl库中的pcl::toROSMsg()将点云数据转为ros中的话题数据进行发布,然后使用octomap_server进行转换。
如图
(重影严重的地方可以后期处理,或者调整转换参数)
Lego-LOAM和LIO_SAM的使用及地图的处理_第5张图片

你可能感兴趣的:(github,ubuntu,自动驾驶)