特性
核心架构
- 可用完整的 MuJoCo C API (
mjModel*,mjData*) -- 用户可以直接调用任何 MuJoCo 函数。 - 具有可配置时间步长的异步物理线程
- 基于组件的设计与 MJCF 元素层次结构相匹配
MjManager单例负责协调编译、步进和状态
MJCF 导入
支持将 XML 文件拖放到内容浏览器(Content Browser)中。自动生成包含完整组件层级结构、网格转换、材质导入和默认类继承的虚幻引擎蓝图。
详情请参阅 MuJoCo 导入 。
快速转换
- 一键将任何 Unreal 静态网格体转换为 MuJoCo 物理实体
- 具有可调阈值(0.01-1.0)的 CoACD 凸分解
- 视觉/碰撞网格分离(第 2 组视觉,第 3 组碰撞)
- 静态、动态或动作捕捉驱动模式
- 摩擦力,求解器参数可按组件配置
高度场地形
- 将虚幻场景转换为 MuJoCo 高度场碰撞
- 可配置的采样分辨率(2-512)
- 用于精确网格采样的复杂轨迹模式
- 动作者白名单过滤
- 用于快速重新编译的二进制缓存
- 编辑器网格预览可视化
物理模拟
- 求解器: PGS, CG, 牛顿法
- 积分器:欧拉积分器、RK4积分器、隐式积分器、快速隐式积分器
- 模拟速度控制 (5-100%)
- 暂停、恢复、重置、单步
- 快照捕获和恢复(完整状态)
- 关键帧重置并保持
- 提供个性化睡眠支持
- 多连续碰撞检测 (Continuous Collision Detection,CCD)
- 重力、风、密度、粘度
执行器(8 种类型)
运动、位置、速度、IntVelocity、阻尼器、Cylinder、肌肉、粘附力
- 所有传动类型:关节(joint)、肌腱(tendon)、位点(site)、刚体(body)、滑块曲柄(slider-crank)
- 通过
SetControl()(BlueprintCallable)进行运行时控制 - 增益/偏置参数数组
- 控制/力/激活范围限制
传感器(40多种类型)
位点附属: 触摸传感器、加速度计、速度计、陀螺仪、力传感器、扭矩传感器、磁力计、测距仪(RangeFinder)、摄像头投影(CamProjection)
关节/肌腱/执行器: 每个关节/肌腱/执行器的位置、速度和力矩。
球形关节: Quat, AngVel
坐标系: Pos, Quat, XYZ 轴, LinVel, AngVel, LinAcc, AngAcc
子树: COM, LinVel, AngMom
Geometric: InsideSite, GeomDist, GeomNormal, GeomFromTo
全局: 接触(Contact), EPotential, EKinetic, Clock
- 所有内容均可通过
GetSensorReading()/GetSensorScalar()在连接处读取(BlueprintCallable)
控制器
比例微分 (proportional plus derivative, PD)控制器、直通(passthrough)、关键帧和扭转控制器用于控制关节运动。关键帧控制器内置 Franka、UR5e、Spot、ANYmal 和 Go2 的预设。
详情请参阅 控制器框架 。
调试可视化
在编辑器运行(PlayInEditor, PIE) 期间,可通过热键切换接触点、碰撞线框、关节轴和视觉网格。可通过 MjSimulate 小部件实现单关节和全局切换。
请参阅 蓝图参考文档 以获取所有快捷键。
相机系统
- MjCamera: 场景捕获功能,连接到 MuJoCo 位点,通过 ZMQ 进行流传输,并遵循后期处理体积(volume)。
- MjOrbitCamera: 具备目标检测、高度摆动和可配置焦距的自动旋转影视级摄像机
- MjKeyframeCamera: 基于路径点的相机路径,具有平滑插值、
O关键帧播放/暂停功能
有关相机 API 的详细信息,请参阅 蓝图参考文档 。
网络 (Zero Message Queue、ZMQ)
采用二进制发布/订阅协议广播关节状态、传感器和摄像头图像。接收执行器目标值和PD增益。针对多关节场景采用基于前缀的滤波。
详情请参阅 ZMQ 网络文档 。
Python 集成 (urlab_bridge)
- 策略 GUI: DearPyGui 控制面板,用于策略选择、执行器目标定位、力扭转覆盖、运动/步态预设选择。
- UnrealEnv: 基于 ZMQ 的 RoboJuDo 兼容环境,具备自动检测、正向运动学和出生点对齐功能
- 预集成策略:Unitree G1 移动(12/29 自由度)、BeyondMimic(舞蹈/小提琴/华尔兹/跳跃)、Walk-These-Ways Go2、AMO、H2H、Smooth、ASAP
- ROS 2 桥接器: 将 ZMQ 流重新发布到标准 ROS 2 主题
重放系统
记录和重放完整的仿真状态。支持 CSV 轨迹导入、快照捕获/恢复和多会话管理。
有关记录/回放 API 的信息,请参阅 蓝图参考文档 。
蓝图 API
40 多个 BlueprintCallable 函数,用于模拟控制、状态查询、执行器命令、快照和重放。
有关完整的 API 参考,请参阅 使用蓝图编写脚本 。
MjSimulate 小部件
- 编辑器内仪表板复制了 MuJoCo 的模拟用户界面
- 物理选项:时间步长、求解器、积分器、迭代次数、模拟速度
- 每个执行器控制滑块
- 关节状态读数
- 传感器值显示
- 摄像头画面缩略图
- 执行器选择下拉菜单
- 记录/回放/快照的控制
- 拥有用于弹簧臂相机跟随的按钮
力
- MjImpulseLauncher: 基于速度的对象启动(与 MuJoCo 的 object_launcher_plugin 方法相匹配)
- 直接模式(箭头方向+速度)或目标模式(弹道弧线指向目标参与者)
- 在 PIE 期间进行迭代测试的重置和触发
- 按
F键触发场景中的所有启动器
模拟快捷键
请参阅 快捷键 以获取完整的键盘快捷键列表。
网格制备工具
Scripts/clean_meshes.py: 支持 XML 的网状转换器- 解析 MJCF,检测 GLB stem 冲突,自动重命名
- 将 OBJ/STL 转换为 GLB 并保留 UV 值
- 移除嵌入纹理以防止 Interchange 导入冲突
- 输出已更新,
_ue.xml可进行拖放导入