とりあえずC#で生値のグラフ化と、簡単に四元数の計算を実装してみた。
データ抜けとかは確認していないけど、なんとなく、200Hz程度なら問題ない感じ。
センサは9軸センサを2個載せており、各軸2値の平均を使用している。
ノイズ対策(フィルタ)は使用していない。
そもそもノイズの主成分はホワイトノイズだから積分すれば消えるし。
地磁気はみるからにオフセットがある。
10秒程度のサンプル(2kポイント程度)の平均値をジャイロのオフセットに使用しているが、ぐるんぐるん回る、という程ではない。それでもなんとなくドリフトが移動している気はするけど、短時間なら十分無視できるレベル。
姿勢をジャイロ以外から求める場合、例えばよく使われるのは加速度で2軸を推定し、さらに地磁気で追加の1軸を推定する、というのがありそうな気がする。
ただ、加速度を併用する場合は加速度を伴う運動をしているときは信頼性が悪くなる。ロボットとかに乗せる場合、速度変化の有無を判定する必要がある。まぁこれはベクトルの長さを見れば判断できるが。
地磁気の場合はもっと複雑で、周りに磁性体があれば不正な出力となるが、磁気ベクトルを見るだけで判定できるだろうか?
センサの近くに金属を接近させるだけで地磁気値がかなり変化する。対潜哨戒機ごっことかできて楽しい。
タミヤのピンセットは鉄分が多いのか磁化されやすく、電子部品が簡単に吸着されてしまうので自分の中では不評だけど、これをセンサに近づけるとかなり大きく振れる。触れる程度まで接近させるとレンジ外に出てしまう。
コレを何に応用するかなぁ。
倒立振子とかやりたいけど、動き回るものを作るには部屋が狭くてな。。
0 件のコメント:
コメントを投稿