Japanese subtitles

← 01ps-08 Localization Program Solution

dummy description

Get Embed Code
3 Languages

Showing Revision 1 created 10/29/2014 by Udacity.

  1. プログラミング課題の答えです
  2. 今までの講義内容からすると非常に簡単ですが
    正解できればすばらしいです
  3. 自分の位置推定のアルゴリズムを
    プログラミングすることができますからね
  4. Googleの自動運転車の方法と非常に似ています
  5. まずは2つの簡単な簿記の割り当てをしました
  6. sensor_wrongの値を
    1.0-sensor_rightの確率としました
  7. その場にとどまる つまり動作が失敗する確率は
  8. 1.0-p_moveの確率という値を割り当てます
  9. ゆっくりスクロールダウンします
  10. まずはメインルーチンからです
  11. ちょっとしたチェック機能も入れました
  12. 観測ベクトルと動作ベクトルが同じ長さでない場合
    エラーメッセージが出ます
  13. もちろんこれは必須ではありません
  14. ソフトウェアが
    もっときれいに見えるように入れただけです
  15. そしてこれが私の確率表の初期化です
  16. 配列の大きさを計算することによって
    初期の一様分布を計算します
  17. これが横列の数×縦列の数で
  18. 1.0をその積で割ります
  19. これが初回分布値です
  20. これは色配列の大きさの配列を作り上げて
  21. pinitの値で初期化します
  22. ここの2つの列は
    初期の一様分布を出力して繰り返します
  23. 動作と同じだけの回数の観測を実行します
  24. 最初のmoveコマンドを通して移動し
  25. 現在の分布とmoveコマンドから
    新しい分布を得ます
  26. そしてsenseコマンドにも同じことを行います
  27. 現在の分布、世界、観測ベクトルを用いて
  28. 新しい確率分布を出します
  29. これを観測や動作の数だけ繰り返し
  30. 最終分布を出します
  31. メインルーチンは以上です
  32. 今度は移動や感知が何かを
    明記しなくてはなりません
  33. まずはsenseから始めます
  34. これが私のsenseルーチンで
    ここからここまでです
  35. 入力の値として確率分布と世界地図があります
  36. 両方とも同じ大きさで
    赤か緑の観測だと指定されています
  37. 新しい事後分布を構成し引用します
  38. ゼロで初期化しpというベクトルと
    同じ大きさをセットします
  39. 内側ループでは
    グリッドセルの要素すべてを繰り返します
  40. 観測がセルの色に合ってるかどうかを計算し
  41. 正解の場合はhitと呼びます
  42. 非正規化の事後分布は
    事前分布にこの大きな和を掛けたものです
  43. 観測が正解ならsensor_rightを使い
  44. 観測が不正解ならsensor_wrongを使います
  45. 最後に補助のすべての値を合計します
    これにはsという変数を使います
  46. ここで補助を全確率1になるように正規化できます
    そして戻します
  47. moveコマンドは分布と動作ベクトルを
    入力として使います
  48. 前回のように次の分布を補助変数として構築し
    ゼロにセットします
  49. 次にすべてのセルを検討しそのセルごとに
  50. ロボットがそこから移動してきた
    可能性があるセルを集めます
  51. p_moveの確率では移動しています
  52. その場合 事前座標は
    Ni-motionコマンドになります
  53. 時間をさかのぼるからです
  54. 切り捨てまたはゼロ以下になった場合
    サイクリックに戻ります
  55. jにも同じことを行います
  56. j-motionコマンドで
    これもサイクリックです
  57. 動かなかった場合は現在のセルの確率に
  58. とどまる確率を掛けます
  59. この列は変数iとjの正しい確率を示します
  60. ベイズの定理ではないので
    正規化する必要はありません
  61. 対応する事後分布を戻すだけです
  62. showというルーチンもあり
    これは全確率フィールドを検討して
  63. pのすべての確率ベクトルを出力します
  64. pを1つのコマンドで表示するよりも
    よいフォーマットになります
  65. ソフトウェアをここにある特定の世界で実行したら
  66. 20個のグリッドセルがあるので
    pを1/20として初期化します
  67. そして動作コマンドと観測コマンドを5回実行し
  68. それを更新して最終結果を表示します
  69. すでに述べたようにその結果はここの配列です
  70. この問題に正解したならば本当にすごいことです
  71. Googleの自動運転車の位置推定方法の
    中核をプログラミングしました
  72. Googleの場合は世界は赤と緑のみというように
    単純ではありません
  73. 丁寧に組み立てられた道路の
    二次元表面モデルがあります
  74. しかしそれはここで
    プログラミングしたことには影響しません
  75. 観測機能が少しだけ複雑になります
  76. 実際ここでプログラミングしたものは
    Googleの自動運転車の
  77. 位置推定のために必要な
    確率的推論へのカギを入手しました
  78. これをプログラミングできたら
    緑の観測の簡単なマッチングを
  79. イメージ地図における全体のイメージレコードの
    イメージマッチングと
  80. 交換すればいいのです
  81. それはこのPythonではできないので
    説明はここまでにとどめておきます
  82. しかし皆さんはすばらしいことを達成しました
  83. すごい位置推定ソフトを作り上げたのです