【RT-Thread作品秀】基于RT-Thread的姿態(tài)解算控制平臺(tái)設(shè)計(jì)
作者:黃國(guó)盛
概述
是一個(gè)姿態(tài)解算算法驗(yàn)證平臺(tái)以及控制算法驗(yàn)證平臺(tái)
實(shí)現(xiàn)步驟:
使用CubeMax HAL庫(kù)開發(fā);
使用Python project_generator生成工程;
精簡(jiǎn) RTT Master內(nèi)核并加入C++支持;
配置調(diào)試接口;
構(gòu)建C/C++混合編程框架;
硬件IIC驅(qū)動(dòng)GY-86傳感器驅(qū)動(dòng);
MATLAB設(shè)計(jì)IIR Butterworth四階低通濾波器;
傳感器校準(zhǔn);
Mahony互補(bǔ)濾波算法 實(shí)現(xiàn)姿態(tài)解算;
加入mavlink/私有協(xié)議、UDP/USB上傳數(shù)據(jù)到PC;
通過MATLAB/STM32驗(yàn)證和比較各種算法;
搭建單軸單槳一維角度控制平臺(tái);
……
開發(fā)環(huán)境
硬件:
碳纖管碳纖槳電機(jī)座、電機(jī)電調(diào)電源、ART_Pi、GY86、按鍵模塊、硅膠線……
RT-Thread版本:
Master 4.0.3
開發(fā)工具及版本:
STM32CubeMX 6.0.1、IARforARM8.32.1、BeyondCompare4、MATLAB R2019b、VSCode、SmartGit20.1.5、匿名飛控地面站-0512……
RT-Thread使用情況概述
Pin、serial、cplusplus、time、finsh
硬件框架
ART_Pi、GY86、按鍵模塊、電調(diào)……
軟件框架說(shuō)明
C/C++混合編程,進(jìn)程和Loop Schedule結(jié)合
軟件模塊說(shuō)明
核心部分:關(guān)于GY86的驅(qū)動(dòng)以及姿態(tài)解算的Mahony
演示效果
演示視頻:
比賽感悟
4/11/2020 Will_Watson
關(guān)于AHRS,卡爾曼濾波或互補(bǔ)濾波理解起來(lái) 簡(jiǎn)單但實(shí)施難度較大因?yàn)楹芏鄥?shù)有待測(cè)定;
發(fā)現(xiàn)各開源項(xiàng)目用的最多的是Mahony算法,關(guān)于它的PI部分的本質(zhì)著實(shí)難以理解;
當(dāng)發(fā)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)逼近好像可以和卡爾曼濾波一樣,就當(dāng)成濾波器,而且它還可以是一個(gè)逼近式的濾波器,免不了一番測(cè)試比較;
而后查看Madgwick原文中提到“梯度下降法”,瞬間明白了它的根源和本質(zhì);
當(dāng)學(xué)習(xí)BP神經(jīng)網(wǎng)絡(luò)逼近的時(shí)候的思考流程如下:
逼近的需求來(lái)源是什么? 可能是為了預(yù)測(cè)系統(tǒng)下一個(gè)輸出,為了做前饋控制? 預(yù)測(cè) ——> 觀測(cè)器 ——> 逼近式濾波器???
神經(jīng)逼近網(wǎng)絡(luò) 的特性有哪些? 不具有長(zhǎng)時(shí)記憶,短時(shí)記憶即可以說(shuō)只具有最近時(shí)刻 原系統(tǒng)的逼近特性;
嘗試檢測(cè)濾波特性,從這個(gè)角度理解 逼近網(wǎng)絡(luò) 也是一個(gè)不斷修正的預(yù)估觀測(cè)器 或者說(shuō) 卡爾曼濾波器
從執(zhí)行流程/濾波效果上 分析一維卡爾曼濾波 和 NNI-BP逼近一維非線性系統(tǒng)的 區(qū)別:
卡爾曼濾波流程: 先驗(yàn)估計(jì)值——>先驗(yàn)估計(jì)方差——>依據(jù)各方差融合傳感器數(shù)據(jù)做后驗(yàn)估計(jì)——>更新后驗(yàn)估計(jì)方差;
NNI-BP逼近流程: 由網(wǎng)絡(luò)前狀態(tài)和新輸入直接計(jì)算輸出——>與原系統(tǒng)輸出比較修正網(wǎng)絡(luò)狀態(tài)(是為了下一次直接獲得預(yù)估輸出);
注:把原系統(tǒng)輸出當(dāng)成需濾波數(shù)據(jù);把神經(jīng)網(wǎng)絡(luò)輸出當(dāng)成濾波后數(shù)據(jù)
卡爾曼濾波沒有階數(shù)的概念,而NNI-BP逼近的濾波特性具有一定延遲
卡爾曼濾波器的主要 控制參數(shù)(基于現(xiàn)實(shí)過程噪聲和觀測(cè)噪聲)不可控,轉(zhuǎn)移矩陣協(xié)方差矩陣需測(cè)得;
NNI-BP逼近 的主要 控制參數(shù)(學(xué)習(xí)速率和動(dòng)量因子)可控 即濾波效果可調(diào)節(jié),逼近系統(tǒng)特性;
也有一部分 “內(nèi)閉環(huán)軟擬硬輸入輸出”思想
當(dāng)然算法的表現(xiàn)依然可以看起來(lái)就是加減乘除那么簡(jiǎn)單,雙重卡爾曼看起來(lái)和做起來(lái) 可能沒那么友好;