文/冷冬寒梅
下面即为具体步骤
(一)安装cartographer_ros
1)首先安装wstool和rosdep工具
sudo apt-get update
sudo apt-getinstall -y python-wstool python-rosdep ninja-build
2)然后建立一个新的workspace
mkdir slam_ws
cd slam_ws
wstool init src
3)安装cartographer_ros.rosinstall文件,更新
wstool merge -t srchttps://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
4)安装deb依赖Installdeb dependencies.
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
5)安装和设置路径
catkin_make_isolated --install –use-ninja
(此处需要时间比较长,要耐心等待,我在运行时候,以为此处进行不下去了,结果等的时间长些,运行成功)
source install_isolated/setup.bash 此语句设置路径
(二)根据需要修改lua配置文件
launch文件如下
参数如下,不使用odom,只使用激光,参数如下
每次修改了lua代码都需要运行下面代码进行编译和设置路径
cd slam_ws
catkin_make_isolated --install --use-ninja进行编译
source install_isolated/setup.bash设置路径
运行launch文件
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=/home/dmchen/slam_ws/src/cartographer_ros/cartographer_ros/bag/1014.bag
其中我们自己的数据包包1014.bag存储路径为/home/dmchen/slam_ws/src/cartographer_ros/cartographer_ros/bag
运行结果
使用激光和odom数据,参数设置如下
注意需要运行catkin_make_isolated--install –use-ninja编译
运行效果如下:
备注:关于lua设置文件中每个参数的意义,以后会单独写文章进行说明
网友评论
我运行cartographer的时候尝试了不接受imu数据,只接受激光数据,结果地图画的一团糟,每一块子图不停地叠加旋转。
而且我用自己的激光数据带入cartographer,也是只有激光数据,最后的结果也是一团糟。所以我想问下你是怎么做到只用激光数据就画出那么好的图来的
1.我的激光是用国内一家做slam公司的扫地机器人采集的,没有安装ros系统,所以没法录制bag。我是把数据保存到window的文件中,然后在linux下读取文件并发送消息出去,让cartographer节点接受。激光数据只有三个值:采集是否有效,0无效,1有效;激光测得距离;此次测距的角度。
2.参数那里我照着你的设置了一下,我控制小车沿着走廊走一趟可以画出比较好的地图。但是让小车自动采集他会来回不停地扫描,那种数据画出的地图就会出现部分地图不停地旋转叠加的一团糟的情况。
3.你的launch文件中
TRAJECTORY_BUILDER_2D.use_online_correlative_scan_matching = true
TRAJECTORY_BUILDER_2D.motion_filter.max_angle_radians = math.rad(0.1)是依据什么设置的,我只知道激光的角增量和horizontal_laser_max_range需要满足余弦定理
4.楼主把published_frame = "base_link"改成published_frame = "odom",其他的什么地方不用改吗,比如rivz的配置文件部分
ERROR in config: Error processing 'ceres-solver' : [ceres-solver] Checkout of https://ceres-solver.googlesource.com/ceres-solver.git version 1.12.0rc4 into /home/rango/Documents/google_cartographer_catkin_ws/src/ceres-solver failed.
翻墙和VPN都用了也不行,貌似时googlesouce那变有什么限制一样,请问怎么解决,非常感谢!