😸

GPU環境構築からyolo_rosを動かすまで その2

2025/01/01に公開

概要

Nexis-Rというチームでロボカップレスキュー実機リーグに参加している者です。前回の記事GPU環境構築からyolo_rosを動かすまで その1ではUbuntu上にGPUの環境構築を行いました。今回は実際にROS2でYOLOを使用するためのパッケージyolo_rosの導入と実行方法について説明します。

環境

  • Ubuntu 22.04
  • ROS 2 Humble
  • Thirdwave Corporation XL7C-R36H (PC)
  • GeForce RTX 3060 Mobile (GPU)

ROS2 Humbleのインストール

ROS2のインストールについては割愛させていただきます。まだインストールされていない方はこちらの記事を参考にインストールを行ってください。https://qiita.com/porizou1/items/5dd915402e2990e4d95f

yolo_rosのインストールと環境構築

https://github.com/mgonzs13/yolo_ros
yolo_rosのREADMEには、パッケージ内のrequirements.txtを使用してpipパッケージをインストールする手順が記載されています。しかし、super-gradientsをインストールするとSphinxパッケージとの依存関係によりビルドが失敗するため、今回はsuper-gradientsを除外してpipパッケージをインストールを行います。またすでにopencv-contrib-pythonやopencv-pythonがインストールされている方は依存関係でトラブルの元になるので慎重にインストールを行ってください。

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/mgonzs13/yolo_ros.git
pip3 install opencv-python>=4.8.1.78 typing-extensions>=4.4.0 ultralytics==8.3.26 lap==0.4.0
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build 

実行

今回はRealSenseの代わりにノートパソコン内蔵のWebカメラを使用してYOLOを動作させます。このパッケージでは物体検出に必要な色情報を含む3チャンネルのRGB/BGR画像形式での入力が必要です。そのため、カメラノードの実行時にビデオフォーマットをyuyvではなくmjpeg2rgbに設定して実行します。

ターミナル1

ros2 run usb_cam usb_cam_node_exe --ros-args -p image_width:=640 -p image_height:=480 -p pixel_format:=mjpeg2rgb

ターミナル2

ros2 launch yolo_bringup yolov11.launch.py input_image_topic:=/image_raw

上記の手順で実行することで、Webカメラの映像に対してYOLOによる物体検出が行われます。

まとめ

今回yolo_rosを使ってデモの物体検出を行いました。

ご質問やフィードバックは、Zennのコメント欄にてお待ちしております。記事が参考になった方は、ぜひ「いいね」をお願いします。

Nexis-R

Discussion