pcl::HDLGrabber Class Reference
Module io

Grabber for the Velodyne High-Definition-Laser (HDL) More...

`#include <pcl/io/hdl_grabber.h>`

Inheritance diagram for pcl::HDLGrabber:

## Classes

struct | HDLDataPacket
struct | HDLFiringData
struct | HDLLaserCorrection
struct | HDLLaserReturn

## Public Types

typedef void() | sig_cb_velodyne_hdl_scan_point_cloud_xyz(const boost::shared_ptr< const pcl::PointCloud< pcl::PointXYZ > > &, float, float)
| Signal used for a single sector Represents 1 corrected packet from the HDL Velodyne. More...
typedef void() | sig_cb_velodyne_hdl_scan_point_cloud_xyzrgb(const boost::shared_ptr< const pcl::PointCloud< pcl::PointXYZRGBA > > &, float, float)
| Signal used for a single sector Represents 1 corrected packet from the HDL Velodyne. More...
typedef void() | sig_cb_velodyne_hdl_scan_point_cloud_xyzi(const boost::shared_ptr< const pcl::PointCloud< pcl::PointXYZI > > &, float startAngle, float)
| Signal used for a single sector Represents 1 corrected packet from the HDL Velodyne with the returned intensity. More...
typedef void() | sig_cb_velodyne_hdl_sweep_point_cloud_xyz(const boost::shared_ptr< const pcl::PointCloud< pcl::PointXYZ > > &)
| Signal used for a 360 degree sweep Represents multiple corrected packets from the HDL Velodyne This signal is sent when the Velodyne passes angle "0". More...
typedef void() | sig_cb_velodyne_hdl_sweep_point_cloud_xyzi(const boost::shared_ptr< const pcl::PointCloud< pcl::PointXYZI > > &)
| Signal used for a 360 degree sweep Represents multiple corrected packets from the HDL Velodyne with the returned intensity This signal is sent when the Velodyne passes angle "0". More...
typedef void() | sig_cb_velodyne_hdl_sweep_point_cloud_xyzrgb(const boost::shared_ptr< const pcl::PointCloud< pcl::PointXYZRGBA > > &)
| Signal used for a 360 degree sweep Represents multiple corrected packets from the HDL Velodyne This signal is sent when the Velodyne passes angle "0". More...

## Public Member Functions

| HDLGrabber (const std::string &correctionsFile="", const std::string &pcapFile="")
| Constructor taking an optional path to an HDL corrections file. More...
| HDLGrabber (const boost::asio::ip::address &ipAddress, const unsigned short port, const std::string &correctionsFile="")
| Constructor taking a pecified IP/port and an optional path to an HDL corrections file. More...
virtual | ~HDLGrabber () throw ()
| virtual Destructor inherited from the Grabber interface. More...
virtual void | start ()
| Starts processing the Velodyne packets, either from the network or PCAP file. More...
virtual void | stop ()
| Stops processing the Velodyne packets, either from the network or PCAP file. More...
virtual std::string | getName () const
| Obtains the name of this I/O Grabber. More...
virtual bool | isRunning () const
| Check if the grabber is still running. More...
virtual float | getFramesPerSecond () const
| Returns the number of frames per second. More...
void | filterPackets (const boost::asio::ip::address &ipAddress, const unsigned short port=443)
| Allows one to filter packets based on the SOURCE IP address and PORT This can be used, for instance, if multiple HDL LIDARs are on the same network. More...
void | setLaserColorRGB (const pcl::RGB &color, unsigned int laserNumber)
| Allows one to customize the colors used for each of the lasers. More...
void | setMinimumDistanceThreshold (float &minThreshold)
| Any returns from the HDL with a distance less than this are discarded. More...
void | setMaximumDistanceThreshold (float &maxThreshold)
| Any returns from the HDL with a distance greater than this are discarded. More...
float | getMinimumDistanceThreshold ()
| Returns the current minimum distance threshold, in meters. More...
float | getMaximumDistanceThreshold ()
| Returns the current maximum distance threshold, in meters. More...
Public Member Functions inherited from pcl::Grabber
| Grabber ()
| Constructor. More...
virtual | ~Grabber () throw ()
| virtual desctructor. More...
template<typename T >
boost::signals2::connection | registerCallback (const boost::function< T > &callback)
| registers a callback function/method to a signal with the corresponding signature More...
template<typename T >
bool | providesCallback () const
| indicates whether a signal with given parameter-type exists or not More...

