Turtlebot3のキットには、Lidarセンサと、ステレオカメラ(Realsenseカメラ)が付属している。このうちLidarは、測定レンジ的にそのままでは真横の壁も認識できないし、2次元でしか計測できないので工夫して使用するのも難しいと思い、カメラで壁を認識しようと思い立った。
カメラでもそのままでは真横の壁も見えないわけだが、他の方もされているように迷路を上から見下ろすようにすれば、壁の上面の赤いところを視野に入れることができる。
これを認識できないか、というわけで実験をしてみたのが以下の動画である。これは下記図の通りカメラで上から壁を見て、特定の高さ以上で、かつ赤いものつまり迷路壁上面のみを抽出したものである。
マイクロマウスの競技の性質である、「ロボットの障害物は壁のみで、上面は赤である」という性質を利用し、3次元のカメラの画像を変換して検知した障害物を、高さ情報を消去して2D平面に圧縮し表示している。
これで、カメラのデータを変換して2DLidarのようなデータが得られ、LidarによるSLAMのようなことができるのでマウスっぽくなるかと。ちなみにカメラのデータをそのまま用いてSLAM(例えばこれ)をする技術もあるんですが、画像処理が結構重そうで、(よく見る実行環境がcorei7とかメモリ32GBとか、、、Jetson Nano(ARM4コア、4GBではさすがに実行できないよなぁ、、、)
重い環境認識処理自体と、処理後のデータそのものをなんとかしたかったわけである。
壁の認識がそれっぽくやれたので次はシャーシを作って実際に走行させて、いろいろためしてみようと思う。
0 件のコメント:
コメントを投稿