Template Class HesaiSensor
Defined in File hesai_sensor.hpp
Class Documentation
-
template<typename PacketT, AngleCorrectionType AngleCorrection = AngleCorrectionType::CALIBRATION>
class HesaiSensor Base class for all sensor definitions.
- Template Parameters:
PacketT – The packet type of the sensor
Public Types
-
using angle_corrector_t = typename std::conditional<(AngleCorrection == AngleCorrectionType::CALIBRATION), AngleCorrectorCalibrationBased<PacketT::n_channels, PacketT::degree_subdivisions>, AngleCorrectorCorrectionBased<PacketT::n_channels, PacketT::degree_subdivisions>>::type
Public Functions
-
HesaiSensor() = default
-
virtual ~HesaiSensor() = default
-
virtual int get_packet_relative_point_time_offset(uint32_t block_id, uint32_t channel_id, const PacketT &packet) = 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.
- Parameters:
block_id – The point’s block id
channel_id – The point’s channel id
packet – The packet
- Returns:
The relative time offset in nanoseconds
-
inline int get_earliest_point_time_offset_for_block(uint32_t start_block_id, const PacketT &packet)
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.
- Parameters:
start_block_id – The index of the block in and after which to consider points
packet – The packet
- Returns:
The lowest point time offset (relative to the packet timestamp) of any point in or after the start block, in nanoseconds
-
inline virtual ReturnType get_return_type(hesai_packet::return_mode::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.
For duplicate points, the return type is reported as ReturnType::IDENTICAL for all identical points. For DUAL_LAST_STRONGEST and DUAL_FIRST_STRONGEST, if the last/first point is also the strongest, it will be returned as ReturnType::LAST_STRONGEST / ReturnType::FIRST_STRONGEST respectively, with the second point being reported as ReturnType::SECONDSTRONGEST.
- 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
-
inline virtual point_filters::DitherTransform get_dither_transform() const
-
inline virtual point_filters::BlockageState get_blockage_type(uint16_t) const