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

A simple ONI grabber. More...

#include <pcl/io/oni_grabber.h>

+ Inheritance diagram for pcl::ONIGrabber:
+ Collaboration diagram for pcl::ONIGrabber:

Public Types

using sig_cb_openni_image = void(const openni_wrapper::Image::Ptr &)
 
using sig_cb_openni_depth_image = void(const openni_wrapper::DepthImage::Ptr &)
 
using sig_cb_openni_ir_image = void(const openni_wrapper::IRImage::Ptr &)
 
using sig_cb_openni_image_depth_image = void(const openni_wrapper::Image::Ptr &, const openni_wrapper::DepthImage::Ptr &, float)
 
using sig_cb_openni_ir_depth_image = void(const openni_wrapper::IRImage::Ptr &, const openni_wrapper::DepthImage::Ptr &, float)
 
using sig_cb_openni_point_cloud = void(const pcl::PointCloud< pcl::PointXYZ >::ConstPtr &)
 
using sig_cb_openni_point_cloud_rgb = void(const pcl::PointCloud< pcl::PointXYZRGB >::ConstPtr &)
 
using sig_cb_openni_point_cloud_rgba = void(const pcl::PointCloud< pcl::PointXYZRGBA >::ConstPtr &)
 
using sig_cb_openni_point_cloud_i = void(const pcl::PointCloud< pcl::PointXYZI >::ConstPtr &)
 

Public Member Functions

 ONIGrabber (const std::string &file_name, bool repeat, bool stream)
 constructor More...
 
 ~ONIGrabber () noexcept override
 destructor never throws an exception More...
 
void start () override
 For devices that are streaming, the streams are started by calling this method. More...
 
void stop () override
 For devices that are streaming, the streams are stopped. More...
 
std::string getName () const override
 returns the name of the concrete subclass. More...
 
bool isRunning () const override
 Indicates whether the grabber is streaming or not. More...
 
float getFramesPerSecond () const override
 returns the frames pre second. More...
 
bool hasDataLeft ()
 Check if there is any data left in the ONI file to process. 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...
 

Protected Member Functions

void imageCallback (openni_wrapper::Image::Ptr image, void *cookie)
 internal OpenNI (openni_wrapper) callback that handles image streams More...
 
void depthCallback (openni_wrapper::DepthImage::Ptr depth_image, void *cookie)
 internal OpenNI (openni_wrapper) callback that handles depth streams More...
 
void irCallback (openni_wrapper::IRImage::Ptr ir_image, void *cookie)
 internal OpenNI (openni_wrapper) callback that handles IR streams More...
 
void imageDepthImageCallback (const openni_wrapper::Image::Ptr &image, const openni_wrapper::DepthImage::Ptr &depth_image)
 internal callback that handles synchronized image + depth streams More...
 
void irDepthImageCallback (const openni_wrapper::IRImage::Ptr &image, const openni_wrapper::DepthImage::Ptr &depth_image)
 internal callback that handles synchronized IR + depth streams More...
 
pcl::PointCloud< pcl::PointXYZ >::Ptr convertToXYZPointCloud (const openni_wrapper::DepthImage::Ptr &depth) const
 internal method to assemble a point cloud object More...
 
pcl::PointCloud< pcl::PointXYZRGB >::Ptr convertToXYZRGBPointCloud (const openni_wrapper::Image::Ptr &image, const openni_wrapper::DepthImage::Ptr &depth_image) const
 internal method to assemble a point cloud object More...
 
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr convertToXYZRGBAPointCloud (const openni_wrapper::Image::Ptr &image, const openni_wrapper::DepthImage::Ptr &depth_image) const
 internal method to assemble a point cloud object More...
 
pcl::PointCloud< pcl::PointXYZI >::Ptr convertToXYZIPointCloud (const openni_wrapper::IRImage::Ptr &image, const openni_wrapper::DepthImage::Ptr &depth_image) const
 internal method to assemble a point cloud object More...
 
- 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

Synchronizer< openni_wrapper::Image::Ptr, openni_wrapper::DepthImage::Ptrrgb_sync_
 synchronizer object to synchronize image and depth streams More...
 
Synchronizer< openni_wrapper::IRImage::Ptr, openni_wrapper::DepthImage::Ptrir_sync_
 synchronizer object to synchronize IR and depth streams More...
 
openni_wrapper::DeviceONI::Ptr device_
 the actual openni device More...
 
std::string rgb_frame_id_
 
std::string depth_frame_id_
 
bool running_ {false}
 
unsigned image_width_ {0}
 
unsigned image_height_ {0}
 
unsigned depth_width_ {0}
 
unsigned depth_height_ {0}
 
openni_wrapper::OpenNIDevice::CallbackHandle depth_callback_handle {}
 
openni_wrapper::OpenNIDevice::CallbackHandle image_callback_handle {}
 
openni_wrapper::OpenNIDevice::CallbackHandle ir_callback_handle {}
 
boost::signals2::signal< sig_cb_openni_image > * image_signal_ {}
 
boost::signals2::signal< sig_cb_openni_depth_image > * depth_image_signal_ {}
 
