Class GroundSegEngine

Class Documentation

class GroundSegEngine

Ground segmentation engine for classifying ground points in lidar frames.

This class provides an interface for running ground segmentation on FrameSet data, annotating each frame with a per-pixel ground mask.

Coordinate frame selection:

  • If any valid column pose in a frame is non-identity, the engine treats those poses as SLAM poses and segments in that global frame.

  • Otherwise, the engine uses sensor extrinsics and frame-local column poses.

The engine does not compute IMU gravity alignment internally. If gravity alignment is required, plumb the frame set source first and write the resulting transform into sensor extrinsics before calling update().

Public Functions

virtual ~GroundSegEngine() = default
virtual void update(ouster::sdk::core::FrameSet &frames) = 0

Run ground segmentation on a FrameSet, annotating each frame with a “GROUND” field (uint8: 1 = ground, 0 = non-ground).

Example:

// If IMU gravity alignment is desired, apply it before segmentation:
// sensor_info.sensor_to_body = T_plumb * sensor_info.sensor_to_body;

auto ground = ouster::sdk::algorithm::GroundSegEngine::create();
ground->update(frames);

Parameters:

frames[inout] FrameSet to annotate in place.

Public Static Functions

static std::unique_ptr<GroundSegEngine> create(const GroundSegConfig &config = {})

Create a GroundSegEngine with the given configuration.

Parameters:

config[in] Configuration parameters for the engine.

Returns:

A unique pointer to the created GroundSegEngine instance.