## Protected Types

enum | HDLBlock { BLOCK_0_TO_31 = 0xeeff, BLOCK_32_TO_63 = 0xddff }
typedef struct pcl::HDLGrabber::HDLLaserReturn | HDLLaserReturn

## Protected Member Functions

void | fireCurrentSweep ()
void | fireCurrentScan (const unsigned short startAngle, const unsigned short endAngle)
void | computeXYZI (pcl::PointXYZI &pointXYZI, int azimuth, HDLLaserReturn laserReturn, HDLLaserCorrection correction)
Protected Member Functions inherited from pcl::Grabber
virtual void | signalsChanged ()
template<typename T >
boost::signals2::signal< T > * | find_signal () const
template<typename T >
int | num_slots () const
template<typename T >
void | disconnect_all_slots ()
template<typename T >
void | block_signal ()
template<typename T >
void | unblock_signal ()
void | block_signals ()
void | unblock_signals ()
template<typename T >
boost::signals2::signal< T > * | createSignal ()

## Protected Attributes

HDLLaserCorrection | laser_corrections_ [HDL_MAX_NUM_LASERS]
unsigned int | last_azimuth_
boost::shared_ptr< pcl::PointCloud< pcl::PointXYZ > > | current_scan_xyz_
boost::shared_ptr< pcl::PointCloud< pcl::PointXYZ > > | current_sweep_xyz_
boost::shared_ptr< pcl::PointCloud< pcl::PointXYZI > > | current_scan_xyzi_
boost::shared_ptr< pcl::PointCloud< pcl::PointXYZI > > | current_sweep_xyzi_
boost::shared_ptr< pcl::PointCloud< pcl::PointXYZRGBA > > | current_scan_xyzrgb_
boost::shared_ptr< pcl::PointCloud< pcl::PointXYZRGBA > > | current_sweep_xyzrgb_
boost::signals2::signal< sig_cb_velodyne_hdl_sweep_point_cloud_xyz > * | sweep_xyz_signal_
boost::signals2::signal< sig_cb_velodyne_hdl_sweep_point_cloud_xyzrgb > * | sweep_xyzrgb_signal_
boost::signals2::signal< sig_cb_velodyne_hdl_sweep_point_cloud_xyzi > * | sweep_xyzi_signal_
boost::signals2::signal< sig_cb_velodyne_hdl_scan_point_cloud_xyz > * | scan_xyz_signal_
boost::signals2::signal< sig_cb_velodyne_hdl_scan_point_cloud_xyzrgb > * | scan_xyzrgb_signal_
boost::signals2::signal< sig_cb_velodyne_hdl_scan_point_cloud_xyzi > * | scan_xyzi_signal_
Protected Attributes inherited from pcl::Grabber
std::map< std::string, boost::signals2::signal_base * > | signals_
std::map< std::string, std::vector< boost::signals2::connection > > | connections_
std::map< std::string, std::vector< boost::signals2::shared_connection_block > > | shared_connections_

## Static Protected Attributes

static const int | HDL_DATA_PORT = 2368
static const int | HDL_NUM_ROT_ANGLES = 36001
static const int | HDL_LASER_PER_FIRING = 32
static const int | HDL_MAX_NUM_LASERS = 64
static const int | HDL_FIRING_PER_PKT = 12

## Detailed Description

Grabber for the Velodyne High-Definition-Laser (HDL)

Author
  Keven Ring keven.nosp@m.@mit.nosp@m.re.or.nosp@m.g

Definition at line 60 of file hdl_grabber.h.

## Member Typedef Documentation

## HDLLaserReturn

