velodyne_lidar
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
velodyne_lidar::VelodyneDataDriver Class Referenceabstract

#include <velodyneDataDriver.hpp>

Inheritance diagram for velodyne_lidar::VelodyneDataDriver:
velodyne_lidar::VelodyneHDL32EDriver velodyne_lidar::VelodyneVLP16Driver

Public Member Functions

 VelodyneDataDriver (SensorType sensor_type, double broadcast_frequency)
 
virtual ~VelodyneDataDriver ()
 
bool readNewPacket ()
 
bool isScanComplete ()
 
virtual bool convertScanToSample (base::samples::DepthMap &sample, bool copy_remission=true)=0
 
void clearCurrentScan ()
 
void setScanSize (double angular_size)
 
double getScanSize ()
 
int64_t getPacketLostCount ()
 
int64_t getPacketReceivedCount ()
 
virtual double getBroadcastFrequency ()=0
 
void print_packet (velodyne_data_packet_t &)
 

Protected Member Functions

virtual int extractPacket (uint8_t const *buffer, size_t buffer_size) const
 
void addNewPacket (const StampedDataPacket &packet)
 

Protected Attributes

SensorType sensor_type
 
uint64_t target_batch_size
 
uint64_t current_batch_size
 
uint16_t last_rotational_pos
 
uint32_t last_packet_internal_timestamp
 
int64_t packets_idx
 
int64_t packets_lost
 
int64_t expected_packet_period
 
aggregator::TimestampEstimator * timestamp_estimator
 
std::vector< StampedDataPacket > packets
 

Constructor & Destructor Documentation

◆ VelodyneDataDriver()

VelodyneDataDriver::VelodyneDataDriver ( SensorType  sensor_type,
double  broadcast_frequency 
)

◆ ~VelodyneDataDriver()

VelodyneDataDriver::~VelodyneDataDriver ( )
virtual

Member Function Documentation

◆ addNewPacket()

void VelodyneDataDriver::addNewPacket ( const StampedDataPacket &  packet)
protected

Adds a new stamped packet to the upper or lower head list.

◆ clearCurrentScan()

void VelodyneDataDriver::clearCurrentScan ( )

Clears all collected packets.

◆ convertScanToSample()

virtual bool velodyne_lidar::VelodyneDataDriver::convertScanToSample ( base::samples::DepthMap &  sample,
bool  copy_remission = true 
)
pure virtual

Converts a full scan to a DepthMap sample. Also clears all collected packets of the corresponding laser head.

Returns
true on success, false if nothing to convert.

Implemented in velodyne_lidar::VelodyneHDL32EDriver, and velodyne_lidar::VelodyneVLP16Driver.

◆ extractPacket()

int VelodyneDataDriver::extractPacket ( uint8_t const *  buffer,
size_t  buffer_size 
) const
protectedvirtual

Helper method from Driver to extract the desired message.

◆ getBroadcastFrequency()

virtual double velodyne_lidar::VelodyneDataDriver::getBroadcastFrequency ( )
pure virtual

Return frequency of the arriving data samples

Implemented in velodyne_lidar::VelodyneHDL32EDriver, and velodyne_lidar::VelodyneVLP16Driver.

◆ getPacketLostCount()

int64_t VelodyneDataDriver::getPacketLostCount ( )

Returns the count of lost packets.

◆ getPacketReceivedCount()

int64_t VelodyneDataDriver::getPacketReceivedCount ( )

Returns the count of received packets.

◆ getScanSize()

double VelodyneDataDriver::getScanSize ( )

Returns the target scan size in radian.

◆ isScanComplete()

bool VelodyneDataDriver::isScanComplete ( )
Returns
true if a full scan is complete, according to the target scan size.

◆ print_packet()

void VelodyneDataDriver::print_packet ( velodyne_data_packet_t &  packet)

Prints the packet

◆ readNewPacket()

bool VelodyneDataDriver::readNewPacket ( )

Read the next packet in the buffer.

Returns
true on success, false if the buffer is empty.
Exceptions
std::runtime_erroron i/o failures.

◆ setScanSize()

void VelodyneDataDriver::setScanSize ( double  angular_size)

Set the target scan size in radian.

Member Data Documentation

◆ current_batch_size

uint64_t velodyne_lidar::VelodyneDataDriver::current_batch_size
protected

◆ expected_packet_period

int64_t velodyne_lidar::VelodyneDataDriver::expected_packet_period
protected

◆ last_packet_internal_timestamp

uint32_t velodyne_lidar::VelodyneDataDriver::last_packet_internal_timestamp
protected

◆ last_rotational_pos

uint16_t velodyne_lidar::VelodyneDataDriver::last_rotational_pos
protected

◆ packets

std::vector<StampedDataPacket> velodyne_lidar::VelodyneDataDriver::packets
protected

◆ packets_idx

int64_t velodyne_lidar::VelodyneDataDriver::packets_idx
protected

◆ packets_lost

int64_t velodyne_lidar::VelodyneDataDriver::packets_lost
protected

◆ sensor_type

SensorType velodyne_lidar::VelodyneDataDriver::sensor_type
protected

◆ target_batch_size

uint64_t velodyne_lidar::VelodyneDataDriver::target_batch_size
protected

◆ timestamp_estimator

aggregator::TimestampEstimator* velodyne_lidar::VelodyneDataDriver::timestamp_estimator
protected

The documentation for this class was generated from the following files: