对于ros节点的理解部分:
节点(nodes)是ros中一个很重要的部分,一个节点等价于一个可执行文件。
通俗理解就是:我们所有写的代码,脚本都是需要执行的,因此需要将我们写的代码等转化成一个ros中可以执行的文件,这个可执行文件在ros中称为节点。
一个节点可以通过ros与其他节点进行一个通信。
意思就是说:假设有一个机器人和一个遥控器,那么机器人和遥控器都开始工作后,就是两个节点:遥控器节点负责发送指令;机器人节点负责监听遥控器下达的指令,并完成相应动作。在这整个过程中,我们可以知道,两个节点之间可以互相通信,从而实现对机器人的遥控功能。当然在这个系统中,也可能不止有两个节点,甚至更多的节点需要根据用户编写的程序来定义。
在运行ros所有程序前必须运行roscore,因为其中不仅会运行roscore,而且是打开了rosmaster。
rosmaster相当于婚姻介绍所,roscore相当于男性,其他节点相当于女性,想要男女信息匹配,需要在rosmaster里面去登记信息,相当于一个中间站一样的东西。所以,如果一开始没有运行roscore程序,所有ros信息都是运行不起来的。
------------------------------------------------------------------------------------------------
对于ros节点的命令使用部分:
现在,我们理解了rosnode(节点)的意思,接下来,我们会了解rosnode的常用命令。
rosnode list | 列出ros中活跃的节点 |
rosnode info <> | 返回一个特定节点的信息 |
rosnode kill <> | 停止指定节点的运行 |
rosnode cleanup | 删除失连节点的注册信息 |
在学会使用rosnode命令后,我们需要让节点运行起来,需要使用到rosrun命令。
rosrun [package_name] [node_name] | 使用包名直接运行一个包内的节点 (不需要知道包的路径) |
---------------------------------------------------------------------------------------------
对于ros节点实操部分:
接下来,我们将接着笔记二中我们创建的ros工作空间实操一遍,详细了解节点意义和命令使用。
首先,打开终端,设置使ros环境生效(每次打开终端都需要输入的命令)
source catkin_ws/devel/setup.bash
接着,打开roscore,同时可以让婚姻介绍所开张
roscore
会得到这样一个和界面:
然后,再打开一个终端,设置环境变量:
source catkin_ws/devel/setup.bash
此时,输入命令
rosnode list
将会得到一个结果
(注意,需要两个终端同时开启的状态下,才能看到)
此时,我们已经得到了婚姻介绍所(master)里面男性(/rosout)的信息,还缺少一个女性的信息。所以,我们使用一个ros自带的一个轻量级的模拟器turtlesim作为女性节点。
在刚刚的基础上,在第二个终端输入命令
rosrun turtlesim turtlesim_node
我们会看到这样一个小乌龟的模拟器界面:
然后,我们打开第三个终端,查看活跃的节点数:
可以发现,我们现在拥有了rosout和turtlesim两个节点。
至此,我们已经能够理解并且深度理解了ros节点的含义,并知道如何使用rosnode和rosrun命令使操作节点啦!!!(p≧w≦q)
标签:ros,ROS,一个,roscore,命令,rosnode,节点 From: https://blog.csdn.net/tommorrowwill/article/details/140182091