Skip to content

Class nebula::drivers::AngleCorrector

template <typename CorrectionDataT>

ClassList > nebula > drivers > AngleCorrector

Handles angle correction for given azimuth/channel combinations, as well as trigonometry lookup tables.

  • #include <angle_corrector.hpp>

Inherited by the following classes: nebula::drivers::AngleCorrectorCalibrationBased

Public Types

Type Name
typedef CorrectionDataT correction_data_t

Public Functions

Type Name
AngleCorrector (const std::shared_ptr< const RobosenseCalibrationConfiguration > & sensor_calibration)
virtual CorrectedAngleData get_corrected_angle_data (uint32_t block_azimuth, uint32_t channel_id) = 0
Get the corrected azimuth and elevation for a given block and channel, along with their sin/cos values.
virtual CorrectedAngleData get_corrected_angle_data (uint32_t block_azimuth, uint32_t channel_id) = 0
Get the corrected azimuth and elevation for a given block and channel, along with their sin/cos values.
virtual bool has_scanned (int current_azimuth, int last_azimuth) = 0
Returns true if the current azimuth lies in a different (new) scan compared to the last azimuth.
virtual bool is_inside_fov (uint32_t last_azimuth, uint32_t current_azimuth) = 0
virtual bool is_inside_overlap (uint32_t last_azimuth, uint32_t current_azimuth) = 0
virtual bool passed_emit_angle (uint32_t last_azimuth, uint32_t current_azimuth) = 0
virtual bool passed_timestamp_reset_angle (uint32_t last_azimuth, uint32_t current_azimuth) = 0

Protected Attributes

Type Name
const std::shared_ptr< const RobosenseCalibrationConfiguration > sensor_calibration_

Public Types Documentation

typedef correction_data_t

using nebula::drivers::AngleCorrector< CorrectionDataT >::correction_data_t =  CorrectionDataT;

Public Functions Documentation

function AngleCorrector

inline explicit nebula::drivers::AngleCorrector::AngleCorrector (
    const std::shared_ptr< const RobosenseCalibrationConfiguration > & sensor_calibration
) 

function get_corrected_angle_data [1/2]

Get the corrected azimuth and elevation for a given block and channel, along with their sin/cos values.

virtual CorrectedAngleData nebula::drivers::AngleCorrector::get_corrected_angle_data (
    uint32_t block_azimuth,
    uint32_t channel_id
) = 0

Parameters:

  • block_azimuth The block's azimuth (including optional fine azimuth), in the sensor's angle unit
  • channel_id The laser channel's id

Returns:

The corrected angles (azimuth, elevation) in radians and their sin/cos values


function get_corrected_angle_data [1/2]

Get the corrected azimuth and elevation for a given block and channel, along with their sin/cos values.

virtual CorrectedAngleData nebula::drivers::AngleCorrector::get_corrected_angle_data (
    uint32_t block_azimuth,
    uint32_t channel_id
) = 0

Parameters:

  • block_azimuth The block's azimuth (including optional fine azimuth), in the sensor's angle unit
  • channel_id The laser channel's id

Returns:

The corrected angles (azimuth, elevation) in radians and their sin/cos values


function has_scanned

Returns true if the current azimuth lies in a different (new) scan compared to the last azimuth.

virtual bool nebula::drivers::AngleCorrector::has_scanned (
    int current_azimuth,
    int last_azimuth
) = 0

Parameters:

  • current_azimuth The current azimuth value in the sensor's angle resolution
  • last_azimuth The last azimuth in the sensor's angle resolution

Returns:

true if the current azimuth is in a different scan than the last one, false otherwise


function is_inside_fov

virtual bool nebula::drivers::AngleCorrector::is_inside_fov (
    uint32_t last_azimuth,
    uint32_t current_azimuth
) = 0

function is_inside_overlap

virtual bool nebula::drivers::AngleCorrector::is_inside_overlap (
    uint32_t last_azimuth,
    uint32_t current_azimuth
) = 0

function passed_emit_angle

virtual bool nebula::drivers::AngleCorrector::passed_emit_angle (
    uint32_t last_azimuth,
    uint32_t current_azimuth
) = 0

function passed_timestamp_reset_angle

virtual bool nebula::drivers::AngleCorrector::passed_timestamp_reset_angle (
    uint32_t last_azimuth,
    uint32_t current_azimuth
) = 0

Protected Attributes Documentation

variable sensor_calibration_

const std::shared_ptr<const RobosenseCalibrationConfiguration> nebula::drivers::AngleCorrector< CorrectionDataT >::sensor_calibration_;


The documentation for this class was generated from the following file nebula_decoders/include/nebula_decoders/nebula_decoders_hesai/decoders/angle_corrector.hpp