boost::signals2::signal< sig_cb_openni_ir_image > * ir_image_signal_ {}
 
boost::signals2::signal< sig_cb_openni_image_depth_image > * image_depth_image_signal_ {}
 
boost::signals2::signal< sig_cb_openni_ir_depth_image > * ir_depth_image_signal_ {}
 
boost::signals2::signal< sig_cb_openni_point_cloud > * point_cloud_signal_ {}
 
boost::signals2::signal< sig_cb_openni_point_cloud_i > * point_cloud_i_signal_ {}
 
boost::signals2::signal< sig_cb_openni_point_cloud_rgb > * point_cloud_rgb_signal_ {}
 
boost::signals2::signal< sig_cb_openni_point_cloud_rgba > * point_cloud_rgba_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

A simple ONI grabber.

Author
Suat Gedikli

Definition at line 67 of file oni_grabber.h.

Member Typedef Documentation

◆ sig_cb_openni_depth_image

Definition at line 72 of file oni_grabber.h.

◆ sig_cb_openni_image

Definition at line 71 of file oni_grabber.h.

◆ sig_cb_openni_image_depth_image

Definition at line 74 of file oni_grabber.h.

◆ sig_cb_openni_ir_depth_image

Definition at line 75 of file oni_grabber.h.

◆ sig_cb_openni_ir_image

Definition at line 73 of file oni_grabber.h.

◆ sig_cb_openni_point_cloud

Definition at line 76 of file oni_grabber.h.

◆ sig_cb_openni_point_cloud_i

Definition at line 79 of file oni_grabber.h.

◆ sig_cb_openni_point_cloud_rgb

Definition at line 77 of file oni_grabber.h.

◆ sig_cb_openni_point_cloud_rgba

Definition at line 78 of file oni_grabber.h.

Constructor & Destructor Documentation

◆ ONIGrabber()

pcl::ONIGrabber::ONIGrabber ( const std::string &  file_name,
bool  repeat,
bool  stream 
)

constructor

Parameters
[in]file_namethe path to the ONI file
[in]repeatwhether the play back should be in an infinite loop or not
[in]streamwhether the playback should be in streaming mode or in triggered mode.

◆ ~ONIGrabber()

pcl::ONIGrabber::~ONIGrabber ( )
overridenoexcept

destructor never throws an exception

Member Function Documentation

◆ convertToXYZIPointCloud()

pcl::PointCloud<pcl::PointXYZI>::Ptr pcl::ONIGrabber::convertToXYZIPointCloud ( const openni_wrapper::IRImage::Ptr image,
const openni_wrapper::DepthImage::Ptr depth_image 
) const
protected

internal method to assemble a point cloud object

◆ convertToXYZPointCloud()

pcl::PointCloud<pcl::PointXYZ>::Ptr pcl::ONIGrabber::convertToXYZPointCloud ( const openni_wrapper::DepthImage::Ptr depth) const
protected

internal method to assemble a point cloud object

◆ convertToXYZRGBAPointCloud()

pcl::PointCloud<pcl::PointXYZRGBA>::Ptr pcl::ONIGrabber::convertToXYZRGBAPointCloud ( const openni_wrapper::Image::Ptr image,
const openni_wrapper::DepthImage::Ptr depth_image 
) const
protected

internal method to assemble a point cloud object

◆ convertToXYZRGBPointCloud()

pcl::PointCloud<pcl::PointXYZRGB>::Ptr pcl::ONIGrabber::convertToXYZRGBPointCloud ( const openni_wrapper::Image::Ptr image,
const openni_wrapper::DepthImage::Ptr depth_image 
) const
protected

internal method to assemble a point cloud object

◆ depthCallback()

void pcl::ONIGrabber::depthCallback ( openni_wrapper::DepthImage::Ptr  depth_image,
void *  cookie 
)
protected

internal OpenNI (openni_wrapper) callback that handles depth streams

◆ getFramesPerSecond()

float pcl::ONIGrabber::getFramesPerSecond ( ) const
overridevirtual

returns the frames pre second.

0 if it is trigger based.

Implements pcl::Grabber.

◆ getName()

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

returns the name of the concrete subclass.

Returns
the name of the concrete driver.

Implements pcl::Grabber.

◆ hasDataLeft()

bool pcl::ONIGrabber::hasDataLeft ( )
inline

Check if there is any data left in the ONI file to process.

Definition at line 121 of file oni_grabber.h.

◆ imageCallback()

void pcl::ONIGrabber::imageCallback ( openni_wrapper::Image::Ptr  image,
void *  cookie 
)
protected

internal OpenNI (openni_wrapper) callback that handles image streams

◆ imageDepthImageCallback()

void pcl::ONIGrabber::imageDepthImageCallback ( const openni_wrapper::Image::Ptr image,
const openni_wrapper::DepthImage::Ptr depth_image 
)
protected

internal callback that handles synchronized image + depth streams

◆ irCallback()

void pcl::ONIGrabber::irCallback ( openni_wrapper::IRImage::Ptr  ir_image,
void *  cookie 
)
protected

