Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第27回ロボティクスシンポジア

 第27回ロボティクスシンポジア

2022年3月17日オンラインにて

114d1b33c50cdc86c4c641682190407f?s=128

Ryuichi Ueda

March 17, 2022
Tweet

More Decks by Ryuichi Ueda

Other Decks in Technology

Transcript

  1. 移動ロボットのナビゲーションの ためのbrute-force な価値反復を用いた 大域計画・局所計画アルゴリズム 上田隆一,池邉龍宏,林原靖男(千葉工大) 第27回 ロボティクスシンポジア 2022年3月17日 本研究はJSPS 科研費JP20K04382

    の助成を受けた
  2. 移動ロボットの経路計画・障害物回避 • 現在よく用いられるもの: ROS navigation stackで標準のもの • 大域計画: A*[Hart 1968]

    • 局所計画(障害物回避): DWA [Fox1997] • 路上の障害物を避けるには十分→大きな迂回は? • デフォルトのものでは無理→試行錯誤 • 大域/局所計画器の組み合わせの試行錯誤 手間 • 大域/局所計画器が別々に仕事 情報の融通に制限 2022 3 17 年 月 日 27 第 回ロボティクスシンポジア 2 大域計画器と局所計画器を統一的に扱えないか?
  3. 価値反復ROSパッケージ (ryuichiueda/value_iteration)[上田2021] • 価値反復[Bellman1957]をオンライン経路計画に実装 • もともとオフラインで用いられていたもの[上田2019] • マルチスレッドでCPUを使い切って高速化 • 性能

    • 118.5[㎡]の環境で 実質の計算時間が2.1[s] • 「実質」: オンライン/オフライン計画 でのロボットの移動時間の差 • Intel Core i9-10885H 2022 3 17 年 月 日 27 第 回ロボティクスシンポジア 3  オフラインで利用されてきたものを オンライン利用可能に
  4. 価値反復 • ベルマン最適方程式の解を算出 • x: ロボットの位置・向き • V*(最適状態価値関数): ある状態 x

    からのコストの期待値 • 状態空間を離散化して計算 2022 3 17 年 月 日 27 第 回ロボティクスシンポジア 4 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 初期値 (実際は3次元)  本来、ゴールまで走ってみないと分からないコスト を局所演算で算出可能とするアルゴリズム 1 1 2 2 2 3 3 3 3 4 4 4 5 5 6 4 5 6 収束したV* 1 = = 1 2 = = 2 = 2
  5. なぜ価値反復を使いたいのか1 • 理論上最適 • 同じ系で他より性能が悪ければ実装が悪い • 解像度を上げれば(計算機を大量投入すれば)問題解決 • 確率的な状態遷移を取り扱い可能 •

    動きの不確かさを表現可能 • 障害物への接触可の場合(昔のRoboCup等)も計画可能 • 離散化の影響を吸収→ロボットの軌道が単純な探索より滑らかに 2022 3 17 年 月 日 27 第 回ロボティクスシンポジア 5 価値反復の適用例 [Ueda 2003] ※3次元空間で演算 探索アルゴリズム: 離散区分をたどる発想 価値反復: どの方角に 行けばコストの期待値が 減少するかという発想 ロボットの経路 ロボットの経路
  6. なぜ価値反復を使いたいのか2 • どの状態に対しても最適な行動が算出済み • 行動の修正が効きやすい • ロボットの置きなおしや自己位置推定の急な修正に頑健 • 再計画や例外処理、if文による場合分けが不要 •

    迂回路の算出に便利 [上田2021]では未実装 2022 3 17 年 月 日 27 第 回ロボティクスシンポジア 6 1 1 2 2 2 3 3 3 3 4 4 4 5 5 6 4 5 6 V*を計算済み: 他の経路を 検討可能 1 1 2 2 2 3 3 3 4 5 4 A*等: もとの経路が 使えない→破棄
  7. 研究の目的 • 価値反復ROSパッケージに 障害物回避、迂回のアルゴリズムを実装して評価 • 課題 • 大域計画中に局所計画を並列実行 • 2[s]/100[㎡]の性能を大きく下げずに

    2022 3 17 年 月 日 27 第 回ロボティクスシンポジア 7
  8. V* を利用した迂回路生成 • V* のコピー(𝑉𝑉+ とする)を生成 • 発見した障害物を地図に記録 • ロボット近傍の𝑉𝑉+の値を価値反復で更新

    • すぐに経路が発見できない場合も、 ロボットが動き回ると𝑉𝑉+ が収束して迂回路生成 2022 3 17 年 月 日 27 第 回ロボティクスシンポジア 8 1 1 2 2 2 3 3 3 3 4 4 4 5 5 6 4 5 6 未知障害物がないときの𝑉𝑉+ 1 1 2 2 2 3 3 3 3 4 4 4 5 5 6 4 5 6 未知障害物発見 1 1 2 2 2 3 3 3 3 4 4 4 5 5 6 4 5 6 ある範囲「窓」の値を書き換え 9 8 8 7
  9. 発見した障害物の記録 • 窓内の物体にセンサが反応した場合 • 当該セルを塗りつぶし • 塗りつぶし: ロボットが入ったときの コストを大きな値に •

    窓内のセルに物体がない場合 • コストを半減 • 窓外のセル • 放置 2022 3 17 年 月 日 27 第 回ロボティクスシンポジア 9 障害物の検出位置 (LiDARのレーザーの端点など) 塗りつぶし 窓外のセルのコストは そのまま残す
  10. 𝑉𝑉+の価値反復( V*の計算中にどのように同期するか) • V*収束前 • 多くのスレッドを大域計画器に • 数個のスレッドを局所計画器に • 局所計画器は窓の縁の状態の

    V* の値を𝑉𝑉+にコピーして同期 • V*収束時 • これまでの𝑉𝑉+をいったん破棄→ V*を𝑉𝑉+にコピー • V*収束後 • 局所計画器のスレッドのみを実行 2022 3 17 年 月 日 27 第 回ロボティクスシンポジア 10 V* 𝑉𝑉+ 縁の部分だけ V* からコピー window
  11. 局所計画器による迂回行動の生成 • ロボットがとる経路に深い(4[m])の袋小路 • 窓(2[m]四方)より大きい迂回路が必要 • 窓のサイズを変えて試行した結果 窓が小さくても迂回路生成に成功 • 注意:

    窓の大きさにかかわらず 袋小路に抜け道ができると失敗 2022 3 17 年 月 日 27 第 回ロボティクスシンポジア 11 窓の1辺の長さ 2[m] 4[m] 8[m] 成功/試行回数 5/5 5/5 5/5
  12. 計算量の評価 • [上田2021]から計算量を大きく増えていないか確認 • 8か所(x10セット)を巡回させて 1か所あたりの移動時間を比較 • 大域計画: オフライン/オンライン •

    局所計画: あり/なし • 条件 • 離散状態空間 • 広さ: 20[m]x20[m] • 離散化: 50[mm]x50[mm]x5[deg] • 遷移可能な状態の数: 284万 • 6種類の行動 • 前進,後退,右/左前進,右/左旋回 • CPU: Intel Core i9-10885H 2022 3 17 年 月 日 27 第 回ロボティクスシンポジア 12 移動経路 利用した地図 118.5[㎡] 20[m]
  13. 計算量の評価結果 • 1か所あたりの平均移動時間 • 大域計画の性能低下: 1.3倍 局所計画器との連携のため計算量増加 • 局所計画あり: 1.1倍

    なしの場合より移動時間が短縮 • 局所計画のスレッドが寄与し、ロボット近傍の行動計画の収束 • スレッドを2個多く使用しているという理由も 2022 3 17 年 月 日 27 第 回ロボティクスシンポジア 13 大域計画/局所計画 移動時間 オフライン/なし 44.4[s] オンライン/なし 47.2[s] オンライン/あり 46.8[s] [上田2021]の 2.1[s]より 0.7[s]悪化 局所計画ありのほうが 移動が効率的
  14. 結論 • 大域計画、局所計画ともに価値反復を 利用した行動計画器を実装 • 「窓」を超える迂回路生成に成功 • 計算のオーバーヘッドを[上田2021]から2倍以内に抑制 • 今後

    • 実装の効率化 • 大域計画で検出した障害物を織り込む • 局所計画器はロボットの周辺での優先的な演算に利用 • 動的な障害物に対応 • 窓の中だけ系の次元をあげて速度を考慮 • パッケージの使い勝手向上 2022 3 17 年 月 日 27 第 回ロボティクスシンポジア 14
  15. 補足: CPUの使い方 • CPU: Intel Core i9-10885H • 8コア16スレッド •

    大域計画に8スレッド • 局所計画に • 大域計画終了前2スレッド • 大域計画終了後4スレッド 2022 3 17 年 月 日 27 第 回ロボティクスシンポジア 15