注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術工業(yè)技術自動化技術、計算技術ROS機器人程序設計(原書第2版)

ROS機器人程序設計(原書第2版)

ROS機器人程序設計(原書第2版)

定 價:¥69.00

作 者: [西班牙] 恩里克·費爾南德斯 等 著;劉錦濤 譯
出版社: 機械工業(yè)出版社
叢編項: 機器人設計與制作系列
標 簽: 工業(yè)技術 自動化技術

購買這本書可以去


ISBN: 9787111551058 出版時間: 2016-10-01 包裝: 平裝
開本: 16開 頁數: 296 字數:  

內容簡介

  無論是業(yè)余愛好者還是專業(yè)的機器人開發(fā)人員,在開始進行機器人系統(tǒng)及程序設計時,首先要面對的問題都是基本的如何驅動機器人的輪子的設計。ROS通過軟件代碼復用集成了眾多已經開發(fā)完成的功能組件。本書專門幫助讀者從對ROS一無所知到能夠通過ROS系統(tǒng)完成小型機器人系統(tǒng)的開發(fā)和編程工作。本書提供了各種實際的示例代碼供讀者學習和理解ROS的軟件框架。你可以在仿真環(huán)境中自行構建機器人相應的功能程序。本書第2版在第1版的基礎上增加了與ROSHydro一起工作,如何創(chuàng)建、可視化和處理不同傳感器的點云信息,如何控制和利用多關節(jié)機械臂,并提供簡單易懂的實用教程編寫自己的機器人。

