無人機編程實戰:基於 ArduPilot 和 Pixhawk (Advanced Robotic Vehicles Programming: An Ardupilot and Pixhawk Approach)

Julio Alberto Mendoza-Mendoza 徐堅 張利明 吳文峰 李佳蓓譯 譯

買這商品的人也買了...

商品描述

本書包括三個部分,首先介紹自動駕駛儀和庫的特性。
然後著重介紹對ArduPilot庫的重要部分的理解,其中描述了代碼的每個主要組成部分。
第三部分是高級特性部分,目的是將獲得的知識擴展到實時應用程序。
每個部分都詳細描述了代碼及其組件、應用程序和交互。

作者簡介

胡里奧·阿爾貝托·門多薩-門多薩(Julio Alberto Mendoza-Mendoza)於2016年在墨西哥國立理工學院CIC獲得了計算機博士學位,專門研究欠驅動機器人、無人機系統,以及智能和非線性控制。
他還分別於2011年和2008年在墨西哥國立理工學院UPIITA獲得了OO技術碩士學位和機電工程學士學位。
目前,Julio正在研究相關領域的五項專利,並通過其2017年的DGAPA資助在墨西哥國立自治大學開發他的飛行串行機器人控制器理論。
Julio AlbertoMendoza-Mendoza和Victor Gonzalez-Villela在墨西哥國立自治大學(UNAM)工程學院OO工程中心(CIA)工作。

目錄大綱

譯者序
前言
致謝
第一部分 引言
第1章 硬件和軟件說明 2
11 自動駕駛儀 2
12 自動駕駛儀的種類:SDK與GUI 3
13 SDK的種類 4
14 Pixhawk自動駕駛儀(硬件) 5
15 克隆版本與原始版本 8
16 商業自動駕駛儀與你自己的設計 8
17 ArduPilot庫(軟件) 9
18 兼容性和類似項目 9
19 硬件和軟件之間的困惑 10
110 本章小結 10

第2章 ArduPilot工作環境 11
21 ArduPilot庫的相關文件類型 11
22 特定數據類型 11
23 所用程序的描述和流程 12
231 編碼和編譯 13
232 連接和加載接口 13
233 物理執行 13
234 顯示 13
235 反饋 14
24 上傳自定義代碼到自動駕駛儀 14
25 使用Eclipse創建新項目 16
26 錯誤校驗 21
27 ArduPilot庫中直接使用Arduino是否可行 26
28 本章小結 27

第3章 概念和定義 28
31 輔助組件 28
311 無刷電機 28
312 ESC 29
313 螺旋槳 30
314 框架 30
315 特殊連接器 31
316 遙測模塊(無線串行通信) 32
317 鋰電池 33
318 電池測試儀或電池監測器 33
319 GPS模塊 34
3110 分配器 34
3111 電源模塊 35
3112 矽線 36
3113 熱電偶 36
3114 緊扣件 36
3115 被動防振模塊 36
3116 遙控器 37
3117 嵌入式車載電腦 37
3118 特殊Pixhawk組件 38
32 計算效率與數學等式 38
33 使用變量、函數、模塊和對象 39
331 變量 39
332 結構體 39
333 函數 40
334 模塊 40
34 getter和setter的概念 42
35 方向和位置的概念 42
36 安裝和編碼之間的區別 44
37 ArduPilot代碼的常用部分 44
38 ArduPilot代碼編程的常用模型 45
39 本章小結 46
參考資料和建議網站 47

第二部分 順序操作模式
第4章 基本輸入和輸出操作 51
41 頭文件 52
42 設置 54
421 寫入終端 54
422 讀取終端 56
423 讀取無線電信號 57
43 輔助通道與狀態機簡介 62
431 內部傳感器讀取位置和方向 64
432 外部位置傳感器讀數(GPS) 68
433 讀取模擬傳感器 72
434 信號濾波 73
435 讀寫數字 75
436 電池讀數 77
437 通過主LED使用視覺警報 78
44 本章小結 79

第5章 高級操作 80
51 有線和無線串行通信 80
52 通信程序 83
521 發送數據的過程 84
522 數據驗證過程 87
523 基本“校驗和”方法的描述 87
524 XOR“校驗和”方法的描述 87
53 輪詢 89
54 通過串行通信和開發板從外部設備讀取信息 97
55 寫入無刷電機(BLDC電機) 99
551 代碼優化 106
552 寫入電機的簡化函數 106
56 寫入標准直流電機(有刷) 110
57 使用步進電機 117
58 使用伺服電機執行輔助任務 118
59 ArduPilot兼容電機總結 121
510 數據的使用與存儲 121
511 使用Mission Planner GUI繪製SD數據 126
512 時間管理 133
513 本章小結 135

第6章 控制具有平穩飛行模式的四軸飛行器 136
61 多軸飛行器的基本建模 140
62 第二個例子:雙軸飛行器(同軸電機分析) 149
63 速度運動學關係 155
631 動態平移方程 157
632 動態旋轉方程 158
64 飛行模式 161
65 解耦的任務 163
66 控制方法 165
67 閉環與開環 165
68 飽和PD控制(飛行的軟模式基本控制) 166
69 無人機飛行的實施 175
610 本章小結 180
參考資料 180

第三部分 實 時 模 式
第7章 實時工作環境 184
71 鏈接器 184
72 調度程序說明 184
73 實時模式/調度程序模式下的ArduPilot常用部件 185
74 測量任務執行時間 186
75 本章小結 190

第8章 應用程序代碼 191
81 radiopde模塊 194
82 controlpde模塊 194
83 datapde模塊 197
84 posepde模塊 200
85 本章小結 201
參考資料 202
附錄1 與其他SDK命令的比較 203
附錄2 設置擴展代碼 205
附錄3 擴展頭文件 206
附錄4 完整功能代碼 210
附錄5 有用的關鍵字 215
附錄6 安裝ArduPilot庫 216
附錄7 推力矢量 234
附錄8 全向性 236
附錄9 擴展功率的方法 239
附錄10 四軸飛行器設計總結 241
附錄11 使用頭文件 245