43 #include <pcl/io/grabber.h>
44 #include <pcl/point_cloud.h>
45 #include <pcl/point_types.h>
47 #include <librealsense2/rs.hpp>
66 RealSense2Grabber (
const std::string& file_name_or_serial_number =
"",
const bool repeat_playback =
true );
79 device_width_ = width;
80 device_height_ = height;
96 isRunning ()
const override;
100 getFramesPerSecond ()
const override;
105 return {
"RealSense2Grabber"}; }
123 signalsChanged ()
override;
139 convertDepthToPointXYZ (
const rs2::points& points );
146 convertIntensityDepthToPointXYZRGBI (
const rs2::points& points,
const rs2::video_frame& ir );
153 convertRGBDepthToPointXYZRGB (
const rs2::points& points,
const rs2::video_frame& rgb );
160 convertRGBADepthToPointXYZRGBA (
const rs2::points& points,
const rs2::video_frame& rgb );
166 template <
typename Po
intT,
typename Functor>
168 convertRealsensePointsToPointCloud (
const rs2::points& points,
Functor mapColorFunc );
176 getTextureIdx (
const rs2::video_frame & texture,
float u,
float v);
184 getTextureColor (
const rs2::video_frame& texture,
float u,
float v );
192 getTextureIntensity (
const rs2::video_frame& texture,
float u,
float v );
204 bool running_{
false};
208 std::uint32_t device_width_{424};
210 std::uint32_t device_height_{240};
212 std::uint32_t target_fps_{30};
shared_ptr< PointCloud< PointT > > Ptr
void setDeviceOptions(std::uint32_t width, std::uint32_t height, std::uint32_t fps=30)
Set the device options.
boost::signals2::signal< signal_librealsense_PointXYZRGB > * signal_PointXYZRGB
boost::signals2::signal< signal_librealsense_PointXYZI > * signal_PointXYZI
Base functor all the models that need non linear optimization must define their own one and implement...
Grabber interface for PCL 1.x device drivers.
std::thread thread_
handle to the thread
void(const pcl::PointCloud< pcl::PointXYZRGBA >::ConstPtr &) signal_librealsense_PointXYZRGBA
std::string file_name_or_serial_number_
Defines either a file path to a bag file or a realsense device serial number.
A structure representing RGB color information.
std::string getName() const override
defined grabber name
bool repeat_playback_
Repeat playback when reading from file.
void(const pcl::PointCloud< pcl::PointXYZ >::ConstPtr &) signal_librealsense_PointXYZ
rs2::pipeline pipe_
Declare RealSense pipeline, encapsulating the actual device and sensors.
void(const pcl::PointCloud< pcl::PointXYZI >::ConstPtr &) signal_librealsense_PointXYZI
Grabber for Intel Realsense 2 SDK devices (D400 series)
shared_ptr< const PointCloud< PointT > > ConstPtr
rs2::pointcloud pc_
Declare pointcloud object, for calculating pointclouds and texture mappings.
boost::signals2::signal< signal_librealsense_PointXYZ > * signal_PointXYZ
void(const pcl::PointCloud< pcl::PointXYZRGB >::ConstPtr &) signal_librealsense_PointXYZRGB
boost::signals2::signal< signal_librealsense_PointXYZRGBA > * signal_PointXYZRGBA