参考链接:

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相关推荐

  1. ROS2机器人编程简述humble-第一章-Introduction

    ROS2机器人编程简述新书推荐-A Concise Introduction to Robot Programming with ROS2 学习笔记流水账-推荐阅读原书. 第一章:简要介绍宏观概念,配 ...

  2. ROS2机器人编程简述humble-第三章-COMPUTATION GRAPH .2

    ROS2机器人编程简述humble-第三章-PERCEPTION AND ACTUATION MODELS .1 避开障碍物计算图如何呢? 该应用程序的计算图非常简单:订阅激光主题的节点向机器人发布速 ...

  3. 从零开始学习python编程-新书推荐《Python3.7从零开始学》来了

    原标题:新书推荐<Python3.7从零开始学>来了 常言道, 体肥还须少吃饭,想美就要多读书. 读书有三好:有品,经撩,笑点高. 上次赶在八月给大家搞了一波Linux图书预售,没想到受到 ...

  4. 使用ROS2机器人操作系统进行多机器人编程技术实践(Multi-Robot Programming Via ROS2 )

    简介 ROS2机器人操作系统简介2021英文字幕版本 使用机器人操作系统ROS2和机器人中间件框架系统RMF进行多机器人系统集成,高层规划及其应用等. 上图所示机器人按规划路径进行物流运输或场地巡逻任 ...

  5. 机器人编程实践-ROS2基础与应用-

    这是机器人编程实践的第4版课程说明,分别在2016年开设第一版,2017年第二版,2018年第三版,2019年第四版,每版课程内容经过2轮测试,非常感谢对课程提出宝贵意见的同学们以及热心的博客朋友. ...

  6. 青少年python编程入门书籍_新书推荐 | 《青少年Python编程入门——图解Python》

    原标题:新书推荐 | <青少年Python编程入门--图解Python> 随着信息时代的到来,在编程教育中进行计算思维培养正在成为信息技术教育关注的重点.<普通高中信息技术课程标准( ...

  7. ROS2机器人实践教学与创意设计(图文版)

    此博文为ROS暑期学校分享的图文介绍版本. 创意不一定要推倒重来,改良本身也是一种创新. 参考第30页PPT第5点. 视频链接如下: ROS2 实践教学与创意设计 - 张瑞雷|2021ROS暑期学校 ...

  8. 从ROS1到ROS2无人机编程实战指南

    亲爱的读者们,我今天非常荣幸地向大家推荐一本本人的全新力作--<从ROS1到ROS2无人机编程实战指南>.这本书站在初学者的角度,从入门到进阶,再到实战,循序渐进,是学习ROS1和ROS2 ...

  9. 机器人编程与python语言的区别_儿童编程和机器人编程有啥区别?

    这是最全面的回答!一篇文章让你彻底了解少儿编程和机器人编程的区别! 虽然都带有"编程"二字,但少儿编程和机器人编程还是有本质区别的,有哪些不一样呢? 偷懒的家长可以直接看下面这张表 ...

最新文章

  1. linux mysql 数据目录迁移后不生效_mysql 本地数据目录迁移
  2. .NET Core微服务开发选项
  3. MIT 深度学习导论来啦!附视频下载
  4. 7.JasperReports学习笔记7-applet打印
  5. Hbase完全分布式高可用集群安装配置
  6. Documentation目录下的as-iosched.txt文档翻译
  7. 程序设计导引及在线实践之显示器
  8. SPDY与http2
  9. Java实现:冒泡排序
  10. spider.php使用方法,phpspider爬虫框架的使用
  11. wps改页码真的是太简单了
  12. IR2101自举升压的原理
  13. 工业互联网大数据之数据管理与治理的简易理解
  14. 博客起航:为什么应该写博客
  15. java timer缺陷
  16. 串口转以太网服务器原理,【干货】自制低成本串口转以太网网关
  17. 【云原生网关】Kong 使用详解
  18. 【计算机组成原理】计算机系统结构笔记:合集
  19. C# Format详解
  20. tensorflow函数 tf.nn.xw_plus_b

热门文章

  1. 深度学习与计算机视觉的具体介绍
  2. 2022起重机司机(限桥式起重机)上岗证题目及答案
  3. 制冷原理与设备资料下载- 李晓东
  4. 为什么公司愿意录取3年经验的程序员而不是经验5年的自己?
  5. 快速排序 改进快排的方法
  6. 软件著作权版本号不同有什么区别?软著版本号是什么?计算机软件著作权登记的版本号是怎么回事啊?
  7. 【无脑速通设计模式】设计模式简介 | 七大原则 | 模式分类
  8. 什么是水务信息化规划、水务信息化规划有什么用?
  9. 微软服务器加速,通过 Azure CDN 进行动态站点加速
  10. 《SolidWorks 2012中文版从入门到精通》一导读