ROS2中Publisher和Subscriber的创建
ROS2的概念和术语与ROS1基本保持一致,对于消息话题,存在话题的发布方Publisher和接收方Subscriber
如果没有使用过ROS2,建议先把官网教程中Tutorials章节下的Beginner: CLI tools目录下的内容学习一遍,最好能将所有Demo跑通
具体网站链接如下;
在ROS2中自定义的Publisher类要继承自rclcpp::Node类,rclcpp::Node类中定义了create_publisher()模板函数,可以用来创建一个rclcpp::Publisher实例,本文以std_msgs::msg::String作为模板类型为例,对ros2源码中提供的minimal_publisher/lambda.cpp进行分析,该示例创建了一个publisher并使用lambda函数进行std_msg::msg::String格式的消息发送,该程序源码位于ros2源码src/ros2/examples/rclcpp/topics/目录下。
Node::create_publisher()中调用rclcpp::create_publisher()函数,调用detail::create_publiser()函数。上面的示例的模板类型std_msgs::msg::String对应MessageT模板。
detail::create_publiser()最终调用的是NodeTopics::create_publisher(),该函数实现是调用了第二个传入参数publishe