Node & Master——roscore、rosrun、rosnode

1、Node

ROS的世界里, 最小的进程单元就是节点( node) 。 一个软件包里可以有多个可执行文
件, 可执行文件在运行之后就成了一个进程(process), 这个进程在ROS中就叫做节点。

2、Master

由于机器人的元器件很多, 功能庞大, 因此实际运行时往往会运行众多的node, 负责感知世
界、 控制运动、 决策和计算等功能。 那么如何合理的进行调配、 管理这些node? 这就要利用
ROS提供给我们的节点管理器master, master在整个网络通信架构里相当于管理中心, 管理着
各个nodenode首先在master处进行注册, 之后master会将该node纳入整个ROS程序中。
node之间的通信也是先由master进行牵线, 才能两两的进行点对点通信。 当ROS程序启动
时, 第一步首先启动master, 由节点管理器处理依次启动node

3、启动masternode

当我们要启动ROS时, 首先输入命令:

$ roscore

此时ROS master启动, 同时启动的还有 rosout parameter server ,其中 rosout 是负责日
志输出的一个节点, 其作用是告知用户当前系统的状态, 包括输出系统的errorwarning
等, 并且将log记录于日志文件中, parameter server 即是参数服务器, 它并不是一个node
而是存储参数配置的一个服务器

启动node的语句是: 

$ rosrun pkg_name node_name

MasterNode之间以及Node之间的关系如下图所示:

4、rosrunrosnode命令

扫描二维码关注公众号,回复: 4023388 查看本文章

rosrun命令的详细用法如下:

$ rosrun [--prefix cmd] [--debug] pkg_name node_name [ARGS]

rosrun将会寻找PACKAGE下的名为EXECUTABLE的可执行程序, 将可选参数ARGS传入。
例如在GDB下运行ros程序:

$ rosrun --prefix 'gdb -ex run --args' pkg_name node_name

rosnode命令的详细作用列表如下:

猜你喜欢

转载自www.cnblogs.com/long5683/p/9941531.html