OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

从 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


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2019-11-18 08:002136

评论

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

DEMO WORLD分论坛聊些啥?高端制造、未来出行、皮肤科技、未来产业……

创业邦

创新

膜拜!Github访问量破百万,阿里内部首次公布的Java10W字面经有多强?

Java 程序员 架构 面试

Why WebRTC|前世今生

声网

WebRTC RTC

前端实操案例丨如何实现JS向Vue传值

华为云开发者联盟

Vue 大前端 js Promise Vuex state

深入浅出分布式存储性能优化方案

焱融科技

云计算 分布式 高性能 云存储 超融合

520 单身福利|获奖名单公布~

InfoQ写作社区官方

520单身福利 热门活动

SparkStreaming知识点总结

五分钟学大数据

大数据 5月日更

Flume的负载均衡load balancer

大数据技术指南

flume 5月日更

Serverless:这真的是未来吗?(二)

Serverless Devs

Serverless 运维 云原生 后端 无服务器

普通代码块 静态代码块 构造代码块......傻傻分不清

麦洛

Java

看MindSpore加持下,如何「炼出」首个千亿参数中文预训练语言模型?

华为云开发者联盟

框架 mindspore 盘古 NLP 大模型 中文预训练模型

测试开发网络篇-网络协议简介

禅道项目管理

软件测试 自动化测试 测试开发

基础设施设施即代码(IaC)平台 Pulumi | 混合云管理利器

郭旭东

基础设施即代码 IaC

详解JQuery框架的五大选择器

华为云开发者联盟

jquery 选择器 层级选择器 属性选择器 过滤选择器

千万级学生管理系统考试试卷存储方案设计

Hesher

架构 Architecture 架构实战营 存储系统

聊聊那些小而美的开源搜索引擎

代码先生

搜索引擎 elasticsearch meilisearch

2、kafka 2.8.0 源码环境搭建

杨四正

大数据 kafka 消息队列 kafka2.8

JavaScript+TensorFlow.js让你在视频中瞬间消失

不脱发的程序猿

JavaScript 人工智能 开源 TensorFlow.js

阿里分布式大神亲码“redis核心技术笔记”,没有废话,全是干货!

Java架构追梦

Java redis 阿里巴巴 架构 架构分布式

看完了京东年薪150万的大佬扔给我的“阿里内部Java 成长笔记”,差距不止一点点

Java 程序员 架构 面试 计算机

BitMap 转置算法:不一样的 Count 求解方式

GrowingIO技术专栏

BitMap

支付中心设计

try catch

支付 支付中心

测试开发专题-开篇

禅道项目管理

软件测试 自动化测试 测试开发

基于 Qt Quick Plugin 快速构建桌面端跨平台组件

网易云信

音视频 qt

从酷睿双核到Tiger Lake-H,英特尔如何帮游戏笔记本完成蜕变

E科讯

java性能分析与问题定位 实战

try catch

Java 性能分析

iOS开发底层原理技术~RAC深度解析

ios cocoa 程序员 移动开发

架构实战营模块3课后作业-基于“自研集群+MySQL存储”的消息队列架构设计方案

吴建中

架构实战营

HIVE跑个insert into select xxx 为什么CPU飙高

InfoQ_Springup

hadoop

飞桨前沿升级、顶级开源项目、产教融合育人,WAVE SUMMIT论坛内容先睹为快!

百度大脑

深度学习 飞桨

多线程 VS 多进程(一)

若尘

多线程 多进程 Python编程 5月日更

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