拙著「ROS2とPythonで作って学ぶAIロボット入門」(講談社)を授業で使用する場合の講義資料のたたき台です.
5章ビジョンの5.7.2節(p.180) 深層学習による物体検出です.前回,古典的な物体検出のプログラムを作ったので,今回は現在主流の深層学習を使った物体検出のハンズオンをします.教科書を見ながらハンズオンを進めてください.
サンプルプログラム
教科書p.182のプログラムリスト5.8, 5.9とその説明を読んでください.
ハンズオン
ここでは,シミュレータを使いYOLOを使って物体認識を行います.
実 行
- 端末を開き3分割する。以下のコマンドを実行する。
- 上段の端末:シミュレータの起動
- ロボットモデルにwaffle_piを設定
$ export TURTLEBOT3_MODEL=waffle_pi
- Gazeboの起動
$ ros2 launch turtlebot3_gazebo empty_world.launch.py
- ロボットモデルにwaffle_piを設定
- 起動したGazeboにInsertタブから色々な物体を挿入してみよう.
- 上図は次の物体
- http://gazbosim.org/models/
- Ambulance, Coke Can, Hokuyo, Walking person
- 上図は次の物体
- 中段の端末。yolov5_ros2パッケージのobject_detectionノードの起動.Topic名が違うのでリマップする.
$ ros2 run yolov5_ros2 object_detection --ros-args --remap image_raw:=/camera/image_raw
- プログラムが正常に動作すると下図のような認識結果のウインドウが開く.正しく認識されているものや,間違っているもの,検出されていないものがある.正しく認識されるためにはデータをたくさん集めて深層学習ネットワークに学生させる必要がある.
- 下段の端末。遠隔操作してロボットを動かして認識が変化するか確認しよう.
$ ros2 run turtlebot3_teleop teleop_keyboard
終わり
コメント