前言
首先,祝各位1024快乐!
本文主要实现在仿真环境下跑LiDAR+IMU的SLAM算法:Google的Cartographer是比较出名的开源SLAM算法。因为实验室的硬件还没准备好,因此还需要在仿真环境下跑,我选择了创客智造搭建的使用Turtlebot3的仿真环境。由于按官方的教程安装,总会出现各种问题,因此记录一下。
环境:ubuntu1604 ROS:Kinect
问题及解决
Cartographer安装
谷歌给的Cartographer安装教程主要存在一些问题,推荐使用创客智造的教程,主要概括为:
-
先把依赖全装好:
sudo apt-get install -y google-mock libboost-all-dev libeigen3-dev libgflags-dev libgoogle-glog-dev liblua5.2-dev libprotobuf-dev libsuitesparse-dev libwebp-dev ninja-build protobuf-compiler python-sphinx ros-kinetic-tf2-eigen libatlas-base-dev libsuitesparse-dev liblapack-dev -
安装过程出现
ERROR in config: Error processing 'ceres-solver',则在src文件夹中将.rosinstall文件中的ceres-solver的uri改为http://github.com/ceres-solver/ceres-solver.git -
此外,按归创客智造的教程运行到
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y时,如出现:command [sudo -H apt-get install -y ***] failed等,可采用较傻瓜的方法解决,直接sudo apt-get install ***解决(***代表不同的包,可能有多个,多次解决即可)。 -
安装好后的测试,参见官方 。
仿真环境搭建
值得说明的是,Cartographer的安装与turtlebot3无关,Cartographer包与turtlebot3包不在一个src下也无影响。环境搭建参见网址,但搭建完成后在仿真环境下运行Cartographer会出现错误(参考网址),此时,需要更改
Robot_Turtlebot3/src/turtlebot3/turtlebot3_slam/launch/turtlebot3_cartographer.launch文件,
如下图,把$(arg configuration_basename)更改为turtlebot3_lds_2d_gazebo.lua

运行仿真
编译成功后,使用以下代码就能在仿真环境下使用turtlebot3跑Cartographer算法,参考创造智造 。
打开gazebo加载环境(第一次可能会加载较长时间)。
export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_gazebo turtlebot3_house.launch
再开一个终端,运行Cartographer算法。
export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=cartographer
再开一个终端,运行脚本,用键盘控制机器人建图。
export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
再开一个终端,保存地图。
rosrun map_server map_saver -f ~/map
运行效果如下;




被折叠的 条评论
为什么被折叠?



