ROS2(一) :从 0 到 1 理解 Node、Topic、Package 与工作区
1. 适用环境
- 系统:Ubuntu 24.04(WSL2)
- ROS2:Jazzy Jalisco
- 语言:Python 3.12
- 场景:无实体机器人,先在仿真/命令行环境建立基础
2. ROS2 到底是什么
ROS2 不是一门编程语言,也不是传统意义上的操作系统,而是机器人软件开发框架。可以把它理解为:
通信框架 + 工程组织方式 + 机器人生态工具集
初学阶段最关键的是先掌握通信模型。
3. 三个最核心概念(入门必会)
3.1 Node(节点)
节点是最小功能单元。一个节点通常只做一件事。
- 例如:发布传感器数据、接收控制指令、打印日志
- 类比:一个团队成员负责一个岗位职责
3.2 Topic(话题)
话题是节点之间传输数据的“频道”。
- 发布者向话题发送消息
- 订阅者从话题接收消息
- 类比:群聊频道
3.3 Message(消息)
消息是话题里传输的数据格式。
- 例如:
std_msgs/msg/String - 含义:发送的是字符串类型数据
4. 首次验证通信链路:talker 与 /chatter
典型验证路径:
- 启动发布者(talker)
- 查看节点列表
- 查看话题列表
- 查看话题详情(类型、发布者数量、订阅者数量)
观察重点:
/talker出现在节点列表,说明节点在运行/chatter出现在话题列表,说明通信通道已建立Publisher count: 1,说明有发布者在发数据
5. 为什么经常要执行 source setup.bash
source /opt/ros/jazzy/setup.bash 的作用是给当前终端加载 ROS2 环境变量。
若系统已在 ~/.bashrc 自动配置,可能新终端可直接使用 ros2 命令;
但在团队项目、容器环境、CI 环境中,手动 source 仍是高频操作。
建议形成习惯:
- 进入新 ROS2 会话先确认环境
- 需要时明确执行
source
6. 工作区(Workspace)结构
标准 ROS2 工作区通常包含四个目录:
src/:源码目录(只在这里写代码)build/:构建中间产物install/:安装结果(运行依赖这里)log/:构建日志
核心原则:
日常开发主要修改 src/,其他目录由工具自动维护。7. 第一个 Python 包的创建与注册
在 src/ 下创建包:
- 包名示例:
py_pubsub_demo - 构建类型:
ament_python
创建后会自动生成:
package.xml:包元信息(名称、版本、依赖)setup.py:Python 安装与入口配置resource/:包索引资源<包名>/__init__.py:Python 包目录test/:模板测试文件
构建成功后,可通过包列表命令检索到该包,说明工作区链路已打通。
8. 常见问题:colcon: command not found
原因:系统未安装构建工具链。
解决:安装 python3-colcon-common-extensions,再执行构建。
评论 (0)