Skip to content

Conversation

@AntoBrandi
Copy link
Contributor

@AntoBrandi AntoBrandi commented Nov 12, 2025

The purpose of this PR is to centralize the ROS-related interfaces in the PCLNode class.
Previously, operations like subscribing, publishing with message filters, transforming clouds, and so on, were centralized in the Filter class.

However, to extend this package with the development of new nodes (e.g. SACSegmentation), requires the duplication of some boilerplate code, as evident in #510.
This PR allows contributors to create new pcl_ros nodes as simple as

class MyPclNode : public PCLNode<Input<MyInput1, MyInput2>, Output>
{
private:
pcl::MyPCLImplementation<> impl_;

virtual rcl_interfaces::msg::SetParametersResult onParamsChanged(
const std::vectorrclcpp::Parameter & params) override;

public:
explicit MyPclNode(const rclcpp::NodeOptions & options);
virtual void compute(const MyInput1 & in1, MyInput2 & in2, MyOutput1 & out1) override;
};

Happy to get your feedback and eventually improve / adapt the code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant