【FCon上海】与行业领袖共话AI大模型、数字化风控等前沿技术。 了解详情
写点什么

Robotics 开源:降低机器人领域进入门槛

作者:Louise Poubel

  • 2019-05-20
  • 本文字数:4043 字

    阅读完需:约 13 分钟

Robotics开源:降低机器人领域进入门槛

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

本文要点

  • 多莉是一只虚拟的机器羊,是 Gazebo 和 ROS 2 的实用介绍。

  • 机器人操作系统的最新版本 ROS 2 提供了熟悉的工具和功能,同时扩展到了新的用例。

  • Gazebo 是一个功能强大的机器人仿真器,用于工业和学术界的物理计算、生成传感器数据并提供了方便的接口。

  • 开源软件正在降低人们进入机器人领域的门槛,加速机器人技术的进步。

  • 世界各地的机器人专家都在把 Gazebo 和 ROS 用在机器人、无人机、仓库机器人和自动驾驶汽车等领域的应用程序中。


多莉是一只机器羊。它背着你的重东西跟着你。它有两个电动轮子,可以让机器人控制方向,还有一个激光扫描仪可以探测前方的物体。它还有一段代码,可以在激光扫描中找到最近的物体(大概是你),并控制车轮跟随它。



不过,多莉并不是一个真正的机器人。这是一个简单的机器人仿真,介绍了一些机器人专家正在世界各地使用的强大的开源工具。尽管多莉本身非常简单,但它与许多更复杂的机器人共享大部分代码,比如自动驾驶汽车、仓库机器人、工业手臂、四轴飞行器、类人机器人,甚至国际空间站的三个机器人。它们共同的软件栈是 ROS 和机器人操作系统。然而,准确地说,多莉的运行机制并不是今天大多数人听到“ROS”这个词时所想的那样。多莉实际上正在运行最新一代的 ROS,称为 ROS 2!


与之前的 ROS 1 一样,ROS 2 是一个用于机器人应用程序的开源软件开发工具包。ROS 2 的开发由Open Robotics公司牵头,该公司还维护着多莉生活的机器人仿真器Gazebo,以及其他开源机器人软件和硬件。这些项目是在开源许可下发布的,比如BSDApache 2.0,这使得它们对学术界和业界都很有吸引力。

机器人软件

“机器人”这个词的定义往往会因你问谁而有所不同,但运行 ROS 并在 Gazebo 中被模拟的机器人的关键特征是“行动(actuation)”。所以,不是聊天机器人或垃圾邮件机器人;我们所谈论的机器人在身体上能够与环境互动,移动自己,甚至是其他物体。它们也不是盲目移动的发条玩具;他们配备了传感器,可以观察周围世界的变化。把所有这些联系在一起,它们就能从逻辑上理解这些观察结果,从而做出明智的决定,决定下一步要做什么来完成一项特定的任务。这就是所谓的“感觉-思考-行动”循环,多莉的软件就是用来反映这三个部分的。


ROS 2 的开发目标是为业界和学术界提供一个标准的软件平台,支持他们从事研究和原型开发以及部署和生产。ROS 2 是在 ROS 1 取得成功的基础上开发的,ROS 1 目前已经在世界各地的各种机器人应用程序中得到了应用。这次演变的一个重要部分是维护核心的 ROS 概念和工具,它们是 ROS 迄今为止在机器人社区取得成功的关键。其中一个众所周知的概念是“节点”,它是一个计算单元,负责非常具体的任务。多莉的每一个“感觉-思考-行动”周期都被映射到一个节点上。“激光”节点感知世界,“跟随”节点处理数据以找到前方最近的点,并生成一个带有移动方向的命令,而“差异驱动(diff-drive)”节点则按照命令移动车轮(之所以这么叫,是因为多莉是一个差分轮式机器人)。当多莉移动时,它的激光读数发生变化,循环就又开始了。为了简单起见,多莉的软件只有三个节点,但是大型机器人应用程序可能有数百个节点一起工作,每个节点负责一个独立的定义良好的任务。


