0.当前配置
- Ubuntu 16.04
- ROS Kinetic
- Opencv 3.4.1
- Ceres-solver
- gcc version 5.4.0 20160609 (g++)
- *Eigen3
- *G2O
1.前言
本人当下在学习slam_karto,在网上搜寻相关的博客,发现大家使用karto的并不多,大多都是在介绍hector_slam和gmapping_slam.当然还有Google的cartographer.参考他人的博客,gmapping与karto效果比较相似,但似乎gmapping的计算更加复杂,已经集成到ros中,使用的也比较多,cartographer效果很好,缺点是cpu占用率和内存开销较大(之前在实体机器人上跑cartographer,内存确实爆了,但是cartographer主打的低资源消耗的“码设”,我也不清楚当初发生了什么,/捂脸),代码也非常高深(目前我感觉不太容易看懂,毕竟c++有点陌生还…).所以准备学习下karto,顺便可能的话,也分享下自己的经验.
2.安装Karto
因为slam_karto
是依赖于open_karto
的,所以要先安装open_karto
.有两种方式安装karto_slam
,我本人比较推荐使用第二种
方式,虽然略微复杂一点,但是后续学习修改源代码会方便一点.
第一种:
sudo apt-get install ros-kinetic-open-karto
sudo apt-get install ros-kinetic-slam-karto
注意kinetic
为你ros
对应的版本.
第二种:
cd catkin_ws/src
git clone https://github.com/ros-perception/open_karto.git
git clone https://github.com/ros-perception/slam_karto.git
cd ..
catkin_make
catkin_make
没有报错的话,基本上就安装成功了.你可以尝试运行,但在运行之前别忘记执行下source devel/setup.bash
也可以一劳永逸,在home
下的.bashrc
末尾追加
source /home/yourusername/catkin_ws/