typedef struct pcl::HDLGrabber::HDLLaserReturn pcl::HDLGrabber::HDLLaserReturn

protected

## sig_cb_velodyne_hdl_scan_point_cloud_xyz

typedef void() pcl::HDLGrabber::sig_cb_velodyne_hdl_scan_point_cloud_xyz(const boost::shared_ptr< const pcl::PointCloud< pcl::PointXYZ > > &, float, float)

Signal used for a single sector Represents 1 corrected packet from the HDL Velodyne.

Definition at line 67 of file hdl_grabber.h.

## sig_cb_velodyne_hdl_scan_point_cloud_xyzi

typedef void() pcl::HDLGrabber::sig_cb_velodyne_hdl_scan_point_cloud_xyzi(const boost::shared_ptr< const pcl::PointCloud< pcl::PointXYZI > > &, float startAngle, float)

Signal used for a single sector Represents 1 corrected packet from the HDL Velodyne with the returned intensity.

Definition at line 81 of file hdl_grabber.h.

## sig_cb_velodyne_hdl_scan_point_cloud_xyzrgb

typedef void() pcl::HDLGrabber::sig_cb_velodyne_hdl_scan_point_cloud_xyzrgb(const boost::shared_ptr< const pcl::PointCloud< pcl::PointXYZRGBA > > &, float, float)

Signal used for a single sector Represents 1 corrected packet from the HDL Velodyne.

Each laser has a different RGB

Definition at line 74 of file hdl_grabber.h.

## sig_cb_velodyne_hdl_sweep_point_cloud_xyz

typedef void() pcl::HDLGrabber::sig_cb_velodyne_hdl_sweep_point_cloud_xyz(const boost::shared_ptr< const pcl::PointCloud< pcl::PointXYZ > > &)

Signal used for a 360 degree sweep Represents multiple corrected packets from the HDL Velodyne This signal is sent when the Velodyne passes angle "0".

Definition at line 89 of file hdl_grabber.h.

## sig_cb_velodyne_hdl_sweep_point_cloud_xyzi

typedef void() pcl::HDLGrabber::sig_cb_velodyne_hdl_sweep_point_cloud_xyzi(const boost::shared_ptr< const pcl::PointCloud< pcl::PointXYZI > > &)

Signal used for a 360 degree sweep Represents multiple corrected packets from the HDL Velodyne with the returned intensity This signal is sent when the Velodyne passes angle "0".

Definition at line 95 of file hdl_grabber.h.

## sig_cb_velodyne_hdl_sweep_point_cloud_xyzrgb

typedef void() pcl::HDLGrabber::sig_cb_velodyne_hdl_sweep_point_cloud_xyzrgb(const boost::shared_ptr< const pcl::PointCloud< pcl::PointXYZRGBA > > &)

Signal used for a 360 degree sweep Represents multiple corrected packets from the HDL Velodyne This signal is sent when the Velodyne passes angle "0".

Each laser has a different RGB

Definition at line 101 of file hdl_grabber.h.

## Member Enumeration Documentation

## HDLBlock

enum pcl::HDLGrabber::HDLBlock

protected

Enumerator
BLOCK_0_TO_31 |
BLOCK_32_TO_63 |

Definition at line 193 of file hdl_grabber.h.

## Constructor & Destructor Documentation

## HDLGrabber() [1/2]

pcl::HDLGrabber::HDLGrabber | ( | const std::string & | correctionsFile = `""`,
|  | const std::string & | pcapFile = `""`
| ) |  |

Constructor taking an optional path to an HDL corrections file.

The Grabber will listen on the default IP/port for data packets [192.168.3.255/2368]

Parameters

  [in] | correctionsFile | Path to a file which contains the correction parameters for the HDL. This parameter is mandatory for the HDL-64, optional for the HDL-32
  [in] | pcapFile | Path to a file which contains previously captured data packets. This parameter is optional

## HDLGrabber() [2/2]

pcl::HDLGrabber::HDLGrabber | ( | const boost::asio::ip::address & | ipAddress,
|  | const unsigned short | port,
|  | const std::string & | correctionsFile = `""`
| ) |  |

