[套裝書]ROS機器人開發(4冊) 計算機與互聯網 書籍|8029663

[套裝書]ROS機器人開發(4冊) 計算機與互聯網 書籍|8029663 pdf epub mobi txt 电子书 下载 2025

西 阿尼爾 馬哈塔尼Anil Mahta 著,張瑞雷 劉錦濤吳中紅 譯
圖書標籤:
  • ROS
  • 機器人
  • 機器人開發
  • 嵌入式
  • 計算機
  • 互聯網
  • 技術
  • 編程
  • 自動化
  • 人工智能
想要找书就要到 求知書站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
店铺: 互动出版网图书专营店
出版社: 机械工业出版社
ISBN:9787111578468
商品编码:29267552523
丛书名: 机器人设计与制作系列
出版时间:2017-09-01

具体描述

 書名:  [套裝書]ROS機器人開發(四冊套裝)|8029663
 圖書定價:  316元
 圖書作者:  (西)阿尼爾·馬哈塔尼(Anil Mahtani)(美)卡羅爾·費爾柴爾德(Carol Fairchild);(美)托馬斯L.哈曼(Thomas L. Harman)鬍春旭(印)朗坦·約瑟夫(Lentin Joseph)
 齣版社:  機械工業齣版社
 齣版日期:  2017/9/1 0:00:00
 ISBN號:  9787111578468
 開本:  16開
 頁數:  0
 版次:  1-1
 作者簡介
