用c++写一个ros2定时发布者模型
时间: 2023-04-02 22:05:01 浏览: 166
好的,我可以回答这个问题。以下是一个简单的用 C 语言编写的 ROS2 定时发布者模型的示例代码:
#include "rclcpp/rclcpp.hpp"
#include "std_msgs/msg/string.hpp"
using namespace std::chrono_literals;
class PublisherNode : public rclcpp::Node
{
public:
PublisherNode() : Node("publisher_node")
{
publisher_ = this->create_publisher<std_msgs::msg::String>("topic", 10);
timer_ = this->create_wall_timer(500ms, std::bind(&PublisherNode::timer_callback, this));
}
private:
void timer_callback()
{
auto message = std_msgs::msg::String();
message.data = "Hello, world!";
publisher_->publish(message);
}
rclcpp::Publisher<std_msgs::msg::String>::SharedPtr publisher_;
rclcpp::TimerBase::SharedPtr timer_;
};
int main(int argc, char * argv[])
{
rclcpp::init(argc, argv);
auto node = std::make_shared<PublisherNode>();
rclcpp::spin(node);
rclcpp::shutdown();
return ;
}
这个程序创建了一个名为 "publisher_node" 的 ROS2 节点,它会定时发布一个包含 "Hello, world!" 字符串的消息到名为 "topic" 的话题上。
阅读全文