大家好呀,我是一个SLAM方向的在读博士,深知SLAM学习过程一路走来的坎坷,也十分感谢各位大佬的优质文章和源码。随着知识的越来越多,越来越细,我准备整理一个自己的激光SLAM学习笔记专栏,从0带大家快速上手激光SLAM,也方便想入门SLAM的同学和小白学习参考,相信看完会有一定的收获。如有不对的地方欢迎指出,欢迎各位大佬交流讨论,一起进步。博主创建了一个科研互助群Q:772356582,欢迎大家加入讨论。
经过前几次课的讲述,你已经知道了SLAM是干嘛的,以及一些Ubuntu和ROS的简单使用,最重要的是学会了如何编译C++工程。那就先来编译一个Lego_loam代码并运行它吧,你跑通的第一个SLAM算法。
1. 下载源码
mkdir -p ~/lego_loam/src
cd ~/lego_loam/src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
现在你catkin_make编译会报错,因为你并没有装任何的第三方依赖库。
2. 安装依赖
2.1 ROS包
打开其CMakelists.txt文件,可以看到需要这些依赖,一般catkin REQUIRED COMPONENTS后面跟的都可以直接使 用sudo apt-get install ros-noetic-***进行安装。(noetic为自己的ros版本名称)
find_package(catkin REQUIRED COMPONENTS
tf
roscpp
rospy
cv_bridge
image_transport
pcl_ros
pcl_conversions
std_msgs
sensor_msgs
geometry_msgs
nav_msgs
cloud_msgs
)
find_package(GTSAM REQUIRED QUIET)
find_package(PCL REQUIRED QUIET)
find_package(OpenCV REQUIRED QUIET)
2.2 第三方库
剩下的Gtsam,pcl,opencv为第三方库,一般需要手动源码安装。opencv和pcl ubuntu提供了安装命令,但这样安装有时会出现版本不对应的情况,所以也推荐源码安装,网上教程很多,这里不再赘述。
sudo apt-get update
sudo apt-get install libopencv-dev
sudo apt-get install libpcl-dev
安装gtsam优化器
mkdir gtsam
cd gtsam
git clone https://bitbucket.org/gtborg/gtsam.git
cd ~/gtsam
mkdir build
cd build
cmake ..
sudo make install
3. 编译运行
3.1 编译
在所有需要的依赖都安装完成后,现在可以编译了
cd ~/lego_loam
catkin_make -j1
当第一次编译代码时,需要在“catkin_make”后面添加“-j1”以生成一些消息类型。将来的编译不需要“-j1”。编译时出现错误,找不到Cmake文件,则需要在路径中添加相应的环境变量
3.2 运行
编译没有错误后,就可以运行代码了
source devel/setup.bash
roslaunch lego_loam run.launch
运行数据包,一定要加--clock时间,这样才能生成完整的全局地图。
没有数据包下载下面的
链接: https://pan.baidu.com/s/1IYCjdN_BokYkvlckQikgWw?pwd=jqix 提取码: jqix
rosbag play 3-1.bag --clock
保存地图为pcl文件 文章来源:https://www.toymoban.com/news/detail-797982.html
#转存为PCD文件 在代码建图过程中保存数据
rosbag record -o out /laser_cloud_surround
#转化为pcd文件
rosrun pcl_ros bag_to_pcd input.bag /laser_cloud_surround pcd
查看pcd文件
pcl_viewer xxxxxx.pcd
如果你看到这里,恭喜你在基本什么都不会的情况下运行了一个SLAM代码,开启了科研第一步。文章来源地址https://www.toymoban.com/news/detail-797982.html
到了这里,关于从零入门激光SLAM(五)——手把手带你编译运行Lego_loam的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!