---------------------------8004538---------------------------
作者簡介
Lentin Joseph是一名來自印度的作傢、企業傢、電子工程師、機器人愛好者、機器視覺專傢、嵌入式程序員以及Qbotics Labs(http://www.qboticslabs.com)的創始人和首席執行官。
他在喀拉拉邦的聯邦科學和技術研究所(Federal Institute of Science and Technology,FISAT)獲得瞭電子和通信工程學士學位。在最後一年的工程項目中,製作瞭一個可以與人互動的聊天機器人。該項目取得瞭巨大的成功,被各大媒體多次報告。該機器人的主要特點是能夠與人溝通、智能迴復、具有一定的圖像處理能力,如麵部、動作、顔色檢測等。整個項目使用Python編程語言實現。他對機器人、圖像處理和Python的興趣從此開始。
畢業後,他在一傢專門從事機器人和圖像處理的創業公司工作瞭三年。與此同時,他學習瞭主流的機器人軟件平颱,如機器人操作係統(ROS)、V-REP和Actin(機器人仿真工具)等,還學習瞭圖像處理庫,如OpenCV、OpenNI和PCL等,並且熟悉Arduino和Tiva Launchpad上的機器人三維設計和嵌入式編程。
在積纍瞭三年的工作經驗後,他開創瞭Qbotics Labs公司,主要緻力於在機器人和機器視覺等領域開發一些優秀的産品。他負責維護個人網站(http://www.lentinjoseph.com)和技術博客technolabsz(http://www.technolabsz.com),並在科技博客上發錶作品。他還是印度PyCon2013的主講人,主題為“Learning Robotics Using Python”。
Lentin是《Learning Robotics Using Python》(http://learn-robotics.com)和《Mastering ROS for Robotics Programming》(http://mastering-ros.com)兩本書的作者,均由Packt齣版。第一本書使用ROS和OpenCV製作瞭一個自主移動機器人。這本書是在ICRA 2015上發布的,在ROS博客、Robohub、OpenCV、Python網站以及其他相關論壇上流傳很廣。第二本書幫助讀者掌握ROS知識,並在ICRA 2016上推齣,是最暢銷的ROS書籍之一。
Lentin及其團隊也是2016年ICRA中HRATC挑戰賽的獲勝者。該團隊也成功入圍瞭ICRA 2015挑戰賽HRATC決賽(http://www.icra2016.org/conference/challenges/)。
審校者簡介
Ruixiang Du是伍斯特理工學院(Worcester Polytechnic Institute,WPI)機械工程專業的博士研究生。目前在係統和機器人控製實驗室工作,主要研究自主移動機器人的運動規劃和控製。他於2011年獲得華北電力大學自動化學士學位,2013年獲得WPI機器人工程碩士學位。
Ruixiang的研究興趣包括機器人技術和實時嵌入式係統。他曾經從事多種機器人項目,從機器人平颱到醫療機器人、無人機/地麵車輛、人形機器人等。他是DARPA機器人挑戰賽WPI-CMU團隊的成員。---------------------------7731483---------------------------
作者簡介
卡羅爾·費爾柴爾德(Carol Fairchild)是Fairchild Robotics公司的所有人、首席工程師,該公司緻力於機器人技術的開發與集成。卡羅爾是休斯頓大學明湖分校(University of Houston-Clear Lake,UHCL)Baxter實驗室的一名研究人員,同時也是一名兼職教授。她的研究領域主要是基於Baxter機器人的擴展應用開發。在費爾柴爾德女士早期開始建造她的第一颱機器人(這颱機器人被稱為Heathkit Hero)時,她就已經開始瞭機器人技術方方麵麵的學習與實踐。她在得州農工大學(Texas A&M;)獲得工程技術學士學位,並在休斯頓大學明湖分校獲得計算機工程的碩士學位。費爾柴爾德女士曾在中學教授機器人學課程,是第一樂高聯盟(FIRST LEGO League,FLL)的教練,同時也是靈感和科技大賽(For Inspiration and Recognition of Science and Technology,FIRST)的誌願者。
托馬斯L.哈曼(Thomas L. Harman)博士是休斯頓大學明湖分校工程係的主任。他的研究領域主要是控製係統、機器人技術與微處理器技術的應用。他和他同事關於機器人和激光的論文已經應用在瞭醫學領域。2005年,他當選為休斯頓大學明湖分校的特聘教授。他曾擔任FIRST機器人大賽的裁判與安全顧問。托馬斯博士已經齣版的專著、閤著書籍有18本,主題包括微處理器技術、MATLAB與仿真以及美國國傢電氣規程等。他在休斯頓大學明湖分校的實驗室有一颱Baxter雙臂機器人、多颱TurtleBot機器人以及其他幾款機器人。---------------------------6479751---------------------------
Anil Mahtani是一名主要從事水下機器人工作研發的計算機科學傢。他第一次在該領域工作是在完成碩士論文期間為低成本ROV開發軟件架構。在此期間,他也成為AVORA的團隊領導者和主要開發人員,這個大學生團隊設計開發瞭一個自主水下航行器並參加瞭2012年的歐洲學生自主水下航行器設計挑戰賽(Student Autonomous Underwater Challenge-Europe,SAUC-E)。同年,他完成瞭論文並獲得瞭拉斯帕爾馬斯大學的計算機科學碩士學位。此後不久,他成為SeeByte公司的軟件工程師,這傢公司是水下係統智能軟件解決方案的全球領導者。在2015年,他加入SecureWorks公司,任職軟件工程師,在那裏他應用相關知識和技術開發入侵檢測和預防係統。
在SeeByte公司工作期間,Anil參與瞭軍方、石油和天然氣公司的一些半自主和自主水下係統的核心開發。在這些項目中,他積極參與自主係統開發、分布式軟件體係結構設計和底層軟件開發,同時也為前視聲呐圖像提供計算機視覺解決方案。他還獲得瞭項目經理職位,管理一個開發和維護內核C++庫的工程師團隊。
他的專業興趣主要包括軟件工程、算法、數據結構、分布式係統、網絡和操作係統。Anil在機器人方嚮主要負責提供高效和健壯的軟件解決方案,不僅解決當前存在的問題,還預見未來的問題或可能的改進。鑒於他的經驗,他在計算機視覺、機器學習和控製問題上也有獨特的見解。Anil對DIY和電子學感興趣,並且開發瞭一些Arduino庫迴饋社區。
首先,我要感謝傢人和朋友的支持,他們總是在我最需要的時候幫助我。我還要感謝我的女友Alex的耐心支持,她是我靈感的源泉。最後,我要感謝我的同事Ihor Bilyy和Dan Good,在我軟件工程師職業生涯中他們以專業的方式教會我很多知識。
Luis Sánchez在拉斯帕爾馬斯大學獲得瞭電子與電信工程的雙碩士學位。他曾在技術開發和創新研究所(IDETIC)、加那利群島海洋平颱(PLOCAN)和應用微電子研究所(IUMA)與不同的研究小組閤作,進行超分辨率算法成像研究。
他的專業興趣包括應用於機器人係統的計算機視覺、信號處理和電子設計。因此,他加入瞭AVORA團隊,這批年輕的工程師和學生從零開始從事自主水下航行器(AUV)的開發工作。在這個項目中,Luis開始開發聲學和計算機視覺係統,用於提取不同傳感器的信息,例如水聽器、聲呐和攝像頭。
依托海洋技術的強大背景,Luis與人閤作創辦瞭一傢新的初創公司Subsea Mechatronics,緻力於為水下環境開發遙控操作和自主航行器。
下麵是海洋技術工程師和企業傢(LPA Fabrika:Gran Canaria Maker Space的聯閤創始人和製造商)Dario Sosa Cabrera對Luis的評價:
“他很熱情,是一個跨多學科的工程師。他對工作負責,自製力強,並承擔一個團隊領導者的責任,這在euRathlon比賽中充分展現瞭齣來。他在電子和電信領域的背景讓其具備從信號處理和軟件到電子設計和製造的廣泛專業知識。”
Luis作為技術審校者參與瞭Packt齣版社齣版的《Learning ROS for Robotics Programming》的相關工作以及第2版的撰寫工作。
首先,我要感謝Aaron、Anil以及Enrique邀請我參與編寫這本書。同他們一起工作非常快樂。同時,我也要感謝水下機電團隊關於重型水下機器人的豐富經驗,這些年我們一起成長。我必須提到LPA Fabrika:Gran Canaria Maker Space,他們滿腔熱忱地準備和引導教學機器人及技術項目,與他們共同工作的時光也非常開心。
最後,我要感謝傢人和女友對我參與的每個項目的大力支持和鼓勵。我以此書獻給他們。
Enrique Fernández具有計算機工程博士學位和機器人學研究背景。他的博士論文解決瞭自主水下滑翔器(AUG)的路徑規劃問題,他還研究瞭SLAM、感知、視覺、控製等機器人學課題。在讀博士期間,他加盟瞭赫羅納大學的CIRS/ViCOROB水下機器人研究中心,在那裏他為AUV開發瞭視覺SLAM和INS模塊。他在2012年參加瞭SAUC-E並獲奬,在2013年作為閤作者參與瞭SAUC-E。
攻讀博士學位期間,Enrique在機器人頂級會議和期刊上發錶瞭多篇論文,其中包括國際機器人和自動化會議(International Conference of Robotics and Automation,ICRA)。他也閤作編寫瞭一些ROS書籍和章節。
之後,Enrique作為SLAM工程師在2013年6月加盟PAL Robotics公司。在那裏,他開發瞭用於REEM、REEM-C仿人型機器人的ROS軟件,也繼續為開源社區(主要是ROS控製軟件庫)做貢獻,目前仍是其中一名維護人員。在2015年,他加盟Clearpath Robotics公司的自主係統部門,從事感知算法開發相關工作。他曾經在通用電氣公司(General Electric)和約翰迪爾(John Deere)等多傢大型工業公司的設施中負責部署工業移動機器人OTTO 1500和OTTO 100軟件的運行。
我要感謝本書的閤著者,感謝他們為完成本書所付齣的努力以及提供瞭無數示例的代碼。我還要感謝拉斯帕爾馬斯大學研究組和水下機器人研究中心(Center of Underwater Robotics Research,CIRS/ViCOROB)的研究小組成員。我也要感謝在PAL Robotics公司的同事,在那裏我學到很多關於ROS、機器人運動以及仿人雙足機器人的知識,不僅有軟件,還有電子和硬件設計。此外,我還要感謝在Clearpath Robotics的同事們,在這裏我掌握瞭ROS並參與瞭為工業4.0銷售的24/7全天候運行自動駕駛機器人的軟件開發。最後,我要感謝我的傢人和朋友的幫助與支持,特彆是Eva。
Aaron Martinez是數字化製造領域的計算機工程師、企業傢和專傢。他於2010年在拉斯帕爾馬斯大學的IUCTC(Instituto Universitario de Cienciasy Tecnologias Ciberneticas)完成碩士論文。他在遠程監控領域使用沉浸式設備和機器人平颱準備碩士論文。獲得學位後,他參加瞭在奧地利林茨約翰開普勒大學研究所的機器人學實習計劃。在實習期間,他作為團隊的一員使用ROS和導航包集進行移動平颱開發。之後,他參與瞭有關機器人的項目,其中一個是拉斯帕爾馬斯大學的AVORA項目。在這個項目中,他參與自主水下航行器製作,並參與意大利的SAUC-E。2012年,他負責維護這個項目;2013年,他幫助從ROS嚮機器人平颱移植導航包集和其他算法。
最近,Aaron與人共同創立瞭一傢名為SubSeaMechatronics SL的公司。這傢公司從事與水下機器人和遙控係統相關的項目,還設計和製造水下傳感器。公司的主要目標是開發用於研發原型和重型機械手的定製解決方案。
Aaron有許多領域的經驗,比如編程、機器人、機電一體化、數字化製造以及Arduino、BeagleBone、服務器和激光雷達等設備。如今,他在SubSeaMechatronics SL公司從事水下和空中環境的機器人平颱設計。
我要感謝我的女友,她在我寫這本書時支持我並且給我繼續成長的動力。我還要感謝Donato Monopoli(加那利群島技術研究所(ITC)生物醫學工程部門的主管),以及ITC所有的工作人員,感謝他們使我懂得數字製造、機械以及工程組織,我在此度過瞭生命中最美好的時光。
感謝我大學的同事,特彆是Alexis Quesada,他給瞭我在準備碩士論文時創建第一個機器人的機會。同他們一起工作,使我學習到很多關於機器人的知識。
最後,我要感謝傢人和朋友的幫助與支持。
審校者簡介
Lentin Joseph是印度Qbotics Labs(http://www.qboticslabs.com)的創始人兼首席執行官、作傢、企業傢、電子工程師、機器人愛好者、機器視覺專傢、嵌入式程序員。
他在印度喀拉拉的聯邦理工學院(FISAT)獲電子學和通信工程學士學位。在工程項目的最後一年,他製作瞭一個可以與人交互的社交機器人(http://www.technolabsz.com/2012/07/social-robot-my-final-year.html)。項目取得瞭巨大的成功,被視覺和印刷媒體多次報道。該機器人的主要特點是可以與人交流並智能迴復,同時具有一定的圖像處理能力,如麵部、動作和顔色檢測。整個項目使用Python編程語言實現。他對機器人、圖像處理和Python的興趣從此開始。
畢業後,他在一傢專門從事機器人和圖像處理的創業公司工作瞭3年。同時,他學習瞭主流的機器人軟件平颱,如機器人操作係統(ROS)、V-REP、Actin(機器人仿真工具),以及圖像處理庫,如OpenCV、OpenNI和PCL。他還瞭解Arduino和Tiva Launchpad上的機器人三維設計和嵌入式編程。
在積纍3年的工作經驗後,他創立瞭一傢名叫Qbotics Labs的新公司,主要從事研究工作,在機器人和機器視覺等領域開發一些優秀的産品。他負責維護個人網站(http://www.lentinjoseph.com)和一個名為technolabsz的技術博客(http://www.technolabsz.com)。他在科技博客上發布作品。他也是印度PyCon2013的演講者,主題是“使用Python的學習機器人”(Learning Robotics using Python)。
Lentin是《Learning Robotics using Python》(更多內容參考http://learn-robotics.com)和《Mastering ROS for Robotics Programming》(更多內容參考http://mastering-ros.com)的作者,這兩本書都由Packt齣版社齣版。第一本書的主題是使用ROS和OpenCV構建自主移動機器人。這本書是在ICRA 2015上推齣的,並在ROS博客Robohub、OpenCV、Python網站以及其他相關論壇上推廣。第二本書是掌握機器人操作係統(ROS)的工具書,也在ICRA 2016上推齣,它是最暢銷的ROS書籍之一。
作為ICRA 2016的一部分,Lentin及其團隊獲得瞭HRATC 2016挑戰賽的冠軍,同時他也是ICRA 2015挑戰賽HRATC決賽的入圍者(http://www.icra2016.org/conference/challenges/)。
 內容簡介
---------------------------8004538---------------------------
本書11個ROS機器人項目,在無須大量硬件的情況下可直接實現原型設計。本書首先介紹ROS及其安裝過程。在完成基礎知識學習之後,將會學習一些非常棒的項目,如構建自動駕駛汽車、自主移動機器人以及使用深度學習和ROS進行圖像識彆等。這裏可以找到適用於初級、中級甚至專傢級的各類ROS機器人應用程序!---------------------------7991375---------------------------
本書在介紹ROS總體框架和理論要點的基礎上,講解ROS的通信機製、常用組件和進階功能;同時以實踐為主,講解機器視覺、機器聽覺、SLAM與導航、機械臂控製、機器學習等多種ROS應用的主要原理和實現方法;並分析基於ROS的機器人係統設計方法和典型實例;後論述ROS2的框架特點和使用方法,剖析ROS的發展方嚮。
---------------------------7731483---------------------------
本書針對基於ROS的機器人開發技術進行瞭全麵綜閤的介紹,不僅涵蓋ROS框架的基礎知識,還詳細描述模擬機器人模型的構建方法和真實機器人操控。本書循序漸進地以實例形式講解移動機器人、飛行機器人、機器人手臂等各類機器人的ROS實現。通過控製這些機器人,無論是模擬還是在現實中,你都可以使用ROS控製來驅動、移動機器人,甚至是讓機器人飛行。---------------------------6479751---------------------------
本書包含瞭大量示例,幫助你開發機器人程序,並為你提供使用開源ROS庫和工具的完整解決方案。本書主要內容包括:ROS的概念、命令行工具、可視化GUI以及如何調試ROS,如何將機器人傳感器和執行器連接到ROS,如何從攝像頭和3D傳感器獲取數據並分析數據,如何在機器人/傳感器和環境仿真中使用Gazebo,如何設計機器人,如何使用OpenCV3.0為機器人添加視覺功能,如何使用新版本的PCL嚮機器人添加3D感知功能。本書適閤各個階層的機器人開發人員和機器人愛好者閱讀。
 目錄



---------------------------8004538---------------------------


譯者序
推薦序一
推薦序二
作者簡介
審校者簡介
前言
緻謝
第1章 入門ROS機器人應用程序開發 1
1.1 ROS入門 2
1.1.1 ROS發行版 2
1.1.2 支持ROS的操作係統 3
1.1.3支持ROS的機器人和傳感器 4
1.1.4為什麼選擇ROS 5
1.2 ROS基礎 6
1.2.1文件係統級 7
1.2.2計算圖級 8
1.2.3ROS社區級 9
1.2.4ROS通信 9
1.3ROS客戶端庫 10
1.4ROS工具 11
1.4.1Rviz(ROS可視化) 11
1.4.2rqt_plot 11
1.4.3rqt_graph 12
1.5ROS仿真器 13
1.6在Ubuntu 16.04 LTS上安裝ROS Kinetic 13
1.7在VirtualBox上設置ROS 17
1.8設置ROS工作區 19
1.9ROS在工業和研究中的機遇 20
1.10 問題 22
1.11 本章總結 22
第2章 使用ROS、OpenCV和Dynamixel伺服舵機進行人臉檢測與跟蹤 23
2.1項目概述 23
2.2硬件和軟件需求 24
2.3ROS與Dynamixel伺服舵機的接口 33
2.4創建人臉跟蹤ROS包 34
2.5人臉跟蹤功能包的工作原理 36
2.5.1理解人臉跟蹤代碼 38
2.5.2理解CMakeLists.txt 41
2.5.3track.yaml文件 43
2.5.4啓動文件 43
2.5.5運行人臉跟蹤器節點 44
2.5.6face_tracker_control功能包 45
2.5.7 雲颱控製器配置文件 46
2.5.8舵機參數配置文件 47
2.5.9人臉跟蹤控製器節點 47
2.5.10 創建CMakeLists.txt 49
2.5.11 測試人臉跟蹤控製功能包 49
2.5.12 集成所有節點 51
2.5.13 固定支架並安裝電路 51
2.5.14 最終測試 52
2.6 問題 52
2.7 本章總結 53
第3章 在ROS中構建一個像Siri的聊天機器人 54
3.1人機交互機器人 54
3.2構建人機交互機器人 55
3.3預備條件 56
3.4AIML入門 57
3.4.1AIML標簽 57
3.4.2PyAIML解釋器 58
3.4.3在Ubuntu 16.04 LTS上安裝PyAIML 59
3.4.4使用PyAIML 59
3.4.5加載多個AIML文件 60
3.4.6在ROS中創建AIML機器人 62
3.4.7AIML ROS功能包 62
3.5 問題 70
3.6 本章總結 70
第4章 使用ROS控製嵌入式電路闆 71
4.1主流嵌入式電路闆入門 71
4.1.1如何選擇Arduino開發闆 71
4.1.2Raspberry Pi(樹莓派)介紹 74
4.1.3Odroid開發闆 76
4.2Arduino與ROS的接口 76
4.2.1使用Arduino和ROS監控光綫亮度 79
4.2.2在PC上運行ROS串行服務器 81
4.2.3通過mbed連接STM32開發闆和ROS 82
4.2.4使用Energia連接ROS與Tiva C Launchpad闆 85
4.3在Raspberry Pi和Odroid上運行ROS 87
4.3.1將Raspberry Pi和Odroid連接到PC 88
4.3.2ROS控製GPIO引腳 90
4.4 問題 94
4.5 本章總結 95
第5章 使用手勢遠程操作機器人 96
5.1使用鍵盤遙控ROS龜 97
5.2使用手勢進行遙控 98
5.3項目配置 100
5.4MPU-9250、Arduino和ROS連接 101
5.5在Rviz中可視化IMU TF 106
5.6將IMU數據轉換為twist消息 107
5.7集成和最終運行 109
5.8使用Android手機進行遙控 111
5.9 問題 113
5.10 本章總結 113
第6章 物體檢測和識彆 114
6.1物體檢測和識彆的快速入門 114
6.2ROS中的find_object_2d包 116
6.2.1安裝find_object_2d包 116
6.2.2運行find_object_2d節點檢測網絡攝像頭圖像中的物體 117
6.2.3使用深度傳感器運行find_object_2d節點 121
6.33D物體識彆快速入門 124
6.4ROS中3D物體識彆包的介紹 125
6.5從3D網格中檢測和識彆物體 127
6.5.1使用物體的3D模型進行訓練 127
6.5.2使用捕獲的3D模型進行訓練 129
6.6識彆物體 132
6.7 問題 135
6.8 本章總結 135
第7章 使用ROS和TensorFlow進行深度學習 136
7.1深度學習及其應用簡介 136
7.2深度學習機器人 137
7.3深度學習庫 138
7.4TensorFlow入門 139
7.4.1在Ubuntu 16.04 LTS上安裝TensorFlow 139
7.4.2TensorFlow的概念 141
7.4.3在TensorFlow中編寫我們的第一個程序 143
7.5使用ROS和TensorFlow進行圖像識彆 146
7.5.1前提條件 147
7.5.2ROS圖像識彆節點 147
7.6scikit-learn介紹 150
7.7SVM及其在機器人中的應用 151
7.8 問題 154
7.9 本章總結 154
第8章 在MATLAB和Android上運行ROS 156
8.1ROS-MATLAB接口入門 156
8.2在MATLAB中設置機器人工具箱 157
8.2.1MATLAB中的基本ROS功能 157
8.2.2列齣ROS節點、主題和消息 158
8.3MATLAB與ROS網絡通信 160
8.4利用MATLAB控製ROS機器人 163
8.4.1設計MATLAB GUI應用程序 164
8.4.2解釋迴調 166
8.4.3運行應用程序 168
8.5Android及其ROS接口入門 169
8.5.1安裝rosjava 170
8.5.2通過Ubuntu軟件包管理器安裝android-sdk 172
8.6安裝ROS-Android接口 174
8.7使用ROS-Android應用程序 175
8.8代碼演練 180
8.9使用ROS-Android接口創建基本應用程序 182
8.10 問題 183
8.11 本章總結 184
第9章 構建自主移動機器人 185
9.1機器人規格和設計概述 185
9.2設計和選擇機器人的電動機和輪子 186
9.2.1計算電動機扭矩 186
9.2.2電動機轉速的計算 186
9.2.3設計總結 187
9.3構建機器人本體的2D和3D模型 187
9.3.1底盤 187
9.3.2連接杆和空心管設計 188
9.3.3電動機、輪子和電動機夾具設計 189
9.3.4腳輪設計 189
9.3.5中層闆和頂層闆設計 189
9.3.6頂層闆 190
9.3.7機器人的3D建模 191
9.4在Gazebo中進行機器人模型仿真 192
9.5差速驅動機器人的數學模型 192
9.6設計和建造實際的機器人 200
9.6.1電動機和電動機驅動 201
9.6.2電動機編碼器 201
9.6.3Tiva C Launchpad 201
9.6.4超聲波傳感器 201
9.6.5OpenNI深度傳感器 201
9.6.6英特爾NUC 201
9.6.7使用Launchpad將傳感器
和電動機連接起來 201
9.6.8Tiva C Launchpad編程 202
9.7連接機器人硬件與ROS 205
9.8在Chefbot中進行地圖構建和定位 208
9.9 問題 210
9.10 本章總結 210
第10章 使用ROS創建自動駕駛汽車 211
10.1 自動駕駛汽車入門 211
10.2 典型自動駕駛汽車的功能框圖 214
10.2.1 自動駕駛汽車的軟件框圖 218
10.2.2 在ROS中仿真和連接自動駕駛汽車傳感器 219
10.3 在Gazebo中仿真一輛帶有傳感器的自動駕駛汽車 235
10.3.1 安裝預備條件 235
10.3.2 可視化機器人車傳感器數據 237
10.3.3 在Gazebo裏移動一輛自動駕駛汽車 238
10.3.4 使用機器人車運行hector SLAM 238
10.4 將DBW車與ROS連接 239
10.4.1 安裝包 240
10.4.2 可視化自動駕駛汽車和傳感器數據 240
10.4.3 DBW與ROS通信 242
10.5 Udacity開源自動駕駛汽車項目介紹 242
10.6 問題 245
10.7 本章總結 246
第11章 使用VR頭戴設備和Leap Motion遙控機器人 247
11.1 VR頭戴設備和Leap Motion入門 248
11.2 項目預備條件 249
11.3 項目的設計和工作原理 250
11.4 在Ubuntu 14.04.5上安裝Leap Motion SDK 251
11.4.1 可視化Leap Motion控製器數據 252
11.4.2 使用Leap Motion可視化工具 252
11.4.3 安裝Leap Motion控製器的ROS驅動程序 253
11.5 在Rviz中可視化Leap Motion數據 255
11.6 使用Leap Motion控製器創建遙控節點 256
11.7 構建ROS-VR Android應用程序 258
11.8 使用ROS-VR應用程序並與Gazebo進行連接 259
11.9 在VR中使用TurtleBot仿真 262
11.10 ROS-VR應用程序的故障排除 263
11.11 ROS-VR和Leap Motion遙控的集成應用 264
11.12 問題 264
11.13 本章總結 264
第12章 通過網絡控製機器人 265
12.1 ROS Web入門 265
12.1.1 rosbridge_suite 265
12.1.2 roslibjs、ros2djs和ros3djs 266
12.1.3 tf2_web_republisher 267
12.2 在ROS Kinetic上設置ROS Web 267
12.2.1 安裝rosbridge_suite 267
12.2.2 設置rosbridge客戶端庫 268
12.3 在ROS Kinetic上安裝tf2_web_republisher 269
12.4 在Web瀏覽器上實現機器人遙控和可視化 269
12.4.1 項目開發 269
12.4.2 連接到rosbridge_server 271
12.4.3 初始化teleop 271
12.4.4 在Web瀏覽器中創建3D查看器 272
12.4.5 創建TF客戶端 272
12.4.6 創建URDF客戶端 272
12.4.7 創建文本輸入 273
12.4.8 運行Web teleop應用程序 273
12.5 利用網絡瀏覽器控製機器人關節 275
12.5.1 安裝joint_state_publisher_js 275
12.5.2 運行網絡關節狀態發布器 276
12.5.3 解釋代碼 278
12.5.4 運行機器人監控應用程序 278
12.6 基於Web的語音控製機器人 279
12.6.1 前提條件 280
12.6.2 在Web應用程序中啓用語音識彆 280
12.7 運行語音控製機器人應用程序 282
12.8 問題 283
12.9 本章總結 284

---------------------------7991375---------------------------


推薦序一
推薦序二
推薦序三
前言
第1章 初識ROS 1
1.1 ROS是什麼 1
1.1.1 ROS的起源 1
1.1.2 ROS的設計目標 2
1.1.3 ROS的特點 3
1.2 如何安裝ROS 4
1.2.1 操作係統與ROS版本的選擇 4
1.2.2 配置係統軟件源 6
1.2.3 添加ROS軟件源 6
1.2.4 添加密鑰 7
1.2.5 安裝ROS 7
1.2.6 初始化rosdep 8
1.2.7 設置環境變量 8
1.2.8 完成安裝 9
1.3 本書源碼下載 9
1.4 本章小結 10
第2章 ROS架構 11
2.1 ROS架構設計 11
2.2 計算圖 12
2.2.1 節點 12
2.2.2 消息 13
2.2.3 話題 13
2.2.4 服務 13
2.2.5 節點管理器 14
2.3 文件係統 14
2.3.1 功能包 14
2.3.2 元功能包 16
2.4 開源社區 17
2.5 ROS的通信機製 17
2.5.1 話題通信機製 18
2.5.2 服務通信機製 19
2.5.3 參數管理機製 20
2.6 話題與服務的區彆 20
2.7 本章小結 21
第3章 ROS基礎 22
3.1 第一個ROS例程——小烏龜仿真 23
3.1.1 turtlesim功能包 23
3.1.2 控製烏龜運動 24
3.2 創建工作空間和功能包 25
3.2.1 什麼是工作空間 25
3.2.2 創建工作空間 26
3.2.3 創建功能包 27
3.3 工作空間的覆蓋 28
3.3.1 ROS中工作空間的覆蓋 28
3.3.2 工作空間覆蓋示例 28
3.4 搭建Eclipse開發環境 30
3.4.1 安裝Eclipse 30
3.4.2 創建Eclipse工程文件 30
3.4.3 將工程導入Eclipse 31
3.4.4 設置頭文件路徑 31
3.4.5 運行/調試程序 32
3.5 RoboWare簡介 35
3.5.1 RoboWare的特點 35
3.5.2 RoboWare的安裝與使用 36
3.6 話題中的Publisher與Subscriber 37
3.6.1 烏龜例程中的Publisher與Subscriber 37
3.6.2 如何創建Publisher 37
3.6.3 如何創建Subscriber 40
3.6.4 編譯功能包 41
3.6.5 運行Publisher與Subscriber 42
3.6.6 自定義話題消息 44
3.7 服務中的Server和Client 46
3.7.1 烏龜例程中的服務 46
3.7.2 如何自定義服務數據 47
3.7.3 如何創建Server 48
3.7.4 如何創建Client 49
3.7.5 編譯功能包 51
3.7.6 運行Server和Client 51
3.8 ROS中的命名空間 52
3.8.1 有效的命名 52
3.8.2 命名解析 53
3.8.3 命名重映射 54
3.9 分布式多機通信 54
3.9.1 設置IP地址 55
3.9.2 設置ROS_MASTER_URI 56
3.9.3 多機通信測試 56
3.10 本章小結 57
第4章 ROS中的常用組件 58
4.1 launch啓動文件 58
4.1.1 基本元素 58
4.1.2 參數設置 60
4.1.3 重映射機製 61
4.1.4 嵌套復用 61
4.2 TF坐標變換 62
4.2.1 TF功能包 62
4.2.2 TF工具 63
4.2.3 烏龜例程中的TF 65
4.2.4 創建TF廣播器 67
4.2.5 創建TF監聽器 68
4.2.6 實現烏龜跟隨運動 70
4.3 Qt工具箱 70
4.3.1 日誌輸齣工具(rqt_console) 71
4.3.2 計算圖可視化工具(rqt_graph) 71
4.3.3 數據繪圖工具(rqt_plot) 72
4.3.4 參數動態配置工具(rqt_reconfigure) 73
4.4 rviz三維可視化平颱 73
4.4.1 安裝並運行rviz 74
4.4.2 數據可視化 75
4.4.3 插件擴展機製 76
4.5 Gazebo仿真環境 78
4.5.1 Gazebo的特點 78
4.5.2 安裝並運行Gazebo 78
4.5.3 構建仿真環境 81
4.6 rosbag數據記錄與迴放 82
4.6.1 記錄數據 82
4.6.2 迴放數據 83
4.7 本章小結 84
第5章 機器人平颱搭建 85
5.1 機器人的定義 85
5.2 機器人的組成 86
5.2.1 執行機構 87
5.2.2 驅動係統 87
5.2.3 傳感係統 87
5.2.4 控製係統 87
5.3 機器人係統搭建 88
5.3.1 MRobot 88
5.3.2 執行機構的實現 88
5.3.3 驅動係統的實現 89
5.3.4 內部傳感係統的實現 90
5.4 基於Raspberry Pi的控製係統實現 90
5.4.1 硬件平颱Raspberry Pi 91
5.4.2 安裝Ubuntu 16.04 91
5.4.3 安裝ROS 93
5.4.4 控製係統與MRobot通信 94
5.4.5 PC端控製MRobot 97
5.5 為機器人裝配攝像頭 99
5.5.1 usb_cam功能包 99
5.5.2 PC端驅動攝像頭 100
5.5.3 Raspberry Pi驅動攝像頭 102
5.6 為機器人裝配Kinect 104
5.6.1 freenect_camera功能包 104
5.6.2 PC端驅動Kinect 106
5.6.3 Raspberry Pi驅動Kinect 109
5.6.4 Kinect電源改造 109
5.7 為機器人裝配激光雷達 110
5.7.1 rplidar功能包 110
5.7.2 PC端驅動rplidar 111
5.7.3 Raspberry Pi驅動rplidar 113
5.8 本章小結 113
第6章 機器人建模與仿真 114
6.1 統一機器人描述格式——URDF 114
6.1.1 標簽 114
6.1.2 標簽 115
6.1.3 標簽 116
6.1.4 標簽 116
6.2 創建機器人URDF模型 116
6.2.1 創建機器人描述功能包 116
6.2.2 創建URDF模型 117
6.2.3 URDF模型解析 120
6.2.4 在rviz中顯示模型 122
6.3 改進URDF模型 124
6.3.1 添加物理和碰撞屬性 124
6.3.2 使用xacro優化URDF 125
6.3.3 xacro文件引用 127
6.3.4 顯示優化後的模型 127
6.4 添加傳感器模型 128
6.4.1 添加攝像頭 128
6.4.2 添加Kinect 130
6.4.3 添加激光雷達 132
6.5 基於ArbotiX和rviz的仿真器 133
6.5.1 安裝ArbotiX 133
6.5.2 配置ArbotiX控製器 133
6.5.3 運行仿真環境 135
6.6 ros_control 136
6.6.1 ros_control框架 137
6.6.2 控製器 139
6.6.3 硬件接口 139
6.6.4 傳動係統 140
6.6.5 關節約束 140
6.6.6 控製器管理器 141
6.7 Gazebo仿真 142
6.7.1 機器人模型添加Gazebo屬性 142
6.7.2 在Gazebo中顯示機器人模型 145
6.7.3 控製機器人在Gazebo中運動 147
6.7.4 攝像頭仿真 147
6.7.5 Kinect仿真 150
6.7.6 激光雷達仿真 153
6.8 本章小結 155
第7章 機器視覺 156
7.1 ROS中的圖像數據 156
7.1.1 二維圖像數據 156
7.1.2 三維點雲數據 158
7.2 攝像頭標定 159
7.2.1 camera_calibration功能包 159
7.2.2 啓動標定程序 159
7.2.3 標定攝像頭 160
7.2.4 標定Kinect 162
7.2.5 加載標定參數的配置文件 162
7.3 OpenCV庫 164
7.3.1 安裝OpenCV 164
7.3.2 在ROS中使用OpenCV 164
7.4 人臉識彆 166
7.4.1 應用效果 167
7.4.2 源碼實現 168
7.5 物體跟蹤 170
7.5.1 應用效果 170
7.5.2 源碼實現 171
7.6 二維碼識彆 173
7.6.1 ar_track_alvar功能包 173
7.6.2 創建二維碼 174
7.6.3 攝像頭識彆二維碼 175
7.6.4 Kinect識彆二維碼 178
7.7 物體識彆 179
7.7.1 ORK功能包 179
7.7.2 建立物體模型庫 181
7.7.3 模型訓練 183
7.7.4 三維物體識彆 184
7.8 本章小結 185
第8章 機器語音 186
8.1 讓機器人聽懂你說的話 187
8.1.1 pocketsphinx功能包 187
8.1.2 語音識彆測試 188
8.1.3 創建語音庫 190
8.1.4 創建launch文件 192
8.1.5 語音指令識彆 192
8.1.6 中文語音識彆 192
8.2 通過語音控製機器人 193
8.2.1 編寫語音控製節點 193
8.2.2 語音控製小烏龜運動 194
8.3 讓機器人說話 195
8.3.1 sound_play功能包 195
8.3.2 語音播放測試 195
8.4 人工智能標記語言 196
8.4.1 AIML中的標簽 196
8.4.2 Python中的AIML解析器 197
8.5 與機器人對話 198
8.5.1 語音識彆 199
8.5.2 智能匹配應答 201
8.5.3 文本轉語音 202
8.5.4 智能對話 203
8.6 讓機器人聽懂中文 204
8.6.1 下載科大訊飛SDK 204
8.6.2 測試SDK 206
8.6.3 語音聽寫 207
8.6.4 語音閤成 209
8.6.5 智能語音助手 211
8.7 本章小結 213
第9章 機器人SLAM與自主導航 214
9.1 理論基礎 214
9.2 準備工作 216
9.2.1 傳感器信息 217
9.2.2 仿真平颱 219
9.2.3 真實機器人 222
9.3 gmapping 224
9.3.1 gmapping功能包 224
9.3.2 gmapping節點的配置與運行 227
9.3.3 在Gazebo中仿真SLAM 228
9.3.4 真實機器人SLAM 231
9.4 hector-slam 234
9.4.1 hector-slam功能包 234
9.4.2 hector_mapping節點的配置與運行 236
9.4.3 在Gazebo中仿真SLAM 237
9.4.4 真實機器人SLAM 238
9.5 cartographer 240
9.5.1 cartographer功能包 240
9.5.2 官方demo測試 241
9.5.3 cartographer節點的配置與運行 244
9.5.4 在Gazebo中仿真SLAM 246
9.5.5 真實機器人SLAM 247
9.6 rgbdslam 249
9.6.1 rgbdslam功能包 249
9.6.2 使用數據包實現SLAM 250
9.6.3 使用Kinect實現SLAM 252
9.7 ORB_SLAM 253
9.7.1 ORB_SLAM功能包 253
9.7.2 使用數據包實現單目SLAM 254
9.7.3 使用攝像頭實現單目SLAM 256
9.8 導航功能包 258
9.8.1 導航框架 258
9.8.2 move_base功能包 258
9.8.3 amcl功能包 260
9.8.4 代價地圖的配置 263
9.8.5 本地規劃器配置 266
9.9 在rviz中仿真機器人導航 267
9.9.1 創建launch文件 267
9.9.2 開始導航 268
9.9.3 自動導航 269
9.10 在Gazebo中仿真機器人導航 277
9.10.1 創建launch文件 277
9.10.2 運行效果 278
9.10.3 實時避障 279
9.11 真實機器人導航 280
9.11.1 創建launch文件 280
9.11.2 開始導航 282
9.12 自主探索SLAM 282
9.12.1 創建launch文件 282
9.12.2 通過rviz設置探索
目標 283
9.12.3 實現自主探索SLAM 284
9.13 本章小結 286
第10章 MoveIt!機械臂控製 287
10.1 MoveIt!係統架構 288
10.1.1 運動組(move_group) 288
10.1.2 運動規劃器(motion_planner) 290
10.1.3 規劃場景 291
10.1.4 運動學求解器 291
10.1.5 碰撞檢測 291
10.2 如何使用MoveIt! 292
10.3 創建機械臂模型 292
10.3.1 聲明模型中的宏 292
10.3.2 創建六軸機械臂模型 294
10.3.3 加入Gazebo屬性 299
10.3.4 顯示機器人模型 300
10.4 使用Setup Assistant配置機械臂 302
10.4.1 加載機器人URDF模型 303
10.4.2 配置自碰撞矩陣 304
10.4.3 配置虛擬關節 304
10.4.4 創建規劃組 304
10.4.5 定義機器人位姿 307
10.4.6 配置終端夾爪 308
10.4.7 配置無用關節 309
10.4.8 設置作者信息 309
10.4.9 生成配置文件 309
10.5 啓動MoveIt! 310
10.5.1 拖動規劃 311
10.5.2 隨機目標規劃 311
10.5.3 初始位姿更新 313
10.5.4 碰撞檢測 314
10.6 配置文件 315
10.6.1 SRDF文件 315
10.6.2 fake_controllers.yaml 316
10.6.3 joint_limits.yaml 317
10.6.4 kinematics.yaml 317
10.6.5 ompl_planning.yaml 318
10.7 添加ArbotiX關節控製器 318
10.7.1 添加配置文件 318
10.7.2 運行ArbotiX節點 318
10.7.3 測試例程 319
10.7.4 運行效果 321
10.8 配置MoveIt!關節控製器 322
10.8.1 添加配置文件 323
10.8.2 啓動插件 324
10.9 MoveIt!編程學習 324
10.9.1 關節空間規劃 324
10.9.2 工作空間規劃 328
10.9.3 笛卡兒運動規劃 333
10.9.4 避障規劃 338
10.10 pick and place示例 345
10.10.1 應用效果 345
10.10.2 創建抓取的目標物體 346
10.10.3 設置目標物體的放置位置 346
10.10.4 生成抓取姿態 346
10.10.5 pick 348
10.10.6 place 348
10.11 Gazebo中的機械臂仿真 349
10.11.1 創建配置文件 350
10.11.2 創建launch文件 350
10.11.3 開始仿真 351
10.12 使用MoveIt!控製Gazebo中的機械臂 353
10.12.1 關節軌跡控製器 354
10.12.2 MoveIt!控製器 355
10.12.3 關節狀態控製器 356
10.12.4 運行效果 357
10.13 ROS-I 358
10.13.1 ROS-I的目標 359
10.13.2 ROS-I的安裝 359
10.13.3 ROS-I的架構 360
10.14 本章小結 362
第11章 ROS與機器學習 363
11.1 AlphaGo的大腦——Tensor-Flow 364
11.2 TensorFlow基礎 364
11.2.1 安裝TensorFlow 364
11.2.2 核心概念 366
11.2.3 第一個TensorFlow程序 367
11.3 綫性迴歸 369
11.3.1 理論基礎 369
11.3.2 創建數據集 371
11.3.3 使用TensorFlow解決綫性迴歸問題 372
11.4 手寫數字識彆 374
11.4.1 理論基礎 374
11.4.2 TensorFlow中的MNIST例程 377
11.4.3 基於ROS實現MNIST 381
11.5 物體識彆 384
11.5.1 安裝TensorFlow Object Detection API 385
11.5.2 基於ROS實現動態物體識彆 388
11.6 本章小結 390
第12章 ROS進階功能 391
12.1 action 391
12.1.1 什麼是action 391
12.1.2 action的工作機製 392
12.1.3 action的定義 392
12.1.4 實現action通信 393
12.2 plugin 396
12.2.1 工作原理 396
12.2.2 如何實現一個插件 396
12.2.3 創建基類 397
12.2.4 創建plugin類 398
12.2.5 注冊插件 399
12.2.6 編譯插件的動態鏈接庫 399
12.2.7 將插件加入ROS 399
12.2.8 調用插件 400
12.3 rviz plugin 401
12.3.1 速度控製插件 402
12.3.2 創建功能包 402
12.3.3 代碼實現 402
12.3.4 編譯插件 407
12.3.5 運行插件 408
12.4 動態配置參數 409
12.4.1 創建配置文件 410
12.4.2 創建服務器節點 412
12.4.3 參數動態配置 413
12.5 SMACH 414
12.5.1 什麼是SMACH 415
12.5.2 狀態機“跑”起來 415
12.5.3 狀態機實現剖析 416
12.5.4 狀態間的數據傳遞 419
12.5.5 狀態機嵌套 421
12.5.6 多狀態並行 422
12.6 ROS-MATLAB 423
12.6.1 ROS-MATLAB是什麼 423
12.6.2 ROS-MATLAB可以做什麼 424
12.6.3 連接MATLAB和ROS 425
12.6.4 MATLAB可視化編程 428
12.6.5 創建可視化界麵 429
12.6.6 編輯控件的迴調函數 431
12.6.7 運行效果 434
12.7 Web GUI 435
12.7.1 ROS中的Web功能包 435
12.7.2 創建Web應用 436
12.7.3 使用Web瀏覽器控製機器人 439
12.8 本章小結 440
第13章 ROS機器人實例 441
13.1 PR2 441
13.1.1 PR2功能包 442
13.1.2 Gazebo中的PR2 443
13.1.3 使用PR2實現SLAM 446
13.1.4 PR2機械臂的使用 448
13.2 TurtleBot 450
13.2.1 TurtleBot功能包 451
13.2.2 Gazebo中的TurtleBot 451
13.2.3 使用TurtleBot實現導航功能 453
13.2.4 嘗試TurtleBot 3 456
13.3 Universal Robots 457
13.3.1 Universal Robots功能包 458
13.3.2 Gazebo中的UR機器人 459
13.3.3 使用MoveIt!控製UR機器人 460
13.4 catvehicle 462
13.4.1 構建無人駕駛仿真係統 463
13.4.2 運行無人駕駛仿真器 465
13.4.3 控製無人駕駛汽車 466
13.4.4 實現無人駕駛汽車的SLAM功能 467
13.5 HRMRP 469
13.5.1 總體架構設計 469
13.5.2 SLAM與導航 471
13.5.3 多機器人擴展 472
13.6 Kungfu Arm 474
13.6.1 總體架構設計 474
13.6.2 具體層次功能 475
13.6.3 功夫茶應用展示 478
13.7 本章小結 478
第14章 ROS 2 479
14.1 ROS 1存在的問題 480
14.2 什麼是ROS 2 481
14.2.1 ROS 2的設計目標 481
14.2.2 ROS 2的係統架構 482
14.2.3 ROS 2的關鍵中間件——DDS 483
14.2.4 ROS 2的通信模型 483
14.2.5 ROS 2的編譯係統 485
14.3 在Ubuntu上安裝ROS 2 487
14.3.1 安裝步驟 487
14.3.2 運行talker和listener例程 488
14.4 在Windows上安裝ROS 2 489
14.4.1 安裝Chocolatey 489
14.4.2 安裝Python 490
14.4.3 安裝OpenSSL 490
14.4.4 安裝Visual StudioCommunity 2015 491
14.4.5 配置DDS 491
14.4.6 安裝OpenCV 492
14.4.7 安裝依賴包 492
14.4.8 下載並配置ROS 2 492
14.4.9 運行talker和listener例程 493
14.5 ROS 2中的話題通信 494
14.5.1 創建工作目錄和功能包 494
14.5.2 創建talker 495
14.5.3 創建listener 497
14.5.4 修改CMakeLists.txt 497
14.5.5 編譯並運行節點 498
14.6 自定義話題和服務 499
14.6.1 自定義話題 499
14.6.2 自定義服務 499
14.6.3 修改CMakeLists.txt和package.xml 499
14.6.4 編譯生成頭文件 499
14.7 ROS 2中的服務通信 500
14.7.1 創建Server 500
14.7.2 創建Client 501
14.7.3 修改CMakeLists.txt 503
14.7.4 編譯並運行節點 503
14.8 ROS 2與ROS 1的集成 504
14.8.1 ros1_bridge功能包 504
14.8.2 話題通信 504
14.8.3 服務通信 504
14.9 本章小結 505

---------------------------7731483---------------------------


譯者序
作者簡介
前言
第1章 ROS初體驗1
1.1 ROS的用途以及學習ROS的好處1
1.2 哪些機器人采用瞭ROS2
1.3 安裝並啓動ROS4
1.3.1 配置Ubuntu係統的軟件源4
1.3.2 設置Ubuntu係統軟件源列錶5
1.3.3 設置Ubuntu係統密鑰5
1.3.4 安裝ROS Indigo5
1.3.5 初始化rosdep6
1.3.6 環境設置6
1.3.7 安裝rosinstall7
1.3.8 故障排除—ROS環境測試7
1.4 生成一個catkin工作空間7
1.5 ROS的功能包與清單8
1.5.1 ROS清單9
1.5.2 探索ROS功能包9
1.6 ROS節點與ROS節點管理器11
1.6.1 ROS節點11
1.6.2 ROS節點管理器12
1.6.3 確定節點和主題的ROS命令14
1.7 第一個ROS機器人模擬程序—Turtlesim15
1.7.1 啓動Turtlesim節點15
1.7.2 Turtlesim節點16
1.7.3 Turtlesim主題與消息18
1.7.4 Turtlesim的參數服務器20
1.7.5 移動烏龜的ROS服務22
1.8 ROS命令小結23
1.9 本章小結24
第2章 構建一個模擬的兩輪ROS機器人25
2.1 rviz25
2.1.1 安裝和啓動rviz26
2.1.2 使用rviz27
2.2 生成並構建ROS功能包29
2.3 構建差分驅動的機器人URDF30
2.3.1 生成機器人底座31
2.3.2 使用roslaunch32
2.3.3 添加輪子35
2.3.4 添加小腳輪37
2.3.5 添加顔色38
2.3.6 添加碰撞屬性40
2.3.7 移動輪子41
2.3.8 tf和robot_state_publisher簡介42
2.3.9 添加物理學屬性42
2.3.10 試用URDF工具43
2.4 Gazebo45
2.4.1 安裝並啓動Gazebo45
2.4.2 使用roslaunch啓動Gazebo46
2.4.3 使用Gazebo47
2.4.4 機器人URDF的修改50
2.4.5 Gazebo模型驗證51
2.4.6 在Gazebo中查看URDF51
2.4.7 機器人模型調整53
2.4.8 移動機器人模型53
2.4.9 其他的機器人仿真環境54
2.5 本章小結55
第3章 TurtleBot機器人操控56
3.1 TurtleBot機器人簡介56
3.2 下載TurtleBot模擬器軟件57
3.3 在Gazebo中啓動TurtleBot模擬器58
3.3.1 常見問題與故障排除60
3.3.2 ROS命令與Gazebo61
3.3.3 模擬環境下使用鍵盤遠程控製TurtleBot63
3.4 控製一颱真正的TurtleBot機器人的準備64
3.5 聯接上網本與遠程計算機66
3.5.1 網絡類型67
3.5.2 網絡地址67
3.5.3 遠程計算機網絡設置68
3.5.4 上網本網絡設置69
3.5.5 安全外殼協議聯接69
3.5.6 網絡設置小結70
3.5.7 排查網絡聯接中的故障70
3.5.8 TurtleBot機器人係統測試70
3.6 TurtleBot機器人的硬件規格參數72
3.7 移動真實的TurtleBot機器人73
3.7.1 采用鍵盤遠程控製TurtleBot機器人移動74
3.7.2 采用ROS命令控製TurtleBot機器人移動75
3.7.3 編寫第一個Python腳本程序控製TurtleBot機器人移動76
3.8 rqt工具簡介79
3.8.1 rqt_graph79
3.8.2 rqt的消息發布與主題監控82
3.9 TurtleBot機器人的裏程計84
3.9.1 模擬的TurtleBot機器人的測程84
3.9.2 真實的TurtleBot機器人的裏程計在rviz下的顯示86
3.10 TurtleBot機器人的自動充電88
3.11 本章小結90
第4章 TurtleBot機器人導航91
4.1 TurtleBot機器人的3D視覺係統92
4.1.1 3D視覺傳感器原理92
4.1.2 3D傳感器對比92
4.1.3 障礙物規避的缺陷96
4.2 配置TurtleBot機器人並安裝3D傳感器軟件96
4.2.1 Kinect96
4.2.2 ASUS與PrimeSense98
4.2.3 攝像頭軟件結構98
4.2.4 術語界定98
4.3 獨立模式下測試3D傳感器99
4.4 運行ROS可視化節點100
4.4.1 使用Image Viewer可視化數據100
4.4.2 使用rviz可視化數據102
4.5 TurtleBot機器人導航105
4.5.1 采用TurtleBot機器人構建房間地圖105
4.5.2 采用TurtleBot機器人實現自主導航109
4.5.3 rqt_reconfigure116
4.5.4 進一步探索ROS導航117
4.6 本章小結117
第5章 構建模擬的機器人手臂119
5.1 Xacro的特點119
5.2 采用Xacro建立一個關節式機器人手臂URDF121
5.2.1 使用Xacro屬性標簽121
5.2.2 使用roslaunch啓動rrbot124
5.2.3 使用Xacro的包含與宏標簽126
5.2.4 給機器人手臂添加網格129
5.3 在Gazebo中控製關節式機器人手臂133
5.3.1 添加Gazebo特定的元素133
5.3.2 將機器人手臂固定在世界坐標係下135
5.3.3 在Gazebo中查看機器人手臂135
5.3.4 給Xacro添加控件136
5.3.5 采用ROS命令行控製機器人手臂140
5.3.6 采用rqt控製機器人手臂141
5.4 本章小結143
第6章 機器人手臂搖擺的關節控製144
6.1 Baxter簡介145
6.1.1 Baxter,一款研究型機器人146
6.1.2 Baxter模擬器147
6.2 Baxter的手臂147
6.2.1 Baxter的俯仰關節149
6.2.2 Baxter的滾轉關節149
6.2.3 Baxter的坐標係149
6.2.4 Baxter手臂的控製模式150
6.2.5 Baxter手臂抓手151
6.2.6 Baxter手臂的傳感器152
6.3 下載Baxter軟件152
6.3.1 安裝Baxter SDK軟件152
6.3.2 安裝Baxter模擬器154
6.3.3 配置Baxter shell155
6.3.4 安裝MoveIt156
6.4 在Gazebo中啓動Baxter模擬器157
6.4.1 啓動Baxter模擬器157
6.4.2 “熱身”練習161
6.4.3 彎麯Baxter手臂163
6.4.4 Baxter手臂控製器的調校173
6.5 Baxter手臂與正嚮運動學174
6.5.1 關節與關節狀態發布器174
6.5.2 理解tf177
6.5.3 rviz下的tf坐標係180
6.5.4 查看機器人元素的tf樹181
6.6 MoveIt簡介182
6.6.1 采用MoveIt給Baxter手臂進行運動規劃184
6.6.2 在場景中添加物體185
6.6.3 采用MoveIt進行避障運動規劃186
6.7 配置真實的Baxter機器人188
6.8 控製真實的Baxter機器人190
6.8.1 控製關節到達航路點190
6.8.2 控製關節的力矩彈簧191
6.8.3 關節速度控製演示192
6.8.4 其他示例192
6.8.5 視覺伺服和抓握192
6.9 反嚮運動學193
6.10 本章小結196
第7章 空中機器人基本操控198
7.1 四鏇翼飛行器簡介199
7.1.1 風靡的四鏇翼飛行器199
7.1.2 滾轉角、俯仰角與偏航角200
7.1.3 四鏇翼飛行器原理201
7.1.4 四鏇翼飛行器的組成203
7.1.5 添加傳感器203
7.1.6 四鏇翼飛行器的通信204
7.2 四鏇翼飛行器的傳感器204
7.2.1 慣性測量單元205
7.2.2 四鏇翼飛行器狀態傳感器205
7.3 放飛前的準備工作205
7.3.1 四鏇翼飛行器檢測206
7.3.2 飛行前檢測列錶206
7.3.3 飛行中的注意事項207
7.3.4 需要遵循的規則和條例207
7.4 在無人機中使用ROS208
7.5 Hector四鏇翼飛行器簡介208
7.5.1 下載Hector Quadrotor功能包209
7.5.2 在Gazebo中啓動Hector四鏇翼飛行器210
7.6 Crazyflie 2.0簡介216
7.6.1 無ROS情況下的Crazy-flie控製218
7.6.2 使用Crazyradio PA進行通信218
7.6.3 加載Crazyflie ROS軟件219
7.6.4 放飛前的檢查222
7.6.5 使用teleop操控Crazy-flie飛行222
7.6.6 在運動捕獲係統下飛行226
7.6.7 控製多個Crazyflie飛行226
7.7 Bebop簡介227
7.7.1 加載bebop_autonomy軟件228
7.7.2 Bebop飛行前的準備229
7.7.3 使用命令控製Bebop飛行230
7.8 本章小結231
第8章 使用外部設備控製機器人233
8.1 創建自定義ROS遊戲控製器接口233
8.1.1 測試遊戲控製器234
8.1.2 使用joy ROS功能包236
8.1.3 使用自定義遊戲控製器接口控製Turtlesim237
8.2 創建自定義ROS Android設備接口242
8.2.1 使用Turtlebot Remocon進行操控242
8.2.2 使用Android設備實現ROS機器人的自定義控製245
8.3 在Arduino或樹莓派上創建ROS節點249
8.3.1 使用Arduino249
8.3.2 使用樹莓派260
8.4 本章小結261
第9章 操控Crazyflie執行飛行任務262
9.1 執行任務所需的組件263
9.1.1 用於Windows的Kinect v2263
9.1.2 Crazyflie操作263
9.1.3 任務軟件結構264
9.1.4 OpenCV與ROS265
9.2 安裝任務所需的軟件266
9.2.1 安裝libfreenect2267
9.2.2 安裝iai_kinect2269
9.2.3 使用iai_kinect2元包271
9.3 任務設置277
9.3.1 探測Crazyflie與目標277
9.3.2 使用Kinect與OpenCV281
9.3.3 對Crazyflie進行跟蹤283
9.4 Crazyflie控製285
9.5 放飛Crazyflie290
9.5.1 懸停290
9.5.2 飛往靜止目標292
9.5.3 吸取的經驗294
9.6 本章小結295
第10章 ROS功能擴展296
10.1 通過聲音控製機器人296
10.1.1 Sphinx庫297
10.1.2 Rospeex庫298
10.2 給機器人添加語音功能299
10.3 給機器人添加人臉識彆功能299
10.3.1 采用級聯分類器進行人臉識彆300
10.3.2 采用OpenCV進行人臉識彆301
10.4 本章小結303

---------------------------6479751---------------------------


推薦序一
推薦序二
譯者序
前言
作者簡介
審校者簡介
第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.1.1 工作空間 21
2.1.2 功能包 22
2.1.3 元功能包 23
2.1.4 消息 24
2.1.5 服務 25
2.2 理解ROS計算圖級 25
2.2.1 節點與nodelet 27
2.2.2 主題 28
2.2.3 服務 29
2.2.4 消息 29
2.2.5 消息記錄包 30
2.2.6 節點管理器 30
2.2.7 參數服務器 30
2.3 理解ROS開源社區級 31
2.4 ROS試用練習 32
2.4.1 ROS文件係統導覽 32
2.4.2 創建工作空間 32
2.4.3 創建ROS功能包和元功能包 33
2.4.4 編譯ROS功能包 34
2.4.5 使用ROS節點 35
2.4.6 如何使用主題與節點交互 37
2.4.7 如何使用服務 39
2.4.8 使用參數服務器 41
2.4.9 創建節點 42
2.4.10 編譯節點 44
2.4.11 創建msg和srv文件 45
2.4.12 使用新建的srv和msg文件 48
2.4.13 launch文件 51
2.4.14 動態參數 53
2.5 本章小結 57
第3章 可視化和調試工具 58
3.1 調試ROS節點 60
3.1.1 使用gdb調試器調試ROS節點 60
3.1.2 在ROS節點啓動時調用gdb調試器 61
3.1.3 在ROS節點啓動時調用valgrind分析節點 62
3.1.4 設置ROS節點core文件轉儲 62
3.2 日誌消息 62
3.2.1 輸齣日誌消息 62
3.2.2 設置調試消息級彆 63
3.2.3 為特定節點配置調試消息級彆 64
3.2.4 消息命名 65
3.2.5 按條件顯示消息與過濾消息 65
3.2.6 顯示消息的方式——單次、可調以及其他組閤 66
3.2.7 使用rqt_console和rqt_logger_level在運行時修改調試級彆 66
3.3 檢測係統狀態 69
3.4 設置動態參數 73
3.5 當齣現異常狀況時使用roswtf 75
3.6 可視化節點診斷 77
3.7 繪製標量數據圖 78
3.8 圖像可視化 81
3.9 3D可視化 83
3.9.1 使用rqt_rviz在3D世界中實現數據可視化 83
3.9.2 主題與坐標係的關係 86
3.9.3 可視化坐標變換 87
3.10 保存與迴放數據 88
3.10.1 什麼是消息記錄包文件 89
3.10.2 使用rosbag在消息記錄包文件中記錄數據 89
3.10.3 迴放消息記錄包文件 90
3.10.4 查看消息記錄包文件的主題和消息 91
3.11 應用rqt與rqt_gui插件 93
3.12 本章小結 93
第4章 3D建模與仿真 95
4.1 在ROS中自定義機器人的3D模型 95
4.2 創建第一個URDF文件 95
4.2.1 解釋文件格式 97
4.2.2 在rviz裏查看3D模型 98
4.2.3 加載網格到機器人模型中 100
4.2.4 使機器人模型運動 100
4.2.5 物理和碰撞屬性 101
4.3 xacro——一種更好的機器人建模方法 102
4.3.1 使用常量 102
4.3.2 使用數學方法 103
4.3.3 使用宏 103
4.3.4 使用代碼移動機器人 103
4.3.5 使用SketchUp進行3D建模 107
4.4 在ROS中仿真 109
4.4.1 在Gazebo中使用URDF 3D模型 109
4.4.2 在Gazebo中添加傳感器 112
4.4.3 在Gazebo中加載和使用地圖 115
4.4.4 在Gazebo中移動機器人 116
4.5 本章小結 118
第5章 導航功能包集入門 119
5.1 ROS導航功能包集 119
5.2 創建變換 120
5.2.1 創建廣播器 121
5.2.2 創建偵聽器 121
5.2.3 查看坐標變換樹 124
5.3 發布傳感器信息 124
5.4 發布裏程數據信息 127
5.4.1 Gazebo如何獲取裏程數據 128
5.4.2 使用Gazebo創建裏程數據 131
5.4.3 創建自定義裏程數據 132
5.5 創建基礎控製器 135
5.6 使用ROS創建地圖 139
5.6.1 使用map_server保存地圖 141
5.6.2 使用map_server加載地圖 141
5.7 本章小結 142
第6章 導航功能包集進階 144
6.1 創建功能包 144
6.2 創建機器人配置 144
6.3 配置全局和局部代價地圖 147
6.3.1 基本參數的配置 147
6.3.2 全局代價地圖的配置 148
6.3.3 局部代價地圖的配置 149
6.3.4 底盤局部規劃器配置 149
6.4 為導航功能包集創建啓動文件 150
6.5 為導航功能包集設置rviz 151
6.5.1 2D位姿估計 152
6.5.2 2D導航目標 152
6.5.3 靜態地圖 154
6.5.4 粒子雲 154
6.5.5 機器人占地空間 155
6.5.6 局部代價地圖 156
6.5.7 全局代價地圖 156
6.5.8 全局規劃 157
6.5.9 局部規劃 158
6.5.10 規劃器規劃 158
6.5.11 當前目標 159
6.6 自適應濛特卡羅定位 160
6.7 使用rqt_reconfigure修改參數 161
6.8 機器人避障 162
6.9 發送目標 163
6.10 本章小結 166
第7章 使用MoveIt! 167
7.1 MoveIt!體係結構 167
7.1.1 運動規劃 169
7.1.2 規劃場景 169
7.1.3 世界幾何結構顯示器 170
7.1.4 運動學 170
7.1.5 碰撞檢測 170
7.2 在MoveIt!中集成一個機械臂 171
7.2.1 工具箱裏有什麼 171
7.2.2 使用設置助手生成一個MoveIt!功能包 172
7.2.3 集成到RViz中 176
7.2.4 集成到Gazebo或實際機械臂中 179
7.3 簡單的運動規劃 180
7.3.1 規劃單個目標 181
7.3.2 規劃一個隨機目標 181
7.3.3 規劃預定義的群組狀態 183
7.3.4 顯示目標的運動 183
7.4 考慮碰撞的運動規劃 184
7.4.1 將對象添加到規劃場景中 184
7.4.2 從規劃的場景中刪除對象 185
7.4.3 應用點雲進行運動規劃 186
7.5 抓取和放置任務 187
7.5.1 規劃的場景 188
7.5.2 要抓取的目標對象 189
7.5.3 支撐麵 189
7.5.4 感知 191
7.5.5 抓取 191
7.5.6 抓取操作 193
7.5.7 放置操作 195
7.5.8 演示模式 197
7.5.9 在Gazebo中仿真 198
7.6 本章小結 199
第8章 在ROS下使用傳感器和執行器 200
8.1 使用遊戲杆或遊戲手柄 200
8.1.1 joy_node如何發送遊戲杆動作消息 201
8.1.2 使用遊戲杆數據移動機器人模型 202
8.2 使用Arduino添加更多的傳感器和執行器 206
8.2.1 創建使用Arduino的示例程序 207
8.2.2 由ROS和Arduino控製的機器人平颱 210
8.3 使用9自由度低成本IMU 217
8.3.1 安裝Razor IMU ROS庫 219
8.3.2 Razor如何在ROS中發送數據 221
8.3.3 創建一個ROS節點以使用機器人中的9DoF傳感器數據 222
8.3.4 使用機器人定位來融閤傳感器數據 223
8.4 使用IMU——Xsens MTi 225
8.5 GPS的使用 226
8.5.1 GPS如何發送信息 228
8.5.2 創建一個使用GPS的工程示例 229
8.6 使用激光測距儀——Hokuyo URG-04lx 230
8.6.1 瞭解激光如何在ROS中發送數據 231
8.6.2 訪問和修改激光數據 232
8.7 創建launch文件 234
8.8 使用Kinect傳感器查看3D環境中的對象 235
8.8.1 Kinect如何發送和查看傳感器數據 236
8.8.2 創建使用Kinect的示例 238
8.9 使用伺服電動機——Dynamixel 239
8.9.1 Dynamixel如何發送和接收運動命令 241
8.9.2 創建和使用伺服電動機示例 241
8.10 本章小結 243
第9章 計算機視覺 244
9.1 ROS攝像頭驅動程序支持 245
9.1.1 FireWire IEEE1394攝像頭 245
9.1.2 USB攝像頭 249
9.1.3 使用OpenCV製作USB攝像頭驅動程序 250
9.2 ROS圖像 255
9.3 ROS中的OpenCV庫 256
9.3.1 安裝OpenCV 3.0 256
9.3.2 在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.7.1 視覺裏程計 270
9.7.2 使用viso2實現視覺裏程計 270
9.7.3 攝像頭位姿標定 271
9.7.4 運行viso2在綫演示 273
9.7.5 使用低成本雙目攝像頭運行viso2 276
9.8 使用RGBD深度攝像頭實現視覺裏程計 276
9.8.1 安裝fovis 276
9.8.2 用Kinect RGBD深度攝像頭運行fovis 277
9.9 計算兩幅圖像的單應性 278
9.10 本章小結 279
第10章 點雲 280
10.1 理解點雲庫 280
10.1.1 不同的點雲類型 281
10.1.2 PCL中的算法 281
10.1.3 ROS的PCL接口 282
10.2 我的第一個PCL程序 283
10.2.1 創建點雲 284
10.2.2 加載和保存點雲到硬盤中 287
10.2.3 可視化點雲 290
10.2.4 濾波和縮減采樣 294
10.2.5 配準與匹配 298
10.2.6 點雲分區 301
10.3 分割 305
10.4 本章小結 308

用户评价

评分

评分

评分

评分

评分

评分

评分

评分

评分

相关图书

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有