Constructor taking a pecified IP/port and an optional path to an HDL corrections file.

Parameters

  [in] | ipAddress | IP Address that should be used to listen for HDL packets
  [in] | port | UDP Port that should be used to listen for HDL packets
  [in] | correctionsFile | Path to a file which contains the correction parameters for the HDL. This field is mandatory for the HDL-64, optional for the HDL-32

## ~HDLGrabber()

virtual pcl::HDLGrabber::~HDLGrabber | ( |  | ) |
throw | ( |
| ) |  |

virtual

virtual Destructor inherited from the Grabber interface.

It never throws.

## Member Function Documentation

## computeXYZI()

void pcl::HDLGrabber::computeXYZI | ( | pcl::PointXYZI & | pointXYZI,
|  | int | azimuth,
|  | HDLLaserReturn | laserReturn,
|  | HDLLaserCorrection | correction
| ) |  |

protected

## filterPackets()

void pcl::HDLGrabber::filterPackets | ( | const boost::asio::ip::address & | ipAddress,
|  | const unsigned short | port = `443`
| ) |  |

Allows one to filter packets based on the SOURCE IP address and PORT This can be used, for instance, if multiple HDL LIDARs are on the same network.

## fireCurrentScan()

void pcl::HDLGrabber::fireCurrentScan | ( | const unsigned short | startAngle,
|  | const unsigned short | endAngle
| ) |  |

protected

## fireCurrentSweep()

void pcl::HDLGrabber::fireCurrentSweep | ( |  | ) |

protected

## getFramesPerSecond()

virtual float pcl::HDLGrabber::getFramesPerSecond | ( |  | ) | const

virtual

Returns the number of frames per second.

Implements pcl::Grabber.

## getMaximumDistanceThreshold()

float pcl::HDLGrabber::getMaximumDistanceThreshold | ( |  | ) |

Returns the current maximum distance threshold, in meters.

## getMinimumDistanceThreshold()

float pcl::HDLGrabber::getMinimumDistanceThreshold | ( |  | ) |

Returns the current minimum distance threshold, in meters.

## getName()

virtual std::string pcl::HDLGrabber::getName | ( |  | ) | const

virtual

Obtains the name of this I/O Grabber.

Returns
  The name of the grabber

Implements pcl::Grabber.

Reimplemented in pcl::VLPGrabber.

## isRunning()

virtual bool pcl::HDLGrabber::isRunning | ( |  | ) | const

virtual

Check if the grabber is still running.

Returns
  TRUE if the grabber is running, FALSE otherwise

Implements pcl::Grabber.

## setLaserColorRGB()

void pcl::HDLGrabber::setLaserColorRGB | ( | const pcl::RGB & | color,
|  | unsigned int | laserNumber
| ) |  |

Allows one to customize the colors used for each of the lasers.

## setMaximumDistanceThreshold()

void pcl::HDLGrabber::setMaximumDistanceThreshold | ( | float & | maxThreshold | ) |

Any returns from the HDL with a distance greater than this are discarded.

This value is in meters Default: 10000.0

## setMinimumDistanceThreshold()

void pcl::HDLGrabber::setMinimumDistanceThreshold | ( | float & | minThreshold | ) |

Any returns from the HDL with a distance less than this are discarded.

This value is in meters Default: 0.0

## start()

virtual void pcl::HDLGrabber::start | ( |  | ) |

virtual

Starts processing the Velodyne packets, either from the network or PCAP file.

Implements pcl::Grabber.

## stop()

virtual void pcl::HDLGrabber::stop | ( |  | ) |

virtual

Stops processing the Velodyne packets, either from the network or PCAP file.

Implements pcl::Grabber.

## Member Data Documentation

## current_scan_xyz_

boost::shared_ptr<pcl::PointCloud<pcl::PointXYZ> > pcl::HDLGrabber::current_scan_xyz_

protected

Definition at line 236 of file hdl_grabber.h.

