ROS2編程理論與實踐核心篇
張新鈺、趙虛左
相關主題
商品描述
"本書是一本關於ROS2的入門教程。ROS2是機器人操作系統的新一代版本,通過全面迭代升級,ROS2在ROS1的基礎上進一步完善,為機器人開發提供更加穩定、高效的解決方案。通過理論與實踐的結合,本書由淺入深地幫助機器人領域的讀者全面掌握ROS2相關內容,主要包含ROS2的概述以及環境搭建、ROS2通信機制、核心ROS2通信機制補充、ROS2工具如launch、rosbag2、TF(坐標變換)、rviz2可視化、urdf建模等。 通過本書的學習,讀者可以瞭解ROS2的整體框架,掌握機器人的相關理論知識,構建機器人平臺並實現機器人的各種實用功能如導航、建圖等,為後續的ROS2機器人開發打下堅實的基礎。 本書的內容涵蓋了ROS2的核心知識點,適合機器人開發人員、自動駕駛開發人員、學生等人群閱讀。本書的特點是內容系統性強、資料詳細、實用性強、易懂易學,是一本非常實用的ROS2學習教程。 "
目錄大綱
目錄
第1章ROS2概述與環境搭建1
1.1ROS2簡介1
1.1.1ROS2的發展歷程2
1.1.2ROS2的組成體系4
1.1.3ROS2的優勢5
1.2ROS2的安裝7
1.2.1安裝ROS27
1.2.2測試ROS210
1.3ROS2的快速體驗10
1.3.1案例簡介10
1.3.2HelloWorld(C++)11
1.3.3HelloWorld(Python)13
1.3.4運行優化15
1.4ROS2集成開發環境的搭建16
1.4.1安裝VSCode16
1.4.2安裝終端19
1.4.3安裝git20
1.5ROS2體系框架20
1.5.1ROS2文件系統21
1.5.2ROS2核心模塊27
1.5.3ROS2技術支持30
1.5.4ROS2應用方向31
1.6本章小結32
第2章ROS2通信機制核心34
2.1通信機制簡介34
2.2話題通信36
2.2.1話題通信案例需求及分析38
2.2.2話題通信之原生消息(C++)39
2.2.3話題通信之原生消息(Python)43
2.2.4話題通信自定義接口消息46
2.2.5話題通信之自定義消息(C++)47
2.2.6話題通信之自定義消息(Python)50
2.3服務通信53
2.3.1服務通信案例需求及分析54
2.3.2服務通信接口消息55
2.3.3服務通信(C++)56
2.3.4服務通信(Python)61
2.4動作通信64
2.4.1動作通信的案例需求及分析65
2.4.2動作通信接口消息66
2.4.3動作通信(C++)67
2.4.4動作通信(Python)73
2.5參數服務77
2.5.1參數服務案例需求及分析78
2.5.2參數數據類型79
2.5.3參數服務(C++)80
2.5.4參數服務(Python)85
2.6本章小結90
〖3〗ROS2編程理論與實踐核心篇目錄〖3〗第3章ROS2通信機制補充91
3.1分佈式通信91
3.2工作空間覆蓋93
3.3元功能包95
3.4節點重名96
3.4.1ros2 run設置節點名稱97
3.4.2launch文件設置節點名稱97
3.4.3編碼設置節點名稱99
3.5話題重名99
3.5.1ros2 run設置話題名稱100
3.5.2launch文件設置話題名稱101
3.5.3編碼設置話題名稱102
3.6時間相關API103
3.6.1Rate104
3.6.2Time105
3.6.3Duration106
3.6.4Time與Duration運算107
3.7通信機制工具109
3.7.1命令工具109
3.7.2rqt工具箱111
3.8通信機制實操113
3.8.1話題通信案例需求及分析113
3.8.2話題通信的實現114
3.8.3服務通信案例需求及分析117
3.8.4服務通信的實現118
3.8.5動作通信案例需求及分析124
3.8.6動作通信的實現125
3.8.7參數服務案例需求及分析133
3.8.8參數服務的實現134
3.9本章小結137
第4章ROS2工具之launch與rosbag2138
4.1啟動文件launch簡介138
4.2launch之Python實現144
4.2.1節點設置144
4.2.2Python實現執行指令147
4.2.3Python實現參數設置148
4.2.4Python實現文件包含149
4.2.5Python實現分組設置150
4.2.6添加事件151
4.3launch之XML、YAML實現152
4.3.1案例需求及分析152
4.3.2XML、YAML實現執行指令154
4.3.3XML、YAML實現參數設置155
4.3.4XML、YAML實現文件包含156
4.3.5XML、YAML實現分組設置156
4.4錄制回放工具——rosbag2157
4.4.1rosbag2命令工具158
4.4.2rosbag2編程(C++)158
4.4.3rosbag2編程(Python)162
4.5本章小結165
第5章ROS2工具之坐標變換167
5.1坐標變換簡介167
5.2坐標相關消息169
5.3坐標變換廣播170
5.3.1坐標系廣播案例及分析171
5.3.2靜態廣播器(命令)172
5.3.3靜態廣播器(C++)173
5.3.4靜態廣播器(Python)176
5.3.5動態廣播器(C++)179
5.3.6動態廣播器(Python)182
5.3.7坐標點發布案例及分析184
5.3.8坐標點發布(C++)185
5.3.9坐標點發布(Python)187
5.4坐標變換監聽189
5.4.1坐標系變換案例需求及分析189
5.4.2坐標系變換(C++)191
5.4.3坐標系變換(Python)193
5.4.4坐標點變換(C++)196
5.4.5坐標點變換(Python)199
5.5坐標變換工具200
5.6坐標變換實操202
5.6.1烏龜跟隨案例需求及分析202
5.6.2烏龜跟隨的實現(C++)203
5.6.3烏龜跟隨的實現(Python)212
5.6.4烏龜護航案例需求及分析218
5.6.5烏龜護航的實現(C++)219
5.6.6烏龜護航的實現(Python)221
5.7本章小結222
第6章ROS2工具之可視化223
6.1可視化簡介223
6.2rviz2的基本使用224
6.2.1rviz2的安裝224
6.2.2rviz2的啟動224
6.2.3rviz2的界面佈局224
6.2.4rviz2中的預定義插件225
6.2.5rviz2的插件示例226
6.3rviz2集成urdf的基本流程227
6.3.1rviz2集成urdf案例需求及分析227
6.3.2rviz2集成urdf案例的實現228
6.4urdf的使用語法231
6.4.1urdf語法01_robot231
6.4.2urdf語法02_link232
6.4.3urdf語法03_joint234
6.4.4urdf練習239
6.4.5urdf工具243
6.5urdf優化之xacro244
6.5.1xacro快速體驗244
6.5.2xacro使用語法246
6.5.3xacro練習249
6.6本章小結253