[置顶] ROS的学习(六)理解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

可以看到我们刚刚运行的节点,出现在了列表中。我们还可以在命令行下给运行的节点直接指定名字,将刚刚打开的乌龟关闭,输入:
rosrun turtlesim turtlesim_node __name:=my_turtle

再使用rosnode list 就可以看到我们所修改的名字。

     还可以使用ping命令:

rosnode ping my_turtle


你可能感兴趣的:(robot,ROS,operating,syst,节点node)