ros2 常用API

初始化

rclcpp::init(argc,argv)

处理节点的函数

  • rclcpp::spin
 /*
   * 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);
        }

posted on 2025-06-11 18:49  洛苏  阅读(101)  评论(0)    收藏  举报

导航