更多精彩,點擊進入華章品牌店查閱>>
本書提供瞭各種實際的示例代碼供讀者學習和理解ROS的軟件框架。你可以在仿真環境中自行構建機器人相應的功能程序,並在ROS社區中分享你的學習心得和知識。
Enrique Fernández是一名計算機工程師和機器人專傢。他碩士畢業於拉斯帕爾馬斯大學智能係統與計算工程學院。在2012年參加瞭歐洲學生自主式水下挑戰(SAUC-E),並作為閤作者參加瞭2013年的比賽。 2012年,他因開發水下雲颱視覺係統而獲奬。現在,他是Pal-Robotics實驗室的SLAM工程師。Enrique在博士學習期間發錶瞭數篇學術論文和專著。其中,有兩篇論文在2011年被國際機器人與自動化會議(ICRA 2011)所收錄。
譯者序
前 言
第1章 ROS係統入門 1
1.1 使用軟件源安裝ROS Electric 3
1.1.1 添加軟件源到sources.list文件中 4
1.1.2 設置密碼 4
1.1.3 安裝 4
1.1.4 環境配置 5
1.2 使用軟件源安裝ROS Fuerte 6
1.2.1 配置Ubuntu軟件源 6
1.2.2 配置source.list文件 6
1.2.3 設置密碼 7
1.2.4 安裝 7
1.2.5 環境配置 8
1.2.6 獨立工具 9
1.3 如何安裝VirtualBox和Ubuntu 9
1.3.1 下載VirtualBox 9
1.3.2 創建虛擬機 10
1.4 本章小結 12
第2章 ROS係統架構及示例 13
2.1 理解ROS文件係統級 13
2.1.1 功能包 14
2.1.2 功能包集 16
2.1.3 消息類型 16
2.1.4 服務類型 17
2.2 理解ROS計算圖級 18
2.2.1 節點 19
2.2.2 主題 20
2.2.3 服務 21
2.2.4 消息 22
2.2.5 消息記錄包 22
2.2.6 節點管理器 22
2.2.7 參數服務器 22
2.3 理解ROS開源社區級 23
2.4 ROS係統試用練習 23
2.4.1 ROS文件係統導覽 24
2.4.2 創建工作空間 24
2.4.3 創建ROS功能包 25
2.4.4 編譯ROS功能包 26
2.4.5 使用ROS節點 26
2.4.6 使用主題與節點交互 28
2.4.7 學習如何使用服務 31
2.4.8 使用參數服務器 33
2.4.9 創建節點 34
2.4.10 編譯節點 36
2.4.11 創建msg和srv文件 37
2.4.12 使用新建的srv和msg文件 38
2.5 本章小結 42
第3章 調試和可視化 43
3.1 調試ROS節點 44
3.1.1 使用GDB調試器調試ROS節點 45
3.1.2 ROS節點啓動時調用GDB調試器 46
3.1.3 設置ROS節點core文件轉存 47
3.2 調試信息 47
3.2.1 輸齣調試信息 47
3.2.2 設置調試信息級彆 48
3.2.3 為特定節點配置調試信息級彆 48
3.2.4 信息命名 50
3.2.5 條件顯示信息與過濾信息 50
3.2.6 信息的更多功能——單次顯示、可調、組閤 51
3.2.7 使用rosconsole和rxconsole在運行時修改調試級彆 52
3.3 監視係統狀態 56
3.3.1 節點、主題與服務列錶 56
3.3.2 使用rxgraph在綫監視節點狀態圖 56
3.4 當奇怪的事情發生——使用roswtf 58
3.5 畫標量數據圖 58
3.5.1 用rxplot畫齣時間趨勢麯綫 59
3.5.2 另一個畫圖工具rxtools 60
3.6 圖像可視化 61
3.6.1 顯示單一圖片 61
3.6.2 FireWire接口攝像頭 62
3.6.3 使用雙目立體視覺 63
3.7 3D可視化 64
3.7.1 使用rviz在3D世界中實現數據可視化 64
3.7.2 主題與坐標係的關係 66
3.7.3 可視化坐標變換 67
3.8 保存與迴放數據 68
3.8.1 什麼是消息記錄包文件 69
3.8.2 使用rosbag在包文件中記錄數據 69
3.8.3 迴放消息記錄文件 70
3.8.4 使用rxbag檢查消息記錄包的主題和消息 71
3.9 rqt插件與rx應用 72
3.10 本章小結 73
第4章 在ROS下使用傳感器和執行機構 74
4.1 使用遊戲杆或遊戲手柄 74
4.1.1 joy_node如何發送遊戲杆動作消息 75
4.1.2 使用遊戲杆數據在turtlesim中移動海龜 76
4.2 使用激光雷達——Hokuyo URG-04lx 79
4.2.1 瞭解激光雷達如何在 ROS 中發送數據 80
4.2.2 訪問和修改激光雷達數據 82
4.3 使用Kinect傳感器查看3D環境 84
4.3.1 如何發送和查看Kinect數據 85
4.3.2 創建和使用Kinect示例 86
4.4 使用伺服電動機——Dynamixel 88
4.4.1 Dynamixel如何發送和接收運動命令 89
4.4.2 創建和使用伺服電動機示例 90
4.5 使用Arduino添加更多的傳感器和執行機構 91
4.6 使用慣性測量模組——Xsens MTi 94
4.6.1 Xsens如何在ROS中發送數據 95
4.6.2 創建和使用Xsens示例 96
4.7 使用低成本慣性測量模組IMU-10自由度 98
4.7.1 下載加速度傳感器庫 99
4.7.2 Arduino Nano和10自由度傳感器編程 99
4.7.3 創建ROS節點並使用10自由度傳感器數據 101
4.8 本章小結 103
第5章 3D建模與仿真 104
5.1 自定義機器人在ROS中的3D模型 104
5.2 創建第一個URDF文件 104
5.2.1 解釋文件格式 106
5.2.2 在rviz裏查看3D模型 107
5.2.3 加載圖形到機器人模型 109
5.2.4 使機器人模型運動 109
5.2.5 物理和碰撞屬性 110
5.3 xacro——一個寫機器人模型的更好方法 111
5.3.1 使用常量 111
5.3.2 使用數學方法 112
5.3.3 使用宏 112
5.3.4 使用代碼移動機器人 112
5.3.5 使用SketchUp進行3D建模 116
5.4 在ROS中仿真 117
5.4.1 在Gazebo中使用URDF3D模型 117
5.4.2 在Gazebo中添加傳感器 120
5.4.3 在Gazebo中加載和使用地圖 121
5.4.4 在Gazebo中移動機器人 123
5.5 本章小結 125
第6章 機器視覺 126
6.1 連接和運行攝像頭 128
6.1.1 FireWire IEEE1394 攝像頭 128
6.1.2 USB攝像頭 132
6.2 使用OpenCV製作USB攝像頭驅動程序 133
6.2.1 創建 USB 攝像頭驅動功能包 134
6.2.2 使用ImageTransport API發布攝像頭幀 135
6.2.3 使用 cv_bridge 進行OpenCV 和 ROS 圖像處理 138
6.2.4 使用ImageTransport 發布圖像 139
6.2.5 在ROS中使用OpenCV 139
6.2.6 顯示攝像頭輸入的圖像 140
6.3 如何標定攝像頭 140
6.4 ROS 圖像管道 147
6.5 對於計算機視覺任務有用的 ROS功能包 152
6.6 使用viso2執行視覺測距 153
6.6.1 攝像頭位姿標定 154
6.6.2 運行 viso2 在綫演示 156
6.6.3 使用低成本雙目攝像頭運行 viso2 158
6.7 本章小結 159
第7章 導航功能包集入門 160
7.1 ROS導航功能包集 160
7.2 創建轉換 161
7.2.1 創建廣播機構 162
7.2.2 創建偵聽器 162
7.2.3 查看坐標變換樹 164
7.3 發布傳感器信息 165
7.4 發布裏程數據 168
7.4.1 Gazebo如何獲取裏程數據 169
7.4.2 創建自定義裏程數據 171
7.5 創建基礎控製器 175
7.5.1 使用Gazebo 創建裏程數據 176
7.5.2 創建基礎控製器 178
7.6 使用ROS創建地圖 180
7.6.1 使用map_server保存地圖 181
7.6.2 使用map_server加載地圖 182
7.7 本章小結 183
第8章 導航功能包集進階 184
8.1 創建功能包 184
8.2 創建機器人配置 184
8.3 配置全局和局部代價地圖 187
8.3.1 基本參數的配置 187
8.3.2 全局代價地圖的配置 188
8.3.3 局部代價地圖的配置 189
8.4 基本局部規劃器配置 189
8.5 為導航功能包集創建啓動文件 190
8.6 為導航功能包集設置rviz 191
8.6.1 2D位姿估計 191
8.6.2 2D導航目標 192
8.6.3 靜態地圖 193
8.6.4 點雲 193
8.6.5 機器人立足點 193
8.6.6 障礙 194
8.6.7 膨脹障礙 194
8.6.8 全局規劃 195
8.6.9 局部規劃 195
8.6.10 規劃器規劃 196
8.6.11 當前目標 196
8.7 自適應濛特卡羅定位 197
8.8 避免障礙 199
8.9 發送目標 200
8.10 本章小結 202
第9章 在實踐中學習 203
9.1 REEM——類人形PAL機器人 204
9.1.1 從官方軟件源安裝REEM 205
9.1.2 使用Gazebo仿真環境運行REEM 208
9.2 PR2——柳樹車庫機器人 210
9.2.1 安裝 PR2仿真環境 210
9.2.2 在仿真環境中運行PR2 211
9.2.3 生成地圖與定位 214
9.2.4 在仿真環境中運行PR2演示程序 216
9.3 Robonaut 2——NASA的敏捷型人形機器人 217
9.3.1 從軟件源安裝Robonaut 2 217
9.3.2 在國際空間站的固定支座上運行Robonaut2 218
9.4 Husky——Clearpath的輪式機器人 222
9.4.1 安裝Husky仿真環境 222
9.4.2 運行Husky仿真環境 222
9.5 TurtleBot——低成本移動機器人 224
9.5.1 安裝TurtleBot仿真環境 224
9.5.2 運行TurtleBot仿真環境 224
9.6 本章小結 225
我一直對機器人技術抱有濃厚的興趣,尤其是ROS這個在行業內如此重要的平颱。然而,市麵上關於ROS的書籍,很多都過於理論化,或者隻是簡單地堆砌代碼,很難真正地觸及核心。這本書的齣現,真的填補瞭我一直以來的空白。它沒有迴避ROS的復雜性,但卻以一種非常巧妙的方式,將那些看似棘手的概念一一拆解,然後以一種非常自然的方式重新組閤起來。我特彆喜歡作者在講解一些高級概念時,會先從一個簡單的場景入手,然後逐步引入更復雜的元素,這樣層層遞進,讓人感覺很有成就感。而且,書中的代碼示例都非常貼近實際,不僅僅是“能跑”的代碼,更重要的是“好理解”、“易於修改”的代碼,並且對代碼的每一部分都做瞭詳細的解釋,讓你明白為什麼這麼寫,而不是死記硬背。通過閱讀這本書,我不僅學會瞭如何使用ROS的功能,更重要的是,我開始理解ROS的設計哲學,學會瞭如何用ROS的思維去解決機器人遇到的各種問題。這不僅僅是一本書,更像是一位經驗豐富的導師,在我探索ROS的道路上給予瞭極大的指引。
評分說實話,一開始我對這本書的期望值並不是很高,畢竟ROS領域的好書並不多見,很多都顯得不夠深入或者年代久遠。但是,這本書完全超齣瞭我的預期!它沒有停留在ROS的基礎概念上,而是直接切入瞭ROS的核心應用和進階技巧,讓我感覺像是在參加一場精心策劃的機器人項目實戰訓練營。作者在講解每一個功能的時候,都會結閤一個具體的案例,比如激光雷達數據處理、SLAM算法的實現、或者機械臂的運動學求解,這些都是我在實際工作中經常會遇到的問題。更難得的是,書中對這些案例的處理不是蜻蜓點水,而是進行瞭深入的剖析,從算法原理到ROS節點的實現,再到參數的調優,都給齣瞭非常詳細的指導。我尤其欣賞書中關於“模塊化設計”和“代碼復用”的強調,這讓我明白瞭如何構建一個健壯、易於維護的ROS係統,而不是寫齣那種“一次性”的代碼。讀完這本書,我感覺自己對ROS的掌握程度有瞭質的飛躍,不僅能夠熟練地運用ROS的工具,更能從容地應對各種復雜的機器人開發挑戰。
評分對於我這種習慣瞭從實踐中學習的人來說,一本好的技術書籍,最重要的就是能夠引人入勝,並且真正地解決問題。這本書在這兩點上都做得非常齣色。作者的語言風格非常生動有趣,不像一些技術書籍那樣枯燥乏味,讀起來有一種在和一位資深工程師交流的感覺。他會用很多類比和比喻來解釋抽象的概念,讓我能夠快速地理解。而且,書中提供的每一個例子,都不僅僅是演示某個ROS功能,而是圍繞著一個實際的機器人應用場景展開,比如如何構建一個簡單的自主導航係統,或者如何實現一個遙控機器人。這些例子不僅讓我學會瞭ROS的API,更讓我理解瞭如何將這些API組閤起來,解決實際問題。最讓我驚喜的是,書中還包含瞭一些關於ROS係統性能優化和故障排查的技巧,這些內容在很多其他書籍中都很難找到,對於我們這些需要將ROS應用於實際項目開發的人來說,簡直是寶藏。讀完這本書,我感覺自己仿佛擁有瞭一套完整的ROS開發工具箱,信心倍增!
評分這本書給我最深刻的感受就是,它不僅僅是一本教你“怎麼用”ROS的書,更是一本教你“為什麼這麼用”ROS的書。作者在講解每一個ROS組件的時候,都會深入地探討其背後的設計理念和原理,讓我能夠從更宏觀的層麵去理解ROS的體係結構。例如,在講解ROS的通信機製時,作者並沒有止步於話題和服務的簡單介紹,而是深入分析瞭ROS的發布/訂閱模式和請求/響應模式的優缺點,以及它們在不同場景下的適用性。他還通過一些實際的例子,展示瞭如何設計高效、可靠的ROS通信鏈路。此外,書中還對ROS的包管理、參數服務器、TF變換等核心概念進行瞭詳細的闡述,並且給齣瞭很多實用的開發建議。讓我印象深刻的是,作者還介紹瞭一些ROS開發中常用的高級技巧,比如如何編寫自定義消息類型,如何集成第三方庫,以及如何進行單元測試和仿真測試。讀完這本書,我感覺自己對ROS的理解進入瞭一個新的層次,不僅能夠熟練地開發ROS應用,更能站在更高的角度去設計和優化ROS係統。
評分這本書真的徹底改變瞭我對ROS的看法!我之前一直覺得ROS是個高不可攀的“黑箱”,光是概念就讓人頭大。但讀完之後,我驚喜地發現,原來那些復雜的指令和框架背後,有著如此清晰的邏輯和易於理解的設計。作者的講解方式非常棒,不是那種枯燥地羅列API,而是從實際應用場景齣發,一步步引導讀者去構建和理解。舉個例子,書中對於話題、服務、動作的講解,不是簡單地定義,而是通過生動的例子,比如“機器人手臂抓取物品”或者“無人機路徑規劃”,讓我直觀地感受到它們在實際任務中是如何協同工作的。而且,作者還很細心地考慮到瞭初學者可能會遇到的問題,比如各種配置文件的含義、節點之間的通信故障如何排查等等,都給齣瞭詳細的解答和建議。最讓我印象深刻的是,書中反復強調的“ROS哲學”,讓我明白瞭ROS的強大之處不僅僅在於其功能,更在於其開放、模塊化和可擴展的設計理念。讀完這本書,我感覺自己不再是那個對著ROS文檔發呆的小白,而是真正掌握瞭與機器人“溝通”的語言,迫不及待地想用它來實踐我的各種想法瞭!
評分本書可以幫助讀者從對ROS一無所知到能夠通過ROS係統完成小型機器人係統的開發和編程工作。
評分很好,京東超級?,值得信賴!
評分還沒看完 這本書很基礎 很多都能在網上找到類似教程 不過有些有些內容還是不好找的 畢竟還是便宜 性價比高
評分挺好的,正版
評分包裝不錯,滿減,實惠
評分還行,物流很快,值得信賴!
評分其實有電子書的。。這書就是翻譯瞭英文WIKi 。。不是入門必備
評分非常不錯的書,正要好好看瞭
評分太多的直接翻譯,早知道不買瞭
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有