[Documentation] [TitleIndex] [WordIndex

Official ROS driver for Roboception rc_visard 3D sensor.

See http://rc-visard.com and http://doc.rc-visard.com for more details.

This package is in maintenance mode. Unless you need the dynamics functionality, please use rc_genicam_driver which also supports the rc_cube.


The rc_visard is the world’s first 3D sensor that allows robots to perceive their environment in 3D and localize themselves in space.

rc_visard (65 mm baseline, color) rc_visard (160 mm baseline, color)

The rc_visard_driver is the official ROS driver for the rc_visard which provides ROS parameters (configuration), ROS services (control of rc_visards dynamic module) and ROS topics (sensor data: Images, Stereo Data, Point Clouds, Dynamic State i.e. poses and IMU data, TF).



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

Dynamic-reconfigure Parameters

These parameters can be changed during runtime via dynamic reconfigure:

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

Provided Topics

The following topics are provided. The nodelet 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:

Dynamic State (i.e. poses, IMU data, etc.)

These topics deliver the rc_visard's estimated dynamic state such as its position, orientation, and velocity. For these topics to work properly, the rc_visard's dynamics module must be turned on (see respective service calls or startup-parameters).

This topic delivers raw measurements from the on-board IMU sensor:


If the parameter enable_tf is set to true, the node subscribes to the rc_visard's pose stream (same data published on /pose topic) and publishes them on tf.

Relevant Coordinate Frames

The following coordinate frames are relevant for interpreting the data provided by the rc_visard:

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.


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

The following services are offered to start, stop, and restart the rc_visard's dynamic module (which needs to be started for working dynamic-state estimates).

The trajectory constructed and stored by the rc_slam node can be retrieved by

The onboard map of the rc_slam node can be saved on the rc_visard for loading it after a SLAM restart or power cycle:

The onboard rc_slam node can be "reset" (clears the internal state of the SLAM component, including the trajectory) to free the memory with


The rc_visard_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_period parameter and defaults to 1 second.

Currently two status are published:

The published status values are connection_loss_total, incomplete_buffers_total, image_receive_timeouts_total, and current_reconnect_trial. If not Disconnected, additionally the current ip_address and gev_packet_size are published.


rosrun rc_visard_driver rc_visard_driver _device:=:02912345 _enable_tf:=True _autostart_dynamics:=True _autostop_dynamics:=True

ROS_NAMESPACE=my_visard rosrun nodelet nodelet standalone rc_visard_driver _device:=:02912345

Note that in this setup all frame_ids in all ros messages (including tf-messages) will be prefixed with my_visard, e.g., the frame_id of the published camera images will be my_visard_camera, the frame_id of the poses will be my_visard_world, and the frame_id of the Imu messages will be my_visard_imu.

Report a Bug

Use GitHub to report bugs or submit feature requests. [View active issues]



Supported by ROSIN - ROS-Industrial Quality-Assured Robot Software Components.
More information: rosin-project.eu

EU Flag

This project has received funding from the European Union’s Horizon 2020
research and innovation programme under grant agreement No. 732287.

2024-07-20 13:25