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を使用するための環境変数が未設定の場合は、下記のようなコマンドを実行して下さい(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