ROS节点

来源:互联网 发布:知乎live 编辑:程序博客网 时间:2024/05/17 01:56
  • Nodes:节点,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。

  • Messages:消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。

  • Topics:话题,节点可以发布消息到话题,也可以订阅话题以接收消息。

  • Master:节点管理器,ROS名称服务 (比如帮助节点找到彼此)。

  • rosout: ROS中相当于stdout/stderr。

  • roscore: 主机+ rosout + 参数服务器 (参数服务器会在后面介绍)。

节点

一个节点其实只不过是ROS程序包中的一个可执行文件。ROS节点可以使用ROS客户库与其他节点

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

  • rospy = python 客户端库
  • roscpp = c++ 客户端库
通信。节点可以发布或接收一个话题。节点也可以提供或使用某种服务。

roscore 是你在运行所有ROS程序前首先要运行的命令。

$ roscorerosnode  显示当前运行的ROS节点信息。rosnode list 指令列出活跃的节点:rosout 因为这个节点用于收集和记录节点调 试输出信息,所以它总是在运行的。

ROS的一个强大特性就是你可以通过命令行重新配置名称。

关闭 turtlesim 窗口停止运行节点 (或者回到rosrun turtlesim终端并使用`ctrl

-C`)。现在让我们重新运行它,但是这一次使用Remapping Argument改变节点名称:

$ rosrun turtlesim turtlesim_node __name:=my_turtle
使用另外一个 rosnode 指令, ping, 来

测试:

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


rosrun
rosrun 允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径)。
用法:
$ rosrun [package_name] [node_name]例子:
$ rosrun turtlesim turtlesim_node,小乌龟





原创粉丝点击