ROS 中最基本的通信方法是通过名为“主题”的通道使用多对多发布者-订阅者机制。激光节点在“scans”主题发布扫描结果,供后续节点订阅;接下来,跟随节点发布关于“cmds”主题的移动命令,差异驱动节点订阅该主题。多莉只使用主题,但除了这种单向通信类型之外,ROS 还提供了一种称为“服务”的请求-响应机制,以及用于触发更长时间行为的“操作”。



当使用这些通信模式时,ROS 开发人员倾向于尽可能使用标准化的消息,这使得在不同的项目之间共享节点非常方便。在这种分布式体系结构中,节点并不关心它们正在与哪个节点通信,它们只关心正在使用哪个主题、服务或操作。这意味着,如果有一天有人决定取下多莉的轮子,换成螺旋桨,把它变成一只会飞的绵羊,他们也不需要触及激光节点或跟随节点。他们只需要将差异驱动节点替换为其他节点,以与机器人新身体相匹配的方式转换 cmds 主题上的移动命令。


容易重用代码是 ROS 最大的优势之一,因为它允许开发人员尽可能地利用彼此的工作。通过在 ROS 生态系统中现有软件的基础上构建,开发人员可以专注于特定应用程序的独特方面。事实上,实现多莉只需要编写跟随节点,它的代码少于 100 行。激光差异驱动节点由gazebo_ros_pkgs提供,这是一个标准的 ROS 包,用于在特定于仿真的逻辑和非特定逻辑之间建立联系。当多莉准备成为一个物理机器人时,这些节点将被特定于硬件的驱动程序和控制器所替代,但是跟随节点可以保持不变,因为它发布和订阅标准消息。但是,你可以想一下,跟随节点并不是最聪明的机器人逻辑。事实上,多莉分不清树和人。在实际的应用程序中,开发人员将利用社区提供的其他功能,例如导航栈,这将允许多莉在世界上自主移动。


上面提到的所有通信模式都已从 ROS 1 迁移到 ROS 2,并在此过程中得到了改进。ROS 1 使用自定义通信层,而 ROS 2 构建在DDS之上。DDS 是一种工业标准,在航空和核能等关键任务应用中得到了验证。你可以在InfoQ上阅读关于 DDS 集成的更多细节。


除了消息传递系统之外,ROS 2 还提供了强大的开发工具。例如,RViz是 ROS 主题的可视化工具,在应用程序开发和调试期间非常有用。它有一个 3D 场景,可以把来自应用程序任何部分的数据都显示在一起,比如点云和坐标系。RViz 还提供了控制界面,比如可以拖动 3D 标记来移动真实的机器人。RQt是另一个方便的图形工具,它允许开发人员快速地将小部件组合在一起,以便与机器人应用程序的任何方面进行交互,无论是不是仿真机器人。下图显示了多莉在 RViz 中的激光扫描,旁边是 Gazebo 的视图,显示了仿真中的可视化效果。RViz 将以相同的方式显示扫描结果,无论扫描是来自仿真还是来自硬件。


仿真

多莉住在 Gazebo 里,这是一个机器人仿真器,可以进行物理计算,生成仿真传感器数据,并提供方便的接口。这些接口的范围从图形工具到 C++ API,允许用户和开发人员更快地实现他们的目标。Gazebo 的目的是成为物理机器人最好且唯一的软件替代品。Gazebo 的一些应用包括新机器人原型的创建、新算法和行为的开发、持续集成测试和训练。


在仿真过程中,物理引擎处理多莉与环境的交互方式。这包括重力将多莉拉向地面、车轮与人行道之间的接触以及施加在车轮上的扭矩等行为。Gazebo 没有实现自己的物理引擎;相反,它提供了一个抽象层,允许集成多个引擎。这样,开发人员只需描述并编写一次机器人程序,然后在运行时选择最合适的物理引擎。默认情况下,Gazebo 使用Open Dynamics Engine(ODE),但它也支持BulletDARTSimbody


