為方便說明,我們把電機進行編號, 右下為 9號,右上為 10號,左下為 11,左上為 3號 電機。
1. 飛行器保持懸停, 4個電機的轉速保持一致,來使飛行器保持水平。
四個電機的轉速 =懸停油門
2. 當我們希望飛行器向右飛的時候 ,我們設定在第一種情況的基礎上,增加左邊兩個電機 (3,11)的轉速,減小右邊兩個電機(9,10)的轉速。
9號電機 =懸停油門 - 右傾的量
10號電機 = 懸停油門 - 右傾的量
11號電機 = 懸停油門 + 右傾的量
3號電機 = 懸停油門 + 右傾的量
3. 當我們希望飛行器向左飛的時候 ,上面的公式依然成立,只不過右傾的量是負數了。
4. 當我們希望飛行器向前飛的時候 ,那麼我們要增加後面一組電機(11,9)的轉速,減小前 面一組電機(3,10)的轉速
9號電機 =懸停油門 + 前飛的量
10號電機 = 懸停油門 - 前飛的量
11號電機 = 懸停油門 + 前飛的量
3號電機 = 懸停油門 - 前飛的量
5. 飛行器向後飛的情況 ,上面公式依然成立,前飛的量為負數。
6. 當我們希望飛行器順時針旋轉 , 我們增加 10號, 11號 對角線兩個電機的轉速,減小 3號, 9號這條對角線電機的轉速。
9號電機 =懸停油門 - 旋轉的量
10號電機 = 懸停油門 + 旋轉的量
11號電機 = 懸停油門 + 旋轉的量
3號電機 = 懸停油門 - 旋轉的量
等等♚ 2018/5/21 10:52:45
四旋翼的平衡及方向的控制原理
7. 當我們希望飛行器逆時針旋轉 , 我們減小 10號, 11號對角線兩個電機的轉速,增加 3號, 9號這條對角線電機的轉速。繼續使用上面的公式。
8. 最後, 針對乙個電機, 它同時要負責前後左右和旋轉的情況, 那它就疊加了 4種情況下 的值:
9號電機 = 懸停油門 - 右傾的量 + 前飛的量 - 旋轉的量
10號電機 = 懸停油門 - 右傾的量 - 前飛的量 + 旋轉的量
11號電機 = 懸停油門 + 右傾的量 + 前飛的量 + 旋轉的量
3號電機 = 懸停油門 + 右傾的量 - 前飛的量 - 旋轉的量
所以實現**如下:
#define pidmix(x,y,z) rccommand[throttle] + axispid[roll]*x + axispid[pitch]*y + yaw_direction * axispid[yaw]*z
#ifdef quadx
motor[0] = pidmix(-1,+1,-1); //rear_r
motor[1] = pidmix(-1,-1,+1); //front_r
motor[2] = pidmix(+1,+1,+1); //rear_l
motor[3] = pidmix(+1,-1,-1); //front_l
#endif
姿態和位置,四旋翼的控制流程
姿態和位置計算 ekf 位置控制 pid 姿態控制 姿態環是直接p控制,姿態率是pid控制。主要是濾波演算法和姿態演算法還有pid演算法。濾波演算法主要是將獲取到的陀螺儀和加速度計的資料進行去雜訊及融合,得出正確的角度資料。主要採用互補濾波或者高大上的卡爾曼濾波。姿態演算法是將獲得的濾波後的感測器資...
四旋翼位置控制之 定高篇
先mark一下,爭取兩周之內寫完 由於快要畢業了,所以一直都很忙,並沒有時間寫完,所以拖到現在,不好意思。現在開始介紹四旋翼定高以及除錯過程。首先介紹下四旋翼的模型 圖中為其中,其中x即為z軸位移距離,則推出四旋翼的模型 顯然,系統輸出z軸加速度與系統的輸入u成正比關係,因此採用pid線性控制器來作...
2015 1 17 開始籌畫四旋翼
感覺有必要寫部落格來規劃自己了。以前大一的時候做些東西基本上做完就拆,拆完什麼都沒有留下。自己也感覺收穫寥寥,自己搞得東西又雜,東一點 西一點知識太散,就想網盤的資料亂的不想再翻。前兩天問一學長linux如何不用圖形介面設定 xubuntu沒有 樹莓派命令列也要用 他丟給我他的部落格。我覺得我也可以...