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_);
PointCloudSubscription< T > create_subscription(ensenso::ros::NodeHandle &nh, ::std::string const &topic_name, int queue_size, void(C::*callback)(M), C *object)
ensenso::ros::Publisher< T > PointCloudPublisher
void publishPointCloud(ensenso::ros::Publisher< T > const &publisher, std::unique_ptr< T > pointCloud)
#define USING_MSG(PACKAGE_NAME, MSG_NAME)
::ros::NodeHandle NodeHandle
::std::unique_ptr< ::ros::Publisher > Publisher
void toROSMsg(const sensor_msgs::PointCloud2 &cloud, sensor_msgs::Image &image)
PointCloudPublisher< T > create_publisher(ensenso::ros::NodeHandle &nh, ::std::string const &topic_name, int queue_size)