ROS2机器人编程简述新书推荐-A Concise Introduction to Robot Programming with ROS2

news2025/2/28 13:31:28

参考链接:

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节点之间共享黑板。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/161407.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RT-Thread系列--内存堆MEMHEAP源码分析

一、目的在上一篇《RT-Thread系列--内存池MEMPOOL源码分析》我们介绍了RT-Thread的内存池MEMPOOL实现细节,包括内存池结构和内存块管理。本篇我们来分析一下RT-Thread的内存堆MEMHEAP的实现原理。内存堆MEMHEAP的特点:按需分配,需要多少内存就…

小伟婚后首次看望丈母娘,大衣哥准备了一大三轮车礼品,太豪横了

伴随着春节的临近,大衣哥的儿子小伟, 又一次迎来自己的高光时刻,他和未婚妻一起携手,步入了神圣的婚姻殿堂,大衣哥也长出一口气。儿子小伟再婚,大衣哥完成了一小半任务,接下来还要生孩子&#x…

【Python基础篇】Python中的七种数据类型

文章目录前导一、数字类型(Number)二、布尔类型(Boolean)三、字符串类型(String)3.1 字符串索引3.2 字符串截取、拼接和复用四、列表类型(List)4.1 in和not in4.2 len()4.3 添加/删除…

Three.js 打造酷炫的三角形

在前一章中,我们通过 BufferGeometry 创建了一个正方形,本节我们利用 BufferGeometry 打造一簇酷炫的三角形,最终的效果如下图所示: 从效果图中可以发现,每一个三角形的位置、大小、颜色都是随机的。 // 共有50个三角…

医疗影像工具LEADTOOLS 入门教程: 检测和提取机读旅行证件 - 控制台 C#

LEADTOOLS 是一个综合工具包的集合,用于将识别、文档、医疗、成像和多媒体技术整合到桌面、服务器、平板电脑、网络和移动解决方案中,是一项企业级文档自动化解决方案,有捕捉,OCR,OMR,表单识别和处理&#…

专注分布式架构 莱商银行的数字化转型实践

本文刊登于《金融电子化》杂志 2022 年 12 月下,作者魏汝浩为莱商银行首席信息官。2021 年 12 月 29 日,中国人民银行印发《金融科技发展规划(2022—2025 年)》(银发〔2021〕335 号),提出新时期…

分享166个ASP源码,总有一款适合您

166个ASP源码下载链接:https://pan.baidu.com/s/19W7FmY9nADL1Rge8e5uqiQ?pwdskhh 提取码:skhh import os import shutil import time from time import sleepimport requests from bs4 import BeautifulSoup from docx import Document from docx.sh…

Shader从入门到放弃(四) —— 绘制闪耀星际

前言 经过3个章节的学习,相信大家对shader编程也逐渐的有了一些感觉,所以这次我们玩个“大”的!。 今天的学习内容是绘制“闪耀星际”,正如歌中唱的那样: 星际闪耀光影,落入你的眼睛,如迷人的…

Dubbo泛化调用

Dubbo泛化调用 1. 场景 场景一:我们要搭建一个统一的测试平台,可以让各个业务方在测试平台中通过输入接口、分组名、方法名以及参数值,在线测试自己发布的 RPC 服务。这时我们就有一个问题要解决,我们搭建统一的测试平台实际上是…

【论文速递】CVPR2022 - 泛化的小样本语义分割

【论文速递】CVPR2022 - 泛化的小样本语义分割 【论文原文】:Generalized Few-shot Semantic Segmentation 获取地址:https://openaccess.thecvf.com/content/CVPR2022/papers/Tian_Generalized_Few-Shot_Semantic_Segmentation_CVPR_2022_paper.pdf博…

【ROS2 入门】Jeston TX1 JetPack_4.6.3环境 ubuntu 18.04 ROS2 安装

大家好,我是虎哥,从今天开始,我将花一段时间,开始将自己从ROS1切换到ROS2,在上一篇中,我们再虚拟机环境中安装了 ROS2 eloquent版本,并完成了初步的验证,但是做为一个偏硬件的博主&a…

nginx禁止外网访问

1、安装 libmaxminddb 库 apt updateapt install libmaxminddb0 libmaxminddb-dev mmdb-bin上面安装的软件包是: libmaxminddb0 libmaxminddb-dev 是MaxMind地理定位数据库mmdb-bin – 二进制。 从命令行调用的程序。 使用此命令手动定位 IP 安装参考 2、下载geoi…

node学习笔记

阶段一 1 初始Node.js javascript 运行环境 1.2 Node.js中的javacript 运行环境 1.3 Node.js环境安装 百度 1.4 node.js 执行javaScript 代码 2 fs文件系统模块 2.1 fs文件系统模块概念 导入文件系统模块: const fs require(fs)fs.readFile() // 1 导入fs文件…

【进阶C语言】通讯录(后期会升级)

文章目录一.基本框架与功能二.头文件的详细内容三.函数的实现1.打印菜单2.初始化通讯录3.添加联系人信息4.打印联系人信息5.查找名字6.删除联系人信息7.查找联系人8.修改联系人信息9.排序联系人(按照名字)四.总结1.test.c2.contact.c3.contact.h一.基本框…

智能电风扇(stm32f103c8t6)(直流电机,热敏传感器)(TIM,ADC)

前言 我的毕业论文的课题 提示:以下是本篇文章正文内容,下面案例可供参考 一、热敏传感器计算温度(ADC采样单通道) #include "stm32f10x.h" // Device header#define T25 298.15 #define B 3…

看完这篇 教你玩转渗透测试靶机vulnhub——MONEYBOX: 1

Vulnhub靶机MONEYBOX: 1渗透测试详解Vulnhub靶机介绍:Vulnhub靶机下载:Vulnhub靶机安装:Vulnhub靶机漏洞详解:①:信息收集:②:FTP匿名登入:③:SSH暴力破解④:…

Java操作Word模板产生全新内容Word

1. spire.doc的jar引用 首先我们需要用到国产word处理工具jar包spire.doc,可以通过maven仓库寻找,然后在pom文件中直接引用。 此处需要注意,我们需要使用的是spire.doc.free(免费版的),切勿使用spire.doc&a…

c++ - 第23节 - C++的类型转换

1.C语言中的类型转换 在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型转换和…

业务安全情报 | 数十万元的数据报告,竟被50元批量转售

近期监测到某咨询公司针数据报告大量泄漏事件,该机构历年的数据报告以及近期更新的针对VIP会员的付费报告均在电商等渠道可以低价获取。 BSL-2022-a3c28号情报文件显示黑灰产通过作弊方式获取查看、下载权限,绕过限制将报告数据大量下载,并通…

javaEE初阶 — 认识文件

文章目录认识文件1. 树型结构组织和目录2. 文件路径(Path)2.1 绝对路径2.2 相对路径3. 文件的类型认识文件 文件分为 狭义 和 广义 两种 狭义的文件:指的是硬盘上的 文件 和 目录 广义的文件: 泛指计算机中很多的软硬件资源。操…