第1章 ROS2简介 1
1.1 ROS2 Ardent Apalone概述 1
1.2 ROS2安装及环境配置 2
1.2.1 安装ROS2 2
1.2.2 运行talker和listener 5
1.3 ROS2的基本命令 5
1.3.1 ROS2核心命令 5
1.3.2 ROS与ROS2交互相关命令 7
第2章 ROS2 Ardent框架及功能的源码分析 12
2.1 ROS2 Ardent总体框架 12
2.2 ROS2 Ardent源代码概述 14
2.3 ament代码分析 15
2.3.1 主要函数解析 16
2.3.2 基于Google Mock的白盒测试 42
2.4 Fast-CDR代码分析 45
2.5 Fast-RTPS代码分析 51
2.5.1 Fast-RTPS主要流程解析 52
2.5.2 Fast-RTPS主要函数解析 58
2.6 RMW代码分析 74
2.7 robot_model及状态发布代码分析 83
2.7.1 robot_model模块功能 83
2.7.2 机器人状态发布 87
2.7.3 ROS与ROS2的桥接 90
2.8 RCL代码分析 92
2.9 RCLcpp代码分析 111
第3章 第三方工具库 119
3.1 orocos_kinematics_dynamics库 119
3.2 POCO库 121
3.3 URDF 127
3.3.1 URDF语法规范 127
3.3.2 URDF创建机器人模型 129
3.4 PCL库 132
3.4.1 PCL架构 132
3.4.2 PCL数据结构 132
3.4.3 PCL基础 133
3.5 MoveIt 136
第4章 SLAM和导航 140
4.1 SLAM导航简介 140
4.2 GMapping 144
4.2.1 用tf配置机器人 147
4.2.2 发布里程计信息 150
4.3 SLAM实例 152
4.3.1 激光建图 153
4.3.2 导航 154
4.3.3 定位 155
第5章 机械臂控制 157
5.1 六轴机械臂轨迹规划 158
5.1.1 关节空间的轨迹规划 158
5.1.2 笛卡儿空间的轨迹规划 161
5.2 描述机械臂 164
5.3 机械臂实例开发 173
5.3.1 仿真环境下实例开发 173
5.3.2 实际环境下实例开发 175
第6章 机器人视觉 177
6.1 OpenCV图像、视频基础 177
6.1.1 图像处理 177
6.1.2 视频处理 185
6.1.3 可移植的图形工具包HighGUI 188
6.2 图像转换 190
6.3 机器人3D视觉 193
6.3.1 libfreenect2简介 193
6.3.2 openni_camera简介 196
6.3.3 openni_tracker简介 198
6.3.4 3D视觉设备使用实例 203
参考文献 209