機器人編程實戰 (Robot Programming: A Guide to Controlling Autonomous Robots)
內容描述
本書以一位受困於荒島的年輕人的視角帶領讀者進行一場冒險。他必須尋找到一種給機器人編程的方法才能得以逃離。本書作為一本控制自主機器人編程指南,介紹了編程機器人傳感器、電動機以及將想法轉換為機器人可以自主執行任務的實際方法和技術。對於硬、製造商、DIY項目,這些技術可以用於當今領先的機器人微控制器(ARM9和ARM7)和機器人平臺(包括廣泛流行的低成本Arduino平臺,LEGOMindstormsEV3、NXT,以及WoweeRSMedia機器人)。
目錄大綱
譯者序
前言
致謝
第1章究竟什麼是機器人1
1.1定義機器人的7個標準1
1.1.1標準1:感知環境2
1.1.2標準2:可編程的動作和行為2
1.1.3標準3:改變環境、與環境交互或作用於環境2
1.1.4標準4:具備電源2
1.1.5標準5:適用於表示指令和數據的語言3
1.1.6標準6:無需外部干預的自主性3
1.1.7標準7:一個沒有生命的機器4
1.1.8機器人分類4
1.1.9傳感器6
1.1.10執行器7
1.1.11末端作用器8
1.1.12控制器8
1.1.13機器人所在的場景12
1.2給機器人指令14
1.2.1每個機器人都有一種語言14
1.2.2遷就機器人的語言16
1.2.3在可視化編程環境中表示機器人場景18
1.2.4Midamba的困境18
1.3下文預告20
第2章機器人詞彙21
2.1為什麼需要更多努力22
2.2確定動作25
2.3自主機器人的ROLL模型26
2.3.1機器人的能力27
2.3.2場景和態勢中的機器人角色28
2.4下文預告30
第3章機器人場景圖形規劃31
3.1建立場景地圖31
3.1.1創建平面圖32
3.1.2機器人的世界34
3.1.3RSVPREAD設置36
3.2偽代碼和繪製RSVP流程圖38
3.2.1控制流程和控制結構39
3.2 .2子程序43
3.3目標和機器人狀態圖46
3.4下文預告50
第4章檢驗機器人的實際能力51
4.1微控制器的實際檢驗53
4.2傳感器的實際檢驗56
4.3執行器和末端作用器的檢驗60
4.4 REQUIRE機器人效能62
4.5下文預告64
第5章詳解傳感器65
5.1傳感器感知66
5.1.1模擬和數字傳感器68
5.1.2讀取模擬和數字信號69
5.1.3傳感器輸出71
5.1.4讀數存儲72
5.1. 5有源和無源傳感器72
5.1.6傳感器與微控制器的連接74
5.1.7傳感器屬性77
5.1.8範圍和分辨率78
5.1.9精度和準確度78
5.1.10線性度79
5.1.11傳感器校準80
5.1.12傳感器相關問題81
5.1.13終端用戶校準過程81
5.1.14校準方法82
5.2下文預告83
第6章通過編程控制機器人的傳感器84
6.1使用顏色傳感器84
6.1.1顏色傳感器模式86
6.1.2探測距離87
6.1.3機器人環境的照明87
6.1.4校準顏色傳感器88
6.1.5編程顏色傳感器89
6.2用於檢測和跟踪顏色目標的數碼相機92
6.3利用RSMedia跟踪顏色目標92
6.4使用PixyVision傳感器跟踪顏色目標95
6.4.1訓練Pixy以檢測目標96
6.4.2編程Pixy98
6.4.3詳解屬性101
6.5超聲波傳感器101
6.5.1超聲波傳感器的局限性和準確性102
6.5.2超聲波傳感器的模式106
6.5.3採樣讀數106
6.5.4傳感器讀數的數據類型107
6.5.5校準超聲波傳感器107
6.5.6編程超聲波傳感器108
6.6羅盤傳感器計算機器人的航向117
6.7下文預告121
第7章電動機和伺服機構編程122
7.1執行器是輸出轉換器122
7.1.1電動機特性123
7.1.2電壓123
7.1.3電流123
7.1 .4轉速123
7.1.5扭矩123
7.1.6電阻123
7.2不同類型的直流電動機124
7.2.1直流電動機124
7.2.2轉速和扭矩126
7.2.3齒輪電動機127
7.3電動機配置:直接和間接動力傳動系統134
7.4室內和室外機器人的地形挑戰134
7.4.1應對地形挑戰135
7.4.2機器人手臂和末端作用器的扭矩挑戰138
7.4.3計算扭矩和轉速需求138
7.4.4電動機和REQUIRE139
7.5通過編程使機器人移動140
7.5.1一個電動機,還是兩個、三個、更多個電動機140
7.5.2執行動作140
7.5.3編程動作141
7.5.4通過編程使電動機移動到指定位置145
7.5.5使用Arduino實現電動機編程151
7.6機器人手臂和末端作用器154
7.6.1不同類型的機器人手臂154
7.6.2機器人手臂的扭矩155
7.6.3不同類型的末端作用器157
7.6.4為機器人的手臂進行編程159
7.6.5計算運動學163
7.7下文預告166
第8章開始自主:構建機器人所對應的軟件機器人167
8.1初探軟件機器人169
8.1.1部件部分171
8.1.2動作部分171
8.1.3任務部分171
8.1.4場景(態勢)部分171
8.2機器人的ROLL模型和軟件機器人框架172
8.2.1BURT把軟件機器人框架轉換為類173
8.2.2第一次實現自主機器人程序設計184
8.3下文預告185
第9章機器人SPACES186
9.1機器人需要自身的SPACES187
9.1.1擴展的機器人場景187
9.1.2REQUIRE檢查表188
9.1.3前提或後置條件不滿足時會發生的情況190
9.1.4前提或後置條件不滿足時的行動選擇191
9.2詳解機器人初始化後置條件192
9.2.1啟動前提條件和後置條件194
9.2.2編碼前提條件和後置條件195
9.2.3前提和後置條件的出處200
9.3SPACES檢查和RSVP狀態圖204
9.4下文預告206
第10章自主機器人需要STORIES207
10.1不只是動作208
10.1.1BirthdayRobotTake2208
10.1.2機器人STORIES 209
10.1.3擴展的機器人場景210
10.1.4將Unitl的場景轉換為STORIES 210
10.1.5詳解場景的本體210
10.1.6關注機器人的意圖220
10.1.7面向對象的機器人代碼和效能問題243
10.2下文預告244
第11章系統整合:Midamba的第一個自主機器人編程245
11.1Midamba的初始場景245
11.1.1Midamba—夜之間成為機器人程序員245
11.1.2步驟1:機器人在倉庫場景中247
11.1 .3步驟2:設施場景1的機器人詞彙和ROLL模型249
11.1.4步驟3:設施場景1的RSVP 250
11.1.5機器人POV圖的佈局圖251
11.1.6Midamba的設施場景1(精簡) 252
11.1. 7RSVP的圖形化流程圖252
11.1.8RSVP的狀態圖258
11.2Midamba關於機器人Unit1和Unit2的STORIES 258
11.3下文預告270
第12章開源SARAA機器人總結274
12.1低成本、開源、入門級機器人274
12.1.1基於場景的編程有助於確保機器人的安全276
12.1.2SARAA機器人總結276
12.1.3對機器人編程新手的建議278
12.1.4Midamba場景的完整RSVP、STORIES和源代碼278
術語表279
作者介紹
作者:(美國)卡梅倫·休斯(Cameron Hughes) (美國)特雷西·休斯(Tracey Hughes)譯者:劉錦濤李筆鋒
卡梅倫·休斯(Cameron Hughes)是一名計算機和機器人程序員。他在Ctest實驗室擔任軟件師一職,目前他致力於機器智能替代( Altemative Intelligence for Machines,AIM)和機器人智能替代(Alternative Intelligence forRobots, AIR)技術。Cameron是AdvancedSoftware Construction公司知識團隊的首席人工智能工程師,也是智能機器人控制器和基於軟件的知識組件的構建者。此外,他還在楊斯敦州立大學擔任程序員,分析師一職。
特雷西·休斯(Tracey Hughes)是Ctest實驗室和Advanced Software Construction公司的高級軟件和圖形程序員,主要從事用戶界面以及信息與認知可視化軟件系統的開發。她的工作包括以圖形方式展示機器人和計算機的思維方式。
劉錦濤,博士,易科機器人實驗室(exbot.net)創始人,致力於機器人導航與控制技術研究,並熱衷於機器人前沿技術的分享,是國內最早的ROS技術傳播者之一。出版機器人方面譯著4本、專著1本。其中譯著《嵌入式機器入學》被新聞出版總署評為2012年年度優秀科技圖書,《機器人與未來》被第壹財經評為2015年年度特別推薦圖書。
李筆鋒,博士,易科機器人實驗室成員,研究方向為通信與信息處理技術。