多莉配备了一个传感器,即激光扫描仪,但是 Gazebo 支持十多种传感器,如彩色和深度照相机、IMU 和 GPS。开发人员还可以通过 C++ API 创建新的传感器。照相机和激光扫描仪等传感器使用Ogre3D渲染引擎生成世界图像,而 IMUs 和 sonars 等传感器则利用物理引擎。仿真传感器的一个缺点是,与物理传感器相比,它们往往过于完美。因此,传感器 API 的一个重要方面是能够向生成的数据添加各种类型的噪声,并干扰它们的更新速率。


Gazebo 有一个丰富的图形界面,帮助用户构建、检查及与他们的仿真交互。例如,多莉的城市环境是由eRuby脚本、UI 3D 视图和提供场景中每个模型详细信息的小部件组合而成的。在仿真运行时,3D 视图也是一种可视化激光扫描、检查关节位置、重心、甚至转动惯量的便捷方式。这种仿真具备提供场景地面上 X-Ray 视图的能力,这在算法迭代时非常有用,而且在现实世界中很难实现,如果不是不可能的话。



Gazebo 还让开发者可以像在现实世界中一样与机器人互动。理论上,你可以戴上 VR 眼镜,用控制器来踢多莉,就像一些机器人专家喜欢对他们的真实机器人所做的那样。请注意,这里绝对不鼓励滥用机器人。相反,你可以使用更精细的方法,比如用一个 3D 箭头推下机器人,检查其恢复行为。你也可以移动人类,添加另一个机器人,改变城市的布局……只要对你的特定项目有帮助。


Gazebo 中的世界使用仿真描述格式(Simulation Description Format)进行描述。SDF 是一种 XML 格式,它允许指定仿真的各个方面,从多莉摇摆尾巴上的弹簧到太阳光的颜色。用户可以将在线数据库中的 3D 模型与他们自己的自定义模型结合起来,为他们的机器人创建各种环境。事实上,多莉周围的整个城市环境都是由Ignition Fuel数据库中找到的免费模型组成的。多莉本身是一个定制模型,它的所有细节都可以通过 UI 或直接在其 SDF 文件中进行调整和改进。


多莉的例子是用 Gazebo 所能做的最简单的仿真之一,但在网上也有各种复杂的例子。基于仿真的竞赛,如虚拟机器人挑战赛太空机器人挑战赛和即将到来的地下机器人挑战赛,就是很好的例子。多家机器人制造商也在免费分发 Gazebo 机器人仿真,比如Fetch Robotics的仓库机器人和Parrot的无人机。


为了处理新的用例,Open Robotics 的团队正在积极地开发 Gazebo 的下一代产品,这一代产品被称为Ignition。这种重构将 Gazebo 分解为更小、更可重用的库,为物理和渲染引擎提供了抽象层,支持跨云中机器运行大型仿真,并使用现代 GUI (QtQuick)和传输(ZeroMQ)库。

克隆多莉!

Gazebo 和 ROS 2 现在离你只有几个按键之遥。你可以克隆多莉并按照说明创建一个简单的示例并运行它。在ROS IndexGazebo Tutorials上有各种教程,涵盖了各种特性和用例。你可以在ROS DiscourseGazebo Community上的社区中找到更多深入的讨论,在ROS AnswersGazebo Answers上找到技术问题的答案。最后,但同样重要的是,看看 ROSCon 大会的视频吧。ROSCon 是 ROS 开发者年度会议,ROSCon 2019将在澳门举行,务必提前预定。

关于作者

Louise PoubelOpen Robotics的一名软件工程师,致力于开发机器人免费和开源工具,比如机器人仿真器 Gazebo 和机器人操作系统(ROS)。


