Skip to content

核心架构 (Node & Master)

ROS 不是传统意义上的操作系统(如 Windows, Linux),而是一个运行在 Linux 之上的“元操作系统”。它提供了一套用于编写机器人软件的框架、工具库和通讯协议。 它的核心目标是:“不要重复造轮子” (Don’t reinvent the wheel)。

  • 定义: 节点是执行具体计算任务的进程。
  • 比喻: 如果机器人是一个公司,每个“节点”就是一个“员工”。
    • 员工 A (节点 A): 负责读取摄像头。
    • 员工 B (节点 B): 负责识别图像中的人脸。
    • 员工 C (节点 C): 负责驱动轮子移动。
  • 优势: 模块化设计。如果摄像头坏了,只需要重启节点 A,而不需要重启整个系统。
  • 定义: roscore 是 ROS 的核心服务,必须最先启动。
  • 作用: 它是“名称服务”和“通讯录”。节点之间互不认识,必须通过 Master 进行注册和查找,才能建立点对点的连接。
  • 比喻: 公司的“前台”或“中介”。员工 A 想把数据给员工 B,先问前台:“员工 B 在哪里?”,前台牵线后,A 和 B 就可以直接私聊了。

打开终端进行操作:

命令作用示例
roscore启动 ROS Master (必须第一步) ,如果运行了 roslaunch 指令,就不需要运行 roscoreroscore
rosnode list列出当前运行的所有节点rosnode list
rosnode info查看具体节点的信息(订阅/发布了什么)rosnode info /camera_node
rosrun运行一个指定包内的节点rosrun [包名] [节点名]