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