Scoutロボット標準カメラのROS1画像トピック配信方法
使用するノードと必要パッケージ
Scoutロボットに初期搭載されている標準カメラから映像を取得しROS1で配信するには、カメラ用のROSドライバノードを起動します。標準構成のScoutでは一般にUSB接続のカメラが搭載されているため、ROS1用USBカメラドライバパッケージであるusb_camを使用しますqiita.com。まずROSパッケージがインストールされていない場合、ros-<ディストリビューション>-usb-camをAPTでインストールしてください(例: ROS Melodicならros-melodic-usb-cam)。また、映像表示のためのツールとしてimage_viewパッケージも利用しますqiita.com。
備考: 一部のScout R&Dキットでは深度カメラとしてIntel RealSense (例: D435i) が搭載されている場合がありますgeneral-laser.at。その場合、標準的なUSBカメラドライバではなくIntel提供の**
realsense2_cameraパッケージ**を使用してRGBカメラ映像や深度画像をトピック配信します。RealSense用ドライバを起動すると、カラー画像は/camera/color/image_raw、深度画像は/camera/depth/image_rect_rawなどのトピックに配信されますmedium.com。以下では主にUSBカメラ(usb_cam)を例に手順を説明します。
カメラノードの起動と設定
-
カメラデバイスの確認: ScoutのオンボードPC(例: JetsonやNUC)にカメラが接続されていることを確認し、デバイスファイルを調べます。典型的にはカメラは
/dev/video0に割り当てられます。ターミナルで```bash ls /dev/video*ライティング
-
ROSマスタ起動: カメラノードを立ち上げる前にROS Master(roscore)を起動しておきます(
roscoreコマンドを実行)。これはroslaunchを使う場合は自動で立ち上がりますが、手動でノードを起動する場合は必要です。 -
カメラノードの起動:
usb_camパッケージのノードを起動し、カメラ画像をトピック配信します。起動方法は直接ノードを実行するか、launchファイルを使用します。簡単な動作確認であれば以下のように直接コマンドを実行できます。上記コマンドではデフォルトで
/dev/video0が使用され、usb_camノードが映像を取得して/usb_cam/image_rawというトピックで画像を配信しますqiita.comqiita.com。カメラデバイスが複数ある場合や別のデバイス名を使う場合、_video_device:=<デバイス名>引数で指定できます(例:/dev/video1を使う場合はrosrun usb_cam usb_cam_node _video_device:=/dev/video1)qiita.com。 -
パラメータ設定(launchファイル使用): 継続的な利用や細かな設定を行うには、
usb_camノード用のlaunchファイルを作成すると便利です。launchファイル内でノードを定義し、以下の主要パラメータを設定できますqiita.comqiita.com。-
video_device: 使用するビデオデバイスファイルパス(デフォルト:/dev/video0)qiita.com -
image_width/image_height: 取得する画像の解像度(幅と高さ)qiita.com -
pixel_format: カメラのピクセルフォーマット(例:"mjpeg"、"yuyv"、"uyvy"等)qiita.com -
framerate: フレームレート(例: 30FPS)qiita.com
例えば、640x480のMJPEG映像を30FPSで配信する場合、launchファイル内で上記のようなパラメータ指定を行います。必要に応じて明るさ(
brightness)、コントラスト(contrast)、オートフォーカス(autofocus)などの設定項目も指定できますqiita.com。作成したlaunchファイルを用いて```bash roslaunch usb_cam <作成したlaunchファイル名>.launch -
ROSトピックと動作確認
カメラノード起動後、画像データはROSトピック上で配信されます。usb_camノードをデフォルト設定で動かした場合、画像トピックは/usb_cam/image_raw (型: sensor_msgs/Image) となります。また、カメラのフレームIDに対応したTFフレームやカメラ情報(camera_info)も必要に応じて設定できますが、基本的な映像取得だけであれば上述の設定で十分です。
動作確認として、ターミナルでrostopic listを実行し該当トピックが発行されていることを確認します。さらに画像が実際に配信されているかを可視化するには、ROS標準の画像ビューアを使います。例えば別のターミナルで以下を実行すると、ウィンドウにカメラ映像が表示されますqiita.com。
これにより、usb_camノードが配信している生のカメラ画像 (/usb_cam/image_raw) をimage_viewノードが購読し、画面に表示しますqiita.com。同様にrqt_image_viewを使用してトピックを選択表示することもできます。以上の手順と設定により、Scout標準搭載カメラの映像をROS1上でトピック配信し、実機で取得・確認することが可能です。必要に応じてカメラキャリブレーションを行い、camera_infoを提供することで、画像処理やナビゲーションでより正確なデータ利用もできるでしょう。
参考文献・情報源: Scout開発キットの説明書並びにROS Wikiqiita.comqiita.comqiita.com、ならびにIntel RealSense ROSドライバ資料general-laser.atmedium.comなどを参照して手順を整理しています。
Sources:
-
Qiita記事:「ROSの勉強 第40弾:USBカメラ」– USBカメラノード
usb_camの使用方法解説qiita.comqiita.comqiita.comqiita.com -
AgileX Scout Mini R&Dキット 製品仕様 – 標準センサー構成(Intel RealSense D435i 深度カメラ搭載)general-laser.at
-
Intel RealSense ROSパッケージ (realsense2_camera) ドキュメント – RealSenseカメラ起動と配信トピック例medium.com