作者簡介

  About the Authors作者簡介Enrique Fernández在拉斯帕爾馬斯大學獲得計算機工程博士學位,目前是Clearpath Robotics公司高級機器人工程師。2009年他完成了關于SLAM的碩士學位論文。2013年他的博士論文解決了自主水下滑翔器(AUG)的路徑規(guī)劃問題。那段時間,他還研究了計算機視覺、人工智能以及其他機器人學課題,例如赫羅納大學的CIRS/ViCOROB研究實驗室AUV的慣性導航系統(tǒng)和視覺SLAM。他在2012年參加了歐洲學生自主水下航行器設計挑戰(zhàn)賽(Student Autonomous Underwater Challenge-Europe,SAUC-E)并獲獎,在2013年作為合作者參與了SAUC-E?!~@得博士學位后,Enrique作為高級機器人工程師在2013年6月加入PAL Robotics公司的自主導航部門。在那里,他開發(fā)了用于REEM、REEM-C和移動機器人以及相關項目的軟件,如使用ROS框架的Stockbot。他的研究方向包括運動規(guī)劃(路徑規(guī)劃和移動機器人控制)、機器人定位和SLAM。在2015年,他作為高級自主系統(tǒng)開發(fā)人員加盟Clearpath Robotics公司的自主系統(tǒng)部門從事SLAM相關工作。 在學術方面,Enrique發(fā)表了多篇會議論文,其中兩篇于2011年發(fā)表在《International Conference of Robotics and Automation》(ICRA)上。他是Packt Publishing出版的第1版《ROS機器人程序設計》和其他一些書部分章節(jié)的作者。他的碩士學位論文是關于室內機器人的FastSLAM算法,此機器人裝備了SICK激光掃描儀以及Pioneer差動平臺的輪式里程計。他的博士學位論文是關于AUG的路徑規(guī)劃算法和工具。他還擁有電子和嵌入式系統(tǒng)(如PC104和Arduino)的開發(fā)經驗。他的研究背景包括SLAM、計算機視覺、路徑規(guī)劃、優(yōu)化、機器人學和人工智能。 我要感謝這本書的合著者,感謝他們?yōu)橥瓿蛇@本書所付出的努力以及提供了無數示例的代碼。我還要感謝博士論文期間大學智能系統(tǒng)和計算工程研究所(University Institute of Intelligent Systems and Computational Engineering,SIANI)和水下機器人研究中心(Center of Underwater Robotics Research,CIRS/ViCOROB)的研究小組成員。我也要感謝在PAL機器人公司的同事,在那里我學到很多關于ROS、機器人運動以及仿人雙足機器人的知識,不僅有軟件,還有電子和硬件設計。后,我要感謝我的家人和朋友的幫助與支持?!uis Sánchez Crespo在拉斯帕爾馬斯大學獲得了電子與電信工程的雙碩士學位。他曾在技術開發(fā)和創(chuàng)新研究所(IDETIC)、加那利群島海洋平臺(PLOCAN)和應用微電子研究所(IUMA)與不同的研究小組合作,進行超分辨率算法成像研究?!∷膶I(yè)興趣包括應用于機器人系統(tǒng)的計算機視覺、信號處理和電子設計。因此,他加入了AVORA團隊,這批年輕的工程師和學生從零開始從事自主水下航行器(AUV)的開發(fā)工作。在這個項目中,Luis開始開發(fā)聲學和計算機視覺系統(tǒng),用于提取不同傳感器的信息,例如水聽器、聲吶和攝像頭?!∫劳泻Q蠹夹g的強大背景,Luis與人合作創(chuàng)辦了一家新的初創(chuàng)公司Subsea Mechatronics,致力于為水下環(huán)境開發(fā)遙控操作和自主航行器?!∠旅媸呛Q蠹夹g工程師和企業(yè)家(LPA Fabrika:Gran Canaria Maker Space的聯合創(chuàng)始人和制造商)Dario Sosa Cabrera對Luis的評價: “他很熱情,是一個多學科的工程師。他對工作負責。他可以自我管理,并承擔一個團隊領導者的責任,如在SAUC-E競賽中領導了AVORA團隊。他在電子和電信領域的背景讓其具備從信號處理和軟件到電子設計和制造的廣泛專業(yè)知識?!薄uis作為技術審校者參與了Packt Publishing出版的第1版《ROS機器人程序設計》的相關工作?!∈紫?,我要感謝Aaron、Anil以及Enrique邀請我參與編寫這本書。和他們一起工作非??鞓贰M瑫r,我也要感謝水下機電團隊關于重型水下機器人的豐富經驗,這些年我們一起成長。我必須提到LPA Fabrika:Gran Canaria Maker Space,他們備課和講授教育機器人及技術項目極富熱情,與他們共享工作環(huán)境也非常令人激動?!『?,我要感謝我的家人和女朋友對我參與的每個項目的大力支持和鼓勵?!nil Mahtani是一名從事水下機器人工作5年的計算機科學家。他在該領域工作是在完成碩士論文期間為低成本ROV開發(fā)軟件架構。在此期間,他也成為AVORA的團隊領導者和主要開發(fā)人員,這個團隊的高校學生設計和開發(fā)了一個自主水下航行器并參加了2012年的SAUC-E。同年,他完成了論文并獲得了拉斯帕爾馬斯大學的計算機科學碩士學位。此后不久,他成為SeeByte公司的軟件工程師,這家公司是水下系統(tǒng)智能軟件解決方案的全球領導者?!≡赟eeByte公司工作期間,Anil參與了軍方、石油和天然氣公司的一些半自主和自主水下系統(tǒng)的核心開發(fā)。在這些項目中,他積極參與自主系統(tǒng)開發(fā)、分布式軟件體系結構設計和底層軟件開發(fā),同時也為前視聲吶圖像提供計算機視覺解決方案。他還獲得了項目經理職位,管理一個開發(fā)和維護內核C++庫的工程師團隊?!∷膶I(yè)興趣主要包括軟件工程、算法、分布式系統(tǒng)、網絡和操作系統(tǒng)。Anil在機器人方向主要負責提供高效和健壯的軟件解決方案,不僅解決當前存在的問題,還預見未來的問題或可能的改進。鑒于他的經驗,他在計算機視覺、機器學習和控制問題上也有獨特的見解。Anil對DIY和電子學有興趣,并且開發(fā)了一些Arduino庫回饋社區(qū)?!∈紫龋乙兄x我的家人和朋友的支持,他們總是在我需要的時候幫助我。我也要感謝我的同事和朋友David Rubio Vidal、Emilio Miguelá?ez Martín和John Brydon給我大的支持,他們以專業(yè)的方式教我很多知識。我還要感謝我在SeeByte和AVORA團隊的同事,這些年從他們那里學習并經歷很多。后,我要特別感謝Jorge Cabrera Gámez,他的指導和建議成就了我自己從未想象到的職業(yè)生涯。 Aaron Martinez是數字化制造領域的電腦工程師、企業(yè)家和專家。他于2010年在拉斯帕爾馬斯大學的Instituto Universitario de Cienciasy Tecnologias Ciberneticas(IUCTC)完成碩士論文。他在遠程監(jiān)控領域使用沉浸式設備和機器人平臺準備碩士論文。得到學位后,他參加了在奧地利林茨開普勒大學研究所的機器人學實習計劃。在實習期間,他作為團隊的一員使用ROS和導航包集進行移動平臺開發(fā)。之后,他參與了有關機器人的項目,其中一個是拉斯帕爾馬斯大學的AVORA項目。在這個項目中,他參與自主水下航行器制作,并參與意大利的SAUC-E。2012年,他負責維護這個項目;2013年,他幫助從ROS向機器人平臺移植導航包集和其他算法?!〗珹aron與人共同創(chuàng)立了一家名為SubSeaMechatronics SL的公司。這家公司從事與水下機器人和遙控系統(tǒng)相關的項目,還設計和制造水下傳感器。公司的主要目標是開發(fā)用于研發(fā)原型和重型機械手的定制解決方案。 Aaron有許多領域的經驗,比如編程、機器人、機電一體化、數字化制造以及Arduino、BeagleBone、服務器和激光雷達等設備。如今,他在SubSeaMechatronics SL公司從事水下和空中環(huán)境的機器人平臺設計?!∥乙兄x我的女朋友,她在我寫這本書時給我支持以及給我繼續(xù)成長的動力。我還要感謝Donato Monopoli(加那利群島技術研究所(ITC)生物醫(yī)學工程部門的主管),以及ITC所有的工作人員,感謝他們使我懂得數字制造、機械以及組織工程,我在此度過了生命中美好的時光?!「兄x我大學的同事,特別是Alexis Quesada,他給了我在準備碩士論文時創(chuàng)建我第壹個機器人的機會。和他們一起工作,使我學習到很多關于機器人的知識。 最后,我要感謝家人和朋友的幫助與支持。

