からくり小箱

アクセスカウンタ

zoom RSS ジャイロセンサ(ENC-03R)のドリフト補正(その3)

<<   作成日時 : 2010/04/18 17:51   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 8 / トラックバック 0 / コメント 1

 ジャイロセンサ(ENC-03R)のドリフト補正(その2)でドリフト補正のロジックを書きましたが、一応これで、長時間放置しておいても、積分値である角度の値がセンサのドリフトによって勝手に変化することは無くなりましたが、角度の値の繰り返し精度がどうも良くありません。(センサを何回か左右に振って元の位置に戻しても元の値にならないで、どんどんずれていきます。)これでは、とてもロボットの制御に使うことは難しそうです。
 そこで、計算方法を誤差の少ない方法に変えたり、移動平均を止めたり、不感帯の幅を変えたり色々調整をして見ましたが良くなりません。いつも値は+方向にずれるようなので、やはり ドリフト補正が甘いように思えます。
下図で、正確な積分値を得るためには、不感帯は極力狭くして、ドリフトを正確トラッキングしてオフセット値を動かして行けば良いのですが、センサの出力からオフセット値を作る限り、処理の遅れは避けられず、後追いでオフセット値を動かすしかなさそうです。オフセット値を何らかの予測で出力(例えば最小二乗法)すれば良いのかも知れませんがまだ試せていません。 

画像



ドリフト補正の方法で新しい方法が以下のThinking-jのHPに載っていたので試して見ました。

       http://thinking-j.com/DCoffset.aspx

 HPにC言語のリストが載っているので、見ればロジックは分かると思いますが、このやり方は、ある区間で平均を取り(例えば128サンプル毎)前の平均と新しい平均を比べて、その差が規定値以下なら新しい平均を採用し、規定値以上なら元の平均をそのまま使うロジックです。センサが動いて出力が大きく変わったときは、1つ前の平均を使うことで、オフセット値が大きく変化することを避けることが出来ます。センサが動かないときは、徐々に変わるドリフトを追っかけてオフセット値を変えていくことが出来るようになります。
 早速試してみましたが、センサを動かさないときは、結構うまく動くようですが、センサを連続的に動かしていると、結局オフセット値が変わらないため誤差が大きくなるようです。
 
 新しい方法のドリフト補正をグラフにした結果を以下に載せます、太い赤線が128サンプル毎にセンサ出力を平均した値で、センサを動かすと大きく動いています。(グラフをはみ出しています)緑線が上記のドリフト補正のロジックを入れたもので、青線の入力の大きく変化しない部分を細かくトレースしていっています。このドリフト補正を入れて積分したものが細い赤線です。センサを数秒左右に動かしては、一端止めて、さらに左右に動かす繰り返し動作をやっています。しかし、よく見ると、止めている時の値(0°)がだんだん上に上がっており、これが繰り返し誤差です。センサが動いていないときは細かく補正していけますが、これも、センサが止まっている間にしか効かないため、センサを数秒左右に動かすと誤差が積算してセンタが上にずれてしまっています。

画像


 つぎに試したのが、前回のやり方の変形で、3万回のサンプルで平均を取るやり方ですが、前回は、1024回毎にオフセット値を補正していたのを3万回のサンプルを加算した直後から、3万+1、3万+2と順にサンプルを加算していって、全体で平均を取ってオフセット値を更新して行くやり方を試してみました。(6万回になったら古い3万回分のサンプルの総計を新しい3万回分の総計に置き換える)これならセンサを動かしている間も間断無く、より確からしい値でドリフト補正ができます。このやり方でとったグラフを以下に示します。

画像


 大分繰り返し誤差が少なくなったように思えますが、これでもまだ少しずつ上に上がっているので、何回も動かしていると誤差が蓄積していってしまいますので、このままロボットに載せるのは難しいでしょう。(目標の角度が鉛直からずれると倒れてしまう)

 下記のグラフを見て下さい。積分値が全くドリフトしていないように見える思いますが、これは思いつきで、角速度がゼロのとき、積分出力(角度)が初期値(0°)からある範囲以内なら、積分値を強制的に0°に初期化してしまうロジックを入れた物です。つまり倒立振子ロボットで、0°(鉛直)のときは安定して停止するが、それ以外は常に動いているのではないかという想定で考えたロジックです。これも実際に試して見ないと分からないので、これでだめなら、加速度センサの出力が重力加速度だけを出力する条件として、ジャイロセンサの角速度ゼロのときに加速度センサの値を読んで積分値を補正するような作りになるかも知れません。

画像


 このデータを取ったときの様子をビデオに撮ってYOUTUBEに載せました。部屋が明るくてLED表示が見にくくなっていますが、机に置いて元の位置に戻すときちんと表示がゼロになっていることが分かると思います。








 


テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 8
なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー)
ナイス ナイス

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(1件)

内 容 ニックネーム/日時
はじめまして、HP:Thinking-jの管理者です。
DC自動オフセット・ルーチンをご利用頂きありがとうございます。
事情により、
http://thinking-j.com/DCoffset.aspx

https://sites.google.com/site/thinkingj2007/etc/dcoffset
に移します。
以上、ご連絡まで。
thinking-j
2012/04/02 21:17

コメントする help

ニックネーム
本 文
ジャイロセンサ(ENC-03R)のドリフト補正(その3)  からくり小箱/BIGLOBEウェブリブログ
文字サイズ:       閉じる