本書是智能機(jī)器人ROS控制理實(shí)一體化教學(xué)的配套理論教材,主要面向新型工業(yè)化時期智能及高端裝備制造領(lǐng)域,結(jié)合新工科復(fù)合型專業(yè)技術(shù)人才綜合能力培養(yǎng)的教學(xué)訴求,并融入作者十余載對基于ROS的移動機(jī)器人開發(fā)實(shí)踐及教學(xué)經(jīng)驗編寫而成。
全書共12章,講解有關(guān)基礎(chǔ)編程、運(yùn)動模態(tài)、機(jī)械臂控制、SLAM地圖構(gòu)建、自主導(dǎo)航等多種功能原理與實(shí)踐應(yīng)用,并配有圖表、代碼、參數(shù)設(shè)置等多種信息,幫助讀者在實(shí)現(xiàn)ROS核心功能的同時深入了解基于ROS系統(tǒng)的移動機(jī)器人開發(fā)。各章下設(shè)學(xué)習(xí)目標(biāo)、學(xué)習(xí)導(dǎo)圖、知識講解、本章小結(jié)和知識測評等環(huán)節(jié),促進(jìn)ROS理論學(xué)習(xí)與實(shí)踐應(yīng)用相結(jié)合,促進(jìn)讀者的知識學(xué)習(xí)、能力訓(xùn)練及素養(yǎng)提升。
本書內(nèi)容豐富、結(jié)構(gòu)清晰、形式新穎、術(shù)語規(guī)范,既適合作為普通高等本科院校機(jī)械類、電子信息類、自動化類等與智能制造密切相關(guān)專業(yè)的教材,還可供企業(yè)及機(jī)器人聯(lián)盟和培訓(xùn)機(jī)構(gòu)的相關(guān)技術(shù)人員參考。
第1篇 認(rèn)識移動機(jī)器人
第1章 移動機(jī)器人導(dǎo)論002
1.1 移動機(jī)器人發(fā)展現(xiàn)狀003
1.2 機(jī)器人操作系統(tǒng)發(fā)展與現(xiàn)狀005
1.2.1 ROS的歷史起源005
1.2.2 ROS的發(fā)展與現(xiàn)狀006
1.3 本章小結(jié)008
第2章 移動機(jī)器人認(rèn)知010
2.1 移動機(jī)器人的組成011
2.1.1 移動機(jī)器人的四大組成部分011
2.1.2 多模態(tài)移動機(jī)器人013
2.1.3 移動機(jī)器人軟件架構(gòu)018
2.2 移動機(jī)器人操作方法019
2.2.1 系統(tǒng)啟動019
2.2.2 多模態(tài)運(yùn)動020
2.3 本章小結(jié)021
第2篇 移動機(jī)器人原理
第3章 機(jī)器人操作系統(tǒng)核心概念024
3.1 ROS的組成與安裝025
3.1.1 ROS的組成025
3.1.2 ROS的版本迭代027
3.1.3 ROS的安裝方法028
3.2 ROS的核心概念029
3.2.1 節(jié)點(diǎn)和節(jié)點(diǎn)管理器030
3.2.2 話題和消息031
3.2.3 服務(wù)033
3.2.4 參數(shù)034
3.3 ROS通信機(jī)制035
3.3.1 話題通信機(jī)制035
3.3.2 服務(wù)通信機(jī)制037
3.3.3 參數(shù)管理機(jī)制038
3.4 移動機(jī)器人運(yùn)行架構(gòu)分析038
3.4.1 小烏龜仿真038
3.4.2 移動機(jī)器人運(yùn)動控制041
3.5 本章小結(jié)042
第4章 ROS常用工具044
4.1 ROS命令行使用方法045
4.1.1 rosnode046
4.1.2 rostopic048
4.1.3 rosservice050
4.1.4 移動機(jī)器人命令行調(diào)試052
4.2 launch啟動文件055
4.2.1 基本元素056
4.2.2 參數(shù)設(shè)置058
4.2.3 重映射機(jī)制059
4.2.4 嵌套復(fù)用059
4.2.5 移動機(jī)器人的launch文件059
4.3 TF坐標(biāo)變換060
4.3.1 TF功能包060
4.3.2 TF工具062
4.3.3 小烏龜例程中的TF063
4.4 可視化工具065
4.4.1 Rviz065
4.4.2 rqt066
4.4.3 Gazebo070
4.5 本章小結(jié)071
第5章 移動機(jī)器人基礎(chǔ)編程073
5.1 移動機(jī)器人開發(fā)流程074
5.1.1 工作空間的創(chuàng)建和編譯075
5.1.2 創(chuàng)建功能包077
5.2 移動機(jī)器人運(yùn)動控制編程078
5.2.1 編程思路078
5.2.2 代碼解析078
5.2.3 功能運(yùn)行079
5.3 移動機(jī)器人狀態(tài)訂閱編程080
5.3.1 編程思路081
5.3.2 代碼解析081
5.3.3 功能運(yùn)行081
5.4 移動機(jī)器人分布式通信082
5.4.1 分布式通信網(wǎng)絡(luò)配置082
5.4.2 移動機(jī)器人分布式控制083
5.5 本章小結(jié)084
第6章 移動機(jī)器人運(yùn)動學(xué)086
6.1 阿克曼運(yùn)動控制087
6.2 全向運(yùn)動控制089
6.3 四輪差速運(yùn)動控制091
6.4 本章小結(jié)093
第7章 機(jī)械臂模型解析095
7.1 機(jī)械臂結(jié)構(gòu)類型介紹096
7.2 平行四連桿式機(jī)械臂模型解析101
7.3 多級舵機(jī)串聯(lián)式機(jī)械臂模型解析101
7.4 桁架式機(jī)械臂模型解析103
7.5 移動機(jī)器人機(jī)械臂物料搬運(yùn)103
7.6 本章小結(jié)105
第8章 機(jī)器人視覺處理107
8.1 機(jī)器視覺原理108
8.2 機(jī)器視覺常用軟件110
8.2.1 OpenCV110
8.2.2 TensorFlow111
8.2.3 PyTorch113
8.2.4 yolo114
8.3 機(jī)器視覺常用傳感器114
8.3.1 相機(jī)驅(qū)動115
8.3.2 圖像數(shù)據(jù)解析117
8.4 本章小結(jié)118
第3篇 移動機(jī)器人應(yīng)用
第9章 機(jī)器人視覺應(yīng)用120
9.1 機(jī)械臂視覺分揀121
9.1.1 實(shí)現(xiàn)原理121
9.1.2 顏色識別122
9.1.3 啟動文件124
9.1.4 代碼解析125
9.1.5 功能運(yùn)行127
9.2 物體識別與跟蹤128
9.2.1 實(shí)現(xiàn)原理128
9.2.2 閾值測試129
9.2.3 視覺識別131
9.2.4 啟動文件136
9.2.5 代碼解析137
9.2.6 功能運(yùn)行139
9.3 本章小結(jié)139
第10章 移動機(jī)器人SLAM地圖構(gòu)建141
10.1 SLAM地圖構(gòu)建應(yīng)用142
10.2 SLAM地圖構(gòu)建原理143
10.2.1 SLAM基本原理143
10.2.2 SLAM常用傳感器146
10.2.3 ROS接口消息定義147
10.3 Gmapping地圖構(gòu)建149
10.3.1 原理簡介149
10.3.2 接口定義150
10.3.3 配置方法151
10.3.4 功能運(yùn)行153
10.4 Hector地圖構(gòu)建154
10.4.1 原理簡介154
10.4.2 接口定義156
10.4.3 配置方法157
10.4.4 功能運(yùn)行159
10.5 Cartographer地圖構(gòu)建160
10.5.1 原理簡介160
10.5.2 接口定義162
10.5.3 配置方法163
10.5.4 功能運(yùn)行163
10.6 本章小結(jié)164
第11章 移動機(jī)器人自主導(dǎo)航165
11.1 移動機(jī)器人自主導(dǎo)航原理166
11.1.1 原理簡介166
11.1.2 ROS自主導(dǎo)航框架167
11.1.3 move_base功能包169
11.1.4 AMCL功能包172
11.1.5 機(jī)器人定位方法對比173
11.2 移動機(jī)器人自主導(dǎo)航應(yīng)用174
11.2.1 功能運(yùn)行174
11.2.2 啟動文件175
11.2.3 參數(shù)配置177
11.3 本章小結(jié)180
第12章 移動機(jī)器人碼垛182
12.1 碼垛原理183
12.1.1 原理簡介184
12.1.2 工藝參數(shù)184
12.2 移動機(jī)器人碼垛程序步驟187
12.3 移動機(jī)器人碼垛任務(wù)編程189
12.3.1 編程思路189
12.3.2 啟動文件190
12.3.3 代碼解析193
12.3.4 功能運(yùn)行196
12.4 本章小結(jié)197
參考文獻(xiàn)199