赞
踩
本文记录一下lego-loam和lio-sam在使用中遇到的一些问题。
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
#启动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
#启动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
以下是lego-loam运行得到的结果
环境较大,转换2d地图失败,可以适当降低bag的播放频率或者增大地图的分辨率。
命令行安装(按照作者给出的方法进行安装编译)
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
使用的是官方给的 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
也是尝试了几次才跑出来的,有时候还是会出现漂移,无法建图的问题
生成最终的点云图
使用lio-sam建图时,也可以采用最终得到的点云图进行2d栅格地图的构建,使用pcl库中的pcl::toROSMsg()将点云数据转为ros中的话题数据进行发布,然后使用octomap_server进行转换。
如图
(重影严重的地方可以后期处理,或者调整转换参数)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。