10 #include <pcl/point_cloud.h>
11 #include <pcl/point_types.h>
13 #include <sensor_msgs/msg/point_cloud2.hpp>
23 #define POINT_CLOUD_SUBSCRIPTION_CALLBACK(callback, T, arg_name) \
24 callback(const std::shared_ptr<sensor_msgs::msg::PointCloud2> arg_name)
34 return nh->node()->create_publisher<sensor_msgs::msg::PointCloud2>(topic_name, queue_size);
37 template <
typename T,
typename C,
typename M>
39 int queue_size,
void (C::*callback)(M), C*
object)
41 return ensenso::ros::create_subscription<sensor_msgs::msg::PointCloud2>(nh, topic_name, queue_size, callback,
object);
46 #define STORE_POINT_CLOUD(point_cloud_msg, point_cloud_pcl) \
48 pcl::fromROSMsg(*point_cloud_msg, *point_cloud_pcl);
52 std::unique_ptr<T> pointCloud)
54 auto cloudMsg = ensenso::std::make_unique<sensor_msgs::msg::PointCloud2>();
56 publisher->publish(std::move(cloudMsg));
68 #define POINT_CLOUD_SUBSCRIPTION_CALLBACK(callback, T, arg_name) callback(T::Ptr const& arg_name)
78 return ensenso::ros::create_publisher<T>(nh, topic_name, queue_size);
81 template <
typename T,
typename C,
typename M>
83 int queue_size,
void (C::*callback)(M), C*
object)
85 return ensenso::ros::create_subscription<T>(nh, topic_name, queue_size, callback,
object);
90 #define STORE_POINT_CLOUD(point_cloud_boost_ptr, point_cloud_std_ptr) \
92 point_cloud_std_ptr = ensenso::std::to_std(point_cloud_boost_ptr);
98 publisher->publish(cloud_);