核心架构 (Node & Master)
什么是 ROS?
Section titled “什么是 ROS?”ROS 不是传统意义上的操作系统(如 Windows, Linux),而是一个运行在 Linux 之上的“元操作系统”。它提供了一套用于编写机器人软件的框架、工具库和通讯协议。 它的核心目标是:“不要重复造轮子” (Don’t reinvent the wheel)。
核心组件:节点 (Node)
Section titled “核心组件:节点 (Node)”- 定义: 节点是执行具体计算任务的进程。
- 比喻: 如果机器人是一个公司,每个“节点”就是一个“员工”。
- 员工 A (节点 A): 负责读取摄像头。
- 员工 B (节点 B): 负责识别图像中的人脸。
- 员工 C (节点 C): 负责驱动轮子移动。
- 优势: 模块化设计。如果摄像头坏了,只需要重启节点 A,而不需要重启整个系统。
核心组件:节点管理器 (Master)
Section titled “核心组件:节点管理器 (Master)”- 定义:
roscore是 ROS 的核心服务,必须最先启动。 - 作用: 它是“名称服务”和“通讯录”。节点之间互不认识,必须通过 Master 进行注册和查找,才能建立点对点的连接。
- 比喻: 公司的“前台”或“中介”。员工 A 想把数据给员工 B,先问前台:“员工 B 在哪里?”,前台牵线后,A 和 B 就可以直接私聊了。
常用管理命令 (CLI)
Section titled “常用管理命令 (CLI)”打开终端进行操作:
| 命令 | 作用 | 示例 |
|---|---|---|
roscore | 启动 ROS Master (必须第一步) ,如果运行了 roslaunch 指令,就不需要运行 roscore。 | roscore |
rosnode list | 列出当前运行的所有节点 | rosnode list |
rosnode info | 查看具体节点的信息(订阅/发布了什么) | rosnode info /camera_node |
rosrun | 运行一个指定包内的节点 | rosrun [包名] [节点名] |