【发布时间】:2022-11-14 13:01:24
【问题描述】:
我想创建一个独立的 ros2 Python 节点,该节点在运行时相当于命令
ros2 topic pub --once other_topic message
我该怎么做呢?
我不想创建新的发布者/订阅者/主题,我只是想从给定节点向现有主题发布消息。
【问题讨论】:
我想创建一个独立的 ros2 Python 节点,该节点在运行时相当于命令
ros2 topic pub --once other_topic message
我该怎么做呢?
我不想创建新的发布者/订阅者/主题,我只是想从给定节点向现有主题发布消息。
【问题讨论】:
具有您描述的功能的节点是发布者节点。查看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 示例
【讨论】: