原创作者:Alejandro Alonso-Puig、Jenssen CHANG(硅步机器人)
————————————————————————————————
近期,我在亚马逊出版了新书《ROS Programming with Python》。有人问我这本书的免费获取通道,但我发现真正有趣的是,人们并不愿意接受ROS,他们认为ROS还只是纸上谈兵,说它只是为了教育,而不是真正的工业。但是我认为,ROS已经开始为工业提供各种选项了,我们可以通过这三个方面进一步了解ROS——ROS 1、ROS 2和ROS Industrial。让我简单解释一下:
ROS 1 机器人操作系统(ROS)是一种用于编写机器人软件的灵活框架。它是一个工具、库和约定的集合,旨在简化在各种机器人平台上创建复杂而强大的机器人行为的任务。ROS 1作为个体机器人的解决方案诞生,例如Willow Garage(一家机器人研究实验室和技术孵化机构)生产的机器人PR2(Personal Robot 2),尽管它被设计用于各种没有实时要求的机器人。 今天,我们看到ROS不仅用于PR2和类似PR2的机器人,还用于各种规模的轮式机器人、双腿类人机器人、工业手臂、户外地面车辆(包括自动驾驶汽车)、飞行器和地面车辆等。 ROS 1是当今大多数人所知道ROS的方法。它有几个版本,最后的长期技术支持版本是Kinetic 和Melodic。事实上,当你现在谈论ROS的时候,人们普遍认为你其实是在谈论ROS 1。ROS Industrial
ROS-Industrial (or ROS-I)于2012年被提出,旨在促进ROS与工业之间的合作。ROS-Industrial是一个开源的项目,它将ROS软件的高级功能扩展到制造业的范围。ROS的功能,例如高级感知和路径/抓取规划,可以使以前技术上不可行或成本高昂的机器人应用程序成为可能。ROS-Industrial是在商业友好的BSD和Apache 2.0许可协议下发布的。ROS- I由国际工业联盟和研究成员支持:ROS工业联盟。
ROS 2 ROS 2在2014年的ROSCON会议上首次被引入。ROS 2并不是ROS的一个新版本,而是ROS的一个新方法。它带来了新的可能性,跟ROS 1一样有不同的版本,但会比ROS 1更适用于工业。机器人技术和商业发展要求新的用例,这些用例是设计ROS 1时没有考虑到的,这也是为什么创建ROS 2(ROS的新方法)的原因。正如Open Robotics总裁、Willow Garage前开源开发总监Brian Gerkey所描述的,其中一些用例如下:
多个机器人的团队:尽管现在可以使用ROS 1构建多机器人系统,但尚无标准方法,而且它们在ROS 1单主机结构上有些老套。另一方面,ROS 2 作为一个面向单个或多个机器人的分布式系统被设计出来,它不依赖于主机,而是将消息层替换为依赖DDS(数据分发服务)。
实时系统:我们希望在ROS中直接支持实时控制,包括进程间和机器间的通信(假设适当的操作系统和/或硬件支持)。虽然ROS 1不是为了实时而设计的,但是ROS 2可以在使用RTOS时实现实时工作。
非理想网络:从低质量的WIFI到地对空的通信链路,由于丢失和/或延迟导致网络连接性下降时,我们希望ROS能够尽可能地表现良好。ROS 2就是为这种方法设计的,而不是ROS 1。
生产环境:尽管ROS继续成为研究实验室的首选平台至关重要,但我们希望的是,确保基于ROS的实验室原型能够演变为适合在实际应用中使用的ROS产品。
什么将是ROS使用的方法呢? 考虑到ROS-I更适合工业机器人和机械臂,ROS 1和ROS 2之间的竞争可能将更激烈。我赞同Rover Robotics的Dan Rose和Nick Fragale在Open Robotics的帮助下于2019年7月给出的提议:
总部位于上海的硅步机器人(www.gaitech.net)最早把机器人操作系统ROS引入到中国,通过出版书籍、线上和线下等多种形式,积极推广。现在,中国已经成为ROS的下载和使用量,仅次于美国的国家,并将很快超越美国。
|