首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从ROS1到ROS2,带来托管启动和数据分发服务

2018年,机器人操作系统2 (ROS2)作为ROS1的继任者推出。在ROSCon 2019大会上,几位演讲者分享了他们从ROS1转到ROS2的经历。他们分别在两个单独的演讲中进行了分享:Autoware项目和Rover Robotics的演示。

Autoware项目借此机会对他们的软件进行了重新设计,以便更好地运行在ROS2上。Autoware项目以Autoware.AI为起点,它是一款用于自动驾驶汽车的开源软件。他们的软件基于ROS1,非常适合进行原型设计。但Autoware不适合用于构建实际的产品,原因有三个。主要原因是ROS1未经认证,要实现认证需要很多年的时间和人们的努力。Autoware AI应用的决定论和内存安全性实现认证也不太可能。最后,由于ROS1的终结时间被定在2025年,它的受支持时间只剩下不到6年。因此,Autoware决定启动autoware.auto,虽然这需要做更多的工作,但从长期来看将带来更好的结果。

相比ROS1,ROS2带来了几个好处。一个好处是托管启动,你可以指定节点启动顺序。另一个好处是数据分发服务(DDS)通信协议,它可以以零拷贝的方式传递消息,节省了CPU和内存资源。在开发方面,他们花了更多的精力来增加测试覆盖率,提供更多更好理解的文档,以及更多持续集成,以便实现软件的认证。

为了确保能够愉快地使用现有的Autoware软件栈,工程团队对旧项目也提供了与新项目一样的支持。这是通过添加ROS1桥接来实现的。通过这种方式,新的高质量特性被引入到新的项目中,同时又保持现有贡献者的体验不受影响。对贡献者来说,由于他们对质量期望很高,所以Autoware需要提供更高的测试覆盖率,每个发行版的设计文档以及确定性执行测试用例。为了鼓励现有贡献者和新贡献者加入,Autoware的工作人员正在为他们提供指导。

Nick Fragal和Nick Padilla进行了第二次演讲,他们都在Rover Robotics公司工作。他们使用ROS1来共享通用的机器人代码,并尽量减少常见任务的代码重写工作。他们希望使用ROS2来共享可靠的机器人代码。ROS2的技术指导委员会中有很多来自大公司的人,他们非常重视可靠性,因此可以预料的是,很多公司将采用ROS2。可见ROS2大有前景。

Fragal谈到了它们的应用:一种运送T恤的机器人,可以把T恤送到参会的人手中。他们用ROS1进行了一个演示,想把它移植到ROS2。移植最初看起来进行很顺利,但是当他们用速度较慢的WIFI进行新的演示时,遇到了问题。

潜在的原因是DDS协议,它在慢WIFI环境下不能很好地运行。为了解决这个问题,他们研究了可以调整哪些参数让DDS在慢WIFI环境下运行得更好。他们还比较了DDS协议的不同实现,并与提供商合作改进它们的实现。最后,多个DDS实现都可以在10秒内让软件启动起来。关键的是选择具有零拷贝的DDS中间件,避免在内存中移动图像。

总的来说,Rover Robotics估计在进行移植演示时大约花费了60%的时间在研究通信协议上。不过,现在它运行得更顺畅了,他们希望以后把90%的精力放在导航和应用程序代码上。

原文链接

Migrating Two Large Robotics ROS1 Codebases to ROS2

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/8E3LhfJyPqOQyT0o66Mo
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券