查看英文原文:[Open Source Robotics: Getting Started With Gazebo and ROS 2](


公众号推荐:

AIGC 技术正以惊人的速度重塑着创新的边界,InfoQ 首期《大模型领航者AIGC实践案例集锦》电子书,深度对话 30 位国内顶尖大模型专家,洞悉大模型技术前沿与未来趋势,精选 10 余个行业一线实践案例,全面展示大模型在多个垂直行业的应用成果,同时,揭秘全球热门大模型效果,为创业者、开发者提供决策支持和选型参考。关注「AI前线」,回复「领航者」免费获取电子书。

2019-05-20 08:006740
用户头像

发布了 704 篇内容, 共 422.5 次阅读, 收获喜欢 1519 次。

关注

评论

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

SQL 中的 NULL 值:定义、测试和处理空数据,以及 SQL UPDATE 语句的使用

小万哥

MySQL sql 程序员 后端 开发

我们是这样用观测云和第三方公司协作的

代码半亩

快照 告警 可观测 异常追踪

云上应用技术架构- CDN、流媒体、边缘计算

深蓝

华为云耀云服务器L实例,是否是企业简单上云的最佳选择?

平平无奇爱好科技

【亚马逊云科技产品测评】活动征文|aws云服务器 + 微服务Spring Cloud Nacos 实战

青花锁

微服务 ws云服务器 Spring Cloud Nacos

亚马逊EC2云服务器一键部署wordpress博客

乌龟哥哥

AWS

初创企业建站两眼一抹黑?华为云耀云服务器L实例让你不迷茫!

平平无奇爱好科技

保姆级亚马逊服务部署Express+Vue3

雪奈椰子

如何利用亚马逊云科技和大型语言模型构建智能化的企业业务知识库

E₀=mc²

AI AWS NLP 大模型 亚马逊云科技 LLM

HAG即将完成首期募资,确认采用比特大陆S21矿机

股市老人

【数据库】你听说过矢量数据库吗?

许思王

数据库 矢量数据库

云上应用技术架构-WebAssembly (WASM)

深蓝

软件质量:问题在哪,如何改善?

peak徐

质量管理 研发管理

今探云服务器有哪些不同的应用场景?

攻城先森

云服务器 场景 亚马逊

华为云耀云服务器L实例:为云游戏开发者提供专业的轻量应用产品

平平无奇爱好科技

中小企业网站开发“速通神器”,华为云耀云服务器L实例实至名归.

平平无奇爱好科技

汽车之家质效流水线——奔向未来软件交付的关键里程碑

之家技术

ci CD 流水线 效能 释产能

探索大模型语言(LLM)科技的革新

屿小夏

机器学习 大数据 AI 云服务 大模型

华为云耀云服务器L实例:让初创企业更有精力专注打磨产品

平平无奇爱好科技

中小企业搭建网站选择虚拟主机还是云服务器?华为云有话说

平平无奇爱好科技

集成 NVDC 电源路径管理的1-4节电池升降压充电IC解决方案

芯动大师

华为云耀云服务器L实例:保障网站的稳定性和高可用性

平平无奇爱好科技

云上应用技术架构-API网关

深蓝

云上应用技术架构 - 负载均衡

深蓝

华为云耀云服务器L实例,轻量应用服务器更适合中小企业选择

平平无奇爱好科技

不止源自华为云,这款轻量应用服务器是中小成长企业的“非ban必选”存在

平平无奇爱好科技

云上应用技术架构 - 缓存与队列

深蓝

云上应用技术架构-函数计算、Serverless、小程序

深蓝

全景观察 Bitscrunch,AI 驱动的分布式 NFT 数据网络

股市老人

10款好用的iPad笔记软件盘点,每一款都有口皆碑!

彭宏豪95

ipad 效率工具 在线白板 办公软件 笔记软件

云上应用技术架构-从单体到分布式

深蓝

Robotics开源:降低机器人领域进入门槛_AI&大模型_InfoQ精选文章