視頻:
【浙江大學】浙大博導帶你從0制作無人機_嗶哩嗶哩_bilibili
什么是無人飛行器
?無人機自主導航構架
IMU(加速度計和陀螺儀),可以測出當前的 加速度和角速度 這倆信息再去融合外部傳感器 (例如視覺傳感器或者雷達傳感器)得到點云數據或者圖像數據 把IMU數據和點云(圖像)數據? ?二者進行融合? 就能搭建出一個定位建圖的功能 ,再用定位解算出來的 無人機實時位置數據和姿態數據 再結合 環境傳感器 進行測距 全部信息融合 就能得到一個稠密的地圖?
控制器分上下兩層控制器: 下層:姿態控制(完全交給飛控)? 上層:位置、速度等上層的控制量(交給 無人機 機載電腦里處理)
感知動作閉環回路:首先傳感器有數據進來? 定位和建圖讓無人機知道了自己在哪、周圍的環境長什么樣? 運動規劃則告訴無人機要去想去的地方應該如何生成運動的軌跡? 運動的軌跡交給控制器去執行(就是四個電機的轉速)
定位:
1.GPS(衛星導航定位)獲得一個 全局的定位 (但是 只能用于開闊地帶 室內有遮擋就不行了)
2.動作捕捉系統 :專門研究高精度控制、純規劃控制算法時想拋開定位,測試利用整個系統的依耐性,我們可以在室內構建一個動作捕捉系統。(動作捕捉系統? 必然依賴 環境事先布置好的相機 只能在室內房間使用)
具體方法:在無人機上,粘貼幾個發光的小球,可以高精度的解算出實時所處的位置和姿態 以此來驗證 控制算法。
3.視覺慣性里程計(VIO)
4.激光慣性里程計(LLO)
用 3、4時 當算法合理時 理論上可以在任何一個未知復雜的環境去自由的定位。
建圖:
1.點云地圖:用深度測量 構建 點云地圖
2. 柵格地圖:對環境進行柵格化、離散化的柵格地圖
3.歐氏距離場(非常適用于無人機的局部避障):在點云和柵格的基礎上更高級的地圖 歐氏距離場 歐式距離場首先需要一個柵格地圖,此外 會記錄柵格地圖中的每一個點到最臨近障礙物的距離。
4.八叉樹地圖:更精巧的地圖,存儲的復雜度更低 但有些東西的復雜性會高一點。
路徑搜索:
路徑規劃包括: 前端的路徑搜索 后端的軌跡優化
?????????
軌跡優化
無人機的軟、硬架構
一般的無人機 的構架為下圖所示(與科研 自主導航無人機不同 科研自主導航的無人機可以不裝載云臺相機和GPS 但需要搭載? 其他的傳感器 和 機載電腦 )
1.飛控:無人機的小腦
用于: 根據輸入指令 來解算 電機的轉速(推力)從而控制無人機飛行。
一個飛控中? 一般會
內置? ? IMU 輸出 加速度信息
內置 氣壓計 輸出無人機的高度
內置 磁羅盤 獲取無人機朝向
此外 還提供了 豐富的接口?
PX4派系:有良好的 開源社區 和 豐富的可自定義的功能 玩法比DJI(大疆)的飛控多很多。
決定一臺飛控的好壞: 是否 具有 內置減震系統(避免IMU在飛行過程中出現過大的振動) 和 恒溫系統(避免IMU避免溫飄),從而影響性能?
?2.電調(電子調速器/電機驅動器):
可以理解為 電機驅動器
作用:將輸入的控制信號 轉化成 電流 來控制電機的轉動
電調分類:
四合一電調? :四個電機接在同一個電調上 體積比較小、排線清爽(更多在 空間比較緊湊的穿越機上)
分體電調:每個電機連接一個電調(更常用在航拍無人機上)
3.電機
作用:帶動槳葉,提供升力
一般無人機上 用的是 無刷電機
但便宜的 可以用空心杯電機:價格便宜 但比較容易損壞(華強北100多的無人機就是用的空心杯)
越大的電機 就能配更大的槳葉(就會有更強的升力)
尺寸:2205 (22*05)? 前兩位表示 定子的直徑? 后兩位表示定子的高度?
KV值:電機供電 每提高 1V 轉速提高的 數值(工作電壓越小,適配槳葉越小的電機,Kv值越大)。
實際需要根據無人機的工作電壓和槳葉尺寸 來選擇合適的KV值。
力效表:可以根據力效表 粗略的算出 飛機續航以及工作電流等等(購買電機時 會提供)(力效表 可能會有虛構 實際用的時候會大打折扣 買的時候注意)
例如: 預計起飛重量 2KG?
懸停時? 每個槳葉就要提供 2000/4=500g的升力
如果選擇表中的7042型號的二葉槳
500g對應的大致升力 為35%的油門?
此時力效為5.68?
懸停功率:2000/5.68≈350W
電流350/23.93≈15A
如果我想續航 有30Min? ?則如何選擇電池? 用電流*時間? ?15*0.5= 7.5Ah=7500mAh
還能根據 最大工作電流 選擇 電調
在下圖7042槳葉 中 油門點達到100% 時?
工作電流為47.07A 那么 我們就應該選購一個 50A以上的電調,來適配這款電機
?4.其他配件:電池、電壓計、接收機、遙控器、GPS、視覺慣性里程計、機架、機載電腦、常見的傳感器
電池: 一般是 鋰電池
作用:為電機、飛控、機載電腦供電?
選購:最關心的是? ?電池的 電壓 容量 和? 放電倍率 等
航模電池 常說是 4S? 6S電池? S代表的是 串聯電池的芯數? 每片電芯 輸出約4V? 4S=16V? 6S=24V(電芯越多 電機輸出越暴力)
電壓計 會在 電池電壓 過低的時候? ? ? ?發出 嗶嗶嗶的響聲(一般閾值設置在3.3V)避免電池過放 避免電池電壓過低 導致墜機 。
接收機:
為 飛控接收 遙控信號(裝載在 飛控上? 接收機 接收到 遙控器 發出的信號 再給到 主控芯片)
遙控器:
發送 控制指令 給接收機 接收機接收到后 給主控芯片 主控芯片來控制無人機。
GPS:
接收衛星信號,為無人機定位,在航拍無人機中是標配,可以在定點模式下 通過GPS 把無人機像釘子一樣 釘在空中。 (定點模式 就是 根據GPS 的數據 讓無人機在這個數據下 進行懸停或者運動)。?
視覺慣性里程計:
很多 科研開發的 通常會需要 在室內 沒有GPS信號的環境中使用, 所以使用 視覺慣性里程計等來定位
機架:
參數:軸距:(兩個電機中心的距離) 下圖 250 330 450指的就是 軸距??
重量
起落架:
機載電腦:
運行在無人機上的 小型電腦。? 可以運行各種復雜的感知算法 導航算法? 理解為無人機的大腦。
?一般是運行的系統:LINUX的 Ubentu??
下圖的 價格較貴? ? 一般也可以使用 樹莓派來進行開發
USB攝像頭:
可以進行視覺識別 和 感知 的任務
雙目相機/激光雷達:
感知環境、進行地圖的構建
光流傳感器:
為無人機做 簡單 的定位?
追蹤相機:
在 復雜 的環境中為無人機 進行 定位
5.螺旋槳
螺旋槳 一般有 4個數字 前兩位 代表 螺旋槳直徑? 后兩位 代表 螺旋槳 螺距 (單位 英尺)
APC1045? ?直徑10英尺? 螺距 4.5英尺 (1英尺=2.54cm)
把 順時針旋轉的 叫 逆槳? (帶R)
把 逆時針 旋轉的 叫 正槳(不帶R)
無人機的結構?:
無人機:整體由機架構成 加上 飛控、機載電腦、電機、電池、傳感器 就形成了 自主無人機
無人機設計方法:
當 得到一個任務 該如何根據該任務分析 對硬件進行選型 并搭建無人機呢?
1.根據應用場景要求 選擇傳感器
?如果需要高精度地圖—— 搭載雷達 獲得高精度點云 從而建立高精度的地圖
簡單的避障 —— 雙目相機 提供的 深度圖 就可以勝任
需要外部定位—— 雙目相機運行視覺慣性里程計、雷達來運行雷達慣性里程計
視覺識別 —— USB攝像頭就行
2.根據負載續航選擇機架
軸距越大的機架負載越大、續航越長 在滿足 續航和負載的情況下 盡量要讓無人機 小 來保證無人機的 機動性
3.推質比 選擇動力套件
推質比越大 就需要越大的KV值電機? 或 電壓越大的電池? 沒有推質比要求 則選擇機架相配套的搭配
4.根據算法算力的要求 選擇機載電腦
如果有視覺識別的要求 —— 需要運行 神經網絡 可以選擇? (沒聽懂 第二節 14分50S)
如果有比較高的 CPU算力要求 —— 大疆的妙算?
經典案例 1:未知環境的自主飛行無人機
首先 分析應用場景:在復雜環境中 高速 自主 飛行 的規劃器? ? 無人機在未知的環境中進行穿梭。
雙目相機 :無人機需要在 復雜的環境中進行導航 并且需要建圖 且沒有外部定位??
Q250機架:無需搭載過多的傳感器 飛機起飛重量不大 選擇最常見的 250mm的機架就可以了
推質比: 在這個任務中 無人機需要進行較高速度的飛行 可以選擇 KV值比較大的電機 來提供更高的推質比
機載電腦:妙算? 因為需要運行比較 占用CPU算力的視覺慣性里程計
最后設計一些結構件 來連接各硬件 調試飛機 就能得到一篇 國際頂級期刊的 所需的無人機
?經典案例2:空地兩用無人機
任務要求:在復雜環境中 切換 空地運動 模式的 無人機 并要求無人機 盡可能的小型化
應用場景要求: 無外部定位,需要建圖 ——雙目相機
續航至少 8min? 負載約為600g ——200mm機架
推質比:無需高速飛行 但對續航有要求 —— 比較節能的F2203.5 KV2850+4寸槳
?需要運行視覺慣性里程計? 但需要小型化? ——Xavier NX
經典案例3:
?無人機軟件架構
一臺自主導航無人機 的 軟件? 主要由以下幾個部分組成
首先 需要運行 定位算法? 如果使用 視覺傳感器 則運行視覺慣性里程計? 如果使用雷達傳感器 則運行雷達慣性里程計??
獲得定位后? 結合 雙目攝像機的 深度圖 或者 雷達的點云數據 就可以開始建圖了
建圖完成后? 就可以進入 運動規劃層面?
主要分為前端和后端
前端:主要進行 路徑搜索 和 路徑采樣 來獲得一條可通行的路徑 但不一定滿足動力學約束
后端:在前端提供的 粗糙路徑 基礎上 根據各種方程對軌跡進行優化? 從而使軌跡光滑 并且滿足 事先設定好的條件?
最后 控制器 接收到軌跡? 將軌跡上的點 轉化為控制指令 發送給 飛控 完成飛行?
無人機算法
系統的控制和架構:
無人機的 位置控制、位置 和 速度? 是在上層電腦里控制的 會產生雙層的級聯控制器 會產生 推力和姿態 或者? 推力和角速度的? 控制信號? 這是一個 設定值 這個設定值 給到飛控 剩下的交給飛控。
飛控完成的任務 只有 對 推力和姿態的跟蹤? 其他的什么都不管
整個系統架構:?
?傳感器 的 結果 給 感知和定位? 分別用于 建圖和定位 (無人機知道自己在哪,知道要去哪)
然后規劃模塊 根據周圍的環境長什么樣 以及無人機要去哪和 自己在哪 計算出一條軌跡
軌跡怎么給控制:? 軌跡和控制的必然聯系是什么 ??
沒聽懂? 大致就是? 給個 點 然后 解算 位置和速度分別是外環和內環 設定值信號 然后 在控制器里構成一個負反饋