本書系統介紹了動手制作(DIY)一個微型四旋翼飛行器的理論知識及實踐方法,主要目的是使讀者熟悉并掌握四旋翼飛行器的飛行控制及組裝原理,熟悉并掌握航電設備的使用。本書以四旋翼飛行器涉及的嵌入式系統基本概念、原理、定律和嵌入式系統軟/硬件開發(fā)方法為主線,以實際、實用、實踐為原則,淡化理論深度,突出工程應用,構建科學、協調、可操作的內容體系,知識結構合理,注重課程交叉,及時引入課程*發(fā)展成果。
前言
本書主要講述動手制作(DIY)一個微型四旋翼飛行器涉及的理論及實踐知識。四旋翼知識體系主要涉及兩大方面,即機械部分和電控部分,本書側重電控部分,以四旋翼電控開發(fā)工程師為培養(yǎng)目標,而電控部分具體指嵌入式系統開發(fā),按照嵌入式系統層次組成,本書各章節(jié)關系如下圖所示:
除了上述章節(jié)外,還包括第1章緒論和第11章飛手實訓。
本書與各章節(jié)理論相結合給出的代碼基于我們自己開發(fā)的飛控系統,該系統在首屆全國高校自動化專業(yè)青年教師實驗設備設計創(chuàng)客大賽中獲得銅獎(見下圖)。但本書的理論內容不拘泥于此,任選一款開源飛控,都可以參考本書進行四旋翼飛行器的相關學習。
本書以應用為導向進行內容安排。例如,四元數的概念放到第2章,四元數的微分方程放到第5.3節(jié);歐拉角的概念放到第2章,歐拉角奇點的概念在第3.3.5節(jié)中介紹,歐拉角和四元數的轉換放到第5.3節(jié)。
本書側重知識體系構建及引導案例設計,例如第7章和第9章,給出了知識框架,而沒有分別寫成STM32系列芯片手冊和FreeRTOS庫函數手冊,因為我們的目的是讓讀者在本書的指導下入門嵌入式學習,而芯片手冊等像磚頭一樣的參考資料可以上網下載,使用的時候查找即可。
本書反復論述的一個核心:四旋翼能夠飛行主要是依靠傳感器系統獲取位姿信息并反饋到微處理器進行控制系統的運算,然后驅動電動機完成姿態(tài)控制分別在第3、7、8、9章從不同方面進行論述,希望讀者進行相應歸納。
現在是互聯網架空大學的時代,在四旋翼開發(fā)實踐中,與其說四旋翼是做出來的,不如說是從搜索引擎搜出來的,因此希望大家和Baidu、Google做朋友,如果遇到一個四旋翼動力系統參數匹配細節(jié)問題,可以搜索四旋翼動力設計網頁;如果遇到嵌入式開發(fā)stm32固件庫函數使用上的問題,可以搜索固件庫文檔;如果遇到卡爾曼濾波、PID算法等典型任務,可以搜索示例代碼;當開發(fā)中遇到疑難雜癥時,可以提煉關鍵詞搜索是否有人遇到相同問題。總之,網絡就是大金礦,而搜索引擎就是采礦機器,善用搜索引擎可以幫助我們充分利用豐富的網絡資源來進行有效的學習和開發(fā)。
本書是DJI大疆創(chuàng)新產學合作專業(yè)綜合改革項目的成果之一,得到了國內多旋翼知名企業(yè)大疆創(chuàng)新公司的支持,在此表示感謝。
本書由陳志旺等編著。其中,第1~3章、第7~10章和附錄由燕山大學陳志旺編寫;第4章由國網黑龍江省電力有限公司佳木斯供電公司宋娟編寫;第6章由國網黑龍江省電力有限公司佳木斯供電公司陳志興編寫;第11章由燕山大學寧志旋編寫;第5章由燕山大學呂宏詩編寫。全書由陳志旺統稿。參加本書編寫的還有薛佳偉、王敬、張子振、趙子錚、邵玉杰、王小飛、張健、黃興旺、白鋅和趙方亮。書中引用了一些網上文獻,無法一一注明出處,在此向原作者表示感謝!
由于編著者水平有限,書中難免存在錯誤與不妥之處,歡迎讀者朋友不吝賜教!
編著者
陳志旺博士,燕山大學副教授、碩導,主要從事預測控制、智能控制、嵌入式系統研發(fā)等方向的教學與科研工作,大學生創(chuàng)新性實驗計劃"嵌入式電動四旋翼飛行器的設計及實現"嵌入式四旋翼飛行器自主飛行的設計及實現指導教師,指導學生完成的"新型自適應四旋翼飛行器獲第12屆"挑戰(zhàn)杯"全國大學生課外學術科技作品競賽獎。
第1章 緒論
1.1 飛行器分類
1.2 無人機的概念
1.3 無人機自主飛行
1.3.1 自主飛行概念
1.3.2 無人機自主控制等級
1.3.3 無人機模塊化結構
1.4 國際空中機器人大賽
1.5 開源飛控
1.6 飛行器控制涉及的知識
第2章 空間坐標系及姿態(tài)角描述
2.1 滿足右手定則的坐標系
2.2 方向余弦陣
2.2.1 二維坐標旋轉
2.2.2 三維坐標旋轉
2.3 歐拉角
2.4 由等效旋轉矢量到四元數
2.4.1 向量點乘和叉乘
2.4.2 等效旋轉矢量
2.4.3 復數形式四元數
2.5 四元數、歐拉角以及方向余弦陣對比
第3章 四旋翼飛行器數學模型
3.1 飛行要素
3.1.1 大氣飛行環(huán)境
3.1.2 伯努利定理
3.1.3 固定翼飛機的平飛
3.2 四旋翼飛行器的飛行原理
3.3 四旋翼飛行器的數學模型
3.3.1 數學模型概述
3.3.2 建模假設條件
3.3.3 動力子系統建模
3.3.4 動力學模型
3.3.5 運動學模型
3.3.6 模型的簡化
3.4 四旋翼飛行器的特點
第4章 傳感器及姿態(tài)角測量
4.1 基本概念
4.2 MEMS
4.3 陀螺儀
4.3.1 機械陀螺儀原理
4.3.2 MEMS陀螺儀
4.3.3 ITG3200應用
4.4 加速度計
4.4.1 加速度計原理
4.4.2 LIS3VDQ結構
4.4.3 加速度計標定
4.5 磁羅盤
4.5.1 磁羅盤原理
4.5.2 磁羅盤LSM303DLH
4.5.3 磁羅盤標定
4.6 GPS
4.7 姿態(tài)角測量公式
4.7.1 俯仰角和滾轉角測量
4.7.2 偏航角測量
第5章 卡爾曼濾波
5.1 線性系統狀態(tài)能觀
5.2 卡爾曼濾波原理
5.2.1 數學基礎
5.2.2 卡爾曼濾波算法
5.2.3 卡爾曼濾波案例1
5.2.4 卡爾曼濾波案例2
5.2.5 參數分析
5.2.6 擴展卡爾曼濾波
5.3 卡爾曼濾波在姿態(tài)解算中的應用
5.3.1 四元數微分方程
5.3.2 狀態(tài)模型
5.3.3 測量模型
5.3.4 卡爾曼濾波算法步驟
5.3.5 四旋翼姿態(tài)解算代碼實現
第6章 動力系統
6.1 電動機
6.1.1 有刷電動機
6.1.2 空心杯電動機
6.1.3 無刷電動機特點
6.1.4 無刷電動機結構
6.1.5 無刷電動機工作原理
6.1.6 無刷電動機參數
6.2 電調
6.2.1 電調功能
6.2.2 電調原理
6.2.3 電調參數
6.3 電池
6.3.1 鋰電池簡介
6.3.2 電池參數
6.3.3 電池使用注意事項
6.4 螺旋槳
6.4.1 螺旋槳的作用
6.4.2 螺旋槳的分類
6.4.3 螺旋槳的參數
6.5 導線
6.6 機架
第7章 嵌入式主控系統
7.1 微型計算機的組成
7.2 CM3體系結構
7.3 CM3寄存器
7.4 STM32的存儲結構
7.4.1 總線接口
7.4.2 CM3存儲器組織
7.4.3 STM32存儲器映射
7.4.4 大端和小端
7.4.5 字節(jié)對齊
7.4.6 動態(tài)內存
7.5 ARM指令集
7.6 STM32F1和STM32F4的區(qū)別
7.7 STM32的選型
7.8 嵌入式系統分層結構
第8章 PID控制算法
8.1 控制的基本過程
8.2 四旋翼飛行器PID控制器原理
8.2.1 PID控制基本理論
8.2.2 控制規(guī)律的選擇
8.2.3 四旋翼飛行器的串級PID控制
8.3 PID參數整定
8.3.1 PID參數對系統性能的影響
8.3.2 參數整定基本概念
8.3.3 單環(huán)PID參數整定
8.3.4 串級PID參數整定
第9章 嵌入式操作系統
9.1 操作系統基本概念
9.1.1 操作系統功能
9.1.2 操作系統工作過程
9.1.3 前后臺系統
9.1.4 實時操作系統
9.1.5 通用操作系統與實時操作系統的比較
9.2 飛行器與操作系統
9.3 操作系統中的任務
9.3.1 任務的特性
9.3.2 多任務的實現
9.3.3 任務劃分的目標
9.4 FreeRTOS操作系統簡介
9.5 FreeRTOS中的任務管理
9.5.1 FreeRTOS中的任務
9.5.2 相對延
9.5.3 絕對延
9.6 FreeRTOS中的互斥信號量
9.6.1 互斥信號量的概念
9.6.2 互斥信號量的應用
9.7 FreeRTOS中的任務通信
9.7.1 隊列概念
9.7.2 隊列通信案例
9.8 飛控操作系統中的任務及其通信
第10章 無線通信
10.1 無線通信原理
10.2 無線電波
10.2.1 無線通信按頻率分類
10.2.2 2.4GHz無線技術簡介
10.2.3 2.4GHz無線通信擴頻技術
10..2..4 2.4GHz無線技術特點
10.3 手持遙控器工作原理
10.3.1 發(fā)射機
10.3.2 接收機
10.3.3 設備使用中需注意的問題
10.4 飛行器的其他無線通信
第11章 飛手實訓
11.1 無人機就業(yè)職位要求
11.2 飛手練習方法
11.3 民用無人機空中交通管理辦法
11.4 飛行時的注意事項
11.4.1 人
11.4.2 機
11.4.3 環(huán)境
11.5 飛行器檢修及保養(yǎng)
附錄A 橢球相關程序
附錄B 卡爾曼濾波代碼
附錄C PID參數對系統性能影響試驗代碼
參考文獻