1、Node
在ROS的世界里, 最小的进程单元就是节点( node) 。 一个软件包里可以有多个可执行文
件, 可执行文件在运行之后就成了一个进程(process), 这个进程在ROS中就叫做节点。
2、Master
由于机器人的元器件很多, 功能庞大, 因此实际运行时往往会运行众多的node, 负责感知世
界、 控制运动、 决策和计算等功能。 那么如何合理的进行调配、 管理这些node? 这就要利用
ROS提供给我们的节点管理器master, master在整个网络通信架构里相当于管理中心, 管理着
各个node。 node首先在master处进行注册, 之后master会将该node纳入整个ROS程序中。
node之间的通信也是先由master进行“牵线”, 才能两两的进行点对点通信。 当ROS程序启动
时, 第一步首先启动master, 由节点管理器处理依次启动node。
3、启动master和node
当我们要启动ROS时, 首先输入命令:
$ roscore
此时ROS master启动, 同时启动的还有 rosout 和 parameter server ,其中 rosout 是负责日
志输出的一个节点, 其作用是告知用户当前系统的状态, 包括输出系统的error、 warning等
等, 并且将log记录于日志文件中, parameter server 即是参数服务器, 它并不是一个node,
而是存储参数配置的一个服务器
启动node的语句是:
$ rosrun pkg_name node_name
Master、 Node之间以及Node之间的关系如下图所示:
4、rosrun和rosnode命令
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命令的详细作用列表如下:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)