1 #ifndef POINT_CLOUD_NODE_HPP 2 #define POINT_CLOUD_NODE_HPP 6 #include <HLR/FullWorld.h> 8 #include <sensor_msgs/LaserScan.h> 9 #include <std_msgs/Header.h> 10 #include <tf/transform_listener.h> 12 #include "ObjectInterpreter.hpp" 13 #include <Vision/ICupDetector.hpp> 14 #include <laser_geometry/laser_geometry.h> 15 #include <pcl/PCLPointCloud2.h> 16 #include <pcl/conversions.h> 17 #include <pcl/point_types.h> 18 #include <pcl_conversions/pcl_conversions.h> 19 #include <pcl_ros/transforms.h> 23 #include <condition_variable> 68 const ros::Rate update_rate;
71 ros::ServiceServer service;
72 ros::Publisher publisher;
75 tf::TransformListener transform_listener;
78 std::unique_ptr<HLR::Vision::ICupDetector> cup_detector;
81 pcl::PointCloud<pcl::PointXYZ> latest_point_cloud;
83 void publish_world(
const ros::TimerEvent& event);
85 bool service_callback(HLR::FullWorld::Request& request,
86 HLR::FullWorld::Response& response);
87 void scan_callback(
const sensor_msgs::LaserScan::ConstPtr& scan);
95 std::atomic_bool shutdown{
false};
97 bool callback_called{
false};
98 std::mutex callback_mutex;
99 std::condition_variable callback_cv;
Class responsible for merging the world data from the Kinect and the LiDAR.
Definition: ObjectInterpreter.hpp:18
void run()
Run the pipeline reading data from the Kinect and LiDAR, interpreting it and publishing it on a ROS t...
PointCloudNode(ros::Rate update_rate)
Initialize PointCloudNode.
Collection of detected cups Collection of detected cups where the location of the cups is described i...
Definition: ICupDetector.hpp:17
This class is the main class for the PointCloud namespaces.
Definition: PointCloudNode.hpp:39