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 |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
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を/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