#ロボット工学<オドメトリ>
##はじめに
ロボットの基礎を学習している.その中で,勉強したことを記録していこうと思う.ランダムだが,まずはオドメトリについてまとめておく.
##オドメトリとは
自己位置姿勢推定法の一つ.
「単位時あたりの車輪の回転角の積分によって,移動ロボットの現在位置や姿勢を推定する」
(式)
$\theta(t) = \int_{t_0}^t\omega(\tau)d\tau+\theta(t_0)$
$x(t) = \int_{t_0}^tv(\tau)cos(\theta(\tau))d\tau+x(t_0)$
$y(t) = \int_{t_0}^tv(\tau)sin(\theta(\tau))d\tau+y(t_0)$
$\theta$:方向(姿勢)
$x$:位置($x$成分)
$y$:位置($y$成分)
$\omega$:角速度
$v$:並進速度
$t$:現在時刻
$t_0$:初期時刻
※右手系
この式により,理論上,自己位置推定ができる.しかしながら,実際のロボットではこれらの式を漸化式の形で近似して用いる.
##なぜ,漸化式へ近似するのか?
ロボット上で積分(近似)を行うため.
移動ロボットに搭載した計算機ができることが,
「ごく短い時間間隔$\Delta t$ごとに$v(t)$や$\omega(t)$を計測すること」
であるから.
##漸化式(短冊近似)
短冊近似(区分求積法と同じ考え方)
積分区間を$\Delta t$間隔で分割し,前後の時間における値を結んだ短冊の面積を累積する近似法.
ここで,$v(t), w(t)$をロボット上での得られる形として,次のようにする.
$v(N\Delta t), w(N\Delta t) N=0,1,2,...$
これは,$\Delta t$が経過するごとに,経過回数$N$が増加し累積されていくという変換である.
これを基に,理論式を次のように書き換える.ただし,$\tau_N=N\Delta t$とする.
※$\Delta t$は通常$5ms$~$20ms$くらいらしい
(式)
$\theta(\tau_N) = \omega(\tau_N)\Delta t+\theta(\tau_{N-1})$
$x(\tau_N) = v(\tau)cos(\theta(\tau_N))\Delta t+x(\tau_{N-1})$
$y(\tau_N) = v(\tau)sin(\theta(\tau_N))\Delta t+y(\tau_{N-1})$
いま$\theta(\tau_N)$の状態を一つ前の時刻$\tau_{N-1}$の状態を用いて表現しているため,漸化式である.漸化式にしてしまえば,アルゴリズムの基本に基づいて,繰り返し処理を負担なく行える形となる.これならば,ロボットに搭載する計算機で計算でき,実際に推測することができるようになる.なお,計測の必要な速度はエンコーダなどを用いて計測できる.
##これから
オドメトリの理論についての話は簡単ながら,このあたりで終わり,今後は実際にプログラムでシミュレーションでもできればと思っている.また,ROSを搭載したラジコンが完成したときには,自己位置推定にお世話になるであろう.
##感想
オドメトリというものは何度も勉強してきて,実際にOEDでのシミュレーションを行う授業も受けたこともあり,ようやくその概念をつかんだ気がする.とりあえず,今回は忘れないように必要なことを簡潔にまとめてみた.頭の整理にはなったと感じている.
##参考文献
はじめてのロボット創造設計
米田 完・坪内 孝司・大隅 久 著 講談社