发表于2024-11-26
ROS機器人高效編程(原書第3版) pdf epub mobi txt 電子書 下載 2024
對於非專業人員,你將從本書瞭解如何安裝ROS,如何開始使用ROS的基本工具和框架中不同的功能。
對於專業人員,你將從本書學會如何使用硬件,如何將你的算法應用到現實環境中,從而創建一個滿足你所有需求的功能齊全的機器人。
在本書中,你將瞭解如何安裝ROS,如何開始使用ROS的基本工具和框架中不同的功能,並從不同方嚮探索如何創建機器人,例如使用計算機視覺或點雲分析傳感器感知的世界,使用強大的導航功能包集在環境中實現導航,甚至能夠用MoveIt!控製機械臂與周圍環境交互。讀完本書後,你會發現已經可以使用ROS機器人進行工作瞭,並理解其背後的原理,我們衷心希望你能全麵瞭解ROS在開發機器人係統時所提供的無限可能性。
推薦序一
推薦序二
譯者序
前言
作者簡介
審校者簡介
第1章 ROS入門 1
1.1 PC安裝教程 3
1.2 使用軟件庫安裝ROS Kinetic 3
1.2.1 配置Ubuntu軟件庫 4
1.2.2 添加軟件庫到sources.list
文件中 4
1.2.3 設置密鑰 5
1.2.4 安裝ROS 5
1.2.5 初始化rosdep 6
1.2.6 配置環境 6
1.2.7 安裝rosinstall 7
1.3 如何安裝VirtualBox和Ubuntu 8
1.3.1 下載VirtualBox 8
1.3.2 創建虛擬機 9
1.4 通過Docker鏡像使用ROS 11
1.4.1 安裝Docker 11
1.4.2 獲取和使用ROS Docker
鏡像和容器 11
1.5 在BeagleBone Black上安裝
ROS Kinetic 12
1.5.1 準備工作 13
1.5.2 配置主機和source.list
文件 16
1.5.3 設置密鑰 16
1.5.4 安裝ROS功能包 17
1.5.5 為ROS初始化rosdep 17
1.5.6 在BeagleBone Black中
配置環境 18
1.5.7 在BeagleBone Black中
安裝rosinstall 18
1.5.8 BeagleBone Black基本
ROS示例 18
1.6 本章小結 19
第2章 ROS架構及概念 20
2.1 理解ROS文件係統級 20
2.2 理解ROS計算圖級 25
2.3 理解ROS開源社區級 31
2.4 ROS試用練習 32
2.5 本章小結 57
第3章 可視化和調試工具 58
3.1 調試ROS節點 60
3.2 日誌消息 62
3.3 檢測係統狀態 69
3.4 設置動態參數 73
3.5 當齣現異常狀況時使用roswtf 75
3.6 可視化節點診斷 77
3.7 繪製標量數據圖 78
3.8 圖像可視化 81
3.9 3D可視化 83
3.10 保存與迴放數據 88
3.11 應用rqt與rqt_gui插件 93
3.12 本章小結 93
第4章 3D建模與仿真 95
4.1 在ROS中自定義機器人的3D
模型 95
4.2 創建第一個URDF文件 95
4.3 xacro——一種更好的機器人
建模方法 102
4.4 在ROS中仿真 109
4.5 本章小結 118
第5章 導航功能包集入門 119
5.1 ROS導航功能包集 119
5.2 創建變換 120
5.3 發布傳感器信息 124
5.4 發布裏程數據信息 127
5.5 創建基礎控製器 135
5.6 使用ROS創建地圖 139
5.7 本章小結 142
第6章 導航功能包集進階 144
6.1 創建功能包 144
6.2 創建機器人配置 144
6.3 配置全局和局部代價地圖 147
6.4 為導航功能包集創建啓動文件 150
6.5 為導航功能包集設置rviz 151
6.6 自適應濛特卡羅定位 160
6.7 使用rqt_reconf?igure修改參數 161
6.8 機器人避障 162
6.9 發送目標 163
6.10 本章小結 166
第7章 使用MoveIt! 167
7.1 MoveIt!體係結構 167
7.2 在MoveIt!中集成一個機械臂 171
7.3 簡單的運動規劃 180
7.4 考慮碰撞的運動規劃 184
7.5 抓取和放置任務 187
7.6 本章小結 199
第8章 在ROS下使用傳感器
和執行器 200
8.1 使用遊戲杆或遊戲手柄 200
8.2 使用Arduino添加更多的傳感器
和執行器 206
8.3 使用9自由度低成本IMU 217
8.4 使用IMU——Xsens MTi 225
8.5 GPS的使用 226
8.6 使用激光測距儀——Hokuyo
URG-04lx 230
8.7 創建launch文件 234
8.8 使用Kinect傳感器查看
3D環境中的對象 235
8.9 使用伺服電動機——Dynamixel 239
8.10 本章小結 243
第9章 計算機視覺 244
9.1 ROS攝像頭驅動程序支持 245
9.2 ROS圖像 255
9.3 ROS中的OpenCV庫 256
9.4 使用rqt_image_view顯示攝像頭
輸入的圖像 257
9.5 標定攝像頭 257
9.5.1 如何標定攝像頭 258
9.5.2 雙目標定 261
9.6 ROS圖像管道 264
9.7 計算機視覺任務中有用的ROS
功能包 269
9.8 使用RGBD深度攝像頭實現
9.9 計算兩幅圖像的單應性 278
9.10 本章小結 279
第10章 點雲 280
10.1 理解點雲庫 280
10.2 我的第一個PCL程序 283
10.3 分割 305
10.4 本章小結 308
Preface前言
本書第3版全麵地介紹瞭ROS和各種工具。ROS是一個先進的機器人操作係統框架,目前已有數百個研究團體和公司將其應用在機器人行業中。更重要的是,對於機器人技術的非專業人士和學生來說,它也相對容易上手。在本書中,你將瞭解如何安裝ROS,如何使用ROS的基本工具和框架中不同的功能。
在閱讀本書的過程中無須使用任何特殊的設備。書中每一章都附帶瞭一係列的源代碼示例和教程,你可以在自己的計算機上運行。這是你唯一需要做的事情。
當然,我們還會告訴你如何使用硬件,這樣可以將你的算法應用到現實環境中。我們在選擇設備時特意選擇一些業餘用戶購買得起的設備,同時涵蓋瞭在機器人研究中最典型的傳感器和執行器。
最後,展示ROS具有使整個機器人在實際或虛擬環境中工作的能力。你將學習如何創建自己的機器人並通過Gazebo仿真環境集成它。此外,如果使用Gazebo仿真環境,你將能夠在虛擬環境中運行一切。本書將帶你從不同方麵探索如何創建機器人,例如使用計算機視覺或點雲分析傳感器感知世界,使用強大的導航功能包集在環境中實現導航,甚至能夠用MoveIt!包控製機械臂與周圍環境交互。讀完本書後,你會發現已經可以使用ROS機器人進行工作瞭,並理解其背後的原理,我們衷心希望你能全麵瞭解ROS在開發機器人係統時所提供的無限可能性。
主要內容
第1章介紹安裝ROS最簡單的方法,以及如何在不同平颱上安裝ROS,本書使用的版本是ROSKinetic。這一章還會說明如何從Debian包安裝或從源代碼進行編譯安裝,以及在虛擬機、Docker和ARMCPU中安裝。
第2章討論ROS框架及相關的概念和工具。該章介紹節點、主題和服務,以及如何使用它們,還將通過一係列示例說明如何調試節點或利用可視化方法直觀地查看通過主題發布的消息。
第3章進一步展示ROS強大的調試工具,以及通過對節點主題的圖形化將節點間的通信數據可視化。ROS提供瞭一個日誌記錄API來輕鬆地診斷節點的問題。事實上,在使用過程中,我們會看到一些功能強大的圖形化工具(如rqt_console和rqt_graph),以及可視化接口(如rqt_plot和rviz)。最後介紹如何使用rosbag和rqt_bag記錄並迴放消息。
第4章介紹在ROS中實現機器人的第一步是創建一個機器人模型,包括在Gazebo仿真環境中如何從頭開始對一個機器人進行建模和仿真,並使其在仿真環境中運行。你也可以仿真攝像頭和激光測距傳感器等傳感器,為後續學習如何使用ROS的導航功能包集和其他工具奠定基礎。
第5章是關於ROS導航功能包集中的其中一章。該章介紹如何為方便機器人使用導航功能包集進行初始化配置。然後用幾個例子對導航功能包集進行說明。
第6章延續第5章的內容,介紹如何使用導航功能包集使機器人有效地自主導航。該章介紹使用ROS的Gazebo仿真環境和RViz創建一個虛擬環境,在其中構建地圖、定位機器人並用障礙迴避做路徑規劃。
第7章討論ROS中移動機器人機械臂的一個工具包。該章包含安裝這個包所需要的文檔,以及使用MoveIt!操作機械臂進行抓取、放置、簡單的運動規劃等任務的演示示例。
第8章介紹ROS與現實世界如何連接。這一章介紹在ROS下使用的一些常見傳感器和執行器,如激光雷達、伺服電動機、攝像頭、RGB-D傳感器、GPS等。此外,還會解釋如何使用嵌入式係統與微控製器(例如非常流行的Arduino開發闆)。
第9章介紹ROS對攝像頭和計算機視覺任務的支持。首先使用FireWire和USB攝像頭驅動程序將攝像頭連接到計算機並采集圖像。然後,就可以使用ROS的標定工具標定攝像頭。該章會詳細介紹和說明什麼是圖像管道,討論如何使用集成瞭OpenCV的多個機器視覺API。最後,安裝並使用一個視覺裏程計軟件。
第10章將展示如何在ROS節點中使用點雲庫(PointCloudLibrary,PCL)。該章從基本功能入手,如讀或寫PCL數據片段以及發布或訂閱這些消息所必需的轉換。然後,將在不同節點間創建一個管道來處理3D數據,以及使用PCL進行縮減采樣、過濾和搜索特徵點。
預備知識
我們寫作本書的目的是讓每位讀者都可以完成本書的學習並運行示例代碼。基本上,你隻需要在計算機上安裝一個Linux發行版。雖然每個Linux發行版應該都能使用,但還是建議你使用Ubuntu16.04LTS。這樣你可以根據第1章的內容安裝ROSKinetic。
對於硬件要求,一般來說,任何颱式計算機或筆記本電腦都滿足。但是,最好使用獨立顯卡來運行Gazebo仿真環境。此外,最好有足夠的外圍接口,因為這樣你可以連接幾個傳感器和執行器,包括攝像頭和Arduino開發闆。
你還需要Git(git-coreDebian包),以便從本書提供的源代碼中復製軟件庫。同樣,你需要具備Bash命令行、GNU/Linux工具的基本知識和一些C/C++編程技巧。
目標讀者
本書的目標讀者包括所有機器人開發人員,可以是初學者也可以是專業人員。它涵蓋瞭整個機器人係統的各個方麵,展示瞭ROS如何幫助開發人員完成使機器人真正自主化的任務。對於聽說過卻從未使用過ROS的機器人專業學生或科研人員來說,本書將是非常有益的。ROS初學者能從本書中學習ROS軟件框架的很多先進理念和工具。不僅如此,經常使用ROS的用戶也可能從某些章節中學習到一些新東西。當然,隻有前3章是純粹為初學者準備的,所以那些已經使用過ROS的人可以跳過這三章直接閱讀後麵的章節。
源代碼和彩色圖片下載
本書源代碼可以從華章官網www.hzbook.com下載。
作者簡介AbouttheAuthors
AnilMahtani是一名主要從事水下機器人工作研發的計算機科學傢。他第一次在該領域工作是在完成碩士論文期間為低成本ROV開發軟件架構。在此期間,他也成為AVORA的團隊領導者和主要開發人員,這個大學生團隊設計開發瞭一個自主水下航行器並參加瞭2012年的歐洲學生自主水下航行器設計挑戰賽(StudentAutonomousUnderwaterChallenge-Europe,SAUC-E)。同年,他完成瞭論文並獲得瞭拉斯帕爾馬斯大學的計算機科學碩士學位。此後不久,他成為SeeByte公司的軟件工程師,這傢公司是水下係統智能軟件解決方案的全球領導者。在2015年,他加入SecureWorks公司,任職軟件工程師,在那裏他應用相關知識和技術開發入侵檢測和預防係統。
在SeeByte公司工作期間,Anil參與瞭軍方、石油和天然氣公司的一些半自主和自主水下係統的核心開發。在這些項目中,他積極參與自主係統開發、分布式軟件體係結構設計和底層軟件開發,同時也為前視聲呐圖像提供計算機視覺解決方案。他還獲得瞭項目經理職位,管理一個開發和維護內核C++庫的工程師團隊。
他的專業興趣主要包括軟件工程、算法、數據結構、分布式係統、網絡和操作係統。Anil在機器人方嚮主要負責提供高效和健壯的軟件解決方案,不僅解決當前存在的問題,還預見未來的問題或可能的改進。鑒於他的經驗,他在計算機視覺、機器學習和控製問題上也有獨特的見解。Anil對DIY和電子學感興趣,並且開發瞭一些Arduino庫迴饋社區。
首先,我要感謝傢人和朋友的支持,他們總是在我最需要的時候幫助我。我還要感謝我的女友Alex的耐心支持,她是我靈感的源泉。最後,我要感謝我的同事IhorBilyy和DanGood,在我軟件工程師職業生涯中他們以專業的方式教會我很多知識。
LuisSánchez在拉斯帕爾馬斯大學獲得瞭電子與電信工程的雙碩士學位。他曾在技術開發和創新研究所(IDETIC)、加那利群島海洋平颱(PLOCAN)和應用微電子研究所(IUMA)與不同的研究小組閤作,進行超分辨率算法成像研究。
他的專業興趣包括應用於機器人係統的計算機視覺、信號處理和電子設計。因此,他加入瞭AVORA團隊,這批年輕的工程師和學生從零開始從事自主水下航行器(AUV)的開發工作。在這個項目中,Luis開始開發聲學和計算機視覺係統,用於提取不同傳感器的信息,例如水聽器、聲呐和攝像頭。
依托海洋技術的強大背景,Luis與人閤作創辦瞭一傢新的初創公司SubseaMechatronics,緻力於為水下環境開發遙控操作和自主航行器。
下麵是海洋技術工程師和企業傢(LPAFabrika:GranCanariaMakerSpace的聯閤創始人和製造商)DarioSosaCabrera對Luis的評價:
“他很熱情,是一個跨多學科的工程師。他對工作負責,自製力強,並承擔一個團隊領導者的責任,這在euRathlon比賽中充分展現瞭齣來。他在電子和電信領域的背景讓其具備從信號處理和軟件到電子設計和製造的廣泛專業知識。”
Luis作為技術審校者參與瞭Packt齣版社齣版的《LearningROSforRoboticsProgramming》的相關工作以及第2版的撰寫工作。
首先,我要感謝Aaron、Anil以及Enrique邀請我參與編寫這本書。同他們一起工作非常快樂。同時,我也要感謝水下機電團隊關於重型水下機器人的豐富經驗,這些年我們一起成長。我必須提到LPAFabrika:GranCanariaMakerSpace,他們滿腔熱忱地準備和引導教學機器人及技術項目,與他們共同工作的時光也非常開心。
最後,我要感謝傢人和女友對我參與的每個項目的大力支持和鼓勵。我以此書獻給他們。
EnriqueFernández具有計算機工程博士學位和機器人學研究背景。他的博士論文解決瞭自主水下滑翔器(AUG)的路徑規劃問題,他還研究瞭SLAM、感知、視覺、控製等機器人學課題。在讀博士期間,他加盟瞭赫羅納大學的CIRS/ViCOROB水下機器人研究中心,在那裏他為AUV開發瞭視覺SLAM和INS模塊。他在2012年參加瞭SAUC-E並獲奬,在2013年作為閤作者參與瞭SAUC-E。
攻讀博士學位期間,Enrique在機器人頂級會議和期刊上發錶瞭多篇論文,其中包括國際機器人和自動化會議(InternationalConferenceofRoboticsandAutomation,ICRA)。他也閤作編寫瞭一些ROS書籍和章節。
之後,Enrique作為SLAM工程師在2013年6月加盟PALRobotics公司。在那裏,他開發瞭用於REEM、REEM-C仿人型機器人的ROS軟件,也繼續為開源社區(主要是ROS控製軟件庫)做貢獻,目前仍是其中一名維護人員。在2015年,他加盟ClearpathRobotics公司的自主係統部門,從事感知算法開發相關工作。他曾經在通用電氣公司(GeneralElectri ROS機器人高效編程(原書第3版) 下載 mobi epub pdf txt 電子書
好玩有用的技術書
評分嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎
評分不錯
評分從基礎開始,從係統的安裝開始講解,適閤入門學習。
評分嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎
評分ROS設計,努力學習中
評分坑爹的京東自營,實在無語。3月9日到達分撥中心,整整浪費瞭一個星期的時間,一直送不來。催單不管用,找客服還是不管用,最後打投訴電話,想把人摺騰死嗎?最可惡的是還不能給差評,京東實在是太惡心瞭!
評分快遞小哥服務態度好,物流快
評分好書,專業,前沿,價格吸引人
ROS機器人高效編程(原書第3版) pdf epub mobi txt 電子書 下載