sick_safevisionary_driver

Provides an interface to read the sensor output of a SICK Safevisionary sensor in ROS 2

README

Sick Safevisionary Driver

This is the official ROS2 driver for the Sick safeVisionary2 cameras. See the top-level readme for getting started.

Lifecycle states

This driver implements a thin ROS2 wrapper around the sick_safevisionary_base library in form of a lifecycle node. In contrast to conventional ROS2 nodes, lifecycle nodes give us more control about the driver’s individual states. This is handy e.g. when performing a clean reset at runtime. You’ll find more information on the individual states and state transitions in this design article.

This driver’s behavior is roughly as follows:

State

Behavior

Unconfigured

No topics are advertised and previously advertised topics are removed.

Inactive

The driver establishes a UDP data connection to the camera and processes sensor data without publishing.

Active

The driver continuously publishes all camera data with a consistent time stamp across all topics.

Finalized

The driver has been shutdown and all resources have been cleaned up. All previously advertised topics are removed.

Managing the lifecycle

ROS2 has a command line interface to trigger state transitions. Here are the commands to get the /sick_safevisionary node through its primary states:

ros2 lifecycle set /sick_safevisionary configure
ros2 lifecycle set /sick_safevisionary activate
ros2 lifecycle set /sick_safevisionary deactivate
ros2 lifecycle set /sick_safevisionary shutdown

Also see this example from the integration tests how to do that in Python.