Point Cloud Library (PCL)  1.14.0-dev
List of all members | Public Member Functions | Static Protected Attributes
pcl::VLPGrabber Class Reference

Grabber for the Velodyne LiDAR (VLP), based on the Velodyne High Definition Laser (HDL) More...

#include <pcl/io/vlp_grabber.h>

+ Inheritance diagram for pcl::VLPGrabber:
+ Collaboration diagram for pcl::VLPGrabber:

Public Member Functions

 VLPGrabber (const std::string &pcapFile="")
 Constructor taking an optional path to an vlp corrections file. More...
 
 VLPGrabber (const boost::asio::ip::address &ipAddress, const std::uint16_t port)
 Constructor taking a specified IP/port. More...
 
 ~VLPGrabber () noexcept override
 virtual Destructor inherited from the Grabber interface. More...
 
std::string getName () const override
 Obtains the name of this I/O Grabber. More...
 
void setLaserColorRGB (const pcl::RGB &color, const std::uint8_t laserNumber)
 Allows one to customize the colors used by each laser. More...
 
template<typename IterT >
void setLaserColorRGB (const IterT &begin, const IterT &end)
 Allows one to customize the colors used for each of the lasers. More...
 
std::uint8_t getMaximumNumberOfLasers () const override
 Returns the maximum number of lasers. More...
 
- Public Member Functions inherited from pcl::HDLGrabber
 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 std::uint16_t port, const std::string &correctionsFile="")
 Constructor taking a specified IP/port and an optional path to an HDL corrections file. More...
 
 ~HDLGrabber () noexcept override
 virtual Destructor inherited from the Grabber interface. More...
 
void start () override
 Starts processing the Velodyne packets, either from the network or PCAP file. More...
 
void stop () override
 Stops processing the Velodyne packets, either from the network or PCAP file. More...
 
bool isRunning () const override
 Check if the grabber is still running. More...
 
float getFramesPerSecond () const override
 Returns the number of frames per second. More...
 
void filterPackets (const boost::asio::ip::address &ipAddress, const std::uint16_t 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, const std::uint8_t laserNumber)
 Allows one to customize the colors used by each laser. More...
 
template<typename IterT >
void setLaserColorRGB (const IterT &begin, const IterT &end)
 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 ()=default
 Default ctor. More...
 
 Grabber (const Grabber &)=delete
 No copy ctor since Grabber can't be copied. More...
 
Grabberoperator= (const Grabber &)=delete
 No copy assign operator since Grabber can't be copied. More...
 
 Grabber (Grabber &&)=default
 Move ctor. More...
 
Grabberoperator= (Grabber &&)=default
 Move assign operator. More...
 
virtual ~Grabber () noexcept=default
 virtual destructor. More...
 
template<typename T >
boost::signals2::connection registerCallback (const std::function< T > &callback)
 registers a callback function/method to a signal with the corresponding signature More...
 
template<typename T >
bool providesCallback () const noexcept
 indicates whether a signal with given parameter-type exists or not More...
 
bool toggle ()
 For devices that are streaming, stopped streams are started and running stream are stopped. More...
 

Static Protected Attributes

static const std::uint8_t VLP_MAX_NUM_LASERS = 16
 
static const std::uint8_t VLP_DUAL_MODE = 0x39
 
- Static Protected Attributes inherited from pcl::HDLGrabber
static const std::uint16_t HDL_DATA_PORT = 2368
 
static const std::uint16_t HDL_NUM_ROT_ANGLES = 36001
 
static const std::uint8_t HDL_LASER_PER_FIRING = 32
 
static const std::uint8_t HDL_MAX_NUM_LASERS = 64
 
static const std::uint8_t HDL_FIRING_PER_PKT = 12
 

Additional Inherited Members

- Public Types inherited from pcl::HDLGrabber
using sig_cb_velodyne_hdl_scan_point_cloud_xyz = void(const pcl::PointCloud< pcl::PointXYZ >::ConstPtr &, float, float)
 Signal used for a single sector Represents 1 corrected packet from the HDL Velodyne. More...
 
using sig_cb_velodyne_hdl_scan_point_cloud_xyzrgba = void(const pcl::PointCloud< pcl::PointXYZRGBA >::ConstPtr &, float, float)
 Signal used for a single sector Represents 1 corrected packet from the HDL Velodyne. More...
 
using sig_cb_velodyne_hdl_scan_point_cloud_xyzi = void(const pcl::PointCloud< pcl::PointXYZI >::ConstPtr &, float, float)
 Signal used for a single sector Represents 1 corrected packet from the HDL Velodyne with the returned intensity. More...
 
using sig_cb_velodyne_hdl_sweep_point_cloud_xyz = void(const pcl::PointCloud< pcl::PointXYZ >::ConstPtr &)
 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...
 
