search
LoginSignup
7

More than 1 year has passed since last update.

posted at

updated at

ロボット工学<オドメトリ>

#ロボット工学<オドメトリ>

はじめに

ロボットの基礎を学習している.その中で,勉強したことを記録していこうと思う.ランダムだが,まずはオドメトリについてまとめておく.

オドメトリとは

自己位置姿勢推定法の一つ.
「単位時あたりの車輪の回転角の積分によって,移動ロボットの現在位置や姿勢を推定する」

(式)
$\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でのシミュレーションを行う授業も受けたこともあり,ようやくその概念をつかんだ気がする.とりあえず,今回は忘れないように必要なことを簡潔にまとめてみた.頭の整理にはなったと感じている.

参考文献

はじめてのロボット創造設計
         米田 完・坪内 孝司・大隅 久 著  講談社

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
7