Skip to content

ouster-lidar/lidar-msgs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

lidar_msgs

ROS 2 message definitions for structured lidar frames. The layout follows the spirit of the community LidarScan / LidarInfo proposal, adapted here for a planar (non-interleaved) channel layout in the scan buffer.

This package is a thin ament_cmake interface package: it only declares .msg files and generates C++, Python, and other language bindings via rosidl.

Purpose

  • LidarScan — One time-synchronized structured frame: a 2D grid (height × width) of pixels, each pixel described by one or more named channels (range, reflectivity, near IR, etc.). All channel samples live in a single uint8[] data blob; each channel is a contiguous block (see LidarChannel).
  • LidarInfo — Latched Lidar metadata message paired with scans: per-row / per-column angles (or uniform FOV fallbacks), optional per-beam azimuth offsets and timing fields, and range scaling so metres are raw * range_multiplier + range_offset.
  • LidarChannel — Describes one channel inside LidarScan.data: name, byte offset, datatype (same numeric IDs as sensor_msgs/PointField), and count (elements per pixel).

Together, LidarInfo + LidarScan are enough for drivers or libraries (for example lidar-conversions) to project range into Cartesian XYZ or to decode other fields without vendor-specific message types.

Package contents

Path Role
msg/LidarScan.msg Frame header, grid size, channel table, raw data[], endianness flag.
msg/LidarChannel.msg Per-channel metadata and indexing formula for planar layout.
msg/LidarInfo.msg Geometry, optional explicit angle tables, range calibration.
CMakeLists.txt rosidl_generate_interfaces for the three messages; depends on std_msgs.
package.xml Package manifest; member of rosidl_interface_packages.

Planar layout (summary)

Channels are not interleaved per pixel. Each channel occupies one contiguous byte range in LidarScan.data, starting at LidarChannel.offset, with samples stored row-major over (height, width) and an inner dimension of length count. See the comments in LidarChannel.msg and LidarScan.msg for the exact indexing formula.

About

A structured LidarScan message for ROS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages