ROS2 的主函数的一般形式如下面的代码所示,实际使用时,当我在类里面创建了一个成员函数的时候,发现无法调用到该函数。
int main(int argc, char **argv)
{
// RCLCPP_INFO(LOGGER, "Initialize node");
rclcpp::init(argc, argv);
auto n = std::make_shared<MpcTrajectoryTrackingPublisher>();
rclcpp::spin(n);
rclcpp::shutdown();
return 0;
}
最终的解决方案是,直接在构造函数里调用该函数,因为在创建动态指针的过程中会调用类的构造函数。感觉应该有更加地道的用法,但是还没有找到,目前这种方法可以正常工作。