## current_scan_xyzi_

boost::shared_ptr<pcl::PointCloud<pcl::PointXYZI> > pcl::HDLGrabber::current_scan_xyzi_

protected

Definition at line 237 of file hdl_grabber.h.

## current_scan_xyzrgb_

boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> > pcl::HDLGrabber::current_scan_xyzrgb_

protected

Definition at line 238 of file hdl_grabber.h.

## current_sweep_xyz_

boost::shared_ptr<pcl::PointCloud<pcl::PointXYZ> > pcl::HDLGrabber::current_sweep_xyz_

protected

Definition at line 236 of file hdl_grabber.h.

## current_sweep_xyzi_

boost::shared_ptr<pcl::PointCloud<pcl::PointXYZI> > pcl::HDLGrabber::current_sweep_xyzi_

protected

Definition at line 237 of file hdl_grabber.h.

## current_sweep_xyzrgb_

boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> > pcl::HDLGrabber::current_sweep_xyzrgb_

protected

Definition at line 238 of file hdl_grabber.h.

## HDL_DATA_PORT

const int pcl::HDLGrabber::HDL_DATA_PORT = 2368

static protected

Definition at line 187 of file hdl_grabber.h.

## HDL_FIRING_PER_PKT

const int pcl::HDLGrabber::HDL_FIRING_PER_PKT = 12

static protected

Definition at line 191 of file hdl_grabber.h.

## HDL_LASER_PER_FIRING

const int pcl::HDLGrabber::HDL_LASER_PER_FIRING = 32

static protected

Definition at line 189 of file hdl_grabber.h.

## HDL_MAX_NUM_LASERS

const int pcl::HDLGrabber::HDL_MAX_NUM_LASERS = 64

static protected

Definition at line 190 of file hdl_grabber.h.

## HDL_NUM_ROT_ANGLES

const int pcl::HDLGrabber::HDL_NUM_ROT_ANGLES = 36001

static protected

Definition at line 188 of file hdl_grabber.h.

## laser_corrections_

HDLLaserCorrection pcl::HDLGrabber::laser_corrections_[HDL_MAX_NUM_LASERS]

protected

Definition at line 234 of file hdl_grabber.h.

## last_azimuth_

unsigned int pcl::HDLGrabber::last_azimuth_

protected

Definition at line 235 of file hdl_grabber.h.

## scan_xyz_signal_

boost::signals2::signal<sig_cb_velodyne_hdl_scan_point_cloud_xyz>* pcl::HDLGrabber::scan_xyz_signal_

protected

Definition at line 242 of file hdl_grabber.h.

## scan_xyzi_signal_

boost::signals2::signal<sig_cb_velodyne_hdl_scan_point_cloud_xyzi>* pcl::HDLGrabber::scan_xyzi_signal_

protected

Definition at line 244 of file hdl_grabber.h.

## scan_xyzrgb_signal_

boost::signals2::signal<sig_cb_velodyne_hdl_scan_point_cloud_xyzrgb>* pcl::HDLGrabber::scan_xyzrgb_signal_

protected

Definition at line 243 of file hdl_grabber.h.

## sweep_xyz_signal_

boost::signals2::signal<sig_cb_velodyne_hdl_sweep_point_cloud_xyz>* pcl::HDLGrabber::sweep_xyz_signal_

protected

Definition at line 239 of file hdl_grabber.h.

## sweep_xyzi_signal_

boost::signals2::signal<sig_cb_velodyne_hdl_sweep_point_cloud_xyzi>* pcl::HDLGrabber::sweep_xyzi_signal_

protected

Definition at line 241 of file hdl_grabber.h.

## sweep_xyzrgb_signal_

boost::signals2::signal<sig_cb_velodyne_hdl_sweep_point_cloud_xyzrgb>* pcl::HDLGrabber::sweep_xyzrgb_signal_

protected

Definition at line 240 of file hdl_grabber.h.

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

- /build/pcl-qv3n_B/pcl-1.8.1+dfsg1/io/include/pcl/io/hdl_grabber.h