システム構成 ~ 試走会2回目に向けて.

「近くの実験場」でロボットを走らせたかったのですが,当然間に合うわけもなく...
今週はロボット開発者のバイブルこと「確率ロボティックス」にもう一度目を通してどうするか考えていました.

日本語版

確率ロボティクス (プレミアムブックス版)

確率ロボティクス (プレミアムブックス版)

英語版

Probabilistic Robotics (Intelligent Robotics and Autonomous Agents series)

Probabilistic Robotics (Intelligent Robotics and Autonomous Agents series)

  • 作者: Sebastian Thrun,Wolfram Burgard,Dieter Fox
  • 出版社/メーカー: The MIT Press
  • 発売日: 2005/08/19
  • メディア: ハードカバー
  • 購入: 1人 クリック: 6回
  • この商品を含むブログを見る

で,ひとまず自律で動かすまでにあと何が必要なのかを再度洗い出して見ました.(当初の,「できるだけROSを使う」という目論見からもちょっと変わってしまったので...)

f:id:rkoichi2001:20170910122012p:plain

新しく作らないといけない部品(上図中で黄色の箱)

Localizer

Localizerは前回のポストであったように,あらかじめ保持している地図中において,「ロボットがどこを走っているか?」を判別する部品です.
オドメトリの結果とマップマッチングの結果を統合する必要があるのですが,この統合の方法としてどのアルゴリズムを使えばよいのかずっと悩んでいたのですが,
単純にEKFを使うことにしました.詳細はまた別のエントリでアップします.

Way Point Publisher

この部品は,ロボットが進んでほしい軌跡をコントローラに対してリクエストする部品です.具体的には,作成した地図(下記)で,通過してほしいポイントを事前に決めておきます.
下図の赤い〇がWay Pointを表してます.で,赤の〇の中にロボットが入ったら次の赤の〇をターゲット座標として動きます.これを繰り返してゴールを目指します.

f:id:rkoichi2001:20170910124704p:plain

実装に手を入れないといけない部品

こちらに関しては,一応ちょこっと動くものはできているのですが,処理が多くて(+自分の実装がストレートすぎて,,,)全然リアルタイムで動かないのでCUDA実装してJETSONで動かします.
一応先週CUDAの復習もしたので,すんなりいけばいいのですが,,,またアップします.

Noise Remover (CUDA化)
Global Map Generator (ROS化 + CUDA化)
Local Map 2 Laser Scan (ROS化 + CUDA化)

あとちょっとのように見えていて,実はまだいっぱいやることありますね...なんとか9/23には間に合わせられるように頑張ります.
今日はCUDA化のとこを別のエントリでアップします.