using sig_cb_velodyne_hdl_sweep_point_cloud_xyzi = void(const pcl::PointCloud< pcl::PointXYZI >::ConstPtr &)
 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...
 
using sig_cb_velodyne_hdl_sweep_point_cloud_xyzrgba = void(const pcl::PointCloud< pcl::PointXYZRGBA >::ConstPtr &)
 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...
 
- Protected Types inherited from pcl::HDLGrabber
enum  HDLBlock { BLOCK_0_TO_31 = 0xeeff , BLOCK_32_TO_63 = 0xddff }
 
- Protected Member Functions inherited from pcl::HDLGrabber
void fireCurrentSweep ()
 
void fireCurrentScan (const std::uint16_t startAngle, const std::uint16_t endAngle)
 
void computeXYZI (pcl::PointXYZI &pointXYZI, std::uint16_t azimuth, HDLLaserReturn laserReturn, HDLLaserCorrection correction) const
 
- Protected Member Functions inherited from pcl::Grabber
virtual void signalsChanged ()
 
template<typename T >
boost::signals2::signal< T > * find_signal () const noexcept
 
template<typename T >
int num_slots () const noexcept
 
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 inherited from pcl::HDLGrabber
HDLLaserCorrection laser_corrections_ [HDL_MAX_NUM_LASERS]
 
std::uint16_t last_azimuth_
 
pcl::PointCloud< pcl::PointXYZ >::Ptr current_scan_xyz_
 
pcl::PointCloud< pcl::PointXYZ >::Ptr current_sweep_xyz_
 
pcl::PointCloud< pcl::PointXYZI >::Ptr current_scan_xyzi_
 
pcl::PointCloud< pcl::PointXYZI >::Ptr current_sweep_xyzi_
 
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr current_scan_xyzrgba_
 
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr current_sweep_xyzrgba_
 
boost::signals2::signal< sig_cb_velodyne_hdl_sweep_point_cloud_xyz > * sweep_xyz_signal_
 
boost::signals2::signal< sig_cb_velodyne_hdl_sweep_point_cloud_xyzrgba > * sweep_xyzrgba_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_xyzrgba > * scan_xyzrgba_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, std::unique_ptr< 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_
 

Detailed Description

Grabber for the Velodyne LiDAR (VLP), based on the Velodyne High Definition Laser (HDL)

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

Definition at line 56 of file vlp_grabber.h.

Constructor & Destructor Documentation

◆ VLPGrabber() [1/2]

pcl::VLPGrabber::VLPGrabber ( const std::string &  pcapFile = "")

Constructor taking an optional path to an vlp corrections file.

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

Parameters
[in]pcapFilePath to a file which contains previously captured data packets. This parameter is optional

◆ VLPGrabber() [2/2]

pcl::VLPGrabber::VLPGrabber ( const boost::asio::ip::address &  ipAddress,
const std::uint16_t  port 
)

Constructor taking a specified IP/port.

Parameters
[in]ipAddressIP Address that should be used to listen for VLP packets
[in]portUDP Port that should be used to listen for VLP packets

◆ ~VLPGrabber()

pcl::VLPGrabber::~VLPGrabber ( )
overridenoexcept

virtual Destructor inherited from the Grabber interface.

It never throws.

Member Function Documentation

◆ getMaximumNumberOfLasers()

std::uint8_t pcl::VLPGrabber::getMaximumNumberOfLasers ( ) const
overridevirtual

Returns the maximum number of lasers.

Reimplemented from pcl::HDLGrabber.

◆ getName()

std::string pcl::VLPGrabber::getName ( ) const
overridevirtual

Obtains the name of this I/O Grabber.

Returns
The name of the grabber

Reimplemented from pcl::HDLGrabber.

◆ setLaserColorRGB() [1/2]

template<typename IterT >
void pcl::VLPGrabber::setLaserColorRGB ( const IterT &  begin,
const IterT &  end 
)
inline

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

Parameters
[in]beginbegin iterator of RGB color array
[in]endend iterator of RGB color array

Definition at line 94 of file vlp_grabber.h.

◆ setLaserColorRGB() [2/2]

void pcl::VLPGrabber::setLaserColorRGB ( const pcl::RGB color,
const std::uint8_t  laserNumber 
)

Allows one to customize the colors used by each laser.

Parameters
[in]colorRGB color to set
[in]laserNumberNumber of laser to set color

Member Data Documentation

◆ VLP_DUAL_MODE

const std::uint8_t pcl::VLPGrabber::VLP_DUAL_MODE = 0x39
staticprotected

Definition at line 106 of file vlp_grabber.h.

◆ VLP_MAX_NUM_LASERS

const std::uint8_t pcl::VLPGrabber::VLP_MAX_NUM_LASERS = 16
staticprotected

Definition at line 105 of file vlp_grabber.h.


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