ROS机器人理论与实践
作者:张新钰,赵虚左,邱楠,郭世纯
出版社:清华大学出版社
出版时间:2023-05-01
ISBN:9787302631026
定价:¥72.00
第1章ROS概述与开发环境搭建1
1.1ROS简介2
1.1.1ROS概要3
1.1.2ROS的设计目标3
1.1.3ROS发展历程4
1.2ROS安装6
1.2.1安装虚拟机软件6
1.2.2虚拟一台主机10
1.2.3安装和优化Ubuntu12
1.2.4安装ROS20
1.2.5测试ROS22
1.3ROS快速体验24
1.3.1HelloWorld实现简介24
1.3.2HelloWorld(C++版)25
1.3.3HelloWorld(Python版)26
1.4ROS集成开发环境搭建27
1.4.1安装终端27
1.4.2安装VSCode29
1.4.3launch文件演示32
1.5ROS架构32
1.5.1ROS文件系统34
1.5.2ROS文件系统相关命令40
1.5.3ROS计算图41
1.6本章小结42
第2章ROS通信机制43
2.1话题通信43
2.1.1理论模型45
2.1.2基本操作(C++)462.1.3基本操作(Python)49
2.1.4自定义msg51
2.1.5自定义msg调用(C++)53
2.1.6自定义msg调用(Python)56
2.2服务通信58
2.2.1理论模型58
2.2.2自定义srv59
2.2.3自定义srv调用(C++)61
2.2.4自定义srv调用(Python)65
2.3参数服务器68
2.3.1理论模型68
2.3.2参数操作(C++)69
2.3.3参数操作(Python)73
2.4常用命令75
2.4.1rosnode75
2.4.2rostopic75
2.4.3rosmsg76
2.4.4rosservice77
2.4.5rossrv78
2.4.6rosparam78
2.5通信机制实操79
2.5.1话题发布80
2.5.2话题订阅83
2.5.3服务调用86
2.5.4参数设置89
2.6通信机制比较91
2.7本章小结92
〖3〗ROS机器人理论与实践目录〖3〗第3章ROS通信机制进阶93
3.1常用API93
3.1.1初始化93
3.1.2话题与服务相关对象94
3.1.3回旋函数99
3.1.4时间99
3.1.5其他函数103
3.2ROS中的头文件与源文件104
3.2.1自定义头文件调用104
3.2.2自定义源文件调用106
3.3Python模块导入107
3.4本章小结108
第4章ROS运行管理109
4.1ROS元功能包109
4.2ROS节点运行管理launch文件110
4.2.1
4.2.2
4.2.3
4.2.4
4.2.5标签112
4.2.6
4.2.7
4.2.8
4.3ROS工作空间覆盖114
4.4ROS节点重名115
4.4.1rosrun设置命名空间与名称重映射116
4.4.2launch文件设置命名空间与名称重映射117
4.4.3编码设置命名空间与名称重映射117
4.5ROS话题名称设置117
4.5.1rosrun设置话题重映射118
4.5.2launch文件设置话题重映射119
4.5.3编码设置话题名称119
4.6ROS参数名称设置122
4.6.1rosrun设置参数122
4.6.2launch文件设置参数123
4.6.3编码设置参数123
4.7ROS分布式通信125
4.8本章小结126
第5章ROS常用组件127
5.1TF坐标变换128
5.1.1坐标msg消息129
5.1.2静态坐标变换130
5.1.3动态坐标变换136
5.1.4多坐标变换142
5.1.5坐标系关系查看145
5.1.6TF坐标变换实操146
5.1.7TF2与TF155
5.1.8小结156
5.2rosbag156
5.2.1在命令行使用rosbag157
5.2.2rosbag的编码实现157
5.3rqt工具箱159
5.3.1rqt安装、启动与基本使用160
5.3.2rqt_graph160
5.3.3rqt_console160
5.3.4rqt_plot161
5.3.5rqt_bag162
5.4本章小结163
第6章ROS机器人系统仿真164
6.1机器人系统仿真概述164
6.1.1机器人系统仿真的概念164
6.1.2机器人系统仿真的作用165
6.1.3相关组件165
6.1.4机器人系统仿真综合说明166
6.2URDF集成RViz基本流程167
6.2.1创建功能包并导入依赖包168
6.2.2编写URDF文件168
6.2.3在launch文件中集成URDF与RViz168
6.2.4在RViz中显示机器人模型168
6.2.5优化RViz启动169
6.3URDF语法详解170
6.3.1robot170
6.3.2link171
6.3.3joint172
6.3.4URDF练习176
6.3.5URDF常用工具180
6.4URDF优化——Xacro181
6.4.1Xacro快速体验181
6.4.2Xacro语法详解184
6.4.3Xacro完整使用流程示例184
6.4.4Xacro实操188
6.5在RViz中控制机器人模型运动190
6.6URDF集成Gazebo193
6.6.1URDF与Gazebo基本集成流程193
6.6.2URDF集成Gazebo相关设置195
6.6.3URDF集成Gazebo实操196
6.6.4Gazebo仿真环境搭建202
6.7URDF、Gazebo与RViz综合应用205
6.7.1机器人运动控制以及里程计数据显示205
6.7.2雷达数据仿真以及显示208
6.7.3摄像头数据仿真以及显示211
6.7.4kinect数据仿真以及显示212
6.8本章小结216
第7章仿真环境下的机器人导航218
7.1概述218
7.1.1导航模块简介219
7.1.2导航中的坐标系221
7.1.3导航条件说明221
7.2导航实现222
7.2.1SLAM建图222
7.2.2地图服务225
7.2.3定位227
7.2.4路径规划232
7.2.5导航与SLAM建图238
7.3导航相关消息240
7.3.1地图240
7.3.2里程计241
7.3.3坐标变换241
7.3.4定位242
7.3.5目标点与路径规划242
7.3.6激光雷达243
7.3.7相机244
7.3.8深度图像信息转激光雷达数据245
7.4本章小结249
第8章机器人平台设计250
8.1概述252
8.2Arduino基础252
8.2.1Arduino开发环境搭建253
8.2.2Arduino基本语法257
8.2.3Arduino基本语法展示之一261
8.2.4Arduino基本语法展示之二262
8.2.5Arduino基本语法展示之三263
8.3电机驱动264
8.3.1电机与电机驱动板264
8.3.2电机基本控制实验267
8.3.3电机测速理论268
8.3.4电机测速实现270
8.3.5电机调速PID控制理论272
8.3.6电机调速PID控制实现274
8.4底盘设计277
8.4.1底盘实现概述277
8.4.2Arduino端入口279
8.4.3编码器287
8.4.4Arduino端电机驱动292
8.4.5Arduino端PID控制294
8.5控制系统299
8.5.1树莓派概述300
8.5.2分布式框架302
8.5.3SSH远程连接303
8.5.4安装ros_arduino_bridge305
8.5.5在树莓派上安装ROS307
8.6传感器313
8.6.1激光雷达简介313
8.6.2雷达的使用314
8.6.3相机简介316
8.6.4相机的使用316
8.6.5传感器集成318
8.7本章小结320
第9章实体机器人导航321
9.1概述321
9.2VSCode远程开发322
9.3导航实现324
9.3.1准备工作325
9.3.2SLAM建图329
9.3.3地图服务331
9.3.4定位332
9.3.5路径规划333
9.3.6导航与SLAM建图336
9.4本章小结337
第10章ROS进阶338
10.1action通信338
10.1.1自定义action文件340
10.1.2自定义action文件调用(C++)342
10.1.3自定义action文件调用(Python)346
10.2动态配置参数349
10.2.1动态配置参数客户端350
10.2.2动态配置参数服务器端(C++)351
10.2.3动态配置参数服务器端(Python)354
10.3pluginlib355
10.4nodelet360
10.4.1使用演示361
10.4.2nodelet实现362
10.5本章小结364