🤖 roboto_origin_03 Wiki
首页 / URDF / 快速上手与运行

本页面向初次接触 Atom01 机器人描述包的开发者,提供从环境准备、仓库获取到首次成功运行模型可视化的完整快速上手指引。Atom01 是 Roboparty 推出的双足人形机器人平台,本仓库以纯资源形式提供其 URDF 与 MuJoCo 两种格式的运动学与动力学描述,不依赖特定中间件编译,可直接用于 ROS 生态集成或独立物理仿真。阅读本页后,你将能够在 RViz 中检视三维模型外观,并在 MuJoCo 交互式视窗中观察机器人受重力影响的物理行为。

Sources: README.md

环境准备

在开始之前,请确保本地环境已安装以下工具链。若你计划将模型接入机器人软件栈,推荐安装 ROS 2 Humble 或 ROS Noetic,以便使用 robot_state_publisher 与 RViz 进行可视化;若你的目标是物理仿真或强化学习预研,则需 Python 3.8 以上版本,并通过 pip install mujoco 安装 MuJoCo 3.x 的 Python 绑定与内置查看器。Git 用于克隆仓库,如果仅需本地浏览,也可直接下载源码压缩包。

组件 用途 推荐版本/方式
ROS / ROS 2 URDF 可视化与机器人集成 ROS 2 Humble / Noetic
MuJoCo 物理仿真与强化学习 3.x (pip install mujoco)
Python 仿真脚本与工具链 3.8 或更高
Git 仓库克隆 最新版

Sources: README.md

仓库获取与目录结构

通过 Git 将仓库克隆到本地工作空间,并进入项目根目录。项目根目录同时作为 URDF 与 MJCF 的基准路径,因为模型文件内部使用相对路径引用 ../meshes/ 目录下的 STL 网格,若在错误的工作目录中启动仿真,将导致网格加载失败。项目采用双格式并行的扁平化资源架构,核心资产按功能归入四个目录:urdf/ 存放 ROS 标准的机器人描述文件;mjcf/ 提供两套 MuJoCo 仿真场景定义;meshes/ 包含 24 个连杆的 STL 可视化与碰撞网格;terrain_assets/ 则存储地形仿真所需的高度场纹理。两种格式共享同一套网格资源,确保视觉与几何一致性。

atom01_description/
├── urdf/
│   └── atom01.urdf              # ROS 标准机器人描述
├── mjcf/
│   ├── atom01.xml               # 平地仿真场景
│   └── atom01_terrain.xml       # 地形仿真场景
├── meshes/                      # 24 个 STL 网格(视觉与碰撞共用)
│   ├── base_link.STL
│   ├── left_thigh_yaw_link.STL
│   └── ...
└── terrain_assets/
    └── terrain_hfield.png       # 高度场地形纹理

下图为资源架构与数据流向概览:

graph TD
    A[Atom01 描述仓库] --> B[URDF 格式]
    A --> C[MJCF 格式]
    B --> D[urdf/atom01.urdf]
    C --> E[mjcf/atom01.xml<br/>平地仿真]
    C --> F[mjcf/atom01_terrain.xml<br/>地形仿真]
    D --> G[meshes/ 24×STL]
    E --> G
    F --> G
    F --> H[terrain_assets/高度场纹理]

Sources: atom01.urdf atom01.xml atom01_terrain.xml

路径一:URDF 可视化快速体验

若你的目标是机器人系统集成或运动学验证,选择 URDF 路径最为直接。由于本仓库为纯描述包,未附带 launch 文件,需手动启动 ROS 工具链发布机器人状态,再在 RViz2 中添加 RobotModel 显示插件并订阅 /robot_description 话题。对于无 ROS 环境的用户,也可使用 check_urdf 命令验证文件语法正确性。以下命令以 ROS 2 为例:

# 终端 1:发布机器人描述
ros2 run robot_state_publisher robot_state_publisher urdf/atom01.urdf

# 终端 2:启动可视化
ros2 run rviz2 rviz2
# 在 RViz 中添加 RobotModel,将 Fixed Frame 设为 base_link

