You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.5 KiB

See also: device

Stream Configurations


Infrared

When only a single infrared stream is available, only a single topic is expected.

When multiple streams are available (Left/Right), two topics will be available with each providing the same format and encoding. This is true even if the sensor generates an interlaced format: it is up the server to separate into two separate streams, each distinct.

Format

See the ROS2 Image format.

Encoding

This should be set to mono8, corresponding to Y8 in librealsense. No interlaced formats.

Quality of Service

  • Reliability: BEST_EFFORT
  • Durability: VOLATILE

Motion

Otherwise know as IMU (Inertial Measurement Unit), this is a combined accelerometer and gyroscope stream.

High frequency is expected for motion messages. Therefore:

Topics

Rather than separate topics for each of the Accel and Gyro streams, a single topic will carry both, combined.

Format

See the ROS2 Imu format.

Units

Following the ROS2 standard, acceleration should be in m/s^2. Rotational velocity should be in rad/sec.

Metadata

No metadata is expected for motion topics.

Timestamps

The timestamp will always refer to the Gyro sample time: even if both Accel and Gyro values are generated independently with different timestamps!

Any Accel values, if present, will either reflect the last values received (so may not reflect the values at that specific timestamp) or interpolated values to align with the Gyro. The latter is preferable.

Motion Correction

The Gyro/Accel values sent as part of the format may be the raw values output by the sensor, or values that are post-calibration (with intrinsic bias and scaling corrections applied).

When raw values are output, it is up to the user to apply any intrinsic correction. Usually this would be done with librealsense if calibration of the accelerometer or gyroscope was done (see here). By default, the calibration matrices are identity matrices, i.e. preserving the raw sensor values.

It is recommended that the server output values post-calibration, such that librealsense is not needed. An option ("Enable Motion Correction" in librealsense) can be used to control this.

Quality of Service

  • Reliability: BEST_EFFORT
  • Durability: VOLATILE