LancerStratos’s blog

第23回ロボットグランプリに向けたロボットランサー”ランサーストラトス”開発記録

デッドレコニング実験(その1)

折角の祝日ですが雨が降っています。が、ロボットランサー開発には関係ありません。さて、新しく装備したジャイロの出力と、ロータリーエンコーダによる移動距離を使って、機体位置の計算をさせてみました。

ジャイロもロータリーエンコーダも、その出力は10msec毎に取り出しているため、10msec毎に三角関数を使ってX方向とY方向の移動距離を計算し、一つ過去のデータに足していく、とても単純な積分を試してみました。最初の実験では、次のようなログとなりました。

走行ログその1

?なんでこうなるのか、少し悩みましたが、三角関数の引数の型をdoubleとすべきところ、floatのままにしているのが原因でした。修正した結果は以下の通りです。

走行ログその2

期待していたとはいえ、このグラフを描けた時は感動のあまり思わず声がでてしまいました。若干、スケールに実際との誤差がありますが、模擬コースの形状をほぼ再現できており、かなりいい感じに計算できているのではないかと思います。

誤差の修正方法として、右前輪に直結しているエンコーダを、後輪中央に移設することを検討しています。右前輪は左カーブする際に機体中心よりも外側に位置するため、移動距離が大きめに出てしまうのです。つまり、シャシーを再設計しなければなりません。結構な改修作業になりそうです。