ROS教程5:理解ROS节点

先决条件:安装轻量级模拟器

使用以下命令安装:

$ sudo apt-get install ros-kinetic-ros-tutorials

不明白为什么以前安装过了还要再安装一次。。。

ros重要概念理解

  • nodes : 节点。一个节点就是一个可执行文件,通过ROS与其他节点通信
  • message: 消息。消息是一种ROS的数据类型,message可以自定义,也可以使用系统的自定义数据格式。message用于订阅或者发布到一个话题
  • topic: 话题。主要用于节点之间的通信,可以发布消息到话题,或者订阅话题一接收消息。
  • master: 节点管理器。ROS名称服务(比如帮助节点找到彼此)
  • rosout: ROS中相当于stdout/stderr。
  • roscore: 主机+rosout+参数服务器

nodes

一个节点其实只不过是ROS程序包中的一个可执行文件。ROS节点可以使用ROS客户库与其他节点通信。节点可以发布或接收一个话题。节点也可以提供或使用某种服务。

(节点是ros中非常重要的一个概念,为了帮助初学者理解这个概念,这里举一个通俗的例子:

例如,咱们有一个机器人,和一个遥控器,那么这个机器人和遥控器开始工作后,就是两个节点。遥控器起到了下达指 令的作用;机器人负责监听遥控器下达的指令,完成相应动作。从这里我们可以看出,节点是一个能执行特定工作任 务的工作单元,并且能够相互通信,从而实现一个机器人系统整体的功能。在这里我们把遥控器和机器人简单定义为两个节点,实际上在机器人中根据控制器、传感器、执行机构等不同组成模块,还可以将其进一步细分为更多的节点,这个是根据用户编写的程序来定义的。)

客户端库

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

  • rospy = python 客户端库
  • roscpp = c++ 客户端库

roscore

运行所有ros程序前必须要先运行roscore

roscore

rosnode

新开一个终端,输入

$ rosnode list

可以看到运行的rosnode,显示

/rosout

这表示当前只有一个节点在运行:rosout。因为这个节点用于收集和记录节点调试输出信息,所以总是运行的

rosnode info命令返回的是关于一个特定节点的信息

$ rosnode info /rosout

rosrun

rosrun 允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径)。
用法:

rosrun [package_name] [node_name]

现在我们可以运行turtlesim包中的turtlesim_node。
然后, 在一个 新的终端:

$ rosrun turtlesim turtlesim_node

就可以看到经典的小乌龟了。
此时在新的终端键入 rosnode list,可以看到对应的node列表为

/rosout
/turtlesim

节点名称重新配置

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

关闭 turtlesim 窗口停止运行节点 (或者回到rosrun turtlesim终端并使用ctrl-C)。现在让我们重新运行它,但是这一次使用Remapping Argument改变节点名称:

$ rosrun turtlesim turtlesim_node __name:=my_turtle

现在,我们退回使用 rosnode list:

$ rosnode list

你会看见类似于:

/rosout
/my_turtle

rosnode ping node_name测试连通性

使用另外一个 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉大秦少游

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值