Skip to content

LiDAR Topics

The lidar topics are managed by the lidarpub service and handles interfacing with a connected lidar to produce lidar point clouds. The service can cluster the point cloud and remove the ground plane before clustering, and publishes the static transform from the base_link frame to the lidar frame on the tf_static topic.

  • Robosense E1R
  • Ouster OS1
  • DBSCAN and voxel clustering
  • IMU-guided ground plane filter

The lidar topics are published under the lidar namespace and offer the following sub-topics: lidar/points, lidar/clusters, and lidar/imu. The sensor type, the density of the lidar points, the frequency of updates, the field of view, and the clustering are configurable through the lidarpub service, see the LiDAR service configuration documentation for details. Topic names are relative to the device hostname namespace.

lidar/points

The /lidar/points topic publishes information about the lidar points using the PointCloud2 schema. The point cloud will have the fields x, y, z, and reflect.

Field Name Datatype Units Notes
x float32 m Represent XYZ location of the point
y float32 m Represent XYZ location of the point
z float32 m Represent XYZ location of the point
reflect uint8 Intensity of reflected LiDAR beam

The XYZ coordinate system follows the standard ROS convention of x forward, y left, z up. Note that the Ouster lidar frame is rotated 180 degrees from the base_link frame as its 0 degree point is at the rear connector, the transform published on tf_static accounts for the mounting.

Usage Link
Web UI LiDAR Page
Foxglove PointCloud2 Example
SDK LiDAR Points Example

lidar/clusters

The /lidar/clusters topic publishes the lidar clusters pointcloud using the PointCloud2 schema. The point cloud will have the fields x, y, z, cluster_id, and reflect.

Field Name Datatype Units Notes
x float32 m Represent XYZ location of the point
y float32 m Represent XYZ location of the point
z float32 m Represent XYZ location of the point
cluster_id uint16 0 means not clustered. Otherwise same cluster id means same cluster
reflect uint8 Intensity of reflected LiDAR beam

The XYZ coordinate system follows the standard ROS convention of x forward, y left, z up. Note that the Ouster lidar frame is rotated 180 degrees from the base_link frame as its 0 degree point is at the rear connector, the transform published on tf_static accounts for the mounting.

This topic is only published if the lidarpub service is configured with a clustering algorithm.

Usage Link
Web UI LiDAR Page
Foxglove PointCloud2 Example
SDK LiDAR Clusters Example

lidar/imu

The /lidar/imu topic publishes the inertial readings reported by the LiDAR sensor itself using the Imu schema. It is published for sensors which provide one. On the Robosense E1R the readings arrive on the device information packets. This is a separate sensor from the device IMU published on the imu topic and is expressed in the lidar frame.

Field Populated Notes
angular_velocity Yes Roll, pitch, and yaw rates from the sensor
linear_acceleration Yes Acceleration reported by the sensor
orientation No Published as the identity quaternion, the sensor does not report a fused orientation
orientation_covariance, angular_velocity_covariance, linear_acceleration_covariance No All three are left as zeros

The service uses these readings for the ground plane filter when it is enabled, so the topic is also useful for confirming the filter has usable input.