本书主要介绍移动机器人的结构、SLAM、ROS等移动机器人相关内容。全书共分为9章3个部分:第1部分为移动机器人基础(第1~5章),详细介绍了移动机器人的基本概念、结构、数学模型、定位、路径规划等,侧重于原理性介绍,为后续内容奠定基础;第2部分为SLAM(第6、7章),主要介绍了激光SLAM原理与视觉SLAM相关原理,并且结合案例对原理进行了说明,侧重于理论与案例的结合;第3部分为ROS移动机器人实战(第8、9章),主要介绍了基于ROS仿真环境的移动机器人SLAM开发,侧重于动手实践。通过全书3个部分,从原理到案例再到实践,读者可以充分了解移动机器人SLAM技术。本书可以作为机器人工程、人工智能、自动化、控制科学与工程、计算机科学、电子信息、传感器技术、信息处理等相关学科的大学本科和研究生的专业基础教材,也可以作为有志从事移动机器人相关研究的从业者的参考资料。
莫宏伟,工学博士,教授,博士生导师。1996年7月-2001年8月,哈尔滨工程大学自动化学院,助教,团委书记,辅导员;2001年9月-2003年8月,哈尔滨工程大学自动化学院,讲师;2003年9月-2004年9月,美国加州大学戴维斯分校访问学者;2004年10月-2007年8月,哈尔滨工程大学自动化学院,副教授;2005年9月-2007年12月,哈尔滨工业大学计算机科学与技术学院,博士后;2007年9月-至今,哈尔滨工程大学自动化学院,教授。参加的学术组织及任职情况:黑龙江省多学科协同人工智能重点实验室主任。中国人工智能学会自然计算与数字城市专业委员会(发起人)副主任,中国人工智能学会智能空天系统专委会常务委员,中国人工智能学会智能医疗专业委员会委员,全国高校人工智能与大数据创新联盟副理事长,黑龙江省高等教育学会人工智能教育专业委员会创始人、理事长,黑龙江省人工智能学会秘书长(2007-2019),黑龙江省生物医学工程学会理事。黑龙江省医师协会智慧医疗分会理事。国际期刊Research of Information Technology、International Journal of Swarm Intelligence Research、International Journal of Robotics and Automation Technology、《电子学报》、《导航与授时》编委。IEEE Tran on Industrial Informatics 2018 专刊《医疗卫生中的大数据处理》副主编。Journal of Big Data Research主编。获得的个人荣誉和集体荣誉:黑龙江省杰出青年科学基金获得者。全国高校人工智能与大数据创新联盟人工智能教育"个人创新奖”。哈尔滨工程大学"人工智能导论”精品在线课程负责人。智慧树"2021年双一流高校学科建设精品课程”人工智能导论负责人。省级一流课程负责人。出版的主要著作:《人工免疫系统》,科学出版社,2009;《Handbook of Research on Artificial Immune Systems and Natural Computing: Applying Complex Adaptive Technologies》,IGI Global,USA,2009;《免疫调度原理与应用》,科学出版社,2013;《自然计算》,科学出版社,2016;《磁性细菌优化算法》,科学出版社,2017;《人工智能导论》,人民邮电出版社,2020;《深度学习》,人民邮电出版社,2020。所承担的重点科研项目:1.2013年1月-2015年12月,基于蜂群智能的无人机集群协同飞行控制策略研究,黑龙江省杰出青年科学基金,负责人;2.2014年1月-2016年9月,脑机接口控制机器人,总装预研,负责人;3.2014年1月-2016年6月,桥梁检测无人机,横向,负责人;4.2018.9-2018.12 智能手术导航系统,横向,负责人;5.2019.1-2021.12 智能光谱识别系统,横向,负责人;6.2019.9-2019.12 人工智能疾病分析系统,横向,负责人;7.2020.1-2022.12 海陆空智能无人系统-火星车目标跟踪系统,科技部国家重点研发计划,课题分项目负责人;8.2021.1-2022.12 认知智能移动机器人平台研究,横向,负责人;9 基于自然语言处理的领域本体系统构建,装发预研,负责人。教学成果获奖情况:智慧树2021年高校思政精品课程卓越奖(个人),智慧树"2021年双一流高校学科建设精品课程”,省级线上一流课程。
第1章 绪论 1
1.1 移动机器人的基本概念 2
1.1.1 机器人的定义 2
1.1.2 移动机器人概述 2
1.2 移动机器人的发展 3
1.3 移动机器人的分类 7
1.3.1 按照应用场景分类 7
1.3.2 按照移动机构分类 9
1.4 移动机器人的关键技术 12
1.4.1 环境建模 12
1.4.2 自主定位 13
1.4.3 导航规划 14
1.5 本章小结 15
习题1 16
第2章 移动机器人的结构 17
2.1 引言 18
2.2 控制器 18
2.2.1 单片机 19
2.2.2 嵌入式控制器 19
2.2.3 工控机 19
2.3 驱动器 20
2.3.1 常用的驱动器 20
2.3.2 直流电机 21
2.3.3 伺服电机 23
2.3.4 步进电机 24
2.4 传感器 24
2.4.1 传感器及其分类 25
2.4.2 内部传感器 26
2.4.3 外部传感器 28
2.5 本章小结 33
习题2 33
第3章 移动机器人的数学模型 35
3.1 移动机器人的运动学模型 35
3.1.1 移动机器人坐标系 36
3.1.2 双轮差速移动机器人的运动学模型 38
3.1.3 全方位移动机器人的运动学模型 39
3.2 移动机器人的动力学模型 42
3.2.1 双轮差速移动机器人的动力学模型 42
3.2.2 全方位移动机器人的动力学模型 43
3.3 本章小结 47
习题3 47
第4章 移动机器人定位 48
4.1 环境地图构建方法 49
4.1.1 几何特征地图 50
4.1.2 拓扑地图 50
4.1.3 点云地图 51
4.1.4 八叉树地图 53
4.1.5 栅格地图 55
4.2 定位问题的分类 56
4.2.1 局部定位与全局定位 56
4.2.2 静态环境定位与动态环境定位 57
4.2.3 被动定位与主动定位 57
4.2.4 单机器人定位与多机器人定位 58
4.3 定位的常用方法 58
4.3.1 GPS定位 58
4.3.2 基于地图的定位 60
4.3.3 基于概率方法的定位 61
4.4 本章小结 67
习题4 67
第5章 移动机器人路径规划 68
5.1 引言 69
5.2 路径规划的传统算法 70
5.2.1 全局路径规划 70
5.2.2 局部路径规划 80
5.3 基于采样的路径规划 86
5.3.1 概率路图法 86
5.3.2 快速扩展随机树法 88
5.4 现代智能路径规划 90
5.4.1 模糊逻辑算法 90
5.4.2 神经网络算法 92
5.4.3 遗传算法 92
5.4.4 蚁群算法 94
5.4.5 粒子群优化算法 95
5.4.6 禁忌搜索算法 96
5.5 案例分析:烟花算法 96
5.5.1 基本烟花算法 97
5.5.2 基本烟花算法在路径规划中的实现 101
5.6 本章小结 105
习题5 105
第6章 激光SLAM 106
6.1 SLAM的概念及分类 107
6.2 SLAM的数学表述 110
6.2.1 基本概念 110
6.2.2 SLAM问题的数学表述 111
6.3 滤波激光SLAM 113
6.3.1 激光SLAM系统模型 114
6.3.2 贝叶斯滤波 115
6.3.3 扩展卡尔曼滤波SLAM算法 116
6.3.4 粒子滤波 118
6.4 Gmapping算法 120
6.4.1 FastSLAM算法 120
6.4.2 Gmapping算法概述 121
6.4.3 Gmapping算法流程 123
6.5 图优化SLAM算法 131
6.5.1 图优化SLAM算法概述 131
6.5.2 图优化SLAM算法原理 132
6.6 Cartographer算法 134
6.6.1 激光扫描匹配 135
6.6.2 闭环检测 136
6.6.3 位姿图优化 138
6.7 激光SLAM的案例分析 140
6.7.1 传感器模型 141
6.7.2 基于粒子滤波的移动机器人定位 143
6.7.3 环境地图构建 147
6.8 本章小结 151
习题6 152
第7章 视觉SLAM 153
7.1 视觉SLAM概述 154
7.1.1 视觉SLAM的概念与框架 154
7.1.2 视觉SLAM的主要算法 155
7.2 视觉前端——视觉里程计 157
7.2.1 视觉里程计的数学模型 157
7.2.2 特征点法 160
7.2.3 直接法 170
7.3 后端优化 174
7.3.1 基本概念 174
7.3.2 状态估计问题 174
7.3.3 非线性最小二乘 175
7.3.4 位姿图优化 179
7.4 回环检测 181
7.4.1 基本概念 181
7.4.2 词袋模型 181
7.4.3 评价指标——准确率和召回率 184
7.5 案例分析:ORB-SLAM2算法 184
7.5.1 ORB-SLAM概述 184
7.5.2 ORB-SLAM2基本原理 186
7.6 案例分析:动态视觉SLAM 188
7.6.1 动态点的识别 188
7.6.2 动态视觉SLAM的整体框架 194
7.6.3 后端优化 197
7.6.4 动态环境下的三维地图构建 201
7.7 本章小结 205
习题7 205
第8章 机器人操作系统 207
8.1 ROS简介 208
8.1.1 ROS的发展 208
8.1.2 ROS的安装 208
8.1.3 配置ROS 210
8.1.4 测试ROS 210
8.2 catkin文件系统 211
8.2.1 catkin编译系统 211
8.2.2 catkin工作空间 212
8.2.3 package功能包 213
8.2.4 常见文件类型 215
8.3 ROS通信机制 217
8.3.1 topic 217
8.3.2 service 218
8.3.3 action 219
8.4 ROS工具 220
8.4.1 仿真工具Gazebo 220
8.4.2 三维可视化工具RViz 220
8.4.3 ROS GUI开发工具rqt 220
8.5 本章小结 221
习题8 221
第9章 移动机器人仿真开发 223
9.1 搭建移动机器人模型 224
9.2 搭建仿真物理环境模型 235
9.3 定位与导航 238
9.3.1 键盘控制 238
9.3.2 定位与建图 239
9.3.3 导航 242
9.3.4 自主探索 244
9.4 本章小结 247
习题9 247