かみやんの技術者ブログ

主にプログラムの話です

地磁気センサ+ロータリーエンコーダ の可視化その2

昨日のエントリ「地磁気センサ+ロータリーエンコーダ の可視化その1」では、TDS01Vの磁気ベクトルの軌跡では、ひし形になってしまうという報告だったが、HMC6352のデータシートに「キャリブレーションでは、オフセットやスケールを調整します」というような記述があったのを思い出し、現在オフセットしかキャリブレーションしていないので、スケールも変えてみることにしてみた。つまり磁気ベクトルの成分である、XとYのうち片方をscale倍してやるというもの。

上図、スケールなしの軌跡(緑)(昨日のエントリの図)

で、Y成分に0.55を掛けたら割と長方形になった。


上図、Y成分に0.55を掛けたもの(さらに右に90度ほど回転させてGPSの軌跡(水色)と合わせた)

うむ。だいぶん本当に走った軌跡に近くなったかも(誤差不明だが、たぶん誤差1mぐらいになった)。ちなみに水色の軌跡がGPSだが、建物の近くで、GPSの誤差が大きく、誤差の大きいところでは10mぐらいずれている気がします。この試験ではGPSより磁気センサ+ロータリーエンコーダの方が精度がよい。

あと、昨日のエントリで、TDS01Vの磁気ベクトルを使う方法ではなく、方位(Azimuth)を使う試験もしてみたいと書いたが、計測してみました。

上図、方位(Azimuth)を使った試験結果。緑の軌跡が磁気センサ+ロータリーエンコーダ。オレンジがロータリーエンコーダのみ。

方位(Azimuth)を使った試験では、ひし形にならず、きちんと長方形。その辺りの補正はTDS01V内部で行われている模様。しかし、なぜかロボットが静止しているときは方位が大体取れているが、ロボットを走らせたり、押したりすると激しく方位がぶれる。オレンジの軌跡がロータリーエンコーダのみの軌跡だが、これが実際に走った軌跡に近い(ほぼ正確。誤差10cmぐらい)。
方位(Azimuth)の取得より、磁気ベクトルを取って自分で補正(スケールとオフセット)した方がよさそうだ。

さて、スケールの調整は、現在ハードコーディングになっているので、それをGUI化してストレージ保存できるように改良するかな。
つくばチャレンジ2009まで、あと31日!時間がない!