internal OpenNI (openni_wrapper) callback that handles IR streams

◆ irDepthImageCallback()

void pcl::ONIGrabber::irDepthImageCallback ( const openni_wrapper::IRImage::Ptr image,
const openni_wrapper::DepthImage::Ptr depth_image 
)
protected

internal callback that handles synchronized IR + depth streams

◆ isRunning()

bool pcl::ONIGrabber::isRunning ( ) const
overridevirtual

Indicates whether the grabber is streaming or not.

This value is not defined for triggered devices.

Returns
true if grabber is running / streaming. False otherwise.

Implements pcl::Grabber.

◆ start()

void pcl::ONIGrabber::start ( )
overridevirtual

For devices that are streaming, the streams are started by calling this method.

Trigger-based devices, just trigger the device once for each call of start.

Implements pcl::Grabber.

◆ stop()

void pcl::ONIGrabber::stop ( )
overridevirtual

For devices that are streaming, the streams are stopped.

This method has no effect for triggered devices.

Implements pcl::Grabber.

Member Data Documentation

◆ depth_callback_handle

openni_wrapper::OpenNIDevice::CallbackHandle pcl::ONIGrabber::depth_callback_handle {}
protected

Definition at line 183 of file oni_grabber.h.

◆ depth_frame_id_

std::string pcl::ONIGrabber::depth_frame_id_
protected

Definition at line 177 of file oni_grabber.h.

◆ depth_height_

unsigned pcl::ONIGrabber::depth_height_ {0}
protected

Definition at line 182 of file oni_grabber.h.

◆ depth_image_signal_

boost::signals2::signal<sig_cb_openni_depth_image >* pcl::ONIGrabber::depth_image_signal_ {}
protected

Definition at line 187 of file oni_grabber.h.

◆ depth_width_

unsigned pcl::ONIGrabber::depth_width_ {0}
protected

Definition at line 181 of file oni_grabber.h.

◆ device_

openni_wrapper::DeviceONI::Ptr pcl::ONIGrabber::device_
protected

the actual openni device

Definition at line 175 of file oni_grabber.h.

◆ image_callback_handle

openni_wrapper::OpenNIDevice::CallbackHandle pcl::ONIGrabber::image_callback_handle {}
protected

Definition at line 184 of file oni_grabber.h.

◆ image_depth_image_signal_

boost::signals2::signal<sig_cb_openni_image_depth_image>* pcl::ONIGrabber::image_depth_image_signal_ {}
protected

Definition at line 189 of file oni_grabber.h.

◆ image_height_

unsigned pcl::ONIGrabber::image_height_ {0}
protected

Definition at line 180 of file oni_grabber.h.

◆ image_signal_

boost::signals2::signal<sig_cb_openni_image >* pcl::ONIGrabber::image_signal_ {}
protected

Definition at line 186 of file oni_grabber.h.

◆ image_width_

unsigned pcl::ONIGrabber::image_width_ {0}
protected

Definition at line 179 of file oni_grabber.h.

◆ ir_callback_handle

openni_wrapper::OpenNIDevice::CallbackHandle pcl::ONIGrabber::ir_callback_handle {}
protected

Definition at line 185 of file oni_grabber.h.

◆ ir_depth_image_signal_

boost::signals2::signal<sig_cb_openni_ir_depth_image>* pcl::ONIGrabber::ir_depth_image_signal_ {}
protected

Definition at line 190 of file oni_grabber.h.

◆ ir_image_signal_

boost::signals2::signal<sig_cb_openni_ir_image >* pcl::ONIGrabber::ir_image_signal_ {}
protected

Definition at line 188 of file oni_grabber.h.

◆ ir_sync_

synchronizer object to synchronize IR and depth streams

Definition at line 172 of file oni_grabber.h.

◆ point_cloud_i_signal_

boost::signals2::signal<sig_cb_openni_point_cloud_i >* pcl::ONIGrabber::point_cloud_i_signal_ {}
protected

Definition at line 192 of file oni_grabber.h.

◆ point_cloud_rgb_signal_

boost::signals2::signal<sig_cb_openni_point_cloud_rgb >* pcl::ONIGrabber::point_cloud_rgb_signal_ {}
protected

Definition at line 193 of file oni_grabber.h.

◆ point_cloud_rgba_signal_

boost::signals2::signal<sig_cb_openni_point_cloud_rgba >* pcl::ONIGrabber::point_cloud_rgba_signal_ {}
protected

Definition at line 194 of file oni_grabber.h.

◆ point_cloud_signal_

boost::signals2::signal<sig_cb_openni_point_cloud >* pcl::ONIGrabber::point_cloud_signal_ {}
protected

Definition at line 191 of file oni_grabber.h.

◆ rgb_frame_id_

std::string pcl::ONIGrabber::rgb_frame_id_
protected

Definition at line 176 of file oni_grabber.h.

◆ rgb_sync_

synchronizer object to synchronize image and depth streams

Definition at line 169 of file oni_grabber.h.

◆ running_

bool pcl::ONIGrabber::running_ {false}
protected

Definition at line 178 of file oni_grabber.h.


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