uBotMuJoCo
uBotMuJoCo 是规划中的物理插件,目前尚未发布。
规划中 尚未发布,计划版本 0.1.0
UE 自带的 Chaos 是游戏物理,接触、摩擦和关节的精度不够做抓取这类任务。uBotMuJoCo 让 MuJoCo 计算机器人的物理,算完把位姿写回 UE,画面、传感器和 ROS 2 照常工作。
Chaos 仍是默认的物理引擎,不会被替换:MuJoCo 只负责交给它的物体,场景里其他物体还由 Chaos 计算。用的是原版 UE 5.5,不需要改引擎。
在 uBot Manager 里它显示为「规划中」,按钮是「暂不可用」,现在不能安装。
计划提供的能力
Section titled “计划提供的能力”| 能力标签 | 含义 |
|---|---|
Physics.MuJoCo |
由 MuJoCo 计算一部分物体的物理,按仿真时钟步进,结果写回 UE |
Body.Articulated |
关节型机器人:机械臂、足式机器人等,第一版只做这一类 |
计划的工作方式:
| 环节 | 做法 |
|---|---|
| 步进 | 跟随 uBotCore 的仿真时钟,每个 UE 帧跑几个 MuJoCo 子步。暂停时不步进,单步时推进一帧 |
| 每帧顺序 | 时钟推进 → 写入控制指令 → MuJoCo 子步 → 位姿写回 UE 组件 → 传感器采样,传感器读到的总是这一帧算完的状态 |
| 写回 UE | 由 MuJoCo 计算的组件不再由 Chaos 模拟,只接收位姿;保留查询用的碰撞,相机和激光雷达照常看得到 |
| 场景同步 | 静止的物体(地面、墙、桌子)复制一份碰撞体给 MuJoCo;Chaos 里移动的物体作为运动学物体同步过去,它能推动 MuJoCo 里的物体,自己不受反作用 |
| 坐标 | MuJoCo 和 ROS 一样是右手系、Z 轴朝上、单位米,沿用 uBotCore 现有的 UE 与 ROS 转换,见坐标系与单位 |
| 模型 | 从 MJCF 或 URDF 导入,同时生成 UE 里的显示模型和 MuJoCo 模型 |
使用时有两条限制:
- 会互相碰撞的物体要放在同一个物理引擎里。比如机械臂和它要抓的物体都交给 MuJoCo;跨引擎的接触只能单向近似,不在计划之内。
- UE 里一次仍然只运行一个场景,大规模并行训练放在纯 MuJoCo 里做。同一份 MJCF 模型在 MuJoCo 里训练、在 UE 里加上画面和传感器验证,两边用的是同一个模型。
尚未确定:组件和蓝图类的名称与属性,关节级指令(位置、速度、力矩)的接口,支持的 MuJoCo 版本。
与现有插件的关系
Section titled “与现有插件的关系”- uBotCore:按包索引,它只依赖 uBotCore 0.1.x。计划在 uBotCore 的扩展点注册机制里声明一个“物理后端”扩展点,以后别的物理引擎也接在这里。
- uBotSensor:传感器从组件位姿计算速度和加速度,不读物理引擎,所以装在 MuJoCo 机器人上的传感器不用改。计划再加一个可选的数据来源,让 IMU 直接读 MuJoCo 算出的加速度。
- uBotROS:机器人实现
UBot Velocity Commandable后,ROS 2 的cmd_vel就能驱动它,uBotROS 不用改,见接收 cmd_vel。 - uBotLearning:Learning Agents 在 UE 里训练;uBotMuJoCo 走的是另一条路,在纯 MuJoCo 里训练,在 UE 里验证。