首页 > 新闻 > 人工智能

ROS-开源的机器人操作系统介绍

Sam Holland 2019-07-18

随着工业和商业流程越来越自动化,机器人行业也将持续增长。因此,在物理机器人的引擎盖下有一种称为“机器人操作系统”的强大软件系统。kq7电子头条

 kq7电子头条

机器人操作系统kq7电子头条

 kq7电子头条

机器人操作系统是一个开源框架,包括用于在个人计算机上设计机器人应用程序的一组软件库和工具。联合商业智能公司(ABI)研究预测,2024年商用机器人中有近55%将包含至少1个机器人操作系统(ROS)包。ROS的核心部分使用标准的3条款Berkeley Source Distribution(BSD)许可证:一种不受限制的许可证,允许用户在商业和封闭源代码产品中实现其软件包。该框架的其他部分使用常用的许可证,如Apache 2.0、GPL和MIT。kq7电子头条

 kq7电子头条

ROS起源kq7电子头条

 kq7电子头条

作为个人机器人项目的一部分,ROS 最初是由斯坦福大学的两名博士生Erin Berger和Keenan Wyrobek在2007年开发的。学术界希望创建一个统一的操作系统,支持全方位的机器人应用。他们使用Apple Macintosh团队两个成员提供的50000美元的资助,构建了第一个统一的机器人操作系统和一个名为PR1的硬件原型。在离开斯坦福加入Willow Garage机器人研究实验室之后,他们又进行了另一次迭代:PR2。2012年4月,Willow Garage创建了开源机器人基金会(OSRF),该基金会目前负责处理ROS的所有新发展。kq7电子头条

 kq7电子头条

ROS-开源的机器人操作系统介绍kq7电子头条

站在日本一个购物中心的行李旁的机器人。图片由Unsplash提供。 kq7电子头条

 kq7电子头条

ROS功能kq7电子头条

 kq7电子头条

虽然ROS不是像Windows和Linux等成熟的操作系统,但它们提供的功能与基于计算机的操作系统相同。标准ROS包含数千个软件包,每个软件包都提供硬件抽象、机器到机器通信、设备驱动程序、软件包管理、测试和可视化等特定功能。此外,ROS还提供开源软件工具和库,以获取、构建、编写和执行跨多台计算机进行机器人控制的代码。kq7电子头条

 kq7电子头条

机器人操作系统工作原理kq7电子头条

 kq7电子头条

从高层次的角度来看,ROS包含五个基本组件:ROS主机、节点、主题、发布服务器和订阅服务器,每个都在下面讨论。kq7电子头条

 kq7电子头条

ROS主机kq7电子头条

 kq7电子头条

ROS主机为ROS系统的节点提供命名和注册,允许它们识别彼此之间的对等并进行交互。它还提供参数服务器:一个共享的多变量字典,节点可以在运行时存储和检索参数。ROS主机运行启动ROS系统的“roscore”命令。kq7电子头条

 kq7电子头条

节点kq7电子头条

 kq7电子头条

通过订阅服务器和发布服务器模型使用ROS主服务器执行计算过程。节点通过主题、远程过程调用(RPC)服务和参数服务器相互通信。在典型的ROS中,不同的节点处理特定的功能:例如,摄像机、图像处理和数据输出,所有命令和信息都放在ROS主机中。kq7电子头条

 kq7电子头条

主题kq7电子头条

 kq7电子头条

主题是节点之间信息交换的方式。每个主题的发布过程都有一个特定的名称和类型,只有在订阅同一类型时,节点才能接收到该名称和类型。ROS使用传输控制协议/ Internet协议(TCP / IP)或用户数据报协议(UDP)进行主题传输。kq7电子头条

 kq7电子头条

发布服务器kq7电子头条

 kq7电子头条

发布服务器是由节点传输的消息。发布服务器是在ROS中广播消息的“谈话者节点”。订阅了匹配类型的发布者主题的其他节点可以接收消息。kq7电子头条

 kq7电子头条

订阅服务器kq7电子头条

 kq7电子头条

订阅服务器是由节点接收的消息。它是一个在ROS上订阅特定主题(匹配类型)的对象,它可以接收来自其发布者的消息。kq7电子头条

 kq7电子头条

ROS的应用kq7电子头条

 kq7电子头条

ROS广泛用于多个领域的工业自动化。例如,ROS已经在Baxter中实现,Baxter是由Rethink Robots创建的多功能制造机器人。ROS还被用于学术和非学术机构的研发。博世研究与技术中心的高级研究工程师Sarah Osentoski表示,她的团队与Willow Garage的PR2合作,既设计新机器人又重新编程旧机器人。ROS目前在基于Unix的平台上运行,并且到目前为止,它与Microsoft Windows OS的兼容性已公布。kq7电子头条

 kq7电子头条

ROS工具kq7电子头条

 kq7电子头条

ROS提供了许多软件工具,允许开发人员和工程师利用ROS包进行任务和机器人无关的管理。这些包括以下内容:kq7电子头条

 kq7电子头条

Rosbagkq7电子头条

 kq7电子头条

用于记录和回放ROS消息数据的ROS文件格式。kq7电子头条

 kq7电子头条

ROS Visualization,又名Rvizkq7电子头条

 kq7电子头条

一个可配置的3D可视化器,用于可视化机器人系统。kq7电子头条

 kq7电子头条

Roslaunchkq7电子头条

 kq7电子头条

用于通过SECUre Shell(SSH)或Parameter Server远程或本地启动多个ROS节点的工具。 kq7电子头条

 kq7电子头条

Rosbashkq7电子头条

 kq7电子头条

包含一组ROS包和功能命令的套件。kq7电子头条

 kq7电子头条

Catkinkq7电子头条

 kq7电子头条

ROS的官方构建系统由rosbuild开发。Catkin可以跨框架实现,例如Python和CMake。kq7电子头条

 kq7电子头条

ROS-开源的机器人操作系统介绍kq7电子头条

基于机械臂的缝纫机。图片由Unsplash提供。kq7电子头条

 kq7电子头条

ROS优势kq7电子头条

 kq7电子头条

作为一个高度分布式和模块化的系统,ROS允许工程师、制造商和生产商尽可能少地利用基础设施来为项目添加功能。ROS的一些优势包括:kq7电子头条

 kq7电子头条

多机器人控制kq7电子头条

 kq7电子头条

工程师可以使用ROS与包含多个ROS主机的系统同时控制多个机器人。各个机器人还可以实时地相互通信并执行同步或顺序的任务。kq7电子头条

 kq7电子头条

与MATLAB和Simulink集成kq7电子头条

 kq7电子头条

使用MATLAB的工程师也可以使用Robotics System Toolbox找到设计机器人应用程序。该工具箱为自动机器人应用程序的设计、测试和验证提供算法和硬件连接。kq7电子头条

 kq7电子头条

全球协作kq7电子头条

 kq7电子头条

ROS还提供强大的协作环境。鉴于它是开源和公共的,用户可以自由使用并将自己的代码添加到广泛的全球社区贡献包中。事实上,根据ROS.org的2018年7月报告,该生态系统目前拥有超过3000个公开宣布的项目包,每年都会出现新的贡献。kq7电子头条