理解ROS的节点(NODE)

经过前面的学习,我们已经知道了如何构建一个ROS的包,这篇博客将介绍ROS中的节点的概念。

在继续之前,请按ctrl+alt+t打开一个终端,在里面输入:

sudo apt-get install ros-<distro>-ros-tutorials

安装一个轻量级的模拟器,命令中的"<distro>"需要替换为你自己的ros版本,若按照前面的教程的话,替换为hydro。

下面来看一下ROS中图的相关概念:

     节点(NODE):一个节点就是一个可执行程序,它使用ROS可以和其他节点进行通信。

     消息(Message):当在一个话题上,发布或订阅时所使用的ROS的数据类型。

     话题(Topic):节点可以在一个话题上发布消息,同样也可以订阅一个话题来接收消息。

     主机(Master):是ROS的名字服务器。

ROS的客户端库允许用不同的编程语言编写的节点之间相互通信。

roscore是你在使用ros之前应该首先运行的程序。在终端中运行roscore:

roscore

rosnode命令显示了正在运行的ros的节点的信息。如下命令列出了活跃的ros节点,新打开一个终端输入:

rosnode list

你将会看到:

/rosout

这说明了当前只有一个节点rosout在运行。

下面的这个命令可以返回活跃的节点的信息:

rosnode info /rosout

rosrun允许你直接运行一个包里面的节点。使用方法如下:

rosrun [package_name] [node_name]

在终端中输入:

rosrun turtlesim turtlesim_node

将会看到在屏幕上出现了一只乌龟。这个命令的作用是运行turtlesim包下面的turtlesim_node节点,多次运行这个命令可能会看到不同的乌龟,这算不算是一个惊喜呢。

新打开一个终端,在里面输入:

rosnode list

可以看到我们刚刚运行的节点,出现在了列表中。

我们还可以在命令行下给运行的节点直接指定名字,将刚刚打开的乌龟关闭。Close the turtlesim window to stop the node (or go back to the rosrun turtlesim terminal and use ctrl-C)。重新运行刚才的节点输入:

$ rosrun turtlesim turtlesim_node __name:=my_turtle

这时我们再次查看运行的节点:

rosnode list

显示的结果:

/rosout
/my_turtle

如果这时还能看到/turtlesim这个节点,那么可能的原因就是你是在terminal中用ctrl+c关闭的,而不是关掉窗口的。还有可能是环境变量$ROS_HOSTNAME的配置不正确。

下面学习另一个rosnode的命令:ping

$ rosnode ping my_turtle

返回的结果是:

rosnode: node is [/my_turtle]
pinging /my_turtle with a timeout of 3.0s
xmlrpc reply from http://aqy:42235/     time=1.152992ms
xmlrpc reply from http://aqy:42235/     time=1.120090ms
xmlrpc reply from http://aqy:42235/     time=1.700878ms
xmlrpc reply from http://aqy:42235/     time=1.127958ms

上面的这条指令执行后,跟网络的ping是一样的,也就是说我们的客户端是可以和这个node相互通讯的,只不过他们的通讯方式是利用xmlrpc。

总结:

这节学到的基本就是rosnode的相关概念和对应的命令行工具。roscore,rosnode,rosrun

转载于:https://www.cnblogs.com/stemon/p/4185564.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值