林鳞 编译自 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的所有介绍,都在上面这个地址中。

祝你和机器人玩得愉快~

活动推荐

△ 点击图片阅读原文

即可报名和获取更多详情

联想全国高校AI精英挑战赛,面向全国征集优秀AI相关领域技术与应用。此次将在全国8大赛区、260所高校开启项目收集和沟通评判,最终入围总决赛的8支参赛队伍,将获得联想创投投资。

活动报名

旷视研究院深度解读COCO 2017人体姿态估计冠军论文

嘉宾:竞赛队owner、论文共同一作,旷视研究院研究员王志成

时间:12月13日(周三)晚19:30-20:30

形式:线上直播+微信群互动

添加量子位小助手4:qbitbot4,备注“吃瓜社”,通过后即可入群参与活动

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

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

  1. python 3.9特性,Python 3.9 正式版要来了,会有哪些新特性?

    " 编译:CSDN-明明如月,作者:James Briggs Python 发布了版本号为 3.9.0b3 的 beta 版,后续即将发布 Python 3.9 的正式版.该版本包含了一些令 ...

  2. python3.9出了吗_Python 3.9 正式版要来了,会有哪些新特性?

    Python 正在一直马不停蹄地更新,历时数月,我们迎来了又一个 Beta 版 -- 3.9.0b3,Python 3.9 正式版已经不远了,一起来看它带来了哪些值得开发者关注的重要新特性! 以下为译 ...

  3. python3 循环写入一对多键值对_Python 3.9 正式版要来了,会有哪些新特性?

    Python 正在一直马不停蹄地更新,历时数月,我们迎来了又一个 Beta 版 -- 3.9.0b3,Python 3.9 正式版已经不远了,一起来看它带来了哪些值得开发者关注的重要新特性! 作者 | ...

  4. Python 3.9 正式版要来了,会有哪些新特性?

    Python 正在一直马不停蹄地更新,历时数月,我们迎来了又一个 Beta 版 -- 3.9.0b3,Python 3.9 正式版已经不远了,一起来看它带来了哪些值得开发者关注的重要新特性! 作者 | ...

  5. Android 10 终于来了!增加了不少新特性

    前言 Android 10 正式发布了,根据官网的介绍,聚焦于隐私可控.手机自定义与使用效率,此版本主要带来了十大新特性: 智能回复 使用机器学习来预测你在回复信息时可能会说些什么,这项功能在 And ...

  6. 三星s7android版本,国行三星Galaxy S7/S7 edge 安卓7.0正式版终于来了

    安卓中国3月7日消息,虽然三星将会推送最新的安卓7.0给S7系列用户,但是这件事情已经叫嚣了有一段时间,甚至有S7的用户在想三星是否会不守承诺.现在,S7的用户终于可以放下心了,因为安卓7.0正式版终 ...

  7. Windows10 RS2正式版终于来了!升级有惊喜

    Windows10 RS2正式版终于来了!升级有惊喜 经过几个月的开发,微软将于本周开始Windows 10 Creators Update(创作者更新/RS2)的签署流程,编译RTM正式版的候选版本 ...

  8. Fire Workflow 1.0正式版终于发布了

    Fire Workflow 是国内另外一款开源工作流,作者是著名的非也同志,哈哈.... 官方网站是 http://www.fireflow.org 经过大家努力,Fire Workflow 1.0正 ...

  9. IDEA 正式版终于支持中文版和 JDK 直接下载了(太方便了)附介绍视频

    IDEA 2020.1 经过了漫长的打磨终于发布正式版了,而这次的版本不止直接支持 Java 14,还带来了两个重量级的功能,官方中文版支持和 JDK 直接下载. 在之前的开发中,当我们需要下载 JD ...

最新文章

  1. javascript编写_用JavaScript深入探讨:为什么对编写好的代码至关重要。
  2. JS函数重载解决方案
  3. 通用计算机有哪四个部分,计算机硬件由哪几部分组成?各部分的作用是什么?...
  4. python开源库生成式对抗网络_Python:使用Tensorflow开发一维生成对抗网络
  5. mysql客户端工具的使用
  6. oracle查询数据库日志大小,Oracle的日志缓冲区大小查询方法———学习笔记 | 学步园...
  7. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(9/E) - 比特位操控指令(BMI1 BMI2)
  8. 3.Event Delegate
  9. XP电脑开机就检查硬盘
  10. HTML常见问题整理1
  11. Android学习计划 Android学习总结
  12. 电路及esd静电防护
  13. 3dmax室内灯光强度一般打多少才合适
  14. 实战篇:手动编译安装微软 Linux 开源版 CBL-Mariner
  15. c语音删除字符数组中的元素
  16. linux中的kill 终止进程
  17. 什么是数据库连接池?
  18. php下载pdf文件不全,关于php:Zip PDF文件下载无效
  19. 神经网络仿真逻辑回归,神经网络仿真实验matlab
  20. 云闪付怎么对接三方php,第三方支付-银联云闪付开发教程

热门文章

  1. php 可选表格,PHP_表格标记,  ■ 表格标记 TABLE - phpStudy
  2. rabbitmq视频教程,面试官:
  3. 快速从入门到精通!mysql删除语句姓李的语句
  4. 第 4 章 MySQL 锁机制
  5. python对列求和_对单个列求和的最快方法
  6. mysql 卡住_一次sql卡住的解决过程(mysql)
  7. 菜鸟裹裹电脑版_天猫淘宝“基本盘”放缓,阿里云、菜鸟爆发,马云迎来拐点?...
  8. 理解Promise的3种姿势
  9. 1716.计算力扣银行的钱-LeetCode
  10. input file设置默认值_innodb_data_file_path设置--通过错误日志中page大小计算实际值...