展开全部

主编推荐语

“鱼香ROS”机器人社区创始人撰写,多位专家一致推荐。

内容简介

机器人开发是一项复杂的系统工程,ROS 2为智能机器人开发提供了强有力的支持,极大地提高了机器人软件开发效率。

本书首先对ROS 2的基础概念、通信机制、常用库和工具进行介绍,带领读者入门ROS 2机器人开发;接着引导读者完成移动机器人的建模和仿真、建图和导航、自定义控制器和规划器等一系列实践;然后在真机实战环节,通过制作一个基于ROS 2的真实机器人,帮助读者打通仿真与真机之间的壁垒;最后,本书深入讲解了ROS 2进阶使用的相关知识,为读者进一步在实战中使用ROS 2进行机器人开发打下夯实基础。

考虑读者基础,书中示例均以C和Python两种语言实现,同时加入了关于C新特性、Git工具、多线程和回调函数等基础知识的讲解。

目录

  • 版权信息
  • 推荐序一
  • 推荐序二
  • 前言
  • 第1章 启程
  • 1.1 ROS部落的自我介绍
  • 1.1.1 机器人与ROS
  • 1.1.2 ROS 2系统架构
  • 1.1.3 ROS 2的已发布版本
  • 1.1.4 ROS 2机器人开发特色
  • 1.2 开发环境搭建
  • 1.2.1 准备所需软件
  • 1.2.2 安装虚拟机VirtualBox
  • 1.2.3 在虚拟机中安装Ubuntu 22.04
  • 1.2.4 安装ROS 2
  • 1.3 运行你的第一个机器人
  • 1.3.1 启动海龟模拟器
  • 1.3.2 使用键盘控制海龟
  • 1.3.3 海龟例子的简单分析
  • 1.4 ROS 2基础之Linux
  • 1.4.1 Linux终端基础操作
  • 1.4.2 在Linux中安装软件
  • 1.4.3 在Linux中编写Python程序
  • 1.4.4 在Linux中编写C++程序
  • 1.4.5 Linux基础之环境变量
  • 1.5 小结与点评
  • 第2章 ROS 2基础入门
  • 2.1 编写你的第一个节点
  • 2.1.1 Python示例
  • 2.1.2 C++示例
  • 2.2 使用功能包组织Python节点
  • 2.2.1 在功能包中编写Python节点
  • 2.2.2 功能包结构分析
  • 2.3 使用功能包组织C++节点
  • 2.3.1 在功能包中编写C++节点
  • 2.3.2 功能包结构分析
  • 2.4 多功能包的最佳实践Workspace
  • 2.5 ROS 2基础之编程
  • 2.5.1 面向对象编程
  • 2.5.2 用得到的C++新特性
  • 2.5.3 多线程与回调函数
  • 2.6 小结与点评
  • 第3章 订阅和发布
  • 3.1 话题通信介绍
  • 3.2 Python话题订阅与发布
  • 3.2.1 通过话题发布小说
  • 3.2.2 订阅小说并合成语音
  • 3.3 C++话题订阅与发布
  • 3.3.1 发布速度控制海龟画圆
  • 3.3.2 订阅Pose实现闭环控制
  • 3.4 话题通信最佳实践
  • 3.4.1 完成工程架构设计
  • 3.4.2 自定义通信接口
  • 3.4.3 系统信息获取与发布
  • 3.4.4 在功能包中使用Qt
  • 3.4.5 订阅数据并用Qt显示
  • 3.5 ROS 2基础之Git入门
  • 3.5.1 新建代码仓库
  • 3.5.2 学会提交代码
  • 3.5.3 学会使用Git忽略文件
  • 3.6 小结与点评
  • 第4章 服务和参数
  • 4.1 服务与参数通信介绍
  • 4.1.1 服务通信介绍
  • 4.1.2 基于服务的参数通信
  • 4.2 用Python服务通信实现人脸检测
  • 4.2.1 自定义服务接口
  • 4.2.2 人脸检测
  • 4.2.3 人脸检测服务实现
  • 4.2.4 人脸检测客户端的实现
  • 4.3 用C++服务通信做一个巡逻海龟
  • 4.3.1 自定义服务接口
  • 4.3.2 服务端代码实现
  • 4.3.3 客户端代码实现
  • 4.4 在Python节点中使用参数
  • 4.4.1 参数声明与设置
  • 4.4.2 订阅参数更新
  • 4.4.3 修改其他节点的参数
  • 4.5 在C++节点中使用参数
  • 4.5.1 参数声明与设置
  • 4.5.2 接收参数事件
  • 4.5.3 修改其他节点的参数
  • 4.6 使用launch启动脚本
  • 4.6.1 使用launch启动多个节点
  • 4.6.2 使用launch传递参数
  • 4.6.3 launch使用进阶
  • 4.7 小结与点评
  • 第5章 ROS 2常用开发工具
  • 5.1 坐标变换工具介绍
  • 5.1.1 通过命令行使用TF
  • 5.1.2 对TF原理的简单探究
  • 5.2 Python中的手眼坐标变换
  • 5.2.1 通过Python发布静态TF
  • 5.2.2 通过Python发布动态TF
  • 5.2.3 通过Python查询TF关系
  • 5.3 C++中的地图坐标系变换
  • 5.3.1 通过C++发布静态TF
  • 5.3.2 通过C++发布动态TF
  • 5.3.3 通过C++查询TF关系
  • 5.4 常用可视化工具rqt与RViz
  • 5.4.1 GUI框架rqt
  • 5.4.2 数据可视化工具RViz
  • 5.5 数据记录工具ros2 bag
  • 5.6 ROS 2基础之Git进阶
  • 5.6.1 查看修改内容
  • 5.6.2 学会撤销代码
  • 5.6.3 进阶掌握Git分支
  • 5.7 小结与点评
  • 第6章 建模与仿真
  • 6.1 机器人建模与仿真概述
  • 6.1.1 移动机器人的结构介绍
  • 6.1.2 常用机器人仿真平台
  • 6.2 使用URDF创建机器人
  • 6.2.1 帮机器人创建一个身体
  • 6.2.2 在RViz中显示机器人
  • 6.2.3 使用Xacro简化URDF
  • 6.2.4 创建机器人及传感器部件
  • 6.2.5 完善机器人执行器部件
  • 6.2.6 贴合地面,添加虚拟部件
  • 6.3 添加物理属性让机器人更真实
  • 6.3.1 为机器人部件添加碰撞属性
  • 6.3.2 为机器人部件添加质量与惯性
  • 6.4 在Gazebo中完成机器人仿真
  • 6.4.1 安装与使用Gazebo构建世界
  • 6.4.2 在Gazebo中加载机器人模型
  • 6.4.3 使用Gazebo标签扩展URDF
  • 6.4.4 使用两轮差速插件控制机器人
  • 6.4.5 激光雷达传感器仿真
  • 6.4.6 惯性测量传感器仿真
  • 6.4.7 深度相机传感器仿真
  • 6.5 使用ros2_control驱动机器人
  • 6.5.1 ros2_control介绍与安装
  • 6.5.2 使用Gazebo接入ros2_control
  • 6.5.3 使用关节状态发布控制器
  • 6.5.4 使用力控制器控制轮子
  • 6.5.5 使用两轮差速控制器控制机器人
  • 6.6 小结与点评
  • 第7章 自主导航
  • 7.1 机器人导航介绍
  • 7.1.1 同步定位与地图构建
  • 7.1.2 机器人导航
  • 7.2 使用slam_toolbox完成建图
  • 7.2.1 构建第一张导航地图
  • 7.2.2 将地图保存为文件
  • 7.3 机器人导航框架Navigation 2
  • 7.3.1 Navigation 2介绍与安装
  • 7.3.2 配置Navigation 2参数
  • 7.3.3 编写launch并启动导航
  • 7.3.4 进行单点与路点导航
  • 7.3.5 导航过程中进行动态避障
  • 7.3.6 优化导航速度和膨胀半径
  • 7.3.7 优化机器人到点精度
  • 7.4 导航应用开发指南
  • 7.4.1 使用话题初始化机器人位姿
  • 7.4.2 使用TF获取机器人实时位置
  • 7.4.3 调用接口进行单点导航
  • 7.4.4 使用接口完成路点导航
  • 7.5 导航最佳实践之做一个自动巡检机器人
  • 7.5.1 完成机器人系统架构设计
  • 7.5.2 编写巡检控制节点
  • 7.5.3 添加语音播报功能
  • 7.5.4 订阅图像并记录
  • 7.6 ROS 2基础之Git仓库托管
  • 7.6.1 添加自描述文件
  • 7.6.2 将代码托管在Gitee
  • 7.6.3 将代码托管在GitHub
  • 7.7 小结与点评
  • 第8章 使用自己的规划器和控制器导航
  • 8.1 掌握ROS 2插件机制
  • 8.1.1 pluginlib介绍与安装
  • 8.1.2 定义插件抽象类
  • 8.1.3 编写并生成第一个插件
  • 8.1.4 编写插件测试程序
  • 8.2 自定义导航规划器
  • 8.2.1 自定义规划器介绍
  • 8.2.2 搭建规划器插件框架
  • 8.2.3 实现自定义规划算法
  • 8.2.4 配置导航参数并测试
  • 8.3 自定义导航控制器
  • 8.3.1 自定义控制器介绍
  • 8.3.2 搭建控制器插件框架
  • 8.3.3 实现自定义控制算法
  • 8.3.4 配置导航参数并测试
  • 8.4 小结与点评
  • 第9章 搭建一个实体移动机器人
  • 9.1 移动机器人系统设计
  • 9.1.1 机器人传感器
  • 9.1.2 机器人执行器
  • 9.1.3 机器人决策系统
  • 9.2 单片机开发基础
  • 9.2.1 开发平台介绍与安装
  • 9.2.2 第一个HelloWorld工程
  • 9.2.3 使用代码点亮LED灯
  • 9.2.4 使用超声波测量距离
  • 9.2.5 使用开源库驱动IMU
  • 9.3 机器人控制系统的实现
  • 9.3.1 使用开源库驱动多路电动机
  • 9.3.2 电动机速度测量与转换
  • 9.3.3 使用PID控制轮子转速
  • 9.3.4 运动学正逆解的实现
  • 9.3.5 机器人里程计计算
  • 9.4 使用micro-ROS接入ROS 2
  • 9.4.1 第一个节点
  • 9.4.2 订阅话题控制机器人
  • 9.4.3 发布机器人里程计话题
  • 9.5 移动机器人建图与导航实现
  • 9.5.1 驱动并显示雷达点云
  • 9.5.2 移动机器人的坐标系框架介绍
  • 9.5.3 准备机器人URDF
  • 9.5.4 发布里程计TF
  • 9.5.5 完成机器人建图并保存地图
  • 9.5.6 完成机器人导航
  • 9.6 小结与点评
  • 第10章 ROS 2使用进阶
  • 10.1 消息服务质量之QoS
  • 10.1.1 QoS策略介绍
  • 10.1.2 QoS的兼容性
  • 10.1.3 Python QoS兼容性测试
  • 10.1.4 C++QoS兼容性测试
  • 10.2 执行器与回调组
  • 10.2.1 执行器与回调组介绍
  • 10.2.2 在Python中使用回调组
  • 10.2.3 在C++中使用回调组
  • 10.3 生命周期节点
  • 10.3.1 生命周期节点介绍
  • 10.3.2 在Python中编写生命周期节点
  • 10.3.3 在C++中编写生命周期节点
  • 10.4 同一进程组织多个节点
  • 10.4.1 使用执行器组织多个节点
  • 10.4.2 使用组件运行组合节点
  • 10.4.3 编写自己的组件
  • 10.5 使用消息过滤器同步数据
  • 10.5.1 消息过滤器介绍
  • 10.5.2 在Python中同步传感器数据
  • 10.5.3 在C++中同步传感器数据
  • 10.6 DDS中间件进阶
  • 10.6.1 使用不同的DDS进行通信
  • 10.6.2 配置局域网通信
  • 10.6.3 调整DDS配置
  • 10.6.4 使用DDS共享内存
  • 10.7 小结与点评
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

机械工业出版社

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。