四旋翼飛行器教學筆記2 2 姿態讀取的計算

2021-08-08 01:38:06 字數 1119 閱讀 8731

在能夠成功讀取並且已經對讀取到的資料進行誤差處理後,就要對得到的資料進行處理,進行計算,小希是通過得到四元數,計算出尤拉角來進行讀取飛行器姿態的。

具體的公式小希就不去搜了,po在這上面了,網上有很多,大家隨便搜一下就知道了。

小希就直接po原始碼了。

通過三個加速度和三個角速度先計算出四元數,再得到尤拉角!

void imu_get_attitude(float ax, float ay, float az, float gx, float gy, float gz, float mx, float my, float mz)

// integrate quaternion rate and normalise

q0_temp = q0 +(-q1*gx - q2*gy - q3*gz)*halft;

q1_temp = q1 + (q0*gx + q2*gz - q3*gy)*halft;

q2_temp = q2 + (q0*gy - q1*gz + q3*gx)*halft;

q3_temp = q3 + (q0*gz + q1*gy - q2*gx)*halft;

// normalise quaternion

norm = invsqrt(q0*q0 + q1*q1 + q2*q2 + q3*q3);

q0 = q0_temp*norm;

q1 = q1_temp*norm;

q2 = q2_temp*norm;

q3 = q3_temp*norm;

t11 = q0*q0 + q1*q1 - q2*q2 - q3*q3;

t12 = 2*(q1*q2 + q0*q3);

t13 = 2*(q1*q3 - q0*q2);

t23 = 2*(q2*q3 + q0*q1);

t33 = q0*q0 + q3*q3 - q1*q1 - q2*q2;

roll = fast_atan2(t23,t33)*57.3 - rol_offset;

pitch = asin(t13)*57.3 - pit_offset;

yaw = -fast_atan2(t12, t11)*57.3 - yaw_offset; // yaw

四旋翼飛行器

近幾年來四旋翼飛行器受到了人們的熱捧,它是一種具有四個螺旋槳的飛行器並且四個螺旋槳呈十字形交叉結構,通過平衡四個旋翼產生的力來實現穩定盤旋和精確飛行,其具有欠驅動 多變數 強耦合 非線性等複雜特性。四旋翼無人飛行器研究內容涵蓋了製造技術 結構設計 材料工程 空氣動力學 自主飛行控制與導航 影象處理和...

Quadrotor四旋翼飛行器的飛

quadrotor四旋翼飛行器的飛行原理 一 hxl85 這是wiki上的介紹,有興趣可以讀一讀。簡 單的講,顧名思義,quadrotor就是一種四旋翼 four rotors 垂直起降 vtol,vertical taking off and landing 的直公升飛機。結構 quadrotor...

四旋翼飛行器數學模型

最近接觸到四旋翼無人機的位置控制方法,就又了解了一下四旋翼飛機的數學模型,現總結如下 位置環 均定義在慣性座標系下 p e ve 1 dot v tag p e v e 1 v e g fmr bee3 2 dot g frac f m r e tag v e g mf rbe e3 2 這裡需要說...