MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

Dead Reckoning: デットレコニングの問題点 (ロボットの自己位置推定)

本文

デットレコニング(Dead-Reckoning:DR)とは

ホイールエンコーダや慣性センサなどを利用した

相対的自己位置推定法のことを指します。




元々は、船舶における位置計測用語で、

recokningは推測するという意味で、

船舶での位置計測の2つの手法である

  • 天測航法 (star reckoning):星を使った大域的位置計測方法
  • 盲目航法 (dead recokning) : 速度などを使った相対的位置計測方法

から来ています。

近年は慣性航法 = dead recokningという名前で呼ばれています。

(自己位置推定法の基本的な話は下記の記事を参考にしてもらいたい

 Localization (自己位置推定) - MY ENIGMA)




基本的にはロボットの初期状態(位置と姿勢)がわかっているとし、

その値にエンコーダをジャイロなどのセンサ情報を足し合わせて、

ロボットの位置と姿勢を逐次的に計算するというものです。



このDRには,大きく分けて二つの基本的な方法があります。

ひとつはオドメトリシステム、

もう一つは慣性航行システム(Inertial Navigation System:INS)です。



オドメトリは

車輪型のロボットタイヤにエンコーダを取り付け、

このエンコーダからの情報でタイヤの回転数を測定します。

そして、ステアリングの角度やタイヤ同士の幾何学的関係を利用して、

ロボットの移動量を計算し,

その値を前回のロボットの状態(位置と姿勢)に足し合わせることにより,

現在のロボットの状態を更新するのです.



このとき、

タイヤの回転数からロボットの移動量を計算する計算式(関数)のことを

一般的にロボットのKinematic model (Motion model)といいます。

差動式のロボットの場合、

このモデルはタイヤのトレッドやタイヤ径などのパラメータに依存した関数となります。


ちなみにタイヤの回転数からロボットの移動量を計算する

ホイールオドメトリという手法の詳しい説明と,

サンプルプログラムは下記の記事に紹介されています.

差動二輪型ロボットのWheel Odometryによる自己位置推定プログラム - MY ENIGMA






一方,

INSは航空機の分野などでよく使用されるシステムです。

基本的にgyroscopeと加速度計から構成され、

これらのセンサから角速度(加速度)と並進速度(加速度)を計測し、

それらの値から移動量を計算し,

先ほどのホイールオドメトリと同様に,

前の状態量に足しあわせていくのです.



これら手法は多くの自律移動ロボットに使用されており、

主要な自己位置推定手法として現在でも使われています。




しかし、

このDRという手法には,

以下の4つの理由により位置推定の誤差が生じてしまいます.

そして

前述のようにDRでは,位置の推定にDRの移動量の値を足し合わせていくだけなので、

この誤差が蓄積していってしまうのです.

つまり、長距離を走行すると位置推定誤差がどんどん大きくなってしまうという

大きな問題が生じてしまいます.




以下がDRの誤差の要因です.


1.完全なkinematic modelは存在しない。

たとえば真のタイヤ径やトレッド幅を知ることはできない。

また、たとえ知ることができたとしても、そもそものモデルが近似であるため、

真の移動量を知ることはできない。



2.完全なセンサのモデルも存在しない。
たとえば、

ジャイロのドリフト誤差をexpで近似する方法はあるが、これも結局近似である,

またセンサの測定位置は内部の回路構造なども影響してくるため、

本当に正しいモデルを作成するためには、とても複雑なモデルを構築する必要がある。



3.センサの観測値にはノイズが含まれている。

またどんなデータも離散化されており、真の測定値というものも存在しない。



4.ロボットの運動ではセンサで観測できない外部要因が大きく影響する。

たとえば、タイヤのスリップやロボット自体の構造の変化など。

(タイヤのスリップなどに影響されないDR法もあります。

カメラ画像のみでロボットの移動量を計算するVisual odometryです。

詳しくは以下のページを見てください)

http://www.isc.meiji.ac.jp/~amslab/racing/technology/vision/visualnav.html




これらの理由により

DRによる自己位置推定は

走行距離に比例して誤差が無限に大きくなってしまいます。



これらの問題を解決するために、

その後、GPSやマップマッチング,SLAMなどの

時間に対して位置推定誤差が無限に大きくならない手法を用いて

自己位置推定を行う手法が開発されてきました.



(SLAM技術に関しては下記の記事を参考にしてもらいたい

Simultaneous Localization And Mapping (SLAM)について - MY ENIGMA)


MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com