10 #ifndef CVelodyneScanner_H 11 #define CVelodyneScanner_H 181 void loadConfig_sensorSpecific(
223 bool loadCalibrationFile(
const std::string & velodyne_xml_calib_file_path );
229 bool setLidarReturnType(return_type_t ret_type);
235 bool setLidarRPM(
int rpm);
241 bool setLidarOnOff(
bool on);
252 bool getNextObservation(
253 mrpt::obs::CObservationVelodyneScanPtr & outScan,
254 mrpt::obs::CObservationGPSPtr & outGPS
264 virtual void initialize();
284 #ifdef MRPT_OS_WINDOWS 285 # if MRPT_WORD_SIZE==64 299 bool internal_read_PCAP_packet(
311 bool internal_send_http_post(
const std::string &post_data);
A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...
uint64_t TTimeStamp
A system independent time type, it holds the the number of 100-nanosecond intervals since January 1...
std::map< model_t, TModelProperties > model_properties_list_t
Velodyne calibration data, for usage in mrpt::obs::CObservationVelodyneScan.
hwdrivers::CVelodyneScanner::model_t enum_t
static void fill(bimap< enum_t, std::string > &m_map)
hwdrivers::CVelodyneScanner::return_type_t enum_t
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. Change it if required.
void setPosPacketsMinPeriod(double period_seconds)
Set the minimum period between the generation of mrpt::obs::CObservationGPS observations from Velodyn...
void setPCAPInputFile(const std::string &pcap_file)
Enables reading from a PCAP file instead of live UDP packet listening.
int platform_socket_t
Handles for the UDP sockets, or INVALID_SOCKET (-1)
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 m_pcap_read_once
Default: false.
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.
Only specializations of this class are defined for each enum type of interest.
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
This class allows loading and storing values and vectors of different types from a configuration text...
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"...
void setPCAPOutputFile(const std::string &out_pcap_file)
Enables dumping to a PCAP file in parallel to returning regular MRPT objects.
const std::string & getPCAPOutputFile() const
const std::string & getPCAPInputFile() const
mrpt::obs::VelodyneCalibration m_velodyne_calib
Device calibration file (supplied by vendor in an XML file)
double getPosPacketsMinPeriod() const
double m_pos_packets_min_period
Default: 0.5 seconds.
return_type_t m_lidar_return
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.
A bidirectional version of std::map, declared as bimap<KEY,VALUE> and which actually contains two std...
double getPosPacketsTimingTimeout() const
bool m_pcap_verbose
Default: true Output PCAP Info msgs.
void setCalibration(const mrpt::obs::VelodyneCalibration &calib)
GLsizei const GLchar ** string
std::string m_pcap_input_file
Default: "" (do not operate from an offline file)
Payload of one POSITION packet.
#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*"
unsigned __int64 uint64_t
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.
static void fill(bimap< enum_t, std::string > &m_map)
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. Change it if required.
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)
void insert(const KEY &k, const VALUE &v)
Insert a new pair KEY<->VALUE in the bi-map.
Access to default sets of parameters for Velodyne LIDARs.
void * m_pcap_dumper
opaque ptr: "pcap_dumper_t *"
const mrpt::obs::VelodyneCalibration & getCalibration() const
std::string m_device_ip
Default: "" (no IP-based filtering)
mrpt::obs::CObservationVelodyneScanPtr m_rx_scan
In progress RX scan.
unsigned __int32 uint32_t
return_type_t
LIDAR return type.
mrpt::poses::CPose3D m_sensorPose
mrpt::system::TTimeStamp m_last_gps_rmc_age
void setDeviceIP(const std::string &ip)
UDP packets from other IPs will be ignored.
model_t m_model
Default: "VLP16".
mrpt::obs::gnss::Message_NMEA_RMC m_last_gps_rmc