Point Cloud Library (PCL)
1.14.1-dev
|
Grabber for the Velodyne LiDAR (VLP), based on the Velodyne High Definition Laser (HDL) More...
#include <pcl/io/vlp_grabber.h>
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... | |
![]() | |
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... | |
![]() | |
Grabber ()=default | |
Default ctor. More... | |
Grabber (const Grabber &)=delete | |
No copy ctor since Grabber can't be copied. More... | |
Grabber & | operator= (const Grabber &)=delete |
No copy assign operator since Grabber can't be copied. More... | |
Grabber (Grabber &&)=default | |
Move ctor. More... | |
Grabber & | operator= (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 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 | |
![]() | |
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... | |
![]() | |
enum | HDLBlock { BLOCK_0_TO_31 = 0xeeff , BLOCK_32_TO_63 = 0xddff } |
![]() | |
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 |
![]() | |
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 () |
![]() | |
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_ |
![]() | |
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_ |
Grabber for the Velodyne LiDAR (VLP), based on the Velodyne High Definition Laser (HDL)
Definition at line 56 of file vlp_grabber.h.
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]
[in] | pcapFile | Path to a file which contains previously captured data packets. This parameter is optional |
pcl::VLPGrabber::VLPGrabber | ( | const boost::asio::ip::address & | ipAddress, |
const std::uint16_t | port | ||
) |
Constructor taking a specified IP/port.
[in] | ipAddress | IP Address that should be used to listen for VLP packets |
[in] | port | UDP Port that should be used to listen for VLP packets |
|
overridenoexcept |
virtual Destructor inherited from the Grabber interface.
It never throws.
|
overridevirtual |
Returns the maximum number of lasers.
Reimplemented from pcl::HDLGrabber.
|
overridevirtual |
Obtains the name of this I/O Grabber.
Reimplemented from pcl::HDLGrabber.
|
inline |
Allows one to customize the colors used for each of the lasers.
Definition at line 94 of file vlp_grabber.h.
void pcl::VLPGrabber::setLaserColorRGB | ( | const pcl::RGB & | color, |
const std::uint8_t | laserNumber | ||
) |
Allows one to customize the colors used by each laser.
[in] | color | RGB color to set |
[in] | laserNumber | Number of laser to set color |
|
staticprotected |
Definition at line 106 of file vlp_grabber.h.
|
staticprotected |
Definition at line 105 of file vlp_grabber.h.