模块 2:认识 T800 机器人仿真模型

第一章:项目文件准备

第二章:T800模型核心认知

第三章:加载并运行T800机器人仿真


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

前言

上一篇我们完成了 MuJoCo 环境搭建,并且跑通了方块下落的最小 Demo。本节课正式进入T800人形机器人项目核心实操,摒弃简单的基础几何体仿真,完成真实人形机器人模型的完整加载、可视化调试与基础参数读取。本节课是后续PD姿态控制、自主行走、AI策略训练的前置核心铺垫,只有熟练掌握机器人模型结构与仿真初始化逻辑,才能顺利开展后续机器人控制开发。

前置条件

  1. 已经完成 MuJoCo 环境安装,Python 版本 3.11,t800 conda 虚拟环境已激活。
  2. 获取课程配套的 T800 机器人 mjcf/xml 模型文件,把模型文件放到代码同级目录。

提示:以下是本篇文章正文内容,下面案例可供参考

第一章:项目文件准备

想要成功加载T800机器人模型,仅靠MuJoCo环境远远不够,必须配齐课程配套完整模型资源,这是新手最容易踩坑的点。

整套T800仿真模型由两类核心文件组成,缺一不可:

  • 主模型文件(.xml/.mjcf):MuJoCo专属配置文件,定义机器人整体结构、关节参数、电机属性、物理约束、仿真场景等核心配置

  • 网格资源文件夹(mesh):存放机器人全身零部件的三维模型贴图与网格文件,决定机器人可视化外观,缺失会导致模型加载残缺、报错

1.1T800文件资源下载

T800仿真模型文件下载地址为:GitHub - engineai-robotics/engineai_robotics_native_sdk: This repository provides the EngineAI Native Control SDK, designed for humanoid robot application development and system integration. · GitHub

也可以使用我已下载好的资源:https://download.csdn.net/download/lagelangri666/93403469。资源下载好后,解压得到类似下图的文件夹结构。

其中asserts文件夹中存放的是T800的xml文件和运行所需的基础信息和环境信息。这些都是要拷贝到项目目录中去的。

1.2项目构建与验证

第一步,构建一个文件夹,并将上面的资源导入文件夹中

第二步,创建一个脚本,读取T800的xml,确定文件加载正常

提示语:帮我写一个最简单的demo代码,文件名为02_t800_info.py,mujoco加载xml信息,然后打印model的身体部件数量,打印关键数量和电机数量

生成代码如下。

"""
02_t800_info.py
MuJoCo 加载 t800.xml 并打印模型基本信息(最简 demo)
运行: D:/miniconda3/envs/t800/python.exe 02_t800_info.py
"""
import mujoco
XML_PATH = "t800.xml"
model = mujoco.MjModel.from_xml_path(XML_PATH)
print(f"模型: {XML_PATH}")
print(f"身体(body)数量: {model.nbody}")
print(f"关节(joint)数量: {model.njnt}")
print(f"电机(actuator)数量: {model.nu}")

在Anaconda Prompt中运行该段代码,查看打印信息。

(base) C:\Users\qx>conda activate t800        #激活环境
(t800) C:\Users\qx>cd Desktop
(t800) C:\Users\qx\Desktop>cd T800
(t800) C:\Users\qx\Desktop\T800>cd code2      #切换到代码存储路径
(t800) C:\Users\qx\Desktop\T800\code2>dir
驱动器 C 中的卷是 系统
卷的序列号是 F0FB-90CF
C:\Users\qx\Desktop\T800\code2 的目录
2026-09-07  14:57    <DIR>          .
2026-09-07  14:57    <DIR>          ..
2026-09-07  14:57               412 02_t800_info.py    ##这就是需要运行的代码
2026-09-07  14:54    <DIR>          environment
2026-09-07  14:54    <DIR>          robot
2026-08-04  22:07               406 t800.xml
2 个文件            818 字节
4 个目录 104,640,311,296 可用字节
(t800) C:\Users\qx\Desktop\T800\code2>python 02_t800_info.py      ##执行这句命令

第二章:机器人参数介绍

2.1机器人参数介绍

在 MuJoCo 仿真模型中,众擎 T800 人形机器人的模型对象MjModel提供 5 个核心属性,对应机器人硬件结构与运动能力,这 5 个参数是后续读取机器人状态、编写控制代码、设计强化学习观测空间的基础。

参数含义通俗类比(T800)
nbody刚体连杆总数量T800 机器人全部零件、刚体 “骨骼块” 总数,对应躯干、大臂、小臂、大腿、小腿等一个个物理实体部件。
njnt关节轴总数量T800 各个刚体之间的运动关节轴数量,相当于骨骼之间的转动连接轴,决定机器人哪里可以转动。
nq姿态广义坐标数量描述机器人全身姿态的参数个数,包含机身根节点位置姿态 + 全部关节角度,用来完整描述 T800 此时此刻摆成什么姿势。
nv速度广义坐标数量机器人运动速度参数维度,对应每个关节、机身的运动角速度,记录 T800 各个部件转动、移动有多快。
nu可控电机执行器数量T800 仿真模型中可控制的电机数量,也就是我们代码中可以下发力矩指令控制的驱动单元。

