50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

  • 2019-11-18
  • 本文字数:1233 字

    阅读完需:约 4 分钟

从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


2019-11-18 08:003083

评论

发布
暂无评论
发现更多内容

文心一言 VS chatgpt (12)-- 算法导论3.1 6~7题

福大大架构师每日一题

ChatGPT 文心一言

自动回收内存:Go语言的GC垃圾回收机制详解

Jack

云环境中的灾备规划与分析

穿过生命散发芬芳

灾备 三周年连更

华为云WAF设置要塞,筑起企业网络安全万里长城

轶天下事

为什么企业们更偏好使用华为云CDN?

YG科技

2023 年最全面的 DevOps 工具列表,你用过几个?

Java架构历程

DevOps 三周年连更

Last Week in Milvus

Zilliz

Milvus Zilliz 向量数据库

华为弹性云服务器ECS,帮助企业节省成本上云成本

平平无奇爱好科技

云计算,

华为云CDN,助力企业数字化转型

YG科技

云计算

2022-04-24:用go语言重写ffmpeg的muxing.c示例。

福大大架构师每日一题

Go 音视频 ffmpeg

一个神奇的小工具,让URL地址都变成了"ooooooooo"

南城FE

JavaScript 前端 url

Nautilus Chain :基于模块化架构的Layer3正在走向成熟

西柚子

最常用的从A到Z的Linux命令,真的很好记,三分钟刷完!

wljslmz

Linux 三周年连更

华为云D-Plan解决方案助力汽车零部件质检智能化

轶天下事

华为云CDN加速为中小企业数字化效力

YG科技

ADB模拟按手机上的“菜单”键

IT蜗壳-Tango

三周年连更

《俞军产品方法论》

石云升

读书笔记 三周年连更

测试需求平台9-Table组件应用产品列表优化

MegaQi

测试平台开发 三周年连更

汽车制造数字化转型如何做?有哪些可行性案例?

优秀

数字化转型 汽车制造

【Python实战】Python采集最低战力信息

BROKEN

三周年连更

【Python实战】Python采集电影评论

BROKEN

三周年连更

智能感知编码优化与落地实践

Baidu AICLOUD

视频编解码

Go Mutex:保护并发访问共享资源的利器

陈明勇

Go golang mutex 互斥锁 三周年连更

华为云弹性公网IP服务,实惠又便捷!

轶天下事

Android补间动画

芯动大师

三周年连更 帧动画 补间动画

TypeScript 函数 详解

程序员海军

Vue3 Typescript 三周年连更

华为云CDN:让网络延时,成为过去时!

YG科技

Python中的哈希表

Echo_Wish

Python 数据结构 哈希表

小程序容器技术保障车载业务生态中的应用安全

FinFish

小程序容器 小程序技术 车载业务 车载生态 车载应用

华为云全球加速GA,让企业获得更优质的服务体验

平平无奇爱好科技

Cookie与缓存的指导性规则

阿泽🧸

HTTP 三周年连更

从ROS1到ROS2,带来托管启动和数据分发服务_编程语言_Roland Meertens_InfoQ精选文章