该 URDF 定义了 24 个连杆与 23 个旋转关节(revolute),涵盖左右腿六自由度链、腰关节、左右臂五自由度链以及头部基座。部分连杆的 collision 标签被注释,在深度集成时可根据需要恢复。

Sources: atom01.urdf atom01.urdf

路径二:MuJoCo 物理仿真快速体验

若你需要观察物理动力学行为或开展控制算法预研,MuJoCo 路径提供了开箱即用的交互体验。在项目根目录执行 Python 单行命令即可启动内置查看器。mjcf/atom01.xml 配置了平面地台与标准重力环境,机器人在浮动基座(free joint)支持下从 0.75 米高度开始坠落并稳定触地。如需测试非平坦地形,将路径替换为 mjcf/atom01_terrain.xml,该场景使用高度场加载 terrain_assets/terrain_hfield.png,并将初始高度提升至 2.75 米以适应地形起伏。

# 安装 MuJoCo(如未安装)
pip install mujoco

# 平地场景
python -c "import mujoco.viewer; mujoco.viewer.launch_from_path('mjcf/atom01.xml')"

# 地形场景
python -c "import mujoco.viewer; mujoco.viewer.launch_from_path('mjcf/atom01_terrain.xml')"

MJCF 模型为 23 个关节各配置了一组电机执行器,控制力矩范围为 ±200 Nm,并为每个执行器输出位置、速度、力矩三组传感数据;同时在躯干处布置了包含姿态四元数、位置、角速度、线速度、线加速度与磁力计的完整 IMU 传感器组,总计 75 组仿真传感器可直接读取。

Sources: atom01.xml atom01.xml atom01.xml atom01_terrain.xml

模型核心能力一览

两种格式针对不同生态设计,下表从结构参数与内置能力维度进行对比,帮助你根据当前阶段选择入口。

对比维度 URDF 格式 MJCF 格式
核心用途 ROS / Gazebo 机器人系统集成 MuJoCo 物理仿真与强化学习
连杆数量 24(含 base_link) 24(含 base_link)
关节配置 23 个 revolute 关节 23 个 revolute + 1 个 floating base
碰撞配置 部分连杆注释掉了 collision 全连杆启用,含摩擦与接触参数
执行器 需外部控制器定义 内置 23 个电机,力矩范围 ±200 Nm
传感器 标准 URDF 无传感器标签 75 组仿真传感器(含 6 轴 IMU)
地形支持 需外部世界文件定义 平地 / 高度场双场景内置

Sources: atom01.urdf atom01.xml atom01.xml

常见问题速查

首次运行时可能遇到的典型问题主要集中在路径与显示两类。若 MuJoCo 报错找不到网格文件,绝大多数情况下是因为启动命令的工作目录不是仓库根目录,导致 ../meshes/ 相对路径解析失败;若 RViz 中模型材质显示为纯白,这是因为 URDF 中 material 标签的 name 属性留空,不影响几何加载,可通过 RViz 显示设置手动调整颜色。此外,MJCF 场景中机器人从空中自由坠落属于预期行为,浮动基座与重力设置会使其自然触地并趋于稳定。

现象 原因 解决方法
MuJoCo 报错 mesh 路径错误 工作目录非仓库根目录 atom01_description/ 下执行命令
RViz 模型材质为白色 URDF material name 为空 在 RViz 中手动覆盖颜色显示
仿真开始时机器人坠落 free joint + 重力初始化 正常现象,触地后稳定
地形场景机器人初始过高 初始高度设为 2.75m 正常现象,适应地形起伏

Sources: atom01.urdf atom01.xml atom01.xml

下一步阅读指引

完成首次可视化后,建议按照以下顺序深入阅读文档。如需理解项目设计哲学与核心价值,请前往 项目概述与核心价值;如需掌握每个目录与文件的详细职责,请阅读 仓库结构与文件组织;若已确定使用 ROS 路线,继续阅读 ROS URDF 加载与可视化 获取 launch 文件编写与坐标系调试技巧;若选择 MuJoCo 仿真路线,则进入 MuJoCo 仿真环境配置 以深入理解 timestep、solver 与接触参数的含义。