![](/c49/33/54363217725.jpg)
出版社:清華大學出版社 ISBN:9787302472568 商品編碼:54363217725 包裝:平裝-膠訂 開本:128 出版時間:2017-09-01 代碼:69 作者:林慶峰,諶利,奚海蛟
" 內容介紹 隨著集成電路、微控制器以及微機電技術的發展,多旋翼無人飛行器的控制技術得到了蓬勃的發展。隨著大疆、派諾特、3DR等GN外一繫列無人機公司推出針對普通大眾的消費級無人機產品,無人機作為一個普通消費應用也得到了大眾的認可和接受,越來越多的工程技術人員將多旋翼無人飛行器作為一個經典的控制繫統來進行學習和研究。本書主要圍繞多旋翼無人機的飛控繫統設計,從嵌入式的基礎知識開始,深入淺出地介紹了無人機的基本知識和硬件構成,重點介紹了無人機的飛控繫統原理、基礎和開發流程,針對飛行器繫統的狀態解算介紹了幾種不同的解算方法,並給出相應的實際代碼例程。本書從各方面對無人機繫統的設計進行闡述,並提供了*前沿的知識和信息,既有初學者希望了解的基礎知識,也有行業研究者所希望深入了解的算法分析,以及室內定位SLAM原理等。 除了正文部分,本書還提供了豐富的附錄,包括四旋翼無人機的組裝、無刷電機與電調的相關知識、無人機實驗室的相關研發調試設備,以及業界流行的開源飛控的相關知識,甚至包括無人機的相關應用,讓讀者能夠更全面地熟悉和了解整個無人機行業的生態繫統。 本書特別適合作為高等院校自動化、計算機、電子工程等相關專業“多旋翼無人飛行器設計”課程的教材,也可供從事嵌入式繫統開發與應用的工程技術人員參考。 關聯推薦 本書從嵌入式的基礎知識開始,深入淺出地介紹了多旋翼無人飛行器(無人機)的基本設計方法。書中全面論述了無人機的硬件構成、飛控繫統原理和開發流程,針對飛行器繫統的狀態解算給出了幾種不同的解算方法,並給出了相應的實際代碼。全書從各方面對無人機繫統的設計進行了闡述,提供了*前沿的信息,既包括初學者希望熟悉的基礎知識,也有研究者希望深入了解的算法分析,以及室內定位SLAM原理等,滿足不同層次的讀者的學習需求。教學課件(PPT)與相關案例代碼可以到清華大學出版社wz本書頁面下載。 目錄 目錄 D1章多旋翼無人機基礎知識 1.1無人機的介紹 1.2無人機的分類與管理 1.3無人機與航空模型的區別 1.4多旋翼無人機的發展歷史 1.5多旋翼無人機的組成 1.5.1機架繫統 1.5.2動力繫統 1.5.3動力電源與充電繫統 1.5.4電子調速器 1.5.5飛行控制繫統 1.5.6遙控器和遙控接收機 1.5.7遙測鏈路數傳繫統 1.5.8光流定位繫統 1.5.9quanqiu衛星導航繫統 1.5.10高度計 1.5.11導航繫統 1.5.12無線圖傳繫統 1.5.13地面站控制繫統 1.5.14任務載荷雲臺和攝像頭 1.5.15避障繫統 1.5.16虛擬現實和增強現實繫統 1.6多旋翼飛行器的結構和飛行原理 1.6.1多旋翼飛行器的機身布局 1.6.2多旋翼飛行器的旋翼結構 1.6.3多旋翼飛行器的飛行原理 1.6.4多旋翼的優缺點 1.7開源飛控簡介 D2章飛行控制繫統核心硬件 2.1ARM CortexM4架構 2.1.1ARM內核 2.1.2CortexM4內核 2.1.3以ARM CortexM4為核心的微控制器 2.2STM32F4繫列微控制器 2.3飛行控制繫統硬件架構設計與原理 2.3.1遙控接收機接口 2.3.2電調輸出接口 2.3.3傳感器接口 2.3.4GNSS接口 2.3.5SWD調試口 2.3.6超聲波接口 2.3.7繫統供電 2.3.8遙測數傳 2.3.9其他功能和擴展接口 2.4“光標”飛控PCB的布局設計 2.5飛控繫統硬件設計注意事項 D3章嵌入式實時操作繫統和FreeRTOS 3.1實時操作繫統簡介 3.1.1實時操作繫統的定義 3.1.2實時操作繫統的特征 3.2實時操作繫統在飛控繫統中的重要性 3.3FreeRTOS實時操作繫統 3.3.1FreeRTOS簡介 3.3.2FreeRTOS的特點 3.3.3FreeRTOS架構概述 3.4調度策略 3.4.1FreeRTOS支持的調度方式 3.4.2調度器簡介 3.4.3搶占式調度器 3.4.4時間片調度器 3.5任務及任務優先級 3.5.1任務和協程(Coroutines) 3.5.2任務狀態 3.5.3任務優先級 3.5.4任務優先級分配方案 3.6任務間通信——信號量 3.6.1信號量的概念及其作用 3.6.2FreeRTOS任務間計數信號量的實現 3.6.3FreeRTOS中斷方式計數信號量的實現 3.6.4計數信號量API函數 3.7任務間通信—消息隊列 3.7.1消息隊列的概念及其作用 3.7.2FreeRTOS任務間消息隊列的實現 3.7.3FreeRTOS中斷方式消息隊列的實現 3.7.4消息隊列API函數 3.8任務間通信——互斥信號量 3.8.1互斥信號量的概念及其作用 3.8.2優先級翻轉問題 3.8.3FreeRTOS互斥信號量的實現 3.8.4互斥信號量API函數 3.9飛控繫統的任務規劃與5環控制 D4章飛行控制繫統的定時器 4.1STM32F407的繫統時鐘配置 4.1.1STM32F4的繫統時鐘樹 4.1.2STM32F4的繫統時鐘初始化 4.1.3STM32F4的繫統時鐘使能和配置 4.2ST微控制器的定時器模塊 4.2.1GJ控制定時器(Advancedcontrol Timers) 4.2.2通用定時器(Generalpurpose Timers) 4.2.3基本定時器(Basic Timers) 4.3任務調度定時器 4.4遙控器PWM編碼和定時器輸入捕獲 4.5電子調試器的輸出控制PWM和定時器輸出比較模式 D5章飛控繫統的傳感器 5.1飛控繫統的傳感器 5.2ST微控制器的I2C驅動 5.2.1I2C簡介 5.2.2I2C驅動在STM32中的硬件實現 5.2.3I2C驅動在STM32中的軟件實現 5.3加速度計的原理和測量信息 5.3.1加速度計的原理 5.3.2加速度計的測量信息 5.4加速度計原始數據采集、校準和濾波 5.4.1加速度計原始數據采集 5.4.2加速度計校準 5.5陀螺儀的原理和測量信息 5.5.1陀螺儀的原理 5.5.2陀螺儀的測量信息 5.6陀螺儀的原始數據采集、校準和濾波 5.6.1陀螺儀原始數據采集 5.6.2陀螺儀校準 5.6.3加速度計與陀螺儀的濾波 5.7磁力計的工作原理和測量信息 5.7.1磁力計的原理 5.7.2磁力計的測量信息 5.8磁力計的原始數據采集、校準和濾波 5.8.1磁力計原始數據采集 5.8.2磁力計校準 5.8.3磁力計的濾波 5.9超聲波傳感器簡介 5.9.1超聲波傳感器原理 5.9.2超聲波傳感器簡介 5.10超聲波傳感器的數據采集驅動和濾波 5.10.1超聲波傳感器數據采集驅動 5.10.2超聲波傳感器的濾波 5.11氣壓傳感器簡介 5.12氣壓傳感器的數據采集驅動 5.13激光測距測高傳感器 5.14視覺傳感器 5.14.1光流 5.14.2視覺裡程計 D6章狀態估計 6.1組合導航 6.2飛行器的坐標繫 6.3方向餘弦矩陣和歐拉角 6.3.1方向餘弦矩陣 6.3.2姿態與歐拉角 6.3.3歐拉角的定軸轉動表示矩陣 6數 6.4數的定義 6.4數與旋轉的關繫 6數的姿態估計 6.6卡爾曼濾波 6.7擴展卡爾曼濾波 6.8幾種算法的總結比較 D7章線性控制繫統PID控制算法 7.1控制理論與PID線性控制繫統原理 7.1.1比例控制 7.1.2積分控制 7.1.3微分控制 7.2飛控算法PID框架設計 7.3飛控算法外環PID實現 7.4飛控算法內環PID實現 7.5信號濾波 7.5.1移動平滑濾波 7.5.2FIR濾波 7.5.3IIR濾波 7.6PID參數的調試 7.6.1飛控的PID參數 7.6.2調試步驟 D8章油門和高度控制 8.1油門輸入曲線 8.2油門解鎖功能 8.3油門權重分配和電調輸出 8.4高度控制 D9章自ZD航繫統 9.1自ZD航概述 9.2室內定位 9.2.1室內定位技術 9.2.2視覺導航 9.2.3SLAM簡介 9.2.4視覺SLAM閉環檢測與後端優化 9.3室外GPS定位和NEMA實現 9.3.1GPS定位繫統的基本工作原理 9.3.2單點定位 9.3.3相對定位 9.3.4差分定位 9.3.5GPS標準協議NEMA 9.4航路規劃 9.4.1航線規劃 9.4.2軌跡規劃 9.5SINS/GPS組合導航的模型和算法 9.5.1SINS和GPS接收機的誤差模型 9.5.2SINS/GPS松組合的狀態方程和量測方程 9.5.3SINS/GPS緊組合的狀態方程和量測方程 9.5.4方程離散化和卡爾曼濾波 9.6避障繫統 9.6.1避障使用的傳感器 9.6.2避障算法 9.6.3避障過程中存在的問題 D10章遙測數傳通信鏈路 10.1通用數傳模塊分類及其性能 10.1.1無人機數傳模塊簡介 10.1.2調制方式的劃分 10.1.3傳輸距離及其影響因素 10.2ST微控制器的串口通信和數傳模塊硬件接口 10.2.1ST微控制器的串口通信 10.2.2數傳模塊的硬件接口 10.3簡單通信信源編碼協議及其實現 10.3.1信源編碼 10.3.2串口通信協議 10.4MAVLink協議實現 10.4.1MAVLink協議簡介 10.4.2MAVLink數據包結構 10.4.3MAVLink消息幀講解 10.4.4MAVLink消息幀發送與解析 10.5地面站數據接收與數據解析 10.5.1PC端地面站數據采集與存儲 10.5.2Android地面站數據接收 10.5.3Android地面站數據存儲與分析 D11章其他輔助功能 11.1參數存儲、在線更新與加載 11.2調試LED 11.3失控保護功能 11.4手機WiFi控制 11.5手機藍牙控制 11.6D一人稱視角FPV控制 11.6.1FPV的定義 11.6.2FPV的設備組成 11.6.3FPV眼鏡與VR眼鏡的區別 11.7無人機應用領域 11.7.1拍照攝影 11.7.2植保無人機 11.7.3電力巡檢 11.7.4環保領域的應用 D12章基於STM32F4的基礎程序開發 12.1處理器STM32F4簡介 12.1.1繫統總線 12.1.2繫統接口 12.2開發環境簡介 12.2.1軟件安裝 12.2.2工程創建 12.2.3軟件介紹 12.2.4程序調試 12.3STM32固件庫 12.3.1固件庫介紹 12.3.2固件庫移植 12.4LED顯示 12.4.1硬件設計 12.4.2軟件設計 12.4.3實驗現像 12.5USART串口的使用 12.5.1硬件設計 12.5.2軟件設計 12.5.3實驗現像 12.6ADC模數轉換器 12.6.1軟件設計 12.6.2實驗現像 12.7定時器中斷 12.7.1定時器中斷的原理 12.7.2軟件設計 12.7.3實驗現像 12.8FreeRTOS實時操作繫統簡介 12.8.1FreeRTOS基礎應用 12.8.2FreeRTOS實例 12.8.3實驗現像 12.9FreeRTOS操作EEPROM 12.9.1程序設計 12.9.2實驗現像 12.10FreeRTOS操作MPU6050 12.10.1軟件設計 12.10.2實驗現像 12.11FreeRTOS操作磁力計 12.11.1軟件設計 12.11.2實驗現像 12.12FreeRTOS操作氣壓計 12.12.1軟件設計 12.12.2實驗現像 附錄AF450四旋翼飛行器DIY組裝流程 A.1材料清單 A.2焊接電機 A.3機架的安裝 A.4飛控模塊安裝 A.5電調行程校準 A.6電調、遙控接收機、數傳模塊與飛控的連接 A.7遙控操作說明 A.8圖傳繫統連接 附錄B無刷電機與電子調速器介紹 B.1無刷直流電機 B.2電子調速器換相的相關知識 B.3電調啟動頻率 附錄C無人機實驗室研發調試設備 C.1FH550四旋翼無人機研發繫統 C.2應用級無人機繫統 C.3GJ航拍數字圖傳繫統 C.4便攜式地面測控站繫統 C.5GJ飛行器3自由度姿態算法驗證繫統 C.6GJ飛行器動力繫統扭矩測量繫統 C.7GJ飛行器動力繫統拉力測量繫統 C.8微機電傳感器測量校準平臺 C.9工業級數據處理中心 附錄D電子羅盤橢球校準算法代碼實例 參考文獻 顯示全部信息 在線試讀 D3章CHAPTER 3嵌入式實時操作繫統和FreeRTOS 3.1實時操作繫統簡介3.1.1實時操作繫統的定義 實時操作繫統(RTOS)是指D外界事件或數據產生時,能夠接受該事件或數據並以足夠快的速度予以處理,其處理的結果又能在規定的時間之內控制生產過程或對處理繫統做出快速響應,調度一切可利用的資源完成實時任務,並控制所有實時任務協調一致運行的操作繫統。實時操作繫統是保證在一定時間限制內完成特定功能的操作繫統。實時操作繫統有硬實時和軟實時之分,硬實時要求在規定的時間內必須完成操作,這是在操作繫統設計時保證的; 軟實時則隻要按照任務的優先級,盡可能快地完成操作即可。我們通常使用的操作繫統在經過一定改變之後J可以變成實時操作繫統。3.1.2實時操作繫統的特征1. 高精度計時 繫統計時精度是影響實時性的一個重要因素。在實時應用繫統中,經常需要JQ確定實時地操作某個設備或執行某個任務,或JQ地計算一個時間函數,這不僅依賴於一些硬件提供的時鐘精度,也依賴於實時操作繫統實現的高精度計時功能。2. 多級中斷機制一個實時應用繫統通常需要處理多種外部信息或事件,但處理的緊迫程度有輕重緩急之分,有的必須立即作出反應,有的則可以延後處理,因此需要建立多級中斷嵌套處理機制,以確保對緊迫程度較高的事件及時進行響應和處理。3. 實時調度機制實時操作繫統不僅要及時響應實時事件中斷,同時也要及時調度運行實時任務。但是,處理機調度並不能隨心所欲地進行,因為涉及兩個進程之間的切換,隻能在確保“安全切換”的時間點上進行。實時調度機制包括兩個方面,一是在調度策略和算法上保證優先調度實時任務; 二是建立更多“安全切換”時間點,保證及時調度實時任務。實時操作繫統的特點: ①異步的事件響應; ②切換時間和中斷延遲時間確定; ③優先級中斷和調度; ④搶占式調度。3.2實時操作繫統在飛控繫統中的重要性飛行控制繫統是無人機的重要組成部分,是飛行控制算法的運行平臺,其性能好壞直接關繫著無人機能否安全可靠地飛行。隨著航空技術的發展,無人機飛行控制繫統正向著多功能、高精度、小型化和可復用的方向發展。高精度要求無人機控制繫統的精度高,穩定性好,能夠適應復雜的外界環境,因此控制算法比較復雜,計算速度快,精度高; 小型化則對控制繫統的重量和體積提出了更高的要求,要求控制繫統的性能越高越好,體積越小越好。此外,無人機飛行控制繫統還要具有實時、可靠、低成本和低功耗的特點。近年來,實時操作繫統在多媒體通信、在線事務處理、生產過程控制和交通控制等各個領域得到了廣泛的應用。並且,實時操作繫統將實時多任務機制以功能(函數)調用的方式提供給用戶,它的繫統調用是標準化、規格化的,這使得開發人員不必再考慮多個實時任務的同步問題,從而將更多的精力致力於應用程序的開發。3.3FreeRTOS實時操作繫統3.3.1FreeRTOS簡介 FreeRTOS是一款由Real Time Engineers Ltd出品的市場LX的RTOS,如圖31所示,現在已經支持35種處理器 D3章CHAPTER 3嵌入式實時操作繫統和FreeRTOS 3.1實時操作繫統簡介3.1.1實時操作繫統的定義 實時操作繫統(RTOS)是指D外界事件或數據產生時,能夠接受該事件或數據並以足夠快的速度予以處理,其處理的結果又能在規定的時間之內控制生產過程或對處理繫統做出快速響應,調度一切可利用的資源完成實時任務,並控制所有實時任務協調一致運行的操作繫統。實時操作繫統是保證在一定時間限制內完成特定功能的操作繫統。實時操作繫統有硬實時和軟實時之分,硬實時要求在規定的時間內必須完成操作,這是在操作繫統設計時保證的; 軟實時則隻要按照任務的優先級,盡可能快地完成操作即可。我們通常使用的操作繫統在經過一定改變之後J可以變成實時操作繫統。3.1.2實時操作繫統的特征1. 高精度計時 繫統計時精度是影響實時性的一個重要因素。在實時應用繫統中,經常需要JQ確定實時地操作某個設備或執行某個任務,或JQ地計算一個時間函數,這不僅依賴於一些硬件提供的時鐘精度,也依賴於實時操作繫統實現的高精度計時功能。2. 多級中斷機制一個實時應用繫統通常需要處理多種外部信息或事件,但處理的緊迫程度有輕重緩急之分,有的必須立即作出反應,有的則可以延後處理,因此需要建立多級中斷嵌套處理機制,以確保對緊迫程度較高的事件及時進行響應和處理。3. 實時調度機制實時操作繫統不僅要及時響應實時事件中斷,同時也要及時調度運行實時任務。但是,處理機調度並不能隨心所欲地進行,因為涉及兩個進程之間的切換,隻能在確保“安全切換”的時間點上進行。實時調度機制包括兩個方面,一是在調度策略和算法上保證優先調度實時任務; 二是建立更多“安全切換”時間點,保證及時調度實時任務。實時操作繫統的特點: ①異步的事件響應; ②切換時間和中斷延遲時間確定; ③優先級中斷和調度; ④搶占式調度。3.2實時操作繫統在飛控繫統中的重要性飛行控制繫統是無人機的重要組成部分,是飛行控制算法的運行平臺,其性能好壞直接關繫著無人機能否安全可靠地飛行。隨著航空技術的發展,無人機飛行控制繫統正向著多功能、高精度、小型化和可復用的方向發展。高精度要求無人機控制繫統的精度高,穩定性好,能夠適應復雜的外界環境,因此控制算法比較復雜,計算速度快,精度高; 小型化則對控制繫統的重量和體積提出了更高的要求,要求控制繫統的性能越高越好,體積越小越好。此外,無人機飛行控制繫統還要具有實時、可靠、低成本和低功耗的特點。近年來,實時操作繫統在多媒體通信、在線事務處理、生產過程控制和交通控制等各個領域得到了廣泛的應用。並且,實時操作繫統將實時多任務機制以功能(函數)調用的方式提供給用戶,它的繫統調用是標準化、規格化的,這使得開發人員不必再考慮多個實時任務的同步問題,從而將更多的精力致力於應用程序的開發。3.3FreeRTOS實時操作繫統3.3.1FreeRTOS簡介 FreeRTOS是一款由Real Time Engineers Ltd出品的市場LX的RTOS,如圖31所示,現在已經支持35種處理器 圖31FreeRTOS Logo 架構。2015年,FreeRTOS的下載量超過12萬次,平均每4.2分鐘J有一次下載,而且商業使用不需要用戶公開源代碼,也不存在任何版權問題,開源免費。FreeRTOS(讀作"freearrtoss")是一個嵌入式繫統使用的開源實時操作繫統。FreeRTOS設計小巧、簡單和易用,能支持許多不同硬件架構以及交叉編譯器。J像所有操作繫統一樣,FreeRTOS的主要工作是執行任務,大部分FreeRTOS的代碼都涉及優先權、調度以及執行用戶自定義任務; 但又與所有其他操作繫統不同,FreeRTOS是一款運行在嵌入式繫統上的實時操作繫統。3.3.2FreeRTOS的特點FreeRTOS的主要特點如下: (1) 支持搶占式調度、合作式調度和時間片調度。(2) SafeRTOS作為FreeRTOS的衍生品大大提高了FreeRTOS在代碼完整性方面的能力。(3) 用於低功耗的Tickless模式。(4) 支持35種繫統架構。(5) FreeRTOSMPU支持M3/M4/M7內核的MPU(內存)。(6) 設計簡單易用,典型的內核使用大小範圍為4~9K。(7) 移植FC簡單,主要用C語言編寫。(8) 同時支持合作式和搶占式任務。(9) 支持消息隊列、二值信號量、計數信號量、遞歸信號量和互斥信號量,可用於任務與任務間的消息傳遞和同步,以及任務與中斷間的消息傳遞和同步。(10) 支持優先級繼承方式的互斥信號量。(11) 擁有高效的軟件定時器。(12) 擁有強大的跟蹤執行函數。(13) 擁有堆棧溢出檢查。(14) 提供豐富的、配置完整的工程例子。(15) 提供論壇技術支持,有可選的商業支持和許可版本。(16) 任務的數量不限。(17) 任務優先級數量不限。(18) 多個任務可以分配相同優先級,即支持時間片調度。(19) 具有免費的開發工具。(20) 具有免費的嵌入式軟件源碼。(21) 免版權費。3.3.3FreeRTOS架構概述FreeRTOS是一個相對較小的應用程序。Z小化的FreeRTOS內核僅包括3個(.c)文件和少數頭文件,共不到9000行代碼,還包括了注釋和空行。一個典型的編譯後(二進制)代碼映像小於10KB。FreeRTOS的代碼可以分解為三個主要區塊: 任務、通信和硬件接口。1) 任務大約有一半的FreeRTOS的核心代碼用來處理多數操作繫統1要關注的問題,即任務。任務是給定優先級的用戶定義的C函數。task.c和task.h完成了所有有關創建、調度和維護任務的繁重工作。2) 通信任務很重要,不過任務間的互相通信更為重要!大約40%的FreeRTOS核心代碼是用來處理通信的,queue.c和queue.hJ是負責處理FreeRTOS的通信的。任務和中斷使用隊列互相發送數據,並且使用信號燈和互斥來發送臨界資源的使用情況。3) 硬件接口接近9000行的代碼拼湊起基本的FreeRTOS,是硬件無關的,不論FreeRTOS是運行在不起眼的8051,還是ZX、Z炫的ARM內核上。大約有6%的FreeRTOS的核心代碼,在硬件無關的FreeRTOS內核與硬件相關的代碼間扮演著墊片的角色。表31為FreeRTOS的軟件層。 顯示全部信息
" |