【问题标题】:Ros2 publish to topic programaticallyRos2 以编程方式发布到主题
【发布时间】:2022-11-14 13:01:24
【问题描述】:

我想创建一个独立的 ros2 Python 节点,该节点在运行时相当于命令

ros2 topic pub --once other_topic message

我该怎么做呢?

我不想创建新的发布者/订阅者/主题,我只是想从给定节点向现有主题发布消息。

【问题讨论】:

    标签: python ros2


    【解决方案1】:

    具有您描述的功能的节点是发布者节点。查看ROS2的官方教程。您无需创建全新的消息类型或主题即可开始发布消息。您可以在现有主题上发布消息。您只需要在实例化您的发布者对象时指定主题名称并适当地键入。

    首先,在您的节点中声明您的发布者

    rclcpp::Publisher<std_msgs::msg::String>::SharedPtr publisher_;

    然后你必须根据主题的类型来实例化它

    publisher_ = this->create_publisher<std_msgs::msg::String>("topic", 10);

    然后根据一些编程条件,您可以在已经存在的主题上发布消息

    publisher_->publish(message);

    此示例假定您的主题是包含在 std_msgs 包中的字符串类型。上面的代码是用 C++ 编写的,但在 python 中的实现策略是相同的。请参阅此处以获取 python 示例

    【讨论】:

      猜你喜欢
      • 2015-07-20
      • 1970-01-01
      • 2020-12-30
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-13
      • 2011-10-11
      相关资源
      最近更新 更多