赞
踩
虚拟机软件:VMware
Ubuntu版本:18.04
ROS版本:melodic
仿真软件:gazebo
这一步就不详细介绍了,网上的资料已经够了,不想搜索的点turtlebot3仿真学习。
这里我是参考的cartographer安装。
这篇博文里面,博主提到需要用pcl1.7版本的,不要用1.9。但是查看了一下,我的环境是1.8版本,嫌麻烦不想重装,直接按着文章的步骤做了,成功编译安装,没有问题。
修改turtlebot3_cartographer.launch文件,参考在仿真环境下使用Turtlebot3跑Cartographer算法。
重点来了,cartographer安装成败,就看仿真的结果了。
一般情况下,按着上面的文章一路弄下来,应该是可以用了,但也许会出现以下情况。
这时候,先运行gmapping建图算法,如果成功运行,证明turtlebot3仿真是安装成功了,那么就说明cartographer安装失败。请重新再安装一边cartographer。
如果gmapping同样出现问题,那么turtlebot3安装失败。当时我安装cartographer失败,想着换pcl1.7,倒腾环境把gmapping也搞不行了,一气之下,直接重开,所有环境重装。
环境重装之后,终于正常一点了,gmapping可以用。试了一下cartographer,模型也没有变白,可以看见绿色的激光雷达扫描结果,但是无法建图。查看rviz左边栏,在全局设置中发现错误提示,无法从map转换到其他tf变换。使用rqt_tf_tree查看tf树,发现根本就没有map,再一查看终端的输出信息,负责发布map信息的cartography节点在建图launch运行一开始就死亡了,根本就没有map信息输出,后边的tf变换都是根据map来的,怎么可能建图。
网上资料查了半天,发现根本没有相关资料,我只好一直盯着终端的输出信息看,突然看见一个错误:
map_by_time.h:43] Check failed: data.time > std::prev(trajectory.end())->first
带着唯一的线索,在网上又开始查询,这一次终于有了眉目。
在cartographer_ros的github代码仓里面,有人向作者提了一个一样的问题—问题issue。老哥的解决方案是,修改.lua文件里的odometry_sampling_ratio,将其改为0.1。然后,我终于跑起了cartographer。
实机:某款工控机
Ubuntu版本:18.04
ROS版本:melodic
安装步骤和仿真一样。
参考cartographer 用自己的机器人建图、保存地图。
网络上的资源很丰富,但是却如碎片般凌乱,写这篇博文整理一下相关文章,感谢以上参考文章的作者!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。