此存储库包含用于ROS兼容UGV的轻型和地面优化激光雷达里程计和地图(lego-loam)系统的代码。该系统接收来自Velodyne VLP-16激光雷达(水平放置)的点云和可选IMU数据作为输入。实时输出6D姿态估计。
一、依赖Dependency:
1、ROS:安装了ubantu16.04 kinect版本:参考过程
2、安装gtsam:
下载gtsam:
git clone https://bitbucket.org/gtborg/gtsam.git
//或者:
wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip
解压之后在gtsam下编译和安装:
mkdir build && cd build
cmake ..
sudo make install
//这一步最好使用sudo,不然可能出现问题。
准备工作结束。
二、下载和安装lego-loam:
lego-loam源码下载:
//catkin_wsloam是我为lego-loam建立的工作空间
cd ~/catkin_wsloam/src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
//第一次编译需要加-j1后面不必
catkin_make -j1
编译可能出现的问题:(我的解决就关掉了,这是别人的截图,内容上除了路径都是一样的)
解决方法:
将/usr/local/lib/cmake/GTSAM/GTSAMConfig.cmake:17 行的find_dependency改成find_package。找不到就在全部文件中搜索GTSAMConfig.cmake:
。
该文件可能没有权限修改,首先修改权限给它写权限。
sudo chmod a+w GTSAMConfig.cmake
三、运行lego_loam :
更新工作区间:source devel/setup.sh
运行lego_loam:roslaunch lego_loam run.launch
打开数据集:rosbag play 11-12-boliu2.bag --clock --topic /velodyne_points
11-12-boliu2.bag是我的包名,velodyne_points是话题名。
结果:LeGO-LOAM 以/velodyne_points和/imu/data为topic分别订阅激光雷达和imu数据,也可以没有imu数据。LeGO-LOAM默认的激光雷达数据为VLP-16类型。
四、保存建图结果:
在建图时运行:rosbag record -o out /laser_cloud_surround
来录制lego_Loam后生成的地图
保存为pcd格式文件:
rosrun pcl_ros bag_to_pcd input.bag /laser_cloud_surround pcd
最后一个pcd文件为我们要保存的pcd文件,使用pcl_viewer来查看保存的pcd文件:
pcl_viewer xxxxxx.pcd
//xxxxx.pcd为文件名
结果:
参考:
1、原作者的readme,上述下载中有。
2、LeGO-LOAM编译、运行
3、保存并查看Lego-Loam的三维点云地图
附:需要文中所需实验文件、论文等可留言。看到会发。