Rosnode命令系列

命令系列list
这个命令主要是列举出现如今在本项目文件下,已经正在被运行的节点 。示例如下:
【Rosnode命令系列】我已经运行了我编写的源文件,一个是节点所在的.cpp文件以及节点所在的.cpp源文件 。当我运行完这两个源文件之后,我在转到这个项目文件下调用 list就可以列举出现在正在运行的节点了 。
kill
这个命令顾名思义就是“杀死正在运行的节点,即结束该节点的运行,千万不要以为是删除该节点哈”,示例如下:
当我输入 kill 之后,左下角这个命令窗口出现了:
这说明,我们成功结束了该节点的运行 。但是有一点需要注意:该命令只能结束正在运行的节点,这并不意味着该节点不能在再次被启动!

Rosnode命令系列

文章插图
info
打印本项目文件下任意节点的信息:
使用这个命令可以列出指定设备上正在运行的节点名称,ROS可以应用于分布式系统中,即节点可以存在于不同的设备上,这个命令可以帮助我们获取“指定设备上正在运行的节点名称” 。
清除无法立即联系的任何节点的注册 。打印必须确认的不可达节点列表,无需带任何参数 。那啥叫“不可达节点呢?”一个节点一旦被认定成为“不可达节点”说明这个节点没有与其搭配完成指定任务的节点,例如:在服务通信中只有一对“服务端节点和客户端节点”才能完成服务通信这个功能,但是只有服务端节点或者只有客户端节点,这根本没法完成通信,就好比“你在这里喊破了嗓子那边也没有人回应你” 。这种单个节点或者不完整的节点就叫做“不可达节点” 。
操作如下:
但是这样做确实可以去掉一些现在还没有用的节点,但是这些节点现在没有用不代表以后没有用,也就是说你现在把XXX节点清除了,但是人家一会还得用XXX节点呢,例如:
我先启动一下服务通信模式下的客户端,现在客户端正在等待服务端的启动,但是如果我们此时调用 命令呢?就会出现如下情况:
打印出了我们所需要的“不可达节点名单(就是):”,由于只有客户端节点没有服务端节点可用,因此被认为是“不可达节点”,调用命令后紧接着系统就询问我们“是否需要清楚这个不可达节点” 。但是问题又来了:我又没说我服务端的节点不启动,我可能待会启动,但是你这一个指令把客户端节点清除了,那我在调用服务端节点时谁给我回应呢?你这一个直接把服务通信的两个节点都整残废了,因此这个命令一般建议使用 。
ping
我们在通信中一听”ping”这个单词就想到“双方连接建立成功”,这个指令顾名思义其功能就是“测试某个节点是否可以与相同topic的另一个节点实现通信,这个简单的验证了一个节点是否可以完成与另一个接待你的可能性” 。操作如下:
当我们调用指令之后,系统反馈给我们两个节点实时响应的日志信息,只要可以出现如上图所示的通信日志,就说明系统中存在可以与“你测试的这个名为的节点”建立通信的节点 。