デバイスが傾斜しているときの加速


13

現在、常時オンの3D加速度計(スケール+ -2gを使用)および3Dジャイロスコープ(スケール+ -250gを使用)センサーを使用するデバイスで作業しています。

すべての可能なベクトル(X、Y、Z)とその加速度(g's)と角速度(dps)を読み取ることができます。また、デバイスの現在の角度も読み取ることができます。しかし、私の問題は、デバイスが傾斜しているとき(傾斜がない場合は0g)、加速度は(現在)デバイスの角度に応じて(下向き)0g->-1gの間、または(上向き)0g-> 1gの間であるということです。以下は、うまくいけばアイデアをクリアする写真です。

うまくいけば、これが役立つ

デバイスは車内に配置され、車が減速しているとき(ブレーキ)に加速度を測定する必要があります。ただし、デバイスが既に傾斜している場合、加速度計は傾斜が引き起こす加速度を測定するため、デバイスに本当にある程度の加速度があるのか​​、それとも加速度を引き起こすのは傾斜だけなのかがわかりにくくなります。

XおよびY-デバイスに傾きがなく、平面上にある場合、軸は0gを生成し、Z軸は1gです。傾斜により、傾斜が上向きの場合はX軸の読み取り値は1gに、下向きの場合は-1gになります。デバイスが元の位置から90 *の角度にあるときに+ -1gに達します

私は、傾きが引き起こす加速度を排除し、デバイスの実際の加速度のみを測定する方法を考えていましたが、私が生成できる次のデータでは、この問題から抜け出すことができません。

基本的に、センサーが写真のように傾いていても、X軸の加速度(写真)しか測定できないと思います。

うまくいけば、このメッセージは、私の英語のスキルと問題を説明しようとしている方法のために、あまりにも理解しすぎないことを願っています。


2
興味深い加速が発生していないときに測定して、比較ポイントとして使用してみませんか?
PlasmaHH

それはうまくいかないと思います。デバイスが完全に静止している場合、X軸とY軸は0g、Z軸は1gです。私が述べたように、傾きは傾きに応じて-1gから1gまでのX軸読み取りを引き起こします。ブレーキをかけると、X軸の測定値が減少します(負の加速なので、車は減速します)。たとえば、デバイスがすでに下向きに傾いている場合、0g-(-1g)の間の値になりますが、これはブレーキによる加速ではないことをどのように確認できますか?
ジャンボジョン

Y軸だけでなく、3軸の合計加速度を計算してみませんか?これは、3つの軸すべてを考慮するのに基本的なものだと思います!?この
チャランサイ

LSM6DSMには磁力計がありません。この情報はどこから入手しましたか?実際、STのX-NUCLEO-IKS01A1ボードを使用していると思います。このボードには、LSM6DSMジャイロ/加速度計 LIS3MDL磁力計の両方があります。
MrGerber

@MrGerber気づいてくれてありがとう。センサーのデータシートを読み間違えることは私の悪でした。
ジャンボジョン

回答:


18

ソリューションのスケッチのみ。

3つの軸すべてを考慮してください。

傾きに関係なく、重力による加速度は、傾きに関係なく、X、Y、Zのベクトル和として常に1Gになります。静止時または定常時の加速度は、半径1Gの球上の点として描くことができます。(完全に水平の場合、そのポイントは(0、0、-1)、つまりあなたの真下になります)。

ブレーキによる加速は、球体自体をゆがめます。X、Y、Zのベクトル合計は1Gではなくなります。

そう

A=バツ2+Y2+Z2

A

AA

旋回や横滑りもしていない限り、ハンドルとABSからの入力を確認する必要があります。それがデータ融合の問題になります。このアプローチは、加速の推定値を提供します。カルマンフィルターを使用して、Phil Frostの答えのように、その推定値の健全性をチェックして調整するには、他の(また信頼性の低い)データソースと組み合わせます。


実際、私はこれまで加速度計/ジャイロスコープを使用したことがないので、全体像がこれらのものがどのように機能するのか完全に明確ではなく、数学は私の最強のスキルの1つではないので、ヒント/説明に感謝します、ありがとう。
ジャンボジョン

間違いはありませんが、エラーマージンが重要になることを強く疑っています。また、垂直加速度が球体を歪めることを忘れないでください(スピードバンプ、ポットホールなど)。そのため、アプリケーションに応じて解決する必要があります。
クリスH

でも十分に一生懸命見れば重力は一定ではない。米国で最も高い道路では、$ g $が約0.1%しか減少しませんが、極から赤道に行くと0.5%の差が生じます。 地質学もこの規模の違いを生むことができます。おそらくゲームチェンジャーではありませんが、キャリブレーションを無視しないでください
クリスH

場所に応じてG球の半径を変更するか、エンジンをオンにする前に測定するだけです。それは問題ではありません。おそらく、スキッドやステアリングと一緒にバンプを処理する必要があることに同意します。
ブライアンドラモンド

エンジンを始動する前に調整することは、私が考えていたようなことです。ただし、ビルダーがエンドユーザーでない場合、キャリブレーションは迅速でした。
クリスH

9

あなたの主な間違いは、加速を単一のベクトルとして扱わないことです。車が停止しているとき、そのベクトルは常に1 g上になります。生の加速度計データのXコンポーネントだけを見ないでください。実際のベクトル計算を行います。

しかし、私の問題は、デバイスが傾斜している場合(傾斜がない場合は0g)、加速度は(下向き)0g->-1gの間、または(上向き)0g-> 1gの間であるということです。

いいえ、これがポイントです。あなたが言っていることは、加速度計出力のX成分には当てはまるかもしれませんが、車が停止しているときの加速には当てはまりません。

理想的な測定加速度は、常に(地球に対する)車の実際の加速度に重力による1 gの加速度を加えたものです。後者は常に上方向です。車の向きがわかっている場合は、重力のためにこの1 gを差し引いて、実際に探している加速度を見つけることができます。

特に安価なMEMSセンサーからの読み取り値にはかなりの誤差があることに注意してください。ハードアクセラレーションやハードブレーキなどの短期的なイベントについては良いアイデアを得ることができるはずですが、このデータは、せいぜい数秒以上慣性航法を行うのに十分なほど良いものではありません。


重力による(測定された)加速度は「上」方向になりませんか?同様に、地球の重力で静止しているデバイスから得られる測定値は、重力場の外に出るのと同じですが、(デバイスに相対的な)「上」方向に加速しますか?
psmears

@psmears:はい、そうです。力は下向きですが、見かけの加速度は上向きです。修繕。
オリンラスロップ

5

他の回答が述べているように、加速度計は、エンジン、ブレーキ、または車に作用する他の力による車の重力と他の加速度の合計である3次元ベクトルを提供します。目的は、加速度計の出力から重力加速度を差し引いて、残りのその他の力を見つけることです。

最高の精度を得るために、加速度計に対して重力が常に「下」であると想定することはできません。たとえば、車が丘の上にある場合があります。すべての計算は3次元ベクトル演算を使用して実行する必要があります。また、減算する重力ベクトルの方向を把握できるように、車の向きをある程度推定する必要があります。

カルマン・フィルタは、ここでは一般的なアプローチです。考えは、車の向きを変える可能性のあるすべてのデータを取得し、測定値の加重平均を実行し、それを車に作用する物理学について知っていることと組み合わせて、車の新しい方向とどの方向が「ダウン」であるか。

より多くのデータがあり、車の物理をより正確にモデル化できるほど、この推定はより正確になります。

たとえば、ジャイロがあり、車のピッチングを測定する場合、重力ベクトルが車の後部に向かって回転することを予測できます。短期的には、車が丘を登り始めたばかりのとき、これは重力ベクトルが迅速に正しい向きをとるのに役立ちます。

また、車が平均してブレーキをかけたり加速したりしないと仮定するかもしれません。したがって、加速度計のローパスフィルター処理された出力は、「下」の方向の推定に使用される場合があります。これにより、慣性ドリフトの影響を受けない長期測定が可能になります。

したがって、加速度計とジャイロスコープからのデータを組み合わせて重力方向を推定すると、いずれかの測定のみよりも正確な推定が提供されます。

さらに、車両の可能な運用範囲について知っていることを組み込むことができます。たとえば、急勾配の丘を上り下りすることはできないため、加速度計がそのような極端な角度を示す場合、出力の大部分が重力ではなくブレーキまたはエンジンによるものであると仮定して、重量を減らすことができます。

ドライバーがブレーキを踏むと、これが加速ベクトルを移動することになるので、推定の「ダウン」コンポーネントからこれを差し引くことができます。

または、GPSデータと地図データがある場合は、場所に基づいて車の勾配の推定値を組み込むことができます。高精度のデータがある場合は、車両がどの丘の上にあるかを正確に知ることができます。精度の低いデータしかない場合でも、これは有用です。たとえば、車がカンザス州にある場合、丘はほとんどありません。車がサンフランシスコにある場合は、丘がより可能性が高いため、加速度計の重量を減らすことができます。

燃料消費量と速度に関するデータがあり、上り坂に行くとより多くの燃料が消費されることがわかっている場合、これを使用して、燃費に基づいて車がピッチアップまたはピッチダウンしていると推定できます。

等々。知れば知るほど、推定値は向上します。


3

融合アルゴリズムが必要で、3D加速度計、3Dジャイロ、3D磁気センサーを使用します。この融合アルゴリズムを使用すると、姿勢が得られます。地球の重力は、ピッチ/ヨー/ロール角の地平線を検出するための基準として役立ちます。他の2つのセンサーmag / gyroは、動的な動きを除外するのに役立ちます。あなたの車も左/右に曲がるので、遠心力が追加されます。姿勢が得られたら、重力ベクトルを減算し、3つの軸すべての結果の加速度を分解できます。


3

非常に基本的なアプローチとして、ハイパスフィルターを使用して、加速度の一定の部分(重力に対応)を除去し、変数の部分を車のダイナミクスに起因させることができます。仮定rawあなたのX、Y及びZの測定値を含むベクトルであり、acc重力無し車加速度です。それから

void correct_for_gravity(float *raw, float *acc)
{
   const float k = 0.9;
   static float gravity[3];

   gravity[0] = k * gravity[0] + (1 - k) * raw[0];
   gravity[1] = k * gravity[1] + (1 - k) * raw[1];
   gravity[2] = k * gravity[2] + (1 - k) * raw[2];

   acc[0] = raw[0] - gravity[0];
   acc[1] = raw[1] - gravity[1];
   acc[2] = raw[2] - gravity[2];
}

の個々のコンポーネントaccは依然として傾斜の影響を受けますが、ベクトルのノルムはそうではありません。

norm_acc = sqrt(acc[0]*acc[0] + acc[1]*acc[1] + acc[2]*acc[2]);

もちろん、この方法は、特に傾斜が高速で変化する場合、あまり正確ではありません。これは、素朴な数学で得られる限りです。より良い精度が必要な場合は、カルマンフィルターの使用方法をご覧ください。


1

答えは、の正確な定義にあります 「スローダウン」の

あなたの質問から:

デバイスは車内に配置され、車が減速(ブレーキ)したときの加速度を測定する必要があります。

ただし、減速はブレーキングとは異なります。2つの可能な定義があります。

  1. 地面に対する車の速度は低下しています。
  2. 車のブレーキがかかっています。

この違いは、上り坂と下り坂で顕著です。下り坂では、ブレーキがかかっていない場合、車の速度が上がります。上り坂では、ブレーキをかけていなくても速度が低下することがあります。

1.を検出するのは2よりもはるかに難しいことがわかります。軸を車の方向に対して定義します:X:前後方向、Y:左右方向、Z:上下方向。すべての軸が車に合わせられます。

ソリューション:

  1. 定義1.の場合、最良のアプローチは、車の速度がX方向にのみ変化することを想定することです。次に、測定された加速度a = g + vで、gは重力に対抗する力による加速度であり、vは速度変化による加速度です。gの長さは常に9.8 m /s²に等しく、vは常にX方向にあると仮定できます。だから(g_x + v_x、g_y、g_z)=(A_X、A_Y、A_Z)与え、v_x = A_X - SQRT((9.8メートル/s²)² - g_y² - g_z²) 。これは| v |の| g |より小さい場合にのみ機能します、言い換えると、モーターまたはブレーキによる加速度は1G未満です。あなたの車にロケットブースターがない限り、かなり安全な仮定であるべきです。

  2. 定義2.では、x軸の読み取り値を直接取得できます。車が加速も制動もしていない場合、それに作用する重力に対抗する力は路面の垂直力のみです。この力は常に車に対してz方向であるため、x軸の読み取り値は変わりません。ブレーキとモーターはx方向にのみ作用し、この測定値で直接表示されます。


0

アプリケーションに「過剰」デバイスを使用しているようです。XとYの加速度のみを測定するデバイスを使用する必要があります。この方法では、傾きは測定可能な影響を及ぼしません。が合計加速度が傾斜に起因して、小さいまたは大きいとすることができ、デバイスは、X&加速度のy成分測定する平面上を車両がオンになっています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.