Skip to content

Class nebula::drivers::RobosenseSensor

template <typename PacketT, typename InfoPacketT>

ClassList > nebula > drivers > RobosenseSensor

Base class for all sensor definitions. More...

  • #include <robosense_sensor.hpp>

Public Types

Type Name
typedef class AngleCorrectorCalibrationBased< PacketT::N_CHANNELS, PacketT::DEGREE_SUBDIVISIONS > angle_corrector_t
typedef InfoPacketT info_t
typedef PacketT packet_t

Public Functions

Type Name
RobosenseSensor () = default
int getEarliestPointTimeOffsetForBlock (uint32_t start_block_id, const std::shared_ptr< const RobosenseSensorConfiguration > & sensor_configuration)
For a given start block index, find the earliest (lowest) relative time offset of any point in the packet in or after the start block.
virtual int getPacketRelativePointTimeOffset (uint32_t block_id, uint32_t channel_id, const std::shared_ptr< const RobosenseSensorConfiguration > & sensor_configuration) = 0
Computes the exact relative time between the timestamp of the given packet and the one of the point identified by the given block and channel, in nanoseconds.
virtual ReturnMode getReturnMode (const info_t & info_packet) = 0
virtual ReturnType getReturnType (ReturnMode return_mode, unsigned int return_idx, const std::vector< const typename PacketT::body_t::block_t::unit_t * > & return_units)
Get the return type of the point given by return_idx.
virtual RobosenseCalibrationConfiguration getSensorCalibration (const info_t & info_packet) = 0
virtual std::map< std::string, std::string > getSensorInfo (const info_t & info_packet) = 0
virtual bool getSyncStatus (const info_t & info_packet) = 0
virtual ~RobosenseSensor () = default

Public Static Functions

Type Name
bool is_duplicate (uint32_t return_idx, const std::vector< const typename PacketT::body_t::block_t::unit_t * > & return_units)
Whether the unit given by return_idx is a duplicate of any other unit in return_units.

Detailed Description

Template parameters:

  • PacketT The packet type of the sensor

Public Types Documentation

typedef angle_corrector_t

typedef class AngleCorrectorCalibrationBased< PacketT::N_CHANNELS, PacketT::DEGREE_SUBDIVISIONS > nebula::drivers::RobosenseSensor< PacketT, InfoPacketT >::angle_corrector_t;

typedef info_t

typedef InfoPacketT nebula::drivers::RobosenseSensor< PacketT, InfoPacketT >::info_t;

typedef packet_t

typedef PacketT nebula::drivers::RobosenseSensor< PacketT, InfoPacketT >::packet_t;

Public Functions Documentation

function RobosenseSensor

nebula::drivers::RobosenseSensor::RobosenseSensor () = default

function getEarliestPointTimeOffsetForBlock

For a given start block index, find the earliest (lowest) relative time offset of any point in the packet in or after the start block.

inline int nebula::drivers::RobosenseSensor::getEarliestPointTimeOffsetForBlock (
    uint32_t start_block_id,
    const std::shared_ptr< const RobosenseSensorConfiguration > & sensor_configuration
) 

Parameters:

  • start_block_id The index of the block in and after which to consider points
  • sensor_configuration The sensor configuration

Returns:

The lowest point time offset (relative to the packet timestamp) of any point in or after the start block, in nanoseconds


function getPacketRelativePointTimeOffset

Computes the exact relative time between the timestamp of the given packet and the one of the point identified by the given block and channel, in nanoseconds.

virtual int nebula::drivers::RobosenseSensor::getPacketRelativePointTimeOffset (
    uint32_t block_id,
    uint32_t channel_id,
    const std::shared_ptr< const RobosenseSensorConfiguration > & sensor_configuration
) = 0

Parameters:

  • block_id The point's block id
  • channel_id The point's channel id
  • sensor_configuration The sensor configuration

Returns:

The relative time offset in nanoseconds


function getReturnMode

virtual ReturnMode nebula::drivers::RobosenseSensor::getReturnMode (
    const info_t & info_packet
) = 0

function getReturnType

Get the return type of the point given by return_idx.

inline virtual ReturnType nebula::drivers::RobosenseSensor::getReturnType (
    ReturnMode return_mode,
    unsigned int return_idx,
    const std::vector< const typename PacketT::body_t::block_t::unit_t * > & return_units
) 

Parameters:

  • return_mode The sensor's currently active return mode
  • return_idx The block index of the point within the group of blocks that make up the return group (e.g. either 0 or 1 for dual return)
  • return_units The units corresponding to all the returns in the group. These are usually from the same column across adjascent blocks.

Returns:

The return type of the point


function getSensorCalibration

virtual RobosenseCalibrationConfiguration nebula::drivers::RobosenseSensor::getSensorCalibration (
    const info_t & info_packet
) = 0

function getSensorInfo

virtual std::map< std::string, std::string > nebula::drivers::RobosenseSensor::getSensorInfo (
    const info_t & info_packet
) = 0

function getSyncStatus

virtual bool nebula::drivers::RobosenseSensor::getSyncStatus (
    const info_t & info_packet
) = 0

function ~RobosenseSensor

virtual nebula::drivers::RobosenseSensor::~RobosenseSensor () = default

Public Static Functions Documentation

function is_duplicate

Whether the unit given by return_idx is a duplicate of any other unit in return_units.

static inline bool nebula::drivers::RobosenseSensor::is_duplicate (
    uint32_t return_idx,
    const std::vector< const typename PacketT::body_t::block_t::unit_t * > & return_units
) 

Parameters:

  • return_idx The unit's index in the return_units vector
  • return_units The vector of all the units corresponding to the same return group (i.e. length 2 for dual-return with both units having the same channel but coming from different blocks)

Returns:

true if the unit is identical to any other one in return_units, false otherwise



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