ROS2(一) :从 0 到 1 理解 Node、Topic、Package 与工作区
侧边栏壁纸
  • 累计撰写 11 篇文章
  • 累计收到 1 条评论
ROS

ROS2(一) :从 0 到 1 理解 Node、Topic、Package 与工作区

tqtqtq
2026-03-18 / 0 评论 / 1 阅读 / 正在检测是否收录...

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

典型验证路径:

  1. 启动发布者(talker)
  2. 查看节点列表
  3. 查看话题列表
  4. 查看话题详情(类型、发布者数量、订阅者数量)

观察重点:

  • /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

评论 (0)

取消