LoginSignup
9
8

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-12-18

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

はじめに

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

オドメトリとは

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

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

参考文献

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

9
8
0

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
  3. You can use dark theme
What you can do with signing up
9
8