ROS 2正式版终于来了,还增加了这些新特性

林鳞 编译自 GitHub

量子位 出品 | 公众号 QbitAI

过了个周末回来,发现机器人开源操作系统软件ROS 2已经推出首个正式版了,新版本命名为“Ardent Apalone”,代号“ardent”。

ROS 2因何而来?

常年混迹机器人圈的朋友们,肯定对ROS(Robot Operating System,机器人操作系统)不陌生。这款为机器人开发者提供程序库和工具的架构,第一版还是2007年推出的。

为什么在增强ROS性能的基础上还要开发新一代的ROS 2平台?在项目介绍中,开发团队给出了答案。

“我们最初的目标是开发一些软件工具,方便在Willow Garage的PR2机器人上研究,”项目介绍中写着,“但PR2不是世界上唯一的机器人,我们希望ROS也能帮助其他的机器人开发者。”因此,研究人员通过很多消息接口定义抽象层次,让ROS能在构建其他机器人时可用。

Willow Garage公司的机器人PR2

ROS开源后,研究人员发现了新诉求。

一是之前没有考虑到一些新用例,比如机器人的多样性,用户对小型嵌入平台和实时系统等诉求。

二是这几年出现了Zeroconf、Protocol Buffers、ZeroMQ、Redis、WebSockets、DDS等新技术,不利用岂不是浪费了。

三是研究人员想借机也升级API,将一代API中用户提出的建议加进新API中。

因此,ROS 2闪亮登场——

新特性

平台和依赖性

ROS 2支持在Ubuntu Xenial、OS X El Capitan和Windows 10上进行CI测试。

在语言方面,ROS 2广泛使用了C++11,并且还用到了部分C++14,Python至少为3.5版。

此外,ROS使用自定义的序列化格式、自定义传输协议和自定义中心发现机制;ROS 2有一个抽象的中间设备接口,目前该接口的所有实现都基于DDS标准。

构建系统

ROS 2开始支持除CMake以外的其他构建系统,并且Python包可以使用setup中的所有特性。

ROS 2中的环境设置被分成特定package和特定工作空间的脚本。

在ROS中,用户可以在单个CMake context上构建多个package,但ROS 2只支持单独构建。

在ROS中,研究者可以在不安装它们的情况下构建package,用ROS 2必须提前安装。

此外,ROS 2中重构的CMake API简化了编写代码,并且可以在没有清单文件的文件夹中检测支持的构建系统package。

消息与服务

在ROS 2中——

生成的代码使用了单独的命名空间。

可以设置消息中的默认初始值。

数组和字符串的可选上限。

持续时间和时间类型被定义为消息。

删除了Header message中的序列字段。

客户端库

ROS 2目前还不支持主题名称中的命名空间,在使用C或C++时,部分情况下可以编写实时节点。

资源查找

在ROS 2中的资源可在编译时在索引处注册,在运行时可被有效查询。

相关资料

项目介绍地址:

https://github.com/ros2/ros2/wiki

关于你想要的ROS 2的所有介绍,都在上面这个地址中。

祝你和机器人玩得愉快~

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171211A0CIP200?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区