本书全面介绍了ROS机器人操作系统及其在无人机编程中的应用,内容涵盖智能机器人和无人机等从入门到精通所需的技术开发知识要点。本书从ROS基础知识入手,由ROS1过渡到ROS2再到两者的移植与转换,由浅入深、逐级进阶,以无人机的编程应用为平台,就目前流行的机器人SLAM定位算法、深度学习识别算法、基于运动控制学的控制算法以及全局加局部的轨迹规划算法等重点和难点,进行了详细阐述。全书语言通俗易懂,辅以程序案例及注释,并通过仿真的形式,让读者能够轻松地学习ROS及无人机编程。本书可供智能机器人及无人机等相关行业技术工作者阅读参考,也是ROS爱好者的实战宝典,还可作为高校相关专业师生的参考书。
目录:
第1章 ROS——智能机器人开端 001
1.1 ROS的节点(node) 001
1.2 ROS命令指令与使用 007
1.3 工作空间与功能包的创建 019
1.4 可视化参数指令(Parameter)的使用 029
1.5 Visual Studio Code环境搭建与美化 045
1.6 Docker-ROS安装 050
1.7 ROS搭建VSC调试环境 058
第2章 ROS编程及插件二次开发 065
2.1 发布者(Publisher的编程与实现 065
2.2 订阅者(Subscriber)的编程与实现 071
2.3 自定义话题(Topic)实现 076
2.4 客户端(Client)的编程与实现 084
2.5 服务端(Server)的编程与实现 091
2.6 自定义服务(Service)实现 098
2.7 行为(Action)编程与实现 108
2.8 多节点启动脚本(launch)文件的编程与实现 123
2.9 ROS设置plugin插件 128
2.10 基于RVIZ的二次开发——plugin 134
2.11 ROS多消息同步与多消息回调 142
第3章 ROS可视化功能包与拓展 148
3.1 日志输出工具rqt_console 148
3.2 数据绘图工具(rqt_plot) 152
3.3 计算图可视化工具(rqt_graph 155
3.4 图像渲染工具(rqt_image_view) 157
3.5 PlotJuggler 157
3.6 三维可视化工具(rviz) 162
3.7 三维物理仿真平台(Gazebo 165
3.8 ROS人机交互软件介绍 168
3.9 ROS包选择、过滤与裁剪 172
3.10 常见GUI快速查询 174
第4章 ROS2——智能机器人新起点 178
4.1 ROS2的新特性 178
4.2 ROS2之DDS 180
4.3 Docker—ROS2安装 184
4.4 ROS2搭建VSC调试环境 191
4.5 ROS2工作空间介绍 195
4.6 ROS2的POP和OOP 198
4.7 发布者(Publisher)的编程与实现 200
4.8 订阅者(Subscriber)的编程与实现 205
4.9 客户(Client)的编程与实现 209
4.10 服务(Service)的编程与实现 214
4.11 自定义msg以及srv 218
4.12 ROS2参数(Parameter) 220
4.13 ROS2如何一键启动多个脚本 223
4.14 Action(server & client)的编程与实现 227
4.15 ROS2子节点以及多线程 236
4.16 ROS2中常用命令行工具 243
第5章 从ROS1移植到R 255
5.1 ROS1移植到ROS2常见的问题 255
5.2 ROS1与ROS2包的互相转换及使用 261
第6章 无人机相机定位 268
6.1 定位算法概述 268
6.2 VINS的集大成者——VINS FUSION 274
6.3 从单目VIO初始化开始 280
6.4 边缘化与优化 298
6.5 最后的工作——回环检测 314
第7章 无人机二维激光雷达定位 322
7.1 Cartographer 322
7.2 cartographer_ros数据传入 326
7.3 前后端链接的桥梁 335
7.4 地图构建器 340
7.5 Local SLAM-子图的匹配 349
7.6 Global SLAM全局地图的匹配 365
第8章 无人机三维激光雷达定位 390
8.1 LOAM工业化落地-SC-LeGO-LOAM 390
8.2 点云数据输入与地面点分割 394
8.3 激光特征提取与关联 402
8.4 回环检测—ScanContext 417
第9章 无人机识别避障 428
9.1 识别算法综述 428
9.2 无人机AprilTag识别 439
9.3 无人机行人识别 446
9.4 无人机行人骨骼点识别 460
第10章 无人机运动控制 473
10.1 滤波算法 473
10.2 卡尔曼滤波(KF) 478
10.3 拓展卡尔曼滤波(EKF) 486
10.4 无迹卡尔曼滤波(UKF) 491
10.5 粒子滤波(PF) 497
第11章 无人机轨迹规划 507
11.1 Dijkstra算法 507
11.2 A*算法 512
11.3 RRT算法 516
11.4 RRT*算法 520
11.5 DWA算法 523
第12章 无人机终体验 528
12.1 飞控介绍 528
12.2 无人机硬件—感知 529
12.3 无人机硬件—控制 532
12.4 无人机硬件—通信 533
12.5 仿真通信 534
12.6 Prometheus仿真环境搭建 535
12.7 通过mavros实现对期望动作的发布 539
12.8 通过mavros实现对当前位置发送 543
12.9 零门槛的普罗米修斯遥控仿真 545
12.10 YOLO在普罗米修斯中的使用 552
12.11 A*在普罗米修斯中的使用 556
参考文献 569
点击下载