最小的ROS移动机器人ROM有多小(转自微信公众号“机器人软件研究”)

2017-06-29   ChaoguoZhao   机器人软件研究

转眼这个公众号有4个月没有更新了,因为这几个月和小伙伴们在做一个嵌入式ROS ROM的闭关开发,实在无法顾及总结技术文章:),好在最近开发终于有了阶段性成果,赶紧上来汇报一下。

背景

关于ROS,大家对它的吐槽点主要集中在两点:一是多进程/分布式设计带来的性能开销。二是系统冗余,过于庞大。实际上,采用了plugin和nodelet技术实现零拷贝,第一点关于性能的问题已经不是很大的问题了。关于plugin和nodelet技术的应用,move_base框架做了一个很好的样板,它把cost_map,loca_planners和global_planners通过plugin技术集成到一个进程中,即解决了性能问题,又保持了非常强的灵活性和易用性,是一个比较经典的设计案例。


解决了性能问题,ROS脱离“快速原型验证系统”走向产品化平台算走了一小半,为了让ROS产品化更近一步,小伙伴把攻关的目标放在解决第二个痛点上--给ROS瘦身。长期以来ROS支持完整特性的操作系统只有ubuntu和debian,但是这两个桌面系统,动不动十几G的ROM,和自主机器人移动和嵌入式的需求实在不匹配。所以我们定了一个小目标:打造一个基于嵌入式Linux的ROS ROM。估计有人要疑惑:ROS不是一直支持嵌入式平台OpenEmbedded么?甚至在某个版本还支持一个RTOS QNX。嗯,确实是有支持,但是--但是,当你真正想用他们构建一个完整的移动机器人时,你就会发现:他们只是支持了ROS CORE的部分功能,从来没有发布过完整功能的软件栈,可以说除了ubuntu和debian,其它系统的ROS还是开发人员的玩具。如果要用ROS做一个嵌入式移动机器人的ROM,这个ROM最小能有多小呢,我们在尝试。

方案和进展

考虑技术成熟度,我们选择先从最成熟的激光雷达SLAM软件开始移植

主控硬件:allwinner 4核A7平台

操作系统:TinaLinux

激光雷达:neato xv_11

运动控制:arduino

在这样平台上实现支持SLAM功能的移动机器人ROM大小:500M,这个大小仅考虑功能实现,并未做细致瘦身,所以继续优化的潜力还很大。

ROS主要模块:

costmap_2d,local_planner,golbal_planner

map_server

SALM:gmapping

底盘控制:ros_arduino_python

Tina系统查到的ROS Node和Topic是这样的:

实测这个500M的系统SLAM效果和16G的树莓派3+ubuntu没有区别。


小吐槽

不得不吐槽一下ROS的依赖设计:在动手前我们一直知道ROS激光导航软件依赖PCL库,这是一个庞大的库,它的背后还依赖一堆GUI库,毕竟点云格式只是ROS激光雷达的一种输入格式,对于2D SLAM,我们用LaserScan,应该不需要依赖PCL吧...,但是随着移植进展,当我看到这个代码时,心里挖凉挖凉的:

在导航内核依赖庞大的外部库,典型的反向依赖。就因为PCL是Willow Garage的亲儿子?

小幸运--ROS IDE

嵌入式系统开发人员最怕什么,应该是没有IDE吧,我们也无法想象在嵌入式环境开发ROS如果没有IDE有多悲催。所以在Tina上ROS移植完成后,我们迫不及待要试一下IDE,我们得感谢一下RoboWare(http://roboware.me/#/)开发团队(这是我们国内的开发团队)。目前的RoboWare版本直接用在Tina ROS上还不行,但是还好,我们可以自己做一点简单修改就可以了,看看效果:

期待roboware后续版本能直接支持就更好了:)


展望

优化还在继续,除了激光导航外的更多功能也在继续加入,想象可能一两百M甚至几十M的ROM就能实现机器人自主导航,有点小激动,后续进展我还会及时给大家汇报,我们一起期待。




----------------------------正文分割线------------------------------------------------------------

本文由公众号“机器人软件研究”原创,转载请说明。

对嵌入式ROS系统有任何建议请关注公众号"机器人软件研究"在后台留言,或联系微信号:zhao_chao_guo。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值