在仿真环境下使用Turtlebot3跑Cartographer算法

前言

首先,祝各位1024快乐!
本文主要实现在仿真环境下跑LiDAR+IMU的SLAM算法:Google的Cartographer是比较出名的开源SLAM算法。因为实验室的硬件还没准备好,因此还需要在仿真环境下跑,我选择了创客智造搭建的使用Turtlebot3的仿真环境。由于按官方的教程安装,总会出现各种问题,因此记录一下。
环境:ubuntu1604 ROS:Kinect

问题及解决

Cartographer安装

谷歌给的Cartographer安装教程主要存在一些问题,推荐使用创客智造的教程,主要概括为:

  1. 先把依赖全装好:

    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
    
  2. 安装过程出现ERROR in config: Error processing 'ceres-solver',则在src文件夹中将.rosinstall文件中的ceres-solver的uri改为http://github.com/ceres-solver/ceres-solver.git

  3. 此外,按归创客智造的教程运行到rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y时,如出现:command [sudo -H apt-get install -y ***] failed等,可采用较傻瓜的方法解决,直接sudo apt-get install ***解决(***代表不同的包,可能有多个,多次解决即可)。

  4. 安装好后的测试,参见官方

仿真环境搭建

值得说明的是,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

运行效果如下;
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值