Point Cloud Library (PCL)  1.7.0
Classes | Public Types | Public Member Functions | Protected Types | Static Protected Attributes
pcl::HDLGrabber Class Reference

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

#include <pcl/io/hdl_grabber.h>

+ Inheritance diagram for pcl::HDLGrabber:

List of all members.

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.
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.
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.
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".
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".
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".

Public Member Functions

 HDLGrabber (const std::string &correctionsFile="", const std::string &pcapFile="")
 Constructor taking an optional path to an HDL corrections file.
 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.
virtual ~HDLGrabber () throw ()
 virtual Destructor inherited from the Grabber interface.
virtual void start ()
 Starts processing the Velodyne packets, either from the network or PCAP file.
virtual void stop ()
 Stops processing the Velodyne packets, either from the network or PCAP file.
virtual std::string getName () const
 Obtains the name of this I/O Grabber.
virtual bool isRunning () const
 Check if the grabber is still running.
virtual float getFramesPerSecond () const
 Returns the number of frames per second.
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.
void setLaserColorRGB (const pcl::RGB &color, unsigned int laserNumber)
 Allows one to customize the colors used for each of the lasers.
void setMinimumDistanceThreshold (float &minThreshold)
 Any returns from the HDL with a distance less than this are discarded.
void setMaximumDistanceThreshold (float &maxThreshold)
 Any returns from the HDL with a distance greater than this are discarded.
float getMinimumDistanceThreshold ()
 Returns the current minimum distance threshold, in meters.
float getMaximumDistanceThreshold ()
 Returns the current maximum distance threshold, in meters.

Protected Types

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

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
static const
boost::asio::ip::address 
HDL_DEFAULT_NETWORK_ADDRESS

Detailed Description

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

Author:
Keven Ring <keven@mitre.org>

Definition at line 59 of file hdl_grabber.h.


Member Typedef Documentation

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 65 of file hdl_grabber.h.

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 77 of file hdl_grabber.h.

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 71 of file hdl_grabber.h.

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 84 of file hdl_grabber.h.

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 90 of file hdl_grabber.h.

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 96 of file hdl_grabber.h.


Member Enumeration Documentation

enum pcl::HDLGrabber::HDLBlock [protected]
Enumerator:
BLOCK_0_TO_31 
BLOCK_32_TO_63 

Definition at line 176 of file hdl_grabber.h.


Constructor & Destructor Documentation

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]correctionsFilePath 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]pcapFilePath to a file which contains previously captured data packets. This parameter is optional
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]ipAddressIP Address that should be used to listen for HDL packets
[in]portUDP Port that should be used to listen for HDL packets
[in]correctionsFilePath to a file which contains the correction parameters for the HDL. This field is mandatory for the HDL-64, optional for the HDL-32
virtual pcl::HDLGrabber::~HDLGrabber ( ) throw () [virtual]

virtual Destructor inherited from the Grabber interface.

It never throws.


Member Function Documentation

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.

virtual float pcl::HDLGrabber::getFramesPerSecond ( ) const [virtual]

Returns the number of frames per second.

Implements pcl::Grabber.

Returns the current maximum distance threshold, in meters.

Returns the current minimum distance threshold, in meters.

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.

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.

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

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

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

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

virtual void pcl::HDLGrabber::start ( ) [virtual]

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

Implements pcl::Grabber.

virtual void pcl::HDLGrabber::stop ( ) [virtual]

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

Implements pcl::Grabber.


Member Data Documentation

const int pcl::HDLGrabber::HDL_DATA_PORT = 2368 [static, protected]

Definition at line 169 of file hdl_grabber.h.

const boost::asio::ip::address pcl::HDLGrabber::HDL_DEFAULT_NETWORK_ADDRESS [static, protected]

Definition at line 174 of file hdl_grabber.h.

const int pcl::HDLGrabber::HDL_FIRING_PER_PKT = 12 [static, protected]

Definition at line 173 of file hdl_grabber.h.

const int pcl::HDLGrabber::HDL_LASER_PER_FIRING = 32 [static, protected]

Definition at line 171 of file hdl_grabber.h.

const int pcl::HDLGrabber::HDL_MAX_NUM_LASERS = 64 [static, protected]

Definition at line 172 of file hdl_grabber.h.

const int pcl::HDLGrabber::HDL_NUM_ROT_ANGLES = 36001 [static, protected]

Definition at line 170 of file hdl_grabber.h.


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