初始化
rclcpp::init(argc,argv)
处理节点的函数
/*
* rclcpp::spin() 是 ROS2 中用于处理节点回调的核心函数,它会阻塞当前线程并持续处理节点的消息和事件
* 基本功能:
* 启动节点的事件循环
* 处理订阅消息、服务请求、定时器回调等
* 阻塞当前线程直到节点被关闭
*/
rclcpp::spin(std::make_shared<MinimalPublisher>());
清理资源
rclcpp::shutdown();
创建发布者
// 1. 定义一个发布者指针,用于管理发布者的生命周期
/*
* rclcpp::Publisher:ROS2 C++ 的发布者模板类
* <std_msgs::msg::String>:发布的消息类型(这里是标准字符串消息)
* SharedPtr:共享所有权的智能指针(std::shared_ptr),
*/
rclcpp::Publisher<std_msgs::msg::String>::SharedPtr publisher_;
//2. 创建发布者实例(通常在节点构造函数中)
publisher_ = create_publisher<std_msgs::msg::String>("topic", 10);
//3. 发布消息
auto message = std_msgs::msg::String();
publisher_->publish(message);
创建订阅者
// 1. 定义一个订阅者指针
/*
* rclcpp::Subscription:ROS2 C++ 的订阅者模板类
* <std_msgs::msg::String>:订阅的消息类型(这里是标准字符串消息)
* SharedPtr:共享所有权的智能指针(std::shared_ptr)
*/
rclcpp::Subscription<std_msgs::msg::String>::SharedPtr subscription_;
// 2. 创建订阅者实例
this->subscription_ = this->create_subscription<std_msgs::msg::String>(
"topic",
10,
[this](std_msgs::msg::String::SharedPtr msg){
this->topic_callback(*msg);
}