圖書目錄

推薦序一
推薦序二
譯者序
前言
作者簡介
審校者簡介
第1章 ROS Hydro系統(tǒng)入門 1
1.1 PC安裝教程 3
1.2 使用軟件庫安裝ROS Hydro 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配置環(huán)境 6
1.2.7安裝rosinstall 7
1.3 如何安裝VirtualBox和Ubuntu 8
1.3.1下載VirtualBox 8
1.3.2創(chuàng)建虛擬機 8
1.4在BeagleBone Black上安裝ROS Hydro 11
1.4.1準備工作 12
1.4.2配置主機和source.list文件 13
1.4.3設置密鑰 14
1.4.4安裝ROS功能包 14
1.4.5初始化rosdep 15
1.4.6在BeagleBone Black中配置環(huán)境 15
1.4.7在BeagleBone Black中安裝rosinstall 15
1.5 本章小結 15
第2章 ROS系統(tǒng)架構及概念 16
2.1 理解ROS文件系統(tǒng)級 16
2.1.1工作空間 17
2.1.2功能包 18
2.1.3綜合功能包 19
2.1.4消息 20
2.1.5服務 21
2.2 理解ROS計算圖級 22
2.2.1節(jié)點與nodelet 23
2.2.2主題 24
2.2.3服務 25
2.2.4消息 26
2.2.5消息記錄包 26
2.2.6節(jié)點管理器 26
2.2.7參數服務器 27
2.3 理解ROS開源社區(qū)級 27
2.4 ROS系統(tǒng)試用練習 28
2.4.1ROS文件系統(tǒng)導覽 28
2.4.2創(chuàng)建工作空間 29
2.4.3創(chuàng)建ROS功能包和綜合功能包 30
2.4.4編譯ROS功能包 30
2.4.5使用ROS節(jié)點 31
2.4.6如何使用主題與節(jié)點交互 33
2.4.7如何使用服務 36
2.4.8使用參數服務器 38
2.4.9創(chuàng)建節(jié)點 38
2.4.10 編譯節(jié)點 41
2.4.11創(chuàng)建msg和srv文件 42
2.4.12使用新建的srv和msg文件 44
2.4.13啟動文件 48
2.4.14動態(tài)參數 50
2.5 本章小結 54
第3章 可視化和調試工具 55
3.1 調試ROS節(jié)點 57
3.1.1使用gdb調試器調試ROS節(jié)點 57
3.1.2ROS節(jié)點啟動時調用gdb調試器 58
3.1.3ROS節(jié)點啟動時調用valgrind分析節(jié)點 59
3.1.4設置ROS節(jié)點core文件轉儲 59
3.2 日志信息 59
3.2.1輸出日志信息 59
3.2.2設置調試信息級別 60
3.2.3為特定節(jié)點配置調試信息級別 61
3.2.4信息命名 62
3.2.5按條件顯示信息與過濾信息 62
3.2.6顯示信息的方式——單次、可調、組合 63
3.2.7使用rqt_console和rqt_logger_level在運行時修改調試級別 63
3.3 檢測系統(tǒng)狀態(tài) 66
3.3.1檢測節(jié)點、主題、服務和參數 67
3.3.2使用rqt_graph在線檢測節(jié)點狀態(tài)圖 70
3.4 設置動態(tài)參數 71
3.5 當出現異常狀況時使用   roswtf 72
3.6 可視化節(jié)點診斷 74
3.7 繪制標量數據圖 75
3.8 圖像可視化 77
3.9 3D可視化 79
3.9.1使用rqt_rviz在3D世界中實現數據可視化 79
3.9.2主題與坐標系的關系 82
3.9.3可視化坐標變換 82
3.10 保存與回放數據 83
3.10.1什么是消息記錄包文件 84
3.10.2使用rosbag在消息記錄包中記錄數據 84
3.10.3回放消息記錄包文件 85
3.10.4檢查消息記錄包文件的主題和消息 86
3.11 應用rqt與rqt_gui插件 88
3.12 本章小結 88
第4章 在ROS下使用傳感器和執(zhí)行器 90
4.1 使用游戲桿或游戲手柄 90
4.1.1joy_node如何發(fā)送游戲桿動作消息 91
4.1.2使用游戲桿數據在turtlesim中移動海龜 92
4.2 使用激光雷達——Hokuyo URG-04lx 95
4.2.1了解激光雷達如何在ROS中發(fā)送數據 96
4.2.2訪問和修改激光雷達數據 98
4.3 使用Kinect傳感器查看3D環(huán)境中的對象 100
4.3.1如何發(fā)送和查看Kinect數據 101
4.3.2創(chuàng)建使用Kinect的示例 102
4.4 使用伺服電動機——Dynamixel 104
4.5 使用Arduino添加更多的傳感器和
 執(zhí)行器 107
