← 返回摇晃实验

Office Café · MuJoCo 摇晃实验

结论

已根据指定的 mujoco_shake.py 运行真实 MuJoCo 仿真。三组记录数值有限、无 MuJoCo 警告;固定装置相对房间的位姿保持约束。这是带已知初始摆放与碰撞误差的诊断仿真,不是通过静置精度验收的物理孪生。

原始导出有 16 个门 / 抽屉关节,但自由家具为 0,且没有参考脚本需要的房间驱动器。直接运行会得到全零移动,因此单独创建了当前摇晃版本。

三组相同初始条件的实验

实验 幅值参数 m/s² 最大静置漂移 cm 后续末态位移 cm 后续移动 > 1 cm
control 0 3.08 2.05 1 / 62
gentle 1.5 3.08 39.68 51 / 62
strong 5 3.08 184.34 60 / 62

每组:碰撞预整理(原脚本约 1.2 s)、静置 1 s、驱动 5 s、平息 3 s。基础频率 1.5 Hz,铰链起始开度 25%,抽屉起始关闭。实验记录为 600 Hz 仿真中的 60 Hz 姿态采样,网页每组 540 帧;网页可以自由环绕并插值播放,浏览器不重新计算物理。

“后续末态位移”由参考脚本比较静置结束和全部实验结束的位置。零驱动条件下也存在继续静置漂移,因此不能把所有位移归因于摇晃。另附 paired_control_comparison.json,逐物体对比同一最终时刻的零驱动和受摇状态。相对房间的全过程峰值记录在各组 JSON 的 peak_room_relative_motion_m。

如何从当前场景构建

必须保留的局限

  1. 修正后起始仍有 46 条穿透超过 1 mm 的接触记录;预整理后仍有 16 条。该数量是接触点数量,不是物体数量。
  2. 最大静置漂移仍为 3.08 cm;零驱动的后续末态最大漂移为 2.05 cm。尚未达到每个自由物体静置漂移 < 1 cm 的目标。
  3. 三组过程中的最大接触穿透约 2.3 cm。不存在数值爆炸不代表几何支撑完全正确。
  4. 洗碗机下翻门在零驱动条件下也会因重力打开约 65.8°。此部分不能算作摇晃诱发;缺少实测平衡弹簧和阻尼数据。
  5. 质量、摩擦(0.55 / 0.03 / 0.005)、惯量、机构限位、阻尼及固定方式均为假定;模型尺度来自未经物理标定的单目测量。
  6. 幅值 A 用于位移公式 A/(2πf)²,Y/Z 轴频率分别为 1.41f / 1.93f,另含偏航。所有轴的实际峰值加速度并不等于 A,开始 / 结束驱动还有原脚本的阶跃。较强条件会造成较大的家具滑移或倾倒;这些值不代表震级或经标定的地震工况。
  7. 原脚本 static_moved_max_cm 会把自由物体下面没有独立关节的子部件计为“static”。本项目另外沿父子树检查真正固定于房间的 46 个节点,其相对误差小于 6e-15 m。
  8. 原脚本字段 hinge_swing_deg 中,铰链单位为度,滑动关节实际单位为厘米。

录像、数据和复现

网页的 134 个模型节点全部绑定到记录刚体,使用相对于原始闭合模型的运动变换;不会把模拟动画混入原相机测量。网页材质与 MuJoCo 原生 OpenGL 录像有所不同。

python3 -m pip install -r requirements.txt
python3 run.py --scene scene.xml --amplitude 1.5 --frequency 1.5 --settle 1 --shake 5 --calm 3 --ajar 0.25

原始已复核 reconstruction/final/scene.blend、MJCF 和 URDF 保持不变;本实验的碰撞 / 自由家具版本独立保存。

MuJoCo 原生录像