roboception / rc_genicam_driver_ros2

ROS2 driver for Roboception rc_visard and rc_cube
BSD 3-Clause "New" or "Revised" License
3 stars 1 forks source link

rc_genicam_driver for ROS2

ROS2 driver to configure a Roboception rc_visard or rc_cube and receive images.

Please also consult the manuals for more details:

GenICam GenTL Transport Layer

The rc_genicam_driver uses rc_genicam_api for interfacing with the rc_visard or rc_cube via GenICam/GigE Vision and requires a transport layer called a GenTL producer (shared library with the suffix .cti). For convenience rc_genicam_api comes with producers from Baumer for common architectures.

The path to the producer can be set with the GENICAM_GENTL64_PATH environment variable (or GENICAM_GENTL32_PATH for 32 bit systems). If not set, rc_genicam_driver will fall back to searching for the Baumer producer where rc_genicam_api is installed.

If the producer .cti can't be found and you will get an error message like

[ERROR] [1512568083.512790905]: No transport layers found in path /opt/ros/melodic/lib/rc_genicam_api

In this case you need either need to actually install rc_genicam_api properly or set the environment variable when running it. E.g. export:

GENICAM_GENTL64_PATH=/path/to/rc_genicam_api/baumer/Ubuntu-18.04/x86_64

Configuration

Read-only parameters

Parameters to be set to the ROS param server before run-time.

At runtime changeable parameters

These parameters can be changed during runtime. Parameters will not be declared if they are not available on the device. This can happen if the device firmware is old and does not offer the parameter.

For color sensors, the following dynamic-reconfigure parameters are additionally available:

Provided Topics

The following topics are provided. The node tries to request only data (e.g., images, poses) from the sensor if there is subscriber to the corresponding topic.

Images, Stereo Data, Point Clouds

The proprietary CameraParam messages are sent for every image and contain information like the exposure time, gain and values of digital inputs and outputs at the time of image capture.

For color sensors, the following topics are additionally available:

If the connected rc_visard has an IO Control license, then the following topics are additionally provided for images where the GPIO out1 is either low or high. These topics only useful if out1_mode is set to the special mode ExposureAlternateActive.

For color sensors with an IO Control license, the following topics are additionally available:

Running multiple rc_visard's in one ros environment

For operating multiple rc_visard's in one ros environment, each ros node must be started in separate namespaces, e.g., my_visard. As a result, all frame_ids in all ros messages will be prefixed, e.g., to my_visard_world or my_visard_camera.

Services

The following service is offered to trigger stereo matching in SingleFrame mode. It returns an error if the depth_acquisition_mode is Continuous.

Diagnostics

The rc_genicam_driver uses the diagnostics_updater class from the ROS diagnostics stack to regularly publish a DiagnosticStatus Message.

The regular publishing rate can be set via the diagnostic_updater.period parameter and defaults to 1 second.

Currently two status are published:

Launching

Acknowledgements

This FTP (Focused Technical Project) has received funding from the European Union’s Horizon 2020 research and innovation programme under the project ROSIN with the grant agreement No 732287.

ROSIN: ROS-Industrial Quality-Assured Robot Software Components: http://rosin-project.eu

EU flag ROSIN logo