253         const std::string& section) 
override;
   404 #if MRPT_WORD_SIZE == 64   418         const size_t expected_packet_size,
   419         const std::string& filter_only_from_IP);
   445 using namespace 
mrpt::hwdrivers;
 A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...
 
Velodyne calibration data, for usage in mrpt::obs::CObservationVelodyneScan. 
 
A C++ interface to Velodyne laser scanners (HDL-64, HDL-32, VLP-16), working on Linux and Windows...
 
static short int VELODYNE_POSITION_UDP_PORT
Default: 8308. 
 
void setPosPacketsMinPeriod(double period_seconds)
Set the minimum period between the generation of mrpt::obs::CObservationGPS observations from Velodyn...
 
std::map< model_t, TModelProperties > model_properties_list_t
 
void setPCAPInputFile(const std::string &pcap_file)
Enables reading from a PCAP file instead of live UDP packet listening. 
 
platform_socket_t m_hPositionSock
 
void setPCAPVerbosity(const bool verbose)
Enables/disables PCAP info messages to console (default: true) 
 
const std::string & getDeviceIP() const
 
bool getNextObservation(mrpt::obs::CObservationVelodyneScan::Ptr &outScan, mrpt::obs::CObservationGPS::Ptr &outGPS)
Polls the UDP port for incoming data packets. 
 
bool internal_read_PCAP_packet(mrpt::system::TTimeStamp &data_pkt_time, uint8_t *out_data_buffer, mrpt::system::TTimeStamp &pos_pkt_time, uint8_t *out_pos_buffer)
 
bool m_return_frames
Default: true Output whole frames and not data packets. 
 
static std::string getListKnownModels()
Return human-readable string: "`VLP16`,`XXX`,...". 
 
void close()
Close the UDP sockets set-up in initialize(). 
 
bool m_pcap_read_once
Default: false. 
 
Contains classes for various device interfaces. 
 
void * m_pcap_bpf_program
opaque ptr: bpf_program* 
 
void setModelName(const model_t model)
See supported model names in the general discussion docs for mrpt::hwdrivers::CVelodyneScanner. 
 
model_t
LIDAR model types. 
 
bool m_pcap_read_fast
(Default: false) If false, will use m_pcap_read_full_scan_delay_ms 
 
mrpt::system::TTimeStamp m_last_pos_packet_timestamp
 
double m_pcap_repeat_delay
Default: 0 (in seconds) 
 
void setPosPacketsTimingTimeout(double timeout)
Set how long to wait, after loss of GPS signal, to report timestamps as "not based on satellite time"...
 
mrpt::obs::VelodyneCalibration m_velodyne_calib
Device calibration file (supplied by vendor in an XML file) 
 
void setPCAPOutputFile(const std::string &out_pcap_file)
Enables dumping to a PCAP file in parallel to returning regular MRPT objects. 
 
mrpt::Clock::time_point TTimeStamp
A system independent time type, it holds the the number of 100-nanosecond intervals since January 1...
 
const std::string & getPCAPOutputFile() const
 
const std::string & getPCAPInputFile() const
 
This class allows loading and storing values and vectors of different types from a configuration text...
 
const mrpt::obs::VelodyneCalibration & getCalibration() const
 
double getPosPacketsMinPeriod() const
 
double m_pos_packets_min_period
Default: 0.5 seconds. 
 
void loadConfig_sensorSpecific(const mrpt::config::CConfigFileBase &configSource, const std::string §ion) override
See the class documentation at the top for expected parameters. 
 
return_type_t m_lidar_return
 
bool setLidarOnOff(bool on)
Switches the LASER on/off (saves energy when not measuring) (via HTTP post interface). 
 
bool receivePackets(mrpt::system::TTimeStamp &data_pkt_timestamp, mrpt::obs::CObservationVelodyneScan::TVelodyneRawPacket &out_data_pkt, mrpt::system::TTimeStamp &pos_pkt_timestamp, mrpt::obs::CObservationVelodyneScan::TVelodynePositionPacket &out_pos_pkt)
Users normally would prefer calling getNextObservation() instead. 
 
unsigned int m_pcap_read_count
number of pkts read from the file so far (for debugging) 
 
std::string m_pcap_output_file
Default: "" (do not dump to an offline file) 
 
Hard-wired properties of LIDARs depending on the model. 
 
double getPosPacketsTimingTimeout() const
 
bool m_pcap_verbose
Default: true Output PCAP Info msgs. 
 
void setCalibration(const mrpt::obs::VelodyneCalibration &calib)
 
#define MRPT_ENUM_TYPE_END()
 
platform_socket_t m_hDataSock
 
bool setLidarReturnType(return_type_t ret_type)
Changes among STRONGEST, LAST, DUAL return types (via HTTP post interface). 
 
std::string m_pcap_input_file
Default: "" (do not operate from an offline file) 
 
MRPT_FILL_ENUM_MEMBER(CVelodyneScanner, VLP16)
 
void setFramePublishing(bool on)
Switches whole frame (points in a single revolution) on/off publication to data packet publication...
 
Payload of one POSITION packet. 
 
void initialize() override
Tries to initialize the sensor driver, after setting all the parameters with a call to loadConfig...
 
#define DEFINE_GENERIC_SENSOR(class_name)
This declaration must be inserted in all CGenericSensor classes definition, within the class declarat...
 
void * m_pcap_out
opaque ptr: "pcap_t*" 
 
bool internal_send_http_post(const std::string &post_data)
 
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. 
 
model_t getModelName() const
 
double m_pos_packets_timing_timeout
Default: 30 seconds. 
 
A class used to store a 3D pose (a 3D translation + a rotation in 3D). 
 
One unit of data from the scanner (the payload of one UDP DATA packet) 
 
bool getPCAPInputFileReadOnce() const
 
static short int VELODYNE_DATA_UDP_PORT
Default: 2368. 
 
double m_pcap_read_full_scan_delay_ms
(Default:100 ms) delay after each full scan read from a PCAP log 
 
void * m_pcap
opaque ptr: "pcap_t*" 
 
void setPCAPInputFileReadOnce(bool read_once)
 
uint32_t platform_socket_t
Handles for the UDP sockets, or INVALID_SOCKET (-1) 
 
Access to default sets of parameters for Velodyne LIDARs. 
 
void * m_pcap_dumper
opaque ptr: "pcap_dumper_t *" 
 
void doProcess() override
This method will be invoked at a minimum rate of "process_rate" (Hz) 
 
std::string m_device_ip
Default: "" (no IP-based filtering) 
 
#define MRPT_ENUM_TYPE_BEGIN(_ENUM_TYPE_WITH_NS)
 
bool loadCalibrationFile(const std::string &velodyne_xml_calib_file_path)
Returns false on error. 
 
return_type_t
LIDAR return type. 
 
mrpt::poses::CPose3D m_sensorPose
 
mrpt::system::TTimeStamp m_last_gps_rmc_age
 
mrpt::obs::CObservationVelodyneScan::Ptr m_rx_scan
In progress RX scan. 
 
void setDeviceIP(const std::string &ip)
UDP packets from other IPs will be ignored. 
 
static mrpt::system::TTimeStamp internal_receive_UDP_packet(platform_socket_t hSocket, uint8_t *out_buffer, const size_t expected_packet_size, const std::string &filter_only_from_IP)
 
~CVelodyneScanner() override
 
model_t m_model
Default: "VLP16". 
 
mrpt::obs::gnss::Message_NMEA_RMC m_last_gps_rmc
 
bool setLidarRPM(int rpm)
Changes Lidar RPM (valid range: 300-600) (via HTTP post interface).