2.2机器人参数查看

在之前的内容中,我们已经获取了T800的nbody,njnt这两个参数,现在创建一个脚本,读取T800的nq,nv,nu参数。

提示语:帮我实现一个03_T800_nq_nv_nu.py脚本,打印机器人的nq,nv和nu参数

"""
03_T800_nq_nv_nu.py
打印 T800 机器人的 nq(广义位置维度)、nv(广义速度维度)、nu(控制维度)
运行: D:/miniconda3/envs/t800/python.exe 03_T800_nq_nv_nu.py
"""
import mujoco
model = mujoco.MjModel.from_xml_path("t800.xml")
print(f"nq (广义位置维度 qpos): {model.nq}")
print(f"nv (广义速度维度 qvel): {model.nv}")
print(f"nu (控制输入维度 ctrl): {model.nu}")

(base) C:\Users\qx>conda activate t800          ##激活环境
(t800) C:\Users\qx>cd Desktop\T800\code2        ##切换到代码存放路劲
(t800) C:\Users\qx\Desktop\T800\code2>dir
驱动器 C 中的卷是 系统
卷的序列号是 F0FB-90CF
C:\Users\qx\Desktop\T800\code2 的目录
2026-09-07  15:26    <DIR>          .
2026-09-07  15:26    <DIR>          ..
2026-09-07  14:57               412 02_t800_info.py
2026-09-07  15:26               413 03_T800_nq_nv_nu.py
2026-09-07  14:54    <DIR>          environment
2026-09-07  14:54    <DIR>          robot
2026-08-04  22:07               406 t800.xml
3 个文件          1,231 字节
4 个目录 104,583,376,896 可用字节
(t800) C:\Users\qx\Desktop\T800\code2>python 03_T800_nq_nv_nu.py       ##执行该命令
nq (广义位置维度 qpos): 32
nv (广义速度维度 qvel): 31
nu (控制输入维度 ctrl): 25

第三章:图形化展示T800

提示语:帮我编写一个脚本04_T800_viewer.py通过viewer把t800机器人展示到界面上

要点

  • mujoco.viewer.launch_passive(model, data) 启动非阻塞交互式窗口
  • 循环里 mj_step 推进物理仿真,viewer.sync() 同步刷新画面
  • 窗口里可以鼠标拖拽旋转视角、滚轮缩放、右键菜单切换可视化选项
"""
04_T800_viewer.py
通过 MuJoCo viewer 可视化 T800 机器人
运行: D:/miniconda3/envs/t800/python.exe 04_T800_viewer.py
"""
import mujoco
import mujoco.viewer
model = mujoco.MjModel.from_xml_path("t800.xml")
data = mujoco.MjData(model)
launch_passive 启动交互式 viewer, 窗口关闭后返回
with mujoco.viewer.launch_passive(model, data) as viewer:    ##导入model与data
while viewer.is_running():
mujoco.mj_step(model, data)

viewer.sync()

启动时,机器人没有通电,直接瘫倒在地上。


总结

本文围绕众擎 T800 人形机器人在 MuJoCo 仿真环境中的加载与基础认知展开,共分为三个章节,逐步带领读者从零完成真实人形机器人模型的完整实操。

第一章:项目文件准备。首先明确了 T800 仿真模型由主模型文件(.xml/.mjcf)和网格资源文件夹(mesh)两类核心文件组成,缺一不可。随后介绍了从 GitHub 官方仓库下载模型资源的方法,并演示了如何将资源导入项目目录。最后通过编写并运行 02_t800_info.py 脚本,成功加载 t800.xml 并打印出模型的身体部件数量、关节数量和电机数量,验证了模型文件加载正常。

第二章:机器人参数介绍。重点讲解了 MuJoCo 中 MjModel 对象提供的 5 个核心属性:nbody(刚体连杆总数量)、njnt(关节轴总数量)、nq(姿态广义坐标数量)、nv(速度广义坐标数量)和 nu(可控电机执行器数量),并通过表格对每个参数的含义和通俗类比进行了说明。随后编写并运行 03_T800_nq_nv_nu.py 脚本,实际读取并打印了 T800 的 nq=32nv=31nu=25 三个参数,完成了对机器人模型参数的全面查看。

第三章:图形化展示T800。通过编写 04_T800_viewer.py 脚本,使用 mujoco.viewer.launch_passive(model, data) 启动非阻塞交互式窗口,配合 mj_step 推进物理仿真和 viewer.sync() 同步刷新画面,成功将 T800 机器人以三维图形形式展示在界面上,并支持鼠标拖拽旋转视角、滚轮缩放等交互操作。

通过本文的学习,读者已经掌握了 T800 机器人模型的完整加载流程、核心参数含义与查看方法,以及图形化可视化调试的基本操作。这些内容为后续的 PD 姿态控制、自主行走和 AI 策略训练打下了坚实的基础。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