2017-12-17 11 views
1

私は自律分散型ロボットを構築していますが、私はジャイロスコープmpu6050を構成することができました。そして、Ax、Ay、AzとGx、Gy、Gzの6つの読みを持っています。私の質問は、Ax、Ay、AzとGx、Gy、Gzの両方からどのように傾斜角を計算するのかです。どのように私はmpu6050から傾斜角を計算するのですか?

ここまでは私が知っているものです。もし私が間違っているなら、親切に私を修正してください。

Ax = Ay = 0、Az = 1のように水平位置で測定したgの重力を計算できます。私はこれを使ってチルト角をangle_accel = arctg(Ay/sqrt(Ax^2 + Az^2))としています。しかし、私の傾きがAy方向であるかどうかはわかりません。

私は、積分によってジャイロ角を得ることができます。私のジャイロは1秒間に590回読み取られます(Gx)。 float angle; //gyro angle angle = angle + Gx; //sum 590 times i.e angle += Gx*590; //END when 1 second is complete

これは私に正しい角度を与えますか? セルフバランシングロボットはGx方向に傾いていますか?

これらは簡単な質問かもしれませんが、本当に私の混乱を取り除く助けに感謝します。

ありがとうございます。

答えて

1

完璧な世界では、角加速度の2倍を積分することができます。しかし、実際には、重要なドリフトがあります。正しく機能していません。

唯一の解決策は、加速度計、ジャイロスコープ、磁力計のデータをマージすることです。これはAHRSと呼ばれています。 2つの作業のソリューションがあります:

  • カルマン・フィルタ:適切
  • Madgwick's algorithmを実装する際に理解するのは難しいが、信頼性:

On this page実装しやすいが、あまり信頼性が、あなたは、実装を見つけます(ソースコード、例)をMPU-6050の兄弟であるMPU-9250と接続してください。

関連する問題