Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

確率ロボティクス第四回

5.143 Aufrufe

Veröffentlicht am

パーティクルフィルタのセンサ処理部分の設計と実装

Veröffentlicht in: Technologie
  • Loggen Sie sich ein, um Kommentare anzuzeigen.

確率ロボティクス第四回

  1. 1. 確率ロボティクスと移動ロボットの行動生成 第4回 上田隆一
  2. 2. 本日の内容 • センサ情報をパーティクルに反映する 処理の実装 Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 2
  3. 3. 前回からの補遺 • 第一種過誤(偽陽性)と第二種過誤(偽陰性) – 「ないのに見えてしまう」「あるのに見落とす」というよ うな状況を表す時に使う統計用語 – 議論をしているとたまにどっちの話をしているのか わからなくなることがあるので注意 – 英語 • type I error, false positive • type II error, false negative Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 3
  4. 4. 地図を持たせる • 自己位置推定 – 与えられた地図の中でどこにいるか推定 – 地図をロボットに渡す必要がある • 想定する環境 – マイクロマウスの迷路 • 1区画: 180mm • 壁の厚さ: 12mm • 左下のXY座標の原点に Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 4 Y X
  5. 5. ロボットのセンサ • 4つの赤外線距離センサ – 光量を計測するタイプのもの Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 5
  6. 6. センサの特性 • 0〜4000の値 • 右図: センサ-迷路の 壁間の距離と値の関係 – ある条件で1度だけ計測 • 雑音や値の偏りの要因 – 壁のコンディション – 指で動かすとセンサの位置や向きが変化 – 環境の明るさ Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 6
  7. 7. 地図の実装例 • コード • 右図のようなテキストを 読み込ませる仕様 – 壁のある場所を1、 ない場所を0で書く – ロボットが到達できない 箇所は全て壁があるものとしておく Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 7 $ cat map 1 1 1 1 #一番上の横向きの壁 1 1 1 1 1 #その下の縦向きの壁 1 1 1 1 #... 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1
  8. 8. プログラムの構造 • Map: 地図のクラス • Room: 一区画のクラス – データ • 四方の壁のデータ • 区画の中心の座標 • Mapが16のRoomを持つ • プログラムを実行すると __mapというファイルに読み込んだ 地図が描画されるようになっています • ※もしかしたらこのように 構造化せず、一つの格子地図に したほうが楽かもしれません Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 8 class Room { … private: vector<bool> m_wall; double m_x_origin_mm; double m_y_origin_mm; }; (m_x_origin_mm, m_y_origin_mm) m_wall[0] m_wall[1] m_wall[2] m_wall[2]
  9. 9. ベイズ推定の実装 • とりあえず前方の壁の 有無情報を利用して 尤度を作ってみましょう • とりあえず迷路の1区画 だけに注目 Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 9
  10. 10. 「何も前方にない」という情報の利用 • 何回か環境を変えて試したところ、次のことが成立した – 前を向いている2つのセンサの値が両方500以下 →ロボットの前方に、その区画の壁は存在しない Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 10
  11. 11. • 「壁がない」を「陰性」と表現することにしましょう – (一般的にこう言うわけではないので注意) • 尤度 – L(姿勢xの前方に同一区画の壁が存在 | 陰性) = 0 – L(姿勢xの前方に同一区画の壁がない | 陰性) = 1 – L(任意のx | 陰性でない) = 1 – 陰性でない • 前方を向いたセンサの値が 1つ以上500以上 • 「陽性」ということではない Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 11
  12. 12. 尤度を使った処理の流れ 1. 距離センサの値を取り込む 2. 前を向いているセンサの値が両方500以下なら 1. 各パーティクルの姿勢で前方に壁があるか計算 2. 壁があったら重みをゼロにする • 本当に0にすると処理がややこしくなるので実際は0.000001等 を元の重みにかける • 壁との衝突判定のコード、書いてみましょう。 • 重みの合計は1に正規化する必要があるが・・・ – 来週やります Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 12
  13. 13. 実験 • 写真の姿勢から1度だけセンサの値を パーティクルに反映 • パーティクルの数: 1000 • 各パーティクルの 変数の初期値 – 姿勢: ランダム – 重み: 1/1000 Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 13 計測
  14. 14. 結果 • 迷路の外のパーティクルは消える (外には全部壁があると地図で仮定しているので) • 部屋状になっている区画のパーティクルは 全て出口の方を向く Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 14 更新前 更新後環境
  15. 15. 「前方に壁がある」という情報の利用 • 「陽性」の情報 • 次のような条件の場合、現在ロボットがいる 区画の壁が必ず存在 – 4つの距離センサ 全ての値が500以上 Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 15
  16. 16. • 尤度 – L(姿勢xの前方に同一区画の壁が存在 | 陽性) = 1 – L(姿勢xの前方に同一区画の壁がない | 陽性) = 0 – L(任意のx | 陽性でない) = 1 Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 16
  17. 17. 実験 • 写真の姿勢から1度だけセンサの値を パーティクルに反映 • 諸条件は先ほどと同じ Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 17 計測
  18. 18. 結果 • 壁がない方を向いているパーティクルの重みが減る – しかし他の情報と組み合わせないとよく分からない Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 18 更新前 更新後 (灰色: 重みが減ら されたパーティクル) 環境
  19. 19. さらに情報を重ねる • 環境の内・外 – 尤度は省略 • 陽性の情報との重ね合わせ • 陰性の情報と重ね合わせるにはロボットが 動く必要がある Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 19 更新前 更新後
  20. 20. これまでのまとめ • 3種類の情報を使って尤度を設計 – 前方に壁がない(陰性) – 前方に壁(陽性) – 環境の内・外 • どちらも2値の尤度にした – 条件が成立する限りはキャリブレーション不要 – ただし精度は期待できないかもしれない Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 20
  21. 21. 議論: 他者や障害物の存在 • 環境に壁以外の障害物がある場合、先ほどの 情報のうち、使えないものはあるだろうか? = 偽陽性、偽陰性が起こる場合は? – 地図上にない固定物 – 人の手 – 同じロボット(同じ原理の距離センサを持つ) Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 21
  22. 22. 議論: センサの取付け位置 • 「壁がない」という条件はロボットの形状を ちょっと変えるだけで成立しなくなる – センサの位置が悪いと壁に接近しすぎた場合に 壁に反応しなくなる • センサの取付位置を変えて、さらに有用な情報が 得られるように工夫することはできるだろうか? • 動物の感覚器の位置にはどんな 理由があるだろうか? Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 22
  23. 23. 議論: パーティクルの重さの偏り • センサ情報をパーティクルの重みにどんどん 反映していくと、いずれわずかなパーティクル を除き、重みがほぼゼロに – どんな悪影響があるだろうか? – 回避する方法は? Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 23
  24. 24. 次回 • リサンプリング • リセット Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 24

×