好難啊 姿態解算 算是解決了

2022-05-05 02:15:10 字數 1143 閱讀 2820

現在進行到四軸的大坑了。姿態解算和pid控制了。好難,看都看不懂。看別人做四軸的文章到了這裡也是言辭閃爍的,我也要閃爍一下。

在姿態解算之前,要先收集完畢陀螺儀資料**化為弧度每秒)、和加速度資料(m/s*s)。因為我手頭裡沒有磁力計,所以沒有用磁力計去修正陀螺儀資料

// 四元數變數,全域性變數,處於不斷更新的狀態

float q0 = 1.0f, q1 = 0.0f, q2 = 0.0f, q3 = 0.0f;

float exint = 0, eyint = 0, ezint = 0; //誤差積分

float q0q0, q0q1, q0q2, q0q3;

float q1q1, q1q2, q1q3;

float q2q2, q2q3;

float q3q3;

void angle_calculate(float gx, float gy, float gz, float ax, float ay, float az)

2023年8月9日更新

我不知道什麼緣故,資料很飄。然後不知道怎麼改了點**,現在解算出來的姿態角沒有上次那麼飄了,擺動幅度在0.1度(只看了yaw角)範圍內。

下面說一下我的程式的步驟

姿態解算的頻率是10hz

姿態解算之前要收集加速度計資料,並轉化為10進製的公尺每二次方秒,收集陀螺儀資料,並轉化為10進製的弧度每秒。使用加速度計修正陀螺儀資料(考慮以後加入磁力計提供乙個正北的參考方向,修正陀螺儀資料)。因為解算頻率是10hz,所以t=0.1,halft=0.05

// 四元數變數,全域性變數,處於不斷更新的狀態

float q0 = 1.0f, q1 = 0.0f, q2 = 0.0f, q3 = 0.0f;

float exint = 0, eyint = 0, ezint = 0; //誤差積分

float q0q0, q0q1, q0q2, q0q3;

float q1q1, q1q2, q1q3;

float q2q2, q2q3;

float q3q3;

void angle_calculate(float gx, float gy, float gz, float ax, float ay, float az)

LPMS IMU姿態解算

參考文章 ahrs姿態解算說明 加速度 陀螺儀 磁力計原理及原始資料分析 ahrs俗稱航姿參考系統,ahrs由加速度計,磁場計,陀螺儀構成,ahrs的真正參考來自於地球的重力場和地球的磁場 他的靜態終精度取決於對磁場的測量精度和對重力的測量精度 而則陀螺決定了他的動態效能。如何用加速度計和陀螺儀的資...

姿態解算解析

用四元素法進行姿態解算,其步驟如下 1.四元素初始化 第一次解算時計算 靜止狀態下由加速度,磁力計值求取初始 gamma theta psi gamma frac theta frac psi frac 初始化四元素 left begin end right left begin cos frac ...

飛行姿態解算(三)

繼之前研究了一些飛行姿態理論方面的問題後,又找到了之前很流行的一段外國大神寫的 來分析分析。第二篇文章的最後,講到了文章中的演算法在實際使用中有重大缺陷。大家都知道,分析演算法理論的時候很多情況下我們沒有考慮太多外界干擾的情況,原因是很多情況下,感測器的精度以及受到的干擾並不會特別大,而顯著的影響到...