目前,ROS(robot operating system)逐步成為機器人研發(fā)領域的通用性軟件平臺!堕_源機器人操作系統(tǒng)——ROS》是國內第一本全面介紹ROS的中文版圖書。
ROS是開源的用于機器人的一種后操作系統(tǒng),或者說次級操作系統(tǒng)。它提供類似操作系統(tǒng)所提供的功能,包含硬件抽象描述、底層驅動程序管理、共用功能的執(zhí)行、程序間的消息傳遞、程序發(fā)行包管理,它也提供一些工具程序和庫用于獲取、建立、編寫和運行多機整合的程序。
《開源機器人操作系統(tǒng)——ROS》附光盤一張,內容包括書中的部分例子源代碼和Diamondback及Electric版本安裝后在本地硬盤上的全部程序,以便于讀者對照自己的安裝版本進行調試。
《開源機器人操作系統(tǒng)——ROS》可作為機器人研究者以及機器人愛好者應用ROS構建機器人軟件系統(tǒng)的參考手冊。
更多科學出版社服務,請掃碼獲取。
ROS是開源的用于機器人的一種后操作系統(tǒng), 或者說次級操作系統(tǒng)。它提供類似操作系統(tǒng)所提供的功能, 包含硬件抽象描述、底層驅動程序管理、共用功能的執(zhí)行、程序間的消息傳遞、程序發(fā)行包管理, 它也提供一些工具程序和庫用于獲取、建立、編寫和運行多機整合的程序。本書附光盤一張, 內容包括書中的部分例子源代碼和Diamondback及Electric版本安裝后在本地硬盤上的全部程序, 以便于讀者對照自己的安裝版本進行調試。
目錄
前言
術語列表
第一章 ROS簡介 1
1.1 ROS簡介 1
1.2 ROS安裝 4
1.3 ROS支持的機器人 6
1.4 ROS網(wǎng)上資源 6
第二章 ROS總體框架及基本命令 7
2.1 ROS總體框架 7
2.1.1 文件系統(tǒng)級 7
2.1.2 計算圖級 9
2.1.3 社區(qū)級 11
2.1.4 更高層概念 12
2.1.5 名稱 12
2.2 ROS基本命令 15
2.2.1 ROS文件系統(tǒng)命令 15
2.2.2 ROS核心命令 26
2.3 工具 35
2.3.1 3D可視化工具:rviz 35
2.3.2 傳感器數(shù)據(jù)記錄與可視化工具:rosbag和rxbag 45
2.3.3 畫圖工具:rxplot 47
2.3.4 系統(tǒng)可視化工具:rxgraph 49
2.3.5 rxconsole 49
2.3.6 tf命令 51
2.4 例子 52
2.4.1 創(chuàng)建ROS消息和服務 52
2.4.2 記錄和回放數(shù)據(jù) 54
2.4.3 手工創(chuàng)建ROS功能包 59
2.4.4 大項目上運行roslaunch 60
2.4.5 在多臺機器上運行ROS系統(tǒng) 66
2.4.6 定義客戶消息 68
第三章 ROS客戶端庫 70
3.1 概述 70
3.2 roscpp客戶端庫 71
3.2.1 簡單的主題發(fā)布者和主題訂閱者 72
3.2.2 簡單的服務器端和客戶端 78
3.2.3 roscpp中參數(shù)的使用 81
3.2.4 從節(jié)點句柄存取私有名稱 83
3.2.5 用類方法訂閱和回調服務 84
3.2.6 計時器 85
3.2.7 帶動態(tài)可重配置及參數(shù)服務器的主題發(fā)布者/訂閱者節(jié)點(C++) 87
3.2.8 帶動態(tài)可重配置及參數(shù)服務器的主題發(fā)布者/訂閱者節(jié)點(Python) 95
3.2.9 組合C++/Python主題發(fā)布者/訂閱者節(jié)點 101
3.3 rospy客戶端庫 101
3.3.1 簡單的主題發(fā)布者/訂閱者 101
3.3.2 簡單的服務端和客戶端 105
3.3.3 rospy中參數(shù)的使用 108
3.3.4 rospy中numpy的使用 109
3.3.5 rospy運行日志 113
3.3.6 ROSPython Makefile 文件 115
3.3.7 設置PYTHONPATH 116
3.3.8 發(fā)布消息 116
3.4 roslisp客戶端庫 117
3.5 實驗階段的客戶端庫 117
3.5.1 rosjava 117
3.5.2 roslua 117
第四章 OpenCV 119
4.1 image common功能包集 119
4.1.1 image transport功能包 119
4.1.2 camera calibration parsers功能包 124
4.1.3 camera info manager功能包 126
4.1.4 polled camera功能包 127
4.2 image pipeline功能包集 127
4.3 vision opencv功能包集 128
4.3.1 opencv2 128
4.3.2 cv bridge 128
4.3.3 image geometry 139
4.4 投影tf坐標系到圖像(C++) 140
4.5 演示例子 145
4.5.1 使用顏色追蹤物體 145
4.5.2 識別物體 148
第五章 SLAM和導航 150
5.1 使用tf配置機器人 150
5.2 通過ROS發(fā)布里程計信息 154
5.3 通過ROS發(fā)布傳感器數(shù)據(jù)流 158
5.4 SLAM 163
5.4.1 SLAM簡介 163
5.4.2 slam gmapping功能包 163
5.4.3 使用記錄的數(shù)據(jù)建立地圖 167
5.4.4 模擬器中建立地圖 168
5.4.5 模擬器中使用客戶定制地圖 170
5.5 配置和使用導航功能包集 172
5.5.1 導航功能包集基本操作 172
5.5.2 在機器人上設置和配置導航功能包集 173
5.5.3 rviz與導航功能包集配合使用 176
5.5.4 發(fā)送目標到導航功能包集 178
第六章 抓取操作 182
6.1 機器人手臂的運動規(guī)劃 182
6.1.1 安裝和配置 182
6.1.2 編譯手臂導航功能包集 182
6.1.3 啟動模擬器和仿真環(huán)境 183
6.1.4 啟動相關節(jié)點 183
6.1.5 控制手臂運動 185
6.2 運動規(guī)劃的環(huán)境表示 203
6.2.1 基于自濾波數(shù)據(jù)構建碰撞地圖 203
6.2.2 檢測關節(jié)軌跡碰撞 208
6.2.3 給定機器人狀態(tài)下的碰撞檢測 212
6.2.4 添加已知點到運動規(guī)劃環(huán)境 219
6.2.5 添加物體到機器人本體 224
6.3 用于PR2機器人手臂的運動學 230
6.3.1 從PR2運動學開始 230
6.3.2 從運動學節(jié)點獲取運動學求解器信息 231
6.3.3 PR2手臂運動學正解 233
6.3.4 PR2手臂運動學逆解 237
6.3.5 PR2手臂無碰撞運動學逆解 240
6.4 用于PR2機器人手臂的安全軌跡控制 245
6.5 使用軌跡濾波節(jié)點進行軌跡濾波 247
6.5.1 生成無碰撞三次樣條軌跡 247
6.5.2 使用軌跡濾波服務器對關節(jié)軌跡進行濾波 248
6.5.3 學習如何創(chuàng)建自己的軌跡濾波 253
6.6 機器人狀態(tài)和軌跡可視化 256
第七章 Kinect 260
7.1 Kinect簡介 260
7.2 安裝驅動 261
7.2.1 Ubuntu系統(tǒng)上安裝Kinect 261
7.2.2 基于源的安裝 261
7.3 測試 263
7.3.1 測試Kinect彩色攝像機 263
7.3.2 測試Kinect深度攝像機 263
7.3.3 測試Kinect馬達 264
7.4 openni camera 264
7.5 openni tracker 268
第八章 點云庫 270
8.1 PCL簡介 270
8.1.1 PCL架構 270
8.1.2 PCL數(shù)據(jù)結構 272
8.1.3 PCL與ROS的集成 273
8.2 PCL可視化庫 273
8.3 PCL與Kinect連接 279
8.4 例子 284
第九章 綜合演示示例 288
9.1 實驗一:SLAM(即時定位與地圖構建) 288
9.2 實驗二:機器人導航 294
9.3 實驗三:識別并抓取物體 300
參考文獻 303
彩圖