Powered By Blogger

2020年5月9日土曜日

Jetson Nanoマウス?②

 前回の続き。今回は、壁の認識方法について。
Turtlebot3のキットには、Lidarセンサと、ステレオカメラ(Realsenseカメラ)が付属している。このうちLidarは、測定レンジ的にそのままでは真横の壁も認識できないし、2次元でしか計測できないので工夫して使用するのも難しいと思い、カメラで壁を認識しようと思い立った。

 カメラでもそのままでは真横の壁も見えないわけだが、他の方もされているように迷路を上から見下ろすようにすれば、壁の上面の赤いところを視野に入れることができる。
 これを認識できないか、というわけで実験をしてみたのが以下の動画である。これは下記図の通りカメラで上から壁を見て、特定の高さ以上で、かつ赤いものつまり迷路壁上面のみを抽出したものである。
 マイクロマウスの競技の性質である、「ロボットの障害物は壁のみで、上面は赤である」という性質を利用し、3次元のカメラの画像を変換して検知した障害物を、高さ情報を消去して2D平面に圧縮し表示している。




動画の通り、赤い点(ハーフマウスの壁、ほんとはクラシックでやりたい、、、車体がそんなに小さくはつくれないので)と黒い点(床に引いた布)からなる生データのうち、コの字状にならんだ点のみ抽出できていることがわかる。

 これで、カメラのデータを変換して2DLidarのようなデータが得られ、LidarによるSLAMのようなことができるのでマウスっぽくなるかと。ちなみにカメラのデータをそのまま用いてSLAM(例えばこれ)をする技術もあるんですが、画像処理が結構重そうで、(よく見る実行環境がcorei7とかメモリ32GBとか、、、Jetson Nano(ARM4コア、4GBではさすがに実行できないよなぁ、、、)
重い環境認識処理自体と、処理後のデータそのものをなんとかしたかったわけである。

 壁の認識がそれっぽくやれたので次はシャーシを作って実際に走行させて、いろいろためしてみようと思う。

0 件のコメント:

コメントを投稿