4.6 在Arduino上使用超聲波傳感器 111
4.7 距離傳感器如何發(fā)送消息 113
4.7.1創(chuàng)建使用超聲波的示例 113
4.7.2Xsens如何在ROS中發(fā)送數據 116
4.7.3創(chuàng)建使用Xsens的示例 116
4.8 使用10自由度低成本慣性測量模組IMU 118
4.8.1下載加速度傳感器庫 119
4.8.2Arduino Nano和10自由度傳感器編程 120
4.8.3創(chuàng)建ROS節(jié)點以使用10自由度傳感器數據 121
4.9 GPS的使用 123
4.9.1GPS如何發(fā)送信息 125
4.9.2創(chuàng)建一個使用GPS的工程實例 126
4.10 本章小結 127
第5章 計算機視覺 128
5.1 連接和運行攝像頭 129
5.1.1FireWire IEEE1394攝像頭 129
5.1.2USB攝像頭 133
5.2 使用OpenCV制作USB攝像頭 驅動程序 134
5.2.1通過cv_bridge使用OpenCV處理ROS圖像 139
5.2.2使用image transport發(fā)布圖像 139
5.2.3在ROS中使用OpenCV 140
5.2.4顯示攝像頭輸入的圖像 140
5.3 標定攝像頭 141
5.4 ROS圖像管道 148
5.5 計算機視覺任務中有用的ROS功能包 152
5.6 使用viso2實現視覺里程計 153
5.6.1攝像頭位姿標定 154
5.6.2運行viso2在線演示 157
5.6.3使用低成本雙目攝像頭運行viso2 159
5.7 使用RGBD深度攝像頭實現視覺里程計 160
5.7.1安裝fovis 160
5.7.2用Kinect RGBD深度攝像頭運行fovis 160
5.8 計算兩幅圖像的單應性 161
5.9 本章小結 162
第6章 點云 163
6.1 理解點云庫 163

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號