Repository Summary

Checkout URI https://github.com/ose-support-ros/stcamera_ros2.git
VCS Type git
VCS Version humble
Last Updated 2023-03-26
Dev Status DEVELOPED
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
stcamera_components 1.0.1
stcamera_grabber 1.0.1
stcamera_launch 1.0.1
stcamera_msgs 1.0.1

README

OMRON SENTECHカメラ用ROS2ノード

1. 概要

stcamera_ros2パッケージはオムロン センテック株式会社が提供するパッケージで、SentechSDKに対応しているカメラをROS2で使用するためのものです。 ROS2のトピックやサービスを使用して、カメラから画像の取得やカメラの設定、トリガー生成等を行うことができます。 GenICam GenApiノードとROSにあるノードとは全く別の物であることにご注意下さい。 各GenICamGenApiノードは、汎用的なインターフェースを使用して、カメラの情報取得や設定に使用されます。GenICam GenApiの詳細は[GenICam GenApiドキュメント(英語)]をご参照下さい。

2. インストール

本パッケージはUbuntu 22.04 64ビット上のROS2-Humble Hawksbillで動作確認を行っております。 本パッケージはSentechSDK(v1.2.1以降)を利用するため、本パッケージをインストールする前に、予めSentechSDKをインストールしてください。SetenchSDKを初めて使用される場合は、SentechSDK付属のドキュメントをご覧の上、SentechSDKのViewer(StViewer)でカメラからの画像が取得できることを確認しておくと、後の作業がスムーズに行えます。また、StViewerを使用して予めカメラの設定を変更し、UserSetSave/UserSetDefaultを使用してカメラにその設定を保存しておくことで、ROS2でのカメラ設定が不要になる場合があります。SentechSDKは、下記のURLからダウンロード可能です。

SentechSDKダウンロードサイト

SentechSDKのインストール方法や使用方法の詳細については、SentechSDKに付属の資料をご参照ください。 SentechSDKを使用するための環境変数が未設定の場合は、下記のようなコマンドを実行して下さい(SentechSDKを/opt/sentechにインストールした場合)。

source /opt/sentech/.stprofile

ROS2の環境設定が行われていない場合は、下記のコマンドを実行してください。

source /opt/ros/humble/setup.bash

ワークスペース(例:~/dev_ws)を作成し、カレントディレクトリを移動します。

mkdir -p ~/dev_ws/src
cd ~/dev_ws/src

stcamera_ros2プロジェクトをクローンします。

git clone https://github.com/ose-support-ros/stcamera_ros2.git -b humble

依存関係をチェックし、必要なパッケージをインストールします。

cd ~/dev_ws
rosdep install -i --from-path src --rosdistro humble -y

ビルドします。

 colcon build
 

3. StCameraNode

パッケージにあるStCameraNodeを生成すると、パラメータcamera_to_connectに応じて指定されたカメラからの画像取得が開始されます。 StCameraNodeは、下記のいずれかのコマンドで生成できます。

source install/setup.bash
ros2 launch stcamera_launch stcamera_launch.py

又は

source install/setup.bash
ros2 component standalone --node-name 'stcameras' --node-namespace '/stcamera_launch' stcamera_components stcamera::StCameraNode

又は

source install/setup.bash
ros2 run rclcpp_components component_container

でコンテナを起動した後、別のコンソールから

source install/setup.bash
ros2 component load /ComponentManager  -n 'stcameras' --node-namespace '/stcamera_launch' stcamera_components stcamera::StCameraNode

2番目、3番目の方法で記載されているノード名やネームスペースの指定はオプションですが、上記のように指定しておくことで、サンプルプログラムを動作させることができるようになります。 StCameraNodeをstcamera_launchファイルスクリプトで起動するとカメラ接続パラメータがdefault.yaml(./install/stcamera_launch/share/stcamera_launch/config/)で簡単に設定できます。 パラメータ設定の詳細は次の章を参照下さい。

3.1. ノードパラメータ

パラメータの値は大文字と小文字を区別します。設定できるパラメータは下記の通りです。

  • camera_to_connect : ROS2で使用するカメラを指定します。このパラメーターは、StCameraNodeが実行される前に設定する必要があります。 実行中にこのパラメーターを変更しても、その変更は反映されません。設定が空の場合、最初に検出されたカメラが使用されます。”all”が指定されている場合は、検出された全てのカメラが使用されます。CAMERA_ID又はCAMERA_MODEL(SERIAL)が指定されている場合、指定したカメラのみ使用されます。

  • camera_to_connect: []: 最初に検出されたカメラが使用されます。
  • camera_to_connect: [“all”]: 検出された全てのカメラが使用されます。
  • camera_to_connect: [“00:11:1c:f6:yy:xx”,”STC-MCS510U3V(00XXYY0)”]: MACアドレス「00:11:1c:f6:yy:xx」のGigEVisionカメラとシリアル番号「00XXYY0」のUSB3Visionカメラ(STC-MCS510U3V)のみが使用されます。
  • camera_to_connect: [“14210003XXYY”]: IDが「14210003XXYY」のカメラが使用されます。

3.2. カメラの名前空間(ネームスペース)

StCameraNodeはカメラごとにトピックとサービスを宣言します。個々のカメラのトピックおよびサービスへアクセスする際に使用される各カメラのネームスペースは、下記のルールで自動的に生成されます。

  • camera_to_connectが空または[“all”]の場合、ネームスペースの形式は dev_{CAMERA_ID}になります。{CAMERA_ID} はカメラのID。接続されたカメラIDが「14210003xxYY」の場合、ネームスペースは「dev_14210003xxYY」になります. GigEVisionのMACアドレスなどのカメラIDの英数字以外の文字は、アンダースコアに置き換えられます。
  • camera_to_connectがCAMERA_MODEL(SERIAL)またはCAMERA_IDの場合、ネームスペースの形式はdev_{CAMERA_MODEL_SERIAL_}または dev_{CAMERA_ID}になります。{CAMERA_MODEL_SERIAL_}はCAMERA_MODEL(SERIAL)からの書き換えられた文字列です. {CAMERA_ID} はカメラIDです。英数字以外の文字は、アンダースコアに置き換えられます。

File truncated at 100 lines see the full file

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository

Repo symbol

stcamera_ros2 repository