Files
wasm-bimanual-grasp/scenes/so101_pair/meta.json
T
liyang aed6e20a90 双臂操作沙盒(MuJoCo WASM 浏览器版)首次入库
从 ~/mujoco-web-spike 抽出 manip.html 的依赖闭包:
- manip.html + src/{manip,autograsp,scene-bridge,math}.js
- scenes/so101_pair(桌面并排两台 SO-101,默认)与 scenes/p7_bimanual(P7 双臂 + SO-101 夹爪)
  —— 自包含 MJCF,网格已内联
- serve.py(COOP/COEP + no-store 的静态服务器)、start.sh、README
- tools/export_manip_scene.py 场景生成脚本(仅供参考,跑页面不需要)

快照对应 2026-08-31 的最后一次改动(自动抓取规划 autograsp.js 落地版)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016tgfYxR5mWNRKQ67PKga4T
2026-09-01 17:16:41 +08:00

1 line
3.0 KiB
JSON

{"name": "so101_pair", "workstation": "p7_i1_l6_bimanual", "gripper": "so101", "sim": {"timestep": 0.002, "substeps": 10}, "nq": 47, "nu": 12, "ngeom": 166, "kps": [998.22, 998.22, 998.22, 998.22, 998.22, 998.22, 998.22, 998.22, 998.22, 998.22, 998.22, 998.22], "arms": {"left": {"act": [0, 1, 2, 3, 4], "names": ["arm_left_shoulder_pan", "arm_left_shoulder_lift", "arm_left_elbow_flex", "arm_left_wrist_flex", "arm_left_wrist_roll"], "qadr": [0, 1, 2, 3, 4], "range": [[-1.91986, 1.91986], [-1.74533, 1.74533], [-1.69, 1.69], [-1.65806, 1.65806], [-2.74385, 2.84121]], "site": "arm_left_gripperframe", "site_id": 1, "ready": [0.2664159465395377, -0.053277895226272, 0.09506432223630396, 1.5261345315220791, -0.009229323360655772]}, "right": {"act": [6, 7, 8, 9, 10], "names": ["arm_right_shoulder_pan", "arm_right_shoulder_lift", "arm_right_elbow_flex", "arm_right_wrist_flex", "arm_right_wrist_roll"], "qadr": [6, 7, 8, 9, 10], "range": [[-1.91986, 1.91986], [-1.74533, 1.74533], [-1.69, 1.69], [-1.65806, 1.65806], [-2.74385, 2.84121]], "site": "arm_right_gripperframe", "site_id": 3, "ready": [-0.2697369618426545, -0.05331271527672901, 0.09510641744154119, 1.5261271765003104, 0.01303107961674866]}}, "hands": {"left": {"kind": "so101", "act": [5], "names": ["arm_left_gripper"], "range": [[-0.17453, 1.74533]], "geoms": [12, 14, 17, 19, 21, 23, 26, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54], "jaw_a": [34, 35, 36], "jaw_b": [50, 51, 52], "palm_body": 7, "site_id": 1}, "right": {"kind": "so101", "act": [11], "names": ["arm_right_gripper"], "range": [[-0.17453, 1.74533]], "geoms": [60, 62, 65, 67, 69, 71, 74, 76, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102], "jaw_a": [82, 83, 84], "jaw_b": [98, 99, 100], "palm_body": 15, "site_id": 3}}, "scene": {"table": {"x": 0.15, "top": 0.4, "half": [0.3, 0.4, 0.02]}, "objects": [{"name": "can", "label": "易拉罐", "body": "obj_can", "geom": "obj_can", "kind": "mesh", "mass": 0.15, "half_h": 0.0285347697145599, "pieces": 20, "home": [0.27, -0.2, 0.43053476971455995], "qadr": 12, "body_id": 18, "geom_id": 103}, {"name": "bottle", "label": "瓶子", "body": "obj_bottle", "geom": "obj_bottle", "kind": "mesh", "mass": 0.12, "half_h": 0.050020083385326444, "pieces": 3, "home": [0.27, -0.1, 0.45202008338532645], "qadr": 19, "body_id": 19, "geom_id": 124}, {"name": "jar", "label": "罐子", "body": "obj_jar", "geom": "obj_jar", "kind": "mesh", "mass": 0.16, "half_h": 0.02482021259712402, "pieces": 3, "home": [0.27, 0.0, 0.42682021259712405], "qadr": 26, "body_id": 20, "geom_id": 128}, {"name": "piano", "label": "玩具琴", "body": "obj_piano", "geom": "obj_piano", "kind": "mesh", "mass": 0.12, "half_h": 0.014234144039705122, "pieces": 30, "home": [0.27, 0.1, 0.41623414403970516], "qadr": 33, "body_id": 21, "geom_id": 132}, {"name": "toy", "label": "玩偶", "body": "obj_toy", "geom": "obj_toy", "kind": "mesh", "mass": 0.1, "half_h": 0.02, "pieces": 2, "home": [0.27, 0.2, 0.42200000000000004], "qadr": 40, "body_id": 22, "geom_id": 163}]}, "xmlMB": 1.78}