简单的发布节点
因为个人是机械背景,所以该部分所有code都是CPP。这部分我们就写一个简单的订阅和发布节点。“Node”是ROS中可执行文件的术语,用于连接ROS通信网络。我们先来写一个发布(“talker”)节点,让他持续向外广播消息:
$ roscd beginner_tutorials/src
$ gedit talker.cpp
输出下面这些内容:
#include "ros/ros.h"
#include "std_msgs/String.h"
#include <sstream>
/**
* This tutorial demonstrates simple sending of messages over the ROS system.
*/
int main(int argc, char **argv)
{
/**
* The ros::init() function needs to see argc and argv so that it can perform
* any ROS arguments and name remapping that were provided at the command line.
* For programmatic remappings you can use a different version of init() which takes
* remappings directly, but for most command-line programs, passing argc and argv is
* the easiest way to do it. The third argument to init() is the name of the node.
* * You must call one of the versions of ros::init() before using any other
* part of the ROS system.
*/
ros::init(argc, argv, "talker");
/**
* NodeHandle is the main access point to communications with the ROS system.
* The first NodeHandle constructed will fully initialize this node, and the last
* NodeHandle destructed will close down the node.
*/
ros::NodeHandle n;
/**
* The advertise() function is how you tell ROS that you want to
* publish on a given topic name. This invokes a call to the ROS
* master node, which keeps a registry of who is publishing and who
* is subscribing. After this advertise() call is made, the master
* node will notify anyone who is trying to subscribe to this topic name,
* and they will in turn negotiate a peer-to-peer connection with this
* node. advertise() returns a Publisher object which allows you to
* publish messages on that topic through a call to publish(). Once
* all copies of the returned Publisher object are destroyed, the topic
* will be automatically unadvertised.
* * The second parameter to advertise() is the size of the message queue
* used for publishing messages. If messages are published more quickly
* than we can send them, the number<

这篇博客介绍了ROS中的简单发布节点和订阅节点的创建。首先,通过编写cpp代码展示了如何创建一个发布节点,持续在chatter主题上广播std_msgs/String消息。然后,讲解了订阅节点的实现,当接收到新消息时,会调用回调函数处理。最后,提到了编译节点的CMakeLists.txt配置,并给出了运行节点的命令。
&spm=1001.2101.3001.5002&articleId=62417711&d=1&t=3&u=dfa0100ea1a745aebd4d7629329e5b27)
2万+

被折叠的 条评论
为什么被折叠?



