用RPLIDARA2远程实现Cartographer建图

用RPLIDARA2远程实现Cartographer建图

一.上周在PC机上用rplidar A1+cartographer 实现本地建图,其意义在于:1.验证Cartographer是否对低成本激光具有兼容性,2.验证自己掌握的cartographer 配置方法的有效性。事实证明,目标达到了,但随之我又有了新的想法,那就是利用当前已有机器人上的rplidar A2激光实现远程移动建图,这样,就可以脱离距离限制,再也不用托着激光来回的动,再也不用看着激光建成的小范围的地图,然后用想象力去填充后续建图的效果。在这里,我大致说下我们机器人的配置,slamware core+rplidar A2 ,用的思岚提供的ros sdk。
二、这个想法很振奋人心,我快速设定了目标,1.要能够看到移动建图效果,2.与思岚方案的建图效果进行比对。但实施过程中我还是低估了方案细节。我的具体方案是:1.让robot上的工控机做master,我的开发电脑做远程调用从机器。2.打开运行在机器人上的ROS节点,然后远程订阅/scan主题。3.修改cartographer配置文件,将它需要订阅的scan话题重映射到思岚ros sdk发布的激光话题上,重新编译cartographer 源码,然后启动cartographer launch文件,这样就可以实现远程建图了。
三、说干就干!遇到的第一个问题就是cartographer 订阅的scan 的frame id与slamware ros sdk提供的frame id不一致,当时,脑袋有点短路,没有经过深入分析,就认为slamware ros sdk无法修改这个参数。我直接看错误log,修改cartographer 源码,修改编译后,产生了新的问题,还是不能用!放弃。
四、放了几天,冷静思考后,突然想起来,可以在slamware ros sdk上面下功夫,查了查SDK,发现配置文件中其实是有这个选项的,下图中的“laser_frame"。
在这里插入图片描述
修改后,编译了slamware ros sdk,在roslaunch cartographer launch文件不报错了,但会出现另一个错误**

。[ WARN] [1555592651.777067265]: W0418 21:04:11.000000 28585
sensor_bridge.cc:213] Ignored subdivision of a LaserScan message from
sensor scan because previous subdivision time 621355968000000000 is
not before current subdivision time 621355968000000000

**
问了下度娘,看到也有人出现了这个问题,但是没有人来回答这个问题,这个咋办?愁死了。:-

四、天无绝人之路。第二天,灵光终于出现了,重读了警告信息后,我感性的认识是这是一个时间同步问题,因为两台电脑互联,同步时间是一个重要的环节。
ROS主从机需要进行同步时间。
sudo ntpdate ntp.ubuntu.com 这个命令分别在两台电脑上用了下,时间同步了。再次尝试,终于可以移动建图了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值