AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

从 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:002471

评论

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

一文看懂:近期不断 “狂飙” 的 ChatGPT | 社区征文

架构精进之路

ChatGPT

一文深度解读音视频行业技术发展历程

阿里云CloudImagine

云计算

号码隐私保护服务:保障亿万消费者的隐私安全

阿里云CloudImagine

云计算

NLP 双数组字典树(double array trie) 基于darts-java改进,增加词性存储。

alexgaoyh

elasticsearch nlp darts-java 词性 double array trie

问:React的setState为什么是异步的?

beifeng1996

前端 React

重磅 | 超级自动化行业黑马九科信息再获数千万A+轮融资 ——电科信息领投,深创投索斯福跟投,老股东信天创投、青松基金追加投资

九科Ninetech

见山,见路,见天地:OpenHarmony的开源共建攀登

脑极体

开源鸿蒙

2023年最佳Aspera替代方案,选择适合的Aspera替代方案

镭速

N皇后问题的回溯法实现

老王同学

c++ 八皇后 回溯法

如何在阿里云上快速实现企业实例一键迁移——实践类

阿里云AIoT

阿里云 物联网 IoT

根据文本描述生成视频,Tune-A-Video 效果惊艳

Zilliz

计算机视觉

面试官:说说Event Loop事件循环、微任务、宏任务

loveX001

JavaScript 前端

“堆内存持续占用高 且 ygc回收效果不佳” 排查处理实践

京东科技开发者

前端 堆内存 回收器 JavaScrip 企业号 3 月 PK 榜

志愿者招募令|来!一起Build OceanBase第一次开发者大会

OceanBase 数据库

数据库 oceanbase

美团前端二面面试题

loveX001

JavaScript 前端

前端经典面试题(有答案)

loveX001

JavaScript 前端

ChatGPT看技术发展趋势| 社区征文

芯动大师

人工智能 openai ChatGPT

ChatGPT 不仅是 AI 的成功,也是云计算的成功 | 社区征文

多颗糖

云计算 AI 云原生 ChatGPT

chianmaker交易初探

liwh1227

区块链 共识算法 联盟链架构

Python:Excel自动化实践入门篇 乙【送图书活动继续】

eng八戒

Python Excel Python自动化办公

一起玩转开源数据库!OceanBase DevCon 之开源生态全景解析

OceanBase 数据库

数据库 oceanbase

研发效能度量标准与实践

思码逸研发效能

研发效能

22道js输出顺序问题,你能做出几道

loveX001

JavaScript 前端

一次线上OOM问题分析

艾小仙

Java OOM 问题排查 排查方法

C++入门简单实例

老王同学

c++ 入门

FLstudio2023水果编曲软件下载及中文语言切换教程

茶色酒

FLstudio2023

YOLOv5全面解析教程⑤:计算mAP用到的Numpy函数详解

OneFlow

人工智能 深度学习

新一代通信协议—— RSocket

老周聊架构

响应式编程 2月月更 rsocket

如何快速理解事务隔离

Dinfan

数据库 innodb 事务隔离

顶会论文 | 阿里云视频摘要SOTA模型:用于视频摘要的多层时空网络

阿里技术

人工智能

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