システム構成とお盆休みまでのTODO

もう七月も折り返し地点ですね..時間ばっかりガンガン過ぎていきます...

目標にしていた試走会一回目の確認走行突破,残念ながらクリアできませんでしたが,どうやって次の試走会までに愛犬を調教すべきか考えていました.
いろいろ論文をみたりアイデアが出てくると,どうしてもアルゴリズムを作ってみたくなるんですが,自分のスキルだと論文からアルゴリズムを実装して使えるようになるまでにおそらく半年近くかかってしまうので,どう考えても間に合わないんですよね...ということで,やっぱり初心にもどって,最大限ROSのパッケージを使う方向で行きたいと思います.ROSのNavigation Stackをそのまま使ったとして,あと何を作らないといけないか,書き出してみました.


f:id:rkoichi2001:20170717204337j:plain

上の図で,灰色の箱はROSのパッケージとしてすでに提供されているもの.緑の箱は自分が作ったもの(ラッパー程度しか作ってないものも含む.).黄色の箱はこれから作らいないといけないものです.
で,方針としてはステレオカメラの出力をLaserScanに変換して,SlamGMapping と AMCLパッケージを使います.視差情報からそこそこのレベルで LaserScanが生成できればいいのですが,おそらくノイズ対策をうまくしなければ使えないと思うので,下記の部品を作ります.

Noise Remover

SGBMの出力ですが,どうしてもノイズが多いのでこれをSuppressします.

Local Map 2 Laser Scan

この部品で,視差情報をLaserScanに変換します.視差情報からLaserScanを生成してくれる部品はすでに存在するのですが,

github.com

一度この部品を使ってマップ生成・自己位置推定をやってみます.これで精度が出ればいいんですが,おそらく難しいと思うので,そしたらちょっと考えます.

Visual Odometry

ヨーレートセンサーの積分だとどうしてもドリフトの影響が避けられないので,モノカメラを使ってヨー角を算出します.Visual Odometryで計算したヨー角とヨーレートセンサーの積分値を組み合わせて,できる限り正確なオドメトリを作ります.

Way Point Publisher

ターゲット座標を都度都度出力します.システムは発行された座標を目指して進行し,ターゲット座標に一定以上近づいたら,Way Point Publisherが新たな座標を発行します.

で,天王山のお盆休みまであと一か月を切りましたが,お盆休みまでに上記の作業を終わらせたいです.となると,,,

7/17 - 7/23 : Noise Remover の作成,depthimage_to_laserscan,slamgmapping を使ってマップ生成.
7/24 - 7/30 : Local Map 2 Laser Scanの検討・作成.
7/31 - 8/6 : Visual Odometryの作成.
8/7 - 8/10 : Waypoint Publisherの作成

うーん.こんなに順調にはいかないだろうな..