こんにちは、
MMA7361LC を使って加速度を測定し、移動中のロボットの速度を計算してみました。
加速度センサをテストしたところ、(前方、後方に)動かしたときや、重力を測定しているかどうかをチェックしたときに良好な結果が得られました。
ロボット(戦車)に固定した状態でも、ロボットを手で動かす場合は問題なく動作します。
問題は、ロボットを車輪モーターで駆動しているときに、まったく適切な結果が得られないことにあります。
最初からロボットが停止するまで同じ振動が発生しています。正または負の加速があった場所をほとんど分析できず、70Hz の単純な LPF を適用した後でもノイズが非常に高くなっています。
ロボットが動いているとき(ホイールモーターによる)直線に近くならないのはなぜか分かりません。
添付ファイル:
緑 - LPF の前の正の駆動軸。
オレンジ - LPF 後の正の駆動軸。
scope_3 - 低い加速度 (約 0.5 秒間)、一定の速度、そして低い負の加速度 (約 0.5 秒間)。
scope_4 - 同じですが、開始時と終了時の加速が高くなります。
助けてください。
ありがとう、ドロール。
ドロール、
こう申し上げるのは残念ですが、あなたの基本的な前提には欠陥があります。単一または二重の積分によって速度/位置を取得しようとするのは、ほとんどの場合、悪い考えです。
問題 1 は、すべてのセンサにノイズがあり、ノイズを統合すると、時間の経過とともにランダム ウォークが発生することです。詳細については、 「位置計算」を参照してください。
問題 2 は、ある人にとっての信号が別の人にとってのノイズであり、その逆もまた同様であるということです。ロボットのモーターとギアトレインからの振動が見えるはずです。
このアプリケーションでは、速度/距離を決定するためにロータリー エンコーダを使用する方がよいでしょう。加速度/ジャイロデータの融合によりロボットの向きと直線加速度が得られますが、速度と位置の精度が必要な場合は、他のセンサタイプを検討する必要があります。
Mike