機器人系統(tǒng)設(shè)計與制作:Python語言實現(xiàn)(原書第2版)
定 價:79 元
叢書名:智能系統(tǒng)與技術(shù)叢書
- 作者:[印]郎坦·約瑟夫(Lentin Joseph)
- 出版時間:2021/10/1
- ISBN:9787111691341
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP242
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書解釋了如何從零開始構(gòu)建一個自主移動機器人,并使用Python對其進行編程。本書從機器人的基礎(chǔ)概念開始,然后介紹機器人的3D建模和仿真。在對機器人成功進行仿真之后,討論了建立機器人原型所需的硬件組成。在本教程結(jié)束時,你將清楚地了解如何將所有東西集成到機器人中,以及如何將打包軟件。
機器人操作系統(tǒng)(ROS)是科研和工業(yè)領(lǐng)域非常受歡迎的機器人軟件框架。該系統(tǒng)性能強大,可以在機器人中實現(xiàn)多種功能,而不需要從零開始實施。 本書首先介紹機器人操作系統(tǒng)的基礎(chǔ)知識,以便你了解差分驅(qū)動機器人的基本原理。然后,介紹機器人建模知識以及如何使用機器人操作系統(tǒng)進行設(shè)計和模擬。接著將設(shè)計機器人硬件和接口驅(qū)動器。之后,講述如何使用機器人操作系統(tǒng)對深度傳感器和激光雷達進行配置和編程。后,將使用Qt框架為機器人創(chuàng)建圖形用戶界面。 學習完本書內(nèi)容后,你將清楚地了解如何將所有元素集成和組裝到機器人中,以及如何捆綁軟件包。 本書將介紹以下內(nèi)容: ? 如何從頭開始設(shè)計差分驅(qū)動機器人。 ? 如何使用機器人操作系統(tǒng)和URDF對差分機器人建模。 ? 如何使用機器人操作系統(tǒng)和Gazebo模擬差分機器人。 ? 如何設(shè)計機器人硬件電子器件。 ? 如何將機器人驅(qū)動器與嵌入式板連接起來。 ? 如何將機器人操作系統(tǒng)中的不同3D深度攝像頭連接起來。 ? 如何實現(xiàn)ChefBot機器人的自主導航。 ? 如何創(chuàng)建用于機器人控制的圖形用戶界面。
本書共有9章,介紹了如何從頭開始構(gòu)建自主移動機器人并使用 Python 對其進行編程。本書中提到的機器人是一種服務(wù)型機器人,可在家中、酒店和餐廳提供上菜服務(wù)。本書逐步討論了構(gòu)建該機器人的整個過程。首先介紹了機器人學的基本概念,然后闡述了機器人的3D建模和仿真,隨后討論了構(gòu)建機器人原型所需的硬件組件。
該機器人的軟件部分主要使用Python編程語言和軟件框架——比如機器人操作系統(tǒng)(Robot Operating System,ROS)和OpenCV視覺庫實現(xiàn)。Python的使用貫穿從機器人設(shè)計到創(chuàng)建用戶界面的整個過程。Gazebo仿真器用于模擬諸如OpenCV、OpenNI和PCL等機器人和機器視覺庫,其作用是處理2D和3D圖像數(shù)據(jù)。每一章都提供了足夠的理論知識來幫助理解應(yīng)用部分。本書由該領(lǐng)域的專家審閱,凝聚了他們的辛勤汗水以及對機器人技術(shù)的熱愛。
目標讀者
對于想要探索服務(wù)機器人領(lǐng)域的企業(yè)家,想要讓機器人實現(xiàn)更多功能的專業(yè)人士,想要探索更多機器人技術(shù)的研究人員,以及想要學習機器人技術(shù)的愛好者或?qū)W生,本書將大有助益。全書采用循序漸進的講解方式,便于讀者掌握。
內(nèi)容簡介
第1章解釋了機器人操作系統(tǒng)的基本概念,該系統(tǒng)是機器人編程的主要平臺。
第2章介紹了差分驅(qū)動機器人的基本概念。這些概念屬于差分驅(qū)動的運動學和逆向運動學范疇,有助于你了解如何在軟件中實現(xiàn)差分驅(qū)動控制。
第3章討論了機器人設(shè)計約束的計算和移動機器人的2D/3D建模方法。2D/3D建模以一組機器人需求為基礎(chǔ)實施。在完成設(shè)計和機器人建模后,讀者將得到設(shè)計的參數(shù),這些參數(shù)可用于機器人仿真設(shè)置。
第4章介紹了名為Gazebo的機器人仿真器,并指導讀者使用它來模擬自己的機器人。
第5章討論了如何選擇構(gòu)建ChefBot所需的各種硬件組件。
第6章討論了機器人中使用的各種驅(qū)動器和傳感器與TivaC開發(fā)板控制器的連接問題。
第7章討論了不同視覺傳感器(如Kinect和Orbecc Astra)的連接問題,視覺傳感器可用于ChefBot機器人的自主導航。
第8章討論了如何在機器人操作系統(tǒng)中完整構(gòu)建機器人硬件和軟件,以實現(xiàn)自主導航。
第9章介紹了如何開發(fā)圖形用戶界面來指揮機器人在類似酒店的環(huán)境中移動到餐桌旁邊。
如何充分利用本書
本書講的是構(gòu)建機器人的方法,在學習本書之前,你應(yīng)該配備一些硬件。你可以徹底從零開始構(gòu)建機器人,也可以購買一個帶有編碼器反饋的差分驅(qū)動配置機器人。你應(yīng)該購買一塊控制器板,例如用于嵌入式處理的美國德州儀器開發(fā)板,而且應(yīng)該至少有一臺用于整個機器人處理的筆記本電腦或上網(wǎng)本。本書中使用英特爾NUC進行機器人處理,它的結(jié)構(gòu)非常緊湊,而且性能優(yōu)異。學習3D視覺功能時,你應(yīng)該有一個3D傳感器,比如激光掃描儀、Kinect或Orbecc Astra。
在軟件部分,你應(yīng)該熟練掌握GNU/Linux命令的使用方法,并且對Python也有很好的了解。你需要安裝Ubuntu 1604 LTS才能使用這些示例。了解機器人操作系統(tǒng)、OpenCV、OpenNI和PCL將會有所幫助。要應(yīng)用這些示例,必須安裝機器人操作系統(tǒng)Kinect/Melodic。
下載示例代碼及彩色圖像
本書的示例代碼及所有截圖和樣圖,可以從http://wwwpacktpubcom通過個人賬號下載,也可以訪問華章圖書官網(wǎng)http://wwwhzbookcom,通過注冊并登錄個人賬號下載。
本書的代碼包也托管在GitHub上,網(wǎng)址為https://githubcom/PacktPublishing/LearningRoboticsusingPythonSecondEdition。
排版約定
文中的代碼體:表示代碼、數(shù)據(jù)庫表名稱、文件夾名稱、文件名、文件擴展名、路徑名、虛擬URL、用戶輸入和Twitter句柄。
代碼塊示例如下:
命令行輸入或輸出示例如下:
表示警告或重要說明。
表示提示和技巧。
前言
第1章ROS入門1
11技術(shù)要求1
12ROS概述1
121ROS框架3
122在Ubuntu上安裝ROS6
123什么是catkin9
124創(chuàng)建ROS軟件包10
125什么是Gazebo14
13本章小結(jié)17
14習題17
第2章差分驅(qū)動機器人的基礎(chǔ)知識18
21數(shù)學建模18
22正向運動學20
23逆向運動學23
24本章小結(jié)24
25習題24
26擴展閱讀25
第3章差分驅(qū)動機器人的建模26
31技術(shù)要求27
32服務(wù)機器人的設(shè)計要求27
33機器人的傳動裝置27
331選擇電機和輪子27
332設(shè)計小結(jié)29
333機器人底盤設(shè)計29
34安裝LibreCAD、Blender和MeshLab30
341安裝LibreCAD31
342安裝Blender31
343安裝MeshLab32
35用LibreCAD生成機器人的二維CAD圖32
351底座設(shè)計33
352底座連接桿設(shè)計35
353輪子、電機和電機夾具設(shè)計36
354腳輪設(shè)計37
355中間層設(shè)計37
356頂層設(shè)計39
36用Blender制作機器人的三維模型40
361在Blender中編寫Python腳本40
362Blender Python API41
363機器人模型的Python腳本42
37創(chuàng)建機器人的URDF模型47
38本章小結(jié)53
39習題53
310擴展閱讀53
第4章利用ROS模擬差分驅(qū)動機器人54
41技術(shù)要求54
42開始使用Gazebo仿真器55
43結(jié)合TurtleBot 2進行仿真工作59
44創(chuàng)建ChefBot仿真62
441深度圖像到激光掃描的轉(zhuǎn)換65
442Gazebo仿真的URDF標簽和插件65
45可視化機器人傳感器數(shù)據(jù)70
451即時定位與地圖構(gòu)建72
452使用SLAM創(chuàng)建地圖73
453自適應(yīng)蒙特卡羅定位75
454在Gazebo環(huán)境中實現(xiàn)AMCL76
455ChefBot在酒店中使用Gazebo進行自主導航78
46本章小結(jié)79
47習題79
48擴展閱讀80
第5章設(shè)計ChefBot的硬件和電路81
51技術(shù)要求81
52ChefBot硬件規(guī)格82
53機器人框圖82
531電機和編碼器83
532電機驅(qū)動器84
533嵌入式控制器板86
534超聲傳感器87
535慣性測量單元89
536Kinect/Orbbec Astra90
537中央處理單元91
538揚聲器和麥克風92
539電源和電池92
54ChefBot硬件的工作原理93
55本章小結(jié)95
56習題95
57擴展閱讀95
第6章將執(zhí)行器和傳感器連接到機器人控制器96
61技術(shù)要求97
62直流減速電機接入TivaC開發(fā)板97
621差分驅(qū)動輪式機器人99
622安裝Energia IDE99
623電機接口代碼104
63正交編碼器接入TivaC開發(fā)板107
631編碼器數(shù)據(jù)的處理108
632正交編碼器接口代碼111
64使用Dynamixel執(zhí)行器114
65使用超聲測距傳感器117
66使用紅外接近傳感器123
67使用慣性測量單元125
671慣性導航125
672將MPU 6050與TivaC開發(fā)板連接126
673在Energia中編寫接口代碼129
68本章小結(jié)131
69習題132
610擴展閱讀132
第7章視覺傳感器接入ROS133
71技術(shù)要求133
72機器人視覺傳感器和圖像處理庫134
721Pixy2/CMUcam5134
722羅技C920網(wǎng)絡(luò)攝像頭135
723Kinect 360135
724英特爾RealSense D400系列136
725Orbbec Astra深度傳感器137
73OpenCV、OpenNI和PCL概述138
731OpenCV138
732OpenNI143
733PCL144
74使用ROS、OpenCV和OpenNI進行Kinect的Python編程144
741啟動OpenNI驅(qū)動程序的方法145
742OpenCV的ROS接口145
75連接Orbbec Astra與ROS150
76使用Kinect、ROS、OpenNI和PCL處理點云150
77將點云數(shù)據(jù)轉(zhuǎn)換為激光掃描數(shù)據(jù)151
78使用ROS和Kinect實現(xiàn)SLAM算法153
79本章小結(jié)154
710習題154
711擴展閱讀155
第8章ChefBot硬件構(gòu)建和軟件集成156
81技術(shù)要求156
82構(gòu)建ChefBot硬件157
83配置ChefBot PC并設(shè)置ChefBot ROS軟件包160
84連接ChefBot傳感器和TivaC161
85編寫ChefBot的ROS Python驅(qū)動程序164
86了解ChefBot ROS啟動文件169
87使用ChefBot Python節(jié)點和啟動文件170
871使用SLAM在ROS上繪制房間地圖175
872使用ROS定位和導航177
88本章小結(jié)179
89習題179
810擴展閱讀179
第9章使用Qt和Python開發(fā)機器人GUI180
91技術(shù)要求180
92在Ubuntu 1604 LTS中安裝Qt181
93在Qt中使用Python綁定進行開發(fā)181
931PyQt181
932PySide182
94使用PyQt和PySide進行開發(fā)182
941Qt設(shè)計器183
942Qt信號與槽機制184
943將UI文件轉(zhuǎn)化為Python代碼185
944向PyQt代碼中添加槽定義186
945Hello World GUI應(yīng)用程序