ROS2机器人编程简述新书推荐-A Concise Introduction to Robot Programming with ROS2
Posted zhangrelay
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS2机器人编程简述新书推荐-A Concise Introduction to Robot Programming with ROS2相关的知识,希望对你有一定的参考价值。
参考链接:
https://github.com/fmrico/book_ros2
封面:
简介:
ROS2机器人编程简明教程
使用ROS2进行机器人编程的简明介绍为读者提供了通过编程实现机器人所需的概念和工具。它将使读者具备使用ROS2(ROS的新版本)进行项目所需的技能。不需要有ROS2的经验,因为它将从一开始就描述其概念、工具和方法。
主要功能
•使用ROS2中官方支持的两种编程语言(主要是C++和Python)
•从三个不同但互补的维度来处理ROS2:社区、计算图和工作空间
•包括完整的模拟机器人、开发和测试策略、行为树和Nav2描述、设置和使用
•GitHub存储库,包含帮助读者的代码
它将吸引积极的工程学生、工程师和从事机器人编程的专业人员。
弗朗西斯科·马丁里科(Francisco Martín Rico)是机器人学博士工程师,是雷伊·胡安·卡洛斯大学(Rey Juan Carlos University)的副教授,他领导智能机器人实验室,教授机器人、移动机器人、规划或认知系统的软件架构和中间件课程。他是ROS社区的知名成员,创作并贡献了ROS2规划系统(PlanSys2)和Nav2等参考包。他最近获得了2022年最佳ROS开发者奖。
全书不到300页。
共6章,各章简介机器翻译如下:
第1章|18页
简介
本章介绍编程机器人的中间件,特别是ROS2。ROS2需要考虑的维度是ROS社区。开源机器人基金会极大地增强了用户和开发人员的社区。计算图包含相互通信的ROS2节点,以便机器人可以执行某些任务。此计算图包括两个节点和两个主题,以及它们各自的发布/订阅连接。工作空间维度从静态角度接近ROS2软件。可以同时有多个工作区处于活动状态。此激活过程是累积的。通常,最初激活包含基本ROS2安装的工作区。这是ROS2系统中最常见的参考底图。然后,用户正在开发自己的包的工作区被激活。
第2章| 28页
ROS2的第一步
本章开始练习ROS2并学习第一个ROS2概念。ROS2识别出一个目录包含一个包,因为它有一个名为package.XML的XML文件。一旦详细了解了这个过程,请继续分析br2_basics包的内容,其中包含更多有趣的节点。现在扩展该节点,使其不再在屏幕上编写消息,而是发布主题上的消息,在名为/counter的主题中发布连续数字。之所以需要启动器(launch),是因为一个机器人应用程序有许多节点,它们都应该同时启动。逐个启动并调整每个节点的特定参数,以便节点进行协作可能会很乏味。最推荐的是使用执行器。Executor是一个对象,添加节点以一起执行它们。
第3章|16页
第一种行为:用有限状态机避开障碍
本章旨在运用迄今为止所展示的一切,创造看似“聪明”的行为。凹凸行为使用机器人的传感器来检测机器人前方的附近障碍物。虽然这是一种简单的行为,但建议使用一些决策方法,因为我们的代码即使很简单,在解决可能出现的问题时也会开始变得无序。在这种情况下,我们将使用有限状态机(FSM)。FSM是一种数学计算模型,我们可以使用它来定义机器人的行为。本章分析了我们用什么样的认知来解决问题,以及我们可以采取什么样的行动。应用程序的计算图非常简单:订阅激光主题的单个节点向机器人发布速度命令。
第4章|18页
TF子系统
ROS中最大的隐藏宝藏之一是其几何变换子系统TF(简称TF)。该子系统允许定义不同的参考轴(也称为框架)以及它们之间的几何关系,即使这种关系不断变化。一帧中的任何坐标都可以重新计算到另一帧,而无需繁琐的手动计算。
第5章| 34页
反应性行为
反应性行为将感知与行动紧密结合,无需使用干预抽象表示。本章介绍了一些使用不同资源来提高ROS2知识的反应行为。它着眼于一种简单的本地导航算法,即使用激光避开障碍物的虚拟力场。这个例子将建立一些关于视觉标记的知识,并介绍一些测试驱动的开发方法。在此计算图中,HeadController的表示方式与其他节点不同。本章分析包含其他反应行为的项目。在这种情况下,行为会跟踪与机器人头部特定颜色匹配的对象。HeadController节点将迭代执行,通过topic/joint_state接收颈部关节的当前状态,通过/command topic接收移动命令的当前状态。
第6章| 40页
用行为树编程机器人行为
近年来,用于机器人控制的行为树已经非常流行。它们已用于各种应用,主要用于电子游戏和机器人。行为树(BT)是对系统控制进行编码的数学模型。BT是一种在自主代理(如机器人或计算机游戏中的虚拟实体)中构建不同任务之间切换的方式。本章介绍如何在ROS2包中实现动作节点,以及这些节点如何访问计算图以与其他节点通信。计算图中的patroling_node节点非常简单。也许更有趣的是分析它包含的行为树,这是控制其控制逻辑的行为树。BehaviorTreeFactory需要将自定义节点的库作为插件加载,并且需要在BT节点之间共享黑板。
以上是关于ROS2机器人编程简述新书推荐-A Concise Introduction to Robot Programming with ROS2的主要内容,如果未能解决你的问题,请参考以下文章