feat(tracking): v0.1.2 双手轨迹回放与 GUI 预览
支持 L20 右手模型身份与严格浮动控制覆盖层,新增完整轨迹受限回放、时间拉伸及可选 GUI 显示。 验证:88 项 CPU/USD 回归、Ruff、格式与独立暂存审查通过。历史 80 倍降速回放完成 2x32000 步;整合后 GUI E2E 和完整 pre-commit 未执行,相关边界见 L20_TRACKING.md。 右手 USD、示教数据、媒体和日志未纳入提交;资产存储及许可仍待确认。保留原控制与安全阈值。
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
# L20 右手:转换资产与受限跟踪验证
|
||||
|
||||
## 状态与入口
|
||||
|
||||
用户提供的 `linker-bot/Linkerbot_URDF/L20/RIGHT/linkerhand_g20_right.urdf` 已使用指定
|
||||
`IsaacLab/scripts/tools/convert_urdf.py` 实际转换。保留源文件与生成命名:URDF 内部 robot 名为
|
||||
`linkerhand_L25NS_right.urdf`,导入器生成入口为
|
||||
[`linkerhand_g20_right/linkerhand_g20_right.usda`](linkerhand_g20_right/linkerhand_g20_right.usda)。
|
||||
用户明确该 RIGHT 目录为本次 L20 右手输入;不由上述名称推断驱动类型或电机数。
|
||||
|
||||
- 原始转换结果保持不变,依赖包完整、引用相对路径,可整体移动;不是左手 USD 镜像副本。
|
||||
- [`tracking.usda`](tracking.usda) 是单独生成的**实验控制覆盖层**,需搭配跟踪控制器,不能直接 Play 当作悬浮手。
|
||||
- [`tracking_manifest.json`](tracking_manifest.json) 记录原始转换资产身份、关节、限位、质量/惯量、联动与依赖。
|
||||
`dynamic_replay_ready=false` 保留;实验入口检查实际覆盖层和运行时响应,不靠 ready 标记授权。
|
||||
- [`source_provenance.json`](source_provenance.json) 记录原始 URDF/JSON/STL 的相对路径、字节数、SHA256、轴向与转换设置。
|
||||
原始文件保留在用户外部源目录,不复制18MiB STL,也未读取 JSON 作为控制协议。
|
||||
- **发布 BLOCKED**:`payloads/geometries.usd` 为 **4,329,903 bytes**,超过普通 Git 单文件2000KB门槛。
|
||||
生成USD仅获准放入本地工作区,不纳入v0.1.2提交(仅收录本说明及两个JSON清单);后续须确认 Gitea LFS 或获批的版本化外部存储,不能直接提交普通 Git。
|
||||
现有`.gitignore`全局忽略`*.usd`/`*.usda`,且`.gitattributes`已有全局LFS规则;本次均未修改。
|
||||
资产目前是本地忽略文件,不会随普通代码提交自动分发;已有LFS属性不等于本轮确认远端存储/发布许可。
|
||||
源资产再分发许可尚未确认;用户授权本地仿真不等于授予再分发许可。
|
||||
|
||||
## 转换及核验
|
||||
|
||||
实际转换设置预先确定:`--headless --fix-base --joint-stiffness 3 --joint-damping 0.1 --joint-target-type position`,
|
||||
不 merge joints,输出参数为**目录**。这些是未经硬件标定的仿真设置;不是从源硬件推断的增益。
|
||||
转换输出先置于临时目录,核验后仅复制生成的 USD 目录;带个人源路径的 `config.yaml`、`.asset_hash` 和日志留在临时目录。
|
||||
|
||||
复现示例(环境变量由调用方指定,不写入 USD 引用):
|
||||
|
||||
```bash
|
||||
# LINKERBOT_URDF 指向同版本源包;OUTPUT 必须是新的输出目录,避免覆盖已验证资产。
|
||||
SOURCE_RIGHT="$LINKERBOT_URDF/L20/RIGHT"
|
||||
timeout 300s ~/isaacsim/python.sh ~/IsaacLab/scripts/tools/convert_urdf.py \
|
||||
"$SOURCE_RIGHT/linkerhand_g20_right.urdf" "$OUTPUT" --headless --fix-base \
|
||||
--joint-stiffness 3 --joint-damping 0.1 --joint-target-type position
|
||||
```
|
||||
|
||||
实际原始 URDF SHA256:`aa198155651eb7e815f1c27bc8bd9c902e969e81c1165aed756779db378e715d`。
|
||||
转换源依赖包 SHA256:`d38dc5e4d473119b237b86bdd36087788f726abd9f486b1678f4e719d5513098`。
|
||||
控制覆盖层完整包 SHA256:`3e2071a60496b23bed252f4e2fc6e1d4540eecc8098578506419b5eb594f7da0`。
|
||||
导入器文档字符串带临时生成路径,不是外部资源引用;所有实际解析依赖均在本目录内。
|
||||
|
||||
实际检查结果:22个刚体、21个 revolute 状态关节、16个模型独立目标、5组被动联动。
|
||||
名字排序与当前左手相同,但**几何/惯量/轴方向/限位不宣称相同**:
|
||||
|
||||
- 右拇指 `thumb_ip=1.03*thumb_mcp`(左手1.02);其他四指 `dip=.89*pip`,全部 offset=0。
|
||||
- 右 `thumb_cmc_pitch/roll/mcp` 上限 `.83/1.39/1.25 rad`,四指 pip上限 `1.75 rad`;其余精确值见清单。
|
||||
- 原URDF `thumb_cmc_yaw` 轴为负Z;USD规范轴Z配合 `localRot1` 后为负Z。
|
||||
全部21条变换后的轴与源URDF核对通过;不能只看USD的轴字母判断正负。
|
||||
- 源 `root_joint` 是叶 fixed joint,body0为非刚体且世界变换为单位阵的 default Xform,body1为根link。
|
||||
ArticulationRoot 在 `Geometry` 容器,不是左手旧固定关节位置。
|
||||
- 覆盖层只禁用/停用该叶锚点、迁移根API及去掉五个 follower angular drives。
|
||||
右源有 `NewtonArticulationRootAPI`;安装 schema 明确继承 `PhysicsArticulationRootAPI`,因此一起迁移到根link,
|
||||
不能留在旧Geometry制造第二个有效根。原本存在的 Physics/Physx/Newton 根API迁移,保留旧/新位置已解析属性,
|
||||
包括 `newton:selfCollisionEnabled=false`。左手没有的Newton根API不添加。
|
||||
- 门禁要求精确静态端点、单位世界变换、无时间采样/重置绕过、精确根容器;其他prim状态、API、属性、关系和变换保持。
|
||||
注册schema回归证明迁移后只有一个**有效**Physics根。Newton后端没有运行;仅验证 PhysX。
|
||||
|
||||
## 真实运行证据(2026-09-11)
|
||||
|
||||
Isaac Sim6.0.1、PhysX110.1.13、RTX5080,seed42、单环境、240Hz,无物体/桌面/训练。
|
||||
完整预算4次 Kit 启动,每次外部timeout300s:转换、右small、右HDF5、左small回归;均退出0。
|
||||
回放三次各有明确 PASS JSON、两轮完整步数、reset/位置及速度重复性、有限值/限位/被动非零运动检查。
|
||||
三次均报告浮动根、21个活动状态关节、1个有效根、旧锚点inactive;没有重复/嵌套根或CreateJoint警告。
|
||||
|
||||
| 用例 | 每轮步数 × 轮数 | 最大腕位置误差 m | 最大腕姿态误差 rad | 最大关节误差 rad | 最大联动残差 rad |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 右small(2mmX、.01rad yaw、2s) | 480×2 | .000366063 | .002292019 | .009957471 | .000525197 |
|
||||
| 右range_4s HDF5(10mmX、.1rad yaw、4s) | 960×2 | .001207785 | .010241941 | .018221961 | .000575949 |
|
||||
| 左small回归 | 480×2 | .000492342 | .003755143 | .008628675 | .000221643 |
|
||||
|
||||
右range RMS同序:`.000761782 / .007442808 / .013643790 / .000266136`。
|
||||
关节/联动列先取每帧各关节最大绝对误差再汇总。两轮汇总相同,但不保证跨运行GPU位级确定性。
|
||||
左回归与之前左small指标完全相同;左右为不同模型,不能把表中数值解释为同一控制性能 benchmark。
|
||||
|
||||
原有控制参数与阈值不变:腕P/D100/10、姿态P/D.2/.02、wrench20N/1Nm;master驱动3/.1,effort.2Nm、velocity.5rad/s。
|
||||
合成轨迹使用实际右手限位与1.03联动,源参考有限且全有效;所有关节有零位及正向空间,无需负向替代/裁剪。
|
||||
每步仍只发受限wrench及独立目标,不逐步teleport;只有reset写状态。
|
||||
|
||||
实际运行命令(仓库根目录):
|
||||
|
||||
```bash
|
||||
export PYTHONPATH="$PWD/source/dex_workbench${PYTHONPATH:+:$PYTHONPATH}"
|
||||
RIGHT=assets/robots/dex_hand/linkerhand_g20_right
|
||||
timeout 300s ~/isaacsim/python.sh scripts/tracking/track_l20.py "$RIGHT/tracking.usda" \
|
||||
--manifest "$RIGHT/tracking_manifest.json" --execute-experimental --headless --steps 480
|
||||
~/isaacsim/python.sh -m dex_workbench_tracking.cli synthetic --manifest "$RIGHT/tracking_manifest.json" \
|
||||
--profile range_4s --output "$EVIDENCE/range.hdf5"
|
||||
timeout 300s ~/isaacsim/python.sh scripts/tracking/track_l20.py "$RIGHT/tracking.usda" \
|
||||
--manifest "$RIGHT/tracking_manifest.json" --execute-experimental --headless --steps 960 \
|
||||
--hdf5 "$EVIDENCE/range.hdf5" --episode demo_000000
|
||||
```
|
||||
|
||||
`EVIDENCE` 由调用方指定为仓库外持久目录。生成HDF5拒绝覆盖;重跑请选择新路径。
|
||||
仅在用户Kit会话已释放、预算另获授权后执行。
|
||||
上述9月11日历史运行使用临时证据目录 `l20-right`:`{convert,small,hdf5,left}.log` 和 `*-result.txt`;源/轴核验、CPU回归、插件准备、
|
||||
日志解析及前后GPU检查在同目录。每次运行前后未发现残留Kit;并不证明所有资源完全恢复。
|
||||
|
||||
75项CPU/USD测试通过,含右资产重定位、左右身份错配(即使伪造hash/root)、端点/容器篡改、
|
||||
注册schema下Newton根继承与时间采样检查。完整pre-commit工具缺失,不能宣称全量发布门禁通过。
|
||||
|
||||
## 兼容性与剩余边界
|
||||
|
||||
- HDF5仍为`l20_tracking_v1`,新增显式`hand_side=right`,且必须配套右清单。旧无side左清单兼容;
|
||||
右清单不得省略side或借用左URDF身份。旧版本读取器只认left,读右数据须升级本次代码。
|
||||
- prepared schema context新增Newton根schema,**此前生成的覆盖层需要重新生成**,不能编辑ready字段绕过。
|
||||
生成时重复传入 `--schema-plugin-path`,分别指向安装的PhysX和Newton `plugInfo.json`,见根目录L20文档。
|
||||
- 原始USD/URDF、左侧资产、Cartpole、任务ID及用户Data目录均未修改;v0.1.2仅版本化相关代码与文本元数据。
|
||||
干净克隆缺少本地右USD依赖,右资产CPU测试/回放仍BLOCKED,不将缺资产跳过当成通过。
|
||||
- 仍有TGS外力迭代、16/21 actuator(有意被动)、protobuf重复注册、visualizer/MaterialX/usdrt警告,未压制或调参消除。
|
||||
- 上述9月11日证据仅两个简单合成轨迹。9月14日另一次80倍慢放专家参考的完整回放及GUI展示边界
|
||||
见根目录 [`L20_TRACKING.md`](../../../../L20_TRACKING.md) 第5–6节;不证明专家原速、接触/自碰撞任务、
|
||||
多环境、学习策略、Newton后端或硬件。增益待校准,无SysID/Sim2Real有效性声明。
|
||||
@@ -0,0 +1,246 @@
|
||||
{
|
||||
"source_origin": "user-provided linker-bot/Linkerbot_URDF/L20/RIGHT",
|
||||
"source_robot_name": "linkerhand_L25NS_right.urdf",
|
||||
"license_status": "NOT_CONFIRMED; user-authorized local simulation, no redistribution grant inferred",
|
||||
"source_files": [
|
||||
{
|
||||
"path": "g20_right_G20.json",
|
||||
"bytes": 111584,
|
||||
"sha256": "314865d5bc359996bb182942fefc597f989ebfa6c9b3c97a9086acf38b0712ee"
|
||||
},
|
||||
{
|
||||
"path": "linkerhand_g20_right.urdf",
|
||||
"bytes": 28687,
|
||||
"sha256": "aa198155651eb7e815f1c27bc8bd9c902e969e81c1165aed756779db378e715d"
|
||||
},
|
||||
{
|
||||
"path": "meshes/hand_base_link.STL",
|
||||
"bytes": 3433184,
|
||||
"sha256": "79e36d4c7e9282c79601976d41144557d1928810202589e31bed335f3d308cd1"
|
||||
},
|
||||
{
|
||||
"path": "meshes/index_distal.STL",
|
||||
"bytes": 984884,
|
||||
"sha256": "324aa4b852e0c469bfc0c0bb9b19e0ccffc7dcb401d6a678481340588465fa26"
|
||||
},
|
||||
{
|
||||
"path": "meshes/index_metacarpals.STL",
|
||||
"bytes": 151784,
|
||||
"sha256": "106ad58d52420c3216ccb87865f55062d4b4b558078dda95210a085a9bbe277c"
|
||||
},
|
||||
{
|
||||
"path": "meshes/index_middle.STL",
|
||||
"bytes": 805584,
|
||||
"sha256": "27f9ccd91c5bdb1f6a1c42aeee4ab79e7e0aaf1e124a36999c75715b70d0aee6"
|
||||
},
|
||||
{
|
||||
"path": "meshes/index_proximal.STL",
|
||||
"bytes": 883184,
|
||||
"sha256": "d4f85e69dd94d56bdc4646c945ca8a237c652fd5dffba86c7b9ce1d8067ae8e1"
|
||||
},
|
||||
{
|
||||
"path": "meshes/middle_distal.STL",
|
||||
"bytes": 984884,
|
||||
"sha256": "688be3d9dd7fda49a8f9dbba824fedef5cf427c94e2e9e1ea96834eafbf6945a"
|
||||
},
|
||||
{
|
||||
"path": "meshes/middle_metacarpals.STL",
|
||||
"bytes": 151784,
|
||||
"sha256": "65bc65257a01e0ccd284dfdf3b2a66f2a865bf80faeb4da746cd1fd05114fe40"
|
||||
},
|
||||
{
|
||||
"path": "meshes/middle_middle.STL",
|
||||
"bytes": 805584,
|
||||
"sha256": "600b8e7486abc8a2707a5ecc66d4b5bea1dc0895c7173e911ba994f5cac30c10"
|
||||
},
|
||||
{
|
||||
"path": "meshes/middle_proximal.STL",
|
||||
"bytes": 883184,
|
||||
"sha256": "edd3af02319cd4a3b4e07a6f5d33d501887d5ab78625489254f289785b6f57e1"
|
||||
},
|
||||
{
|
||||
"path": "meshes/pinky_distal.STL",
|
||||
"bytes": 984884,
|
||||
"sha256": "3b22871d948ef80447f93866af3643ffa87cb22c1c172750fca9357f3aaa46de"
|
||||
},
|
||||
{
|
||||
"path": "meshes/pinky_metacarpals.STL",
|
||||
"bytes": 151784,
|
||||
"sha256": "b63d10a0e18af0169c75b85eb740c1f25123f6c4c5be0c5368afc65e8c73771f"
|
||||
},
|
||||
{
|
||||
"path": "meshes/pinky_middle.STL",
|
||||
"bytes": 805584,
|
||||
"sha256": "c6696bfcd2dbef8f248f86a6f45a90d5ba7b40e11cdb13a86b96347240a7b751"
|
||||
},
|
||||
{
|
||||
"path": "meshes/pinky_proximal.STL",
|
||||
"bytes": 883184,
|
||||
"sha256": "311ce029c4972530d3b234307f4ea6ca1789577c2786d56f969a5dfac2ef6a57"
|
||||
},
|
||||
{
|
||||
"path": "meshes/ring_distal.STL",
|
||||
"bytes": 984884,
|
||||
"sha256": "fca7bf31fa3f377110d31f7623e27f8c7845faedbdca7c09f98c94a28867bd69"
|
||||
},
|
||||
{
|
||||
"path": "meshes/ring_metacarpals.STL",
|
||||
"bytes": 151784,
|
||||
"sha256": "11797279afee7f856e472755d3a96593baea659d2ec0014edb02006ae48b5d71"
|
||||
},
|
||||
{
|
||||
"path": "meshes/ring_middle.STL",
|
||||
"bytes": 805584,
|
||||
"sha256": "2b3a0815e8daf95e76c9f54f84c13709a3951aa44ec6bb863facf60ba32c3c16"
|
||||
},
|
||||
{
|
||||
"path": "meshes/ring_proximal.STL",
|
||||
"bytes": 883184,
|
||||
"sha256": "168df91e5a5643a899556f96ca3f3b7fe8a3349436be42dfb5632c0d524f9a47"
|
||||
},
|
||||
{
|
||||
"path": "meshes/thumb_distal.STL",
|
||||
"bytes": 1108484,
|
||||
"sha256": "026dd2fac43c4461c5a90561ef29039f4a08802c0e47e5c422ecac2f34babe1e"
|
||||
},
|
||||
{
|
||||
"path": "meshes/thumb_metacarpals.STL",
|
||||
"bytes": 1158784,
|
||||
"sha256": "0a82998ece3c784bba7861b850d00ed483d93434f94f72c6298fea0917e328ca"
|
||||
},
|
||||
{
|
||||
"path": "meshes/thumb_metacarpals_base1.STL",
|
||||
"bytes": 852984,
|
||||
"sha256": "8416e5f826f12c4597754fbe3052983635345a76e3d98a4cdbc38ed363a9da78"
|
||||
},
|
||||
{
|
||||
"path": "meshes/thumb_metacarpals_base2.STL",
|
||||
"bytes": 227884,
|
||||
"sha256": "a5679a28a612ab6aa62a4f7fa1c67be42f807bba7c2ca00ba062ca2e4ef0070d"
|
||||
},
|
||||
{
|
||||
"path": "meshes/thumb_proximal.STL",
|
||||
"bytes": 716984,
|
||||
"sha256": "4cd7d6a283d2e5c3f6dfbd88aa1e18f9f481375d1e6b47f2c373a285184b123d"
|
||||
}
|
||||
],
|
||||
"urdf_axes_xyz": {
|
||||
"thumb_cmc_roll": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"thumb_cmc_yaw": [
|
||||
0.0,
|
||||
0.0,
|
||||
-1.0
|
||||
],
|
||||
"thumb_cmc_pitch": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"thumb_mcp": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"thumb_ip": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"index_mcp_roll": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"index_mcp_pitch": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"index_pip": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"index_dip": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"middle_mcp_roll": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"middle_mcp_pitch": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"middle_pip": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"middle_dip": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"ring_mcp_roll": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"ring_mcp_pitch": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"ring_pip": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"ring_dip": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"pinky_mcp_roll": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"pinky_mcp_pitch": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"pinky_pip": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"pinky_dip": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
]
|
||||
},
|
||||
"converter": "IsaacLab/scripts/tools/convert_urdf.py",
|
||||
"converter_sha256": "55882895652f83b19b05b6fb38fc441ac60900ef6a1261d1dbabeabcbc189e65",
|
||||
"converter_options": {
|
||||
"headless": true,
|
||||
"fix_base": true,
|
||||
"merge_joints": false,
|
||||
"joint_stiffness": 3.0,
|
||||
"joint_damping": 0.1,
|
||||
"joint_target_type": "position"
|
||||
},
|
||||
"generated_geometry_bytes": 4329903,
|
||||
"publication_status": "BLOCKED: >2000KB geometry requires confirmed LFS or approved versioned external storage and redistribution licensing; generated USDs not staged or bundled"
|
||||
}
|
||||
@@ -0,0 +1,861 @@
|
||||
{
|
||||
"hand_side": "right",
|
||||
"manifest_version": "l20_asset_manifest_v1",
|
||||
"asset_sha256": "d38dc5e4d473119b237b86bdd36087788f726abd9f486b1678f4e719d5513098",
|
||||
"entry_file": "linkerhand_g20_right.usda",
|
||||
"dependencies": [
|
||||
{
|
||||
"path": "linkerhand_g20_right.usda",
|
||||
"sha256": "dc8e7e4883b761df19853bf53381b5749146cbe597d1289fae1545664c4e70f4"
|
||||
},
|
||||
{
|
||||
"path": "payloads/Physics/mujoco.usda",
|
||||
"sha256": "4384c714631d20a731a92a99270e47ce9f355429594168db81509afe4e1d0ca5"
|
||||
},
|
||||
{
|
||||
"path": "payloads/Physics/physics.usda",
|
||||
"sha256": "c18dea5558b0161bb46b3e724271714d3ec1cc4af830f96335dcc27956ce0071"
|
||||
},
|
||||
{
|
||||
"path": "payloads/Physics/physx.usda",
|
||||
"sha256": "c6a2ffc8bf93985a3798677d4b7efd11cbed55b430859bdce861d2f5d7ca9024"
|
||||
},
|
||||
{
|
||||
"path": "payloads/base.usda",
|
||||
"sha256": "b8f90dc5bf297c15a0b28bca946aabd1561e96e502512431c8f269732c4adc06"
|
||||
},
|
||||
{
|
||||
"path": "payloads/geometries.usd",
|
||||
"sha256": "625aa0357691d74c0a420d76a6d177c1fed4fe76e6c22b237080d05285c45d1c"
|
||||
},
|
||||
{
|
||||
"path": "payloads/instances.usda",
|
||||
"sha256": "e1edfd4599e0dc2736fccf7b5fab8d9eb83e28a2603410f0dbb106a312c2c62f"
|
||||
},
|
||||
{
|
||||
"path": "payloads/materials.usda",
|
||||
"sha256": "63fb65168c347ebf2fc5c3c702cefe43f5c0352a3a611b762963535f921ae5ea"
|
||||
},
|
||||
{
|
||||
"path": "payloads/robot.usda",
|
||||
"sha256": "2e305dc2e5e6cc9e76f6dcc859e7e62baf28c6c4b07bb0b385bfcc875b3784c9"
|
||||
}
|
||||
],
|
||||
"composition_errors": [],
|
||||
"unresolved_dependencies": [],
|
||||
"default_prim": "/tn__linkerhand_L25NS_righturdf_td0",
|
||||
"root_link": "hand_base_link",
|
||||
"root_body_path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link",
|
||||
"units": {
|
||||
"length": "m",
|
||||
"mass": "kg",
|
||||
"up_axis": "Z"
|
||||
},
|
||||
"physics_variant": "physx",
|
||||
"articulation_roots": [
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Geometry"
|
||||
],
|
||||
"world_fixed_joints": [
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/root_joint",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link"
|
||||
}
|
||||
],
|
||||
"bodies": [
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.0023553327191621065,
|
||||
-0.00047695066314190626,
|
||||
0.08402746915817261
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
0.00011830108996946365,
|
||||
0.00016542924277018756,
|
||||
0.000269879907136783
|
||||
],
|
||||
"physics:mass": 0.1300438940525055,
|
||||
"physics:principalAxes": "(0.70355177, -0.03574017, 0.7086691, 0.03905978)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/thumb_metacarpals_base1",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
0.012130068615078926,
|
||||
-0.0036862639244645834,
|
||||
0.00025301380082964897
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
2.0386005417094566e-06,
|
||||
2.4792493604763877e-06,
|
||||
4.060510491399327e-06
|
||||
],
|
||||
"physics:mass": 0.017312832176685333,
|
||||
"physics:principalAxes": "(0.6933548, -0.09771051, 0.69679224, 0.15553884)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
0.0027480488643050194,
|
||||
0.007686008233577013,
|
||||
0.003620089730247855
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
4.896461405223818e-07,
|
||||
1.3818194020132069e-06,
|
||||
1.932495933942846e-06
|
||||
],
|
||||
"physics:mass": 0.012929310090839863,
|
||||
"physics:principalAxes": "(-0.19246794, 0.5912315, 0.61269253, 0.48786193)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
0.006804674863815308,
|
||||
-0.0003489459923002869,
|
||||
0.032902996987104416
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
3.568792408259469e-06,
|
||||
1.1496833394630812e-05,
|
||||
1.379148852720391e-05
|
||||
],
|
||||
"physics:mass": 0.031144972890615463,
|
||||
"physics:principalAxes": "(0.5002009, 0.49657822, 0.50224656, 0.5009566)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals/thumb_proximal",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.0026874335017055273,
|
||||
0.000568290997762233,
|
||||
0.011850360780954361
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
2.2336946869927488e-07,
|
||||
4.898279257758986e-07,
|
||||
6.232427836039278e-07
|
||||
],
|
||||
"physics:mass": 0.005490158684551716,
|
||||
"physics:principalAxes": "(0.44667035, 0.4435007, 0.5443676, 0.5544877)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals/thumb_proximal/thumb_distal",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.0006504820776171982,
|
||||
2.4130056772264652e-05,
|
||||
0.011194284074008465
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
1.259255100194423e-07,
|
||||
3.968557109601534e-07,
|
||||
4.377191942239733e-07
|
||||
],
|
||||
"physics:mass": 0.005854642018675804,
|
||||
"physics:principalAxes": "(0.60001326, 0.61213464, 0.36140645, 0.36696142)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/index_metacarpals",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.007942971773445606,
|
||||
3.0191060318429663e-07,
|
||||
0.0022011229302734137
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
2.8543986729800963e-08,
|
||||
3.1735549299583e-08,
|
||||
4.670372533155387e-08
|
||||
],
|
||||
"physics:mass": 0.0008955339435487986,
|
||||
"physics:principalAxes": "(0.1595419, 0.6888463, 0.68889564, -0.15956172)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/index_metacarpals/index_proximal",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.0011416588677093387,
|
||||
-3.4777902328642085e-05,
|
||||
0.02289307489991188
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
1.3455648684157495e-07,
|
||||
6.678977229057637e-07,
|
||||
6.742146183569275e-07
|
||||
],
|
||||
"physics:mass": 0.004509356338530779,
|
||||
"physics:principalAxes": "(0.51171285, 0.5117713, 0.48780316, 0.48814765)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/index_metacarpals/index_proximal/index_middle",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.00020683031470980495,
|
||||
-2.697628360692761e-06,
|
||||
0.016705555841326714
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
9.46798621725975e-08,
|
||||
1.7680224573268788e-07,
|
||||
2.311921036834974e-07
|
||||
],
|
||||
"physics:mass": 0.0023786183446645737,
|
||||
"physics:principalAxes": "(0.74448675, 0.0000263087, 0.6676372, 0.000023150385)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/index_metacarpals/index_proximal/index_middle/index_distal",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.008162603713572025,
|
||||
-2.2672160412184894e-05,
|
||||
0.008118197321891785
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
8.608285639866153e-08,
|
||||
1.7809531982493354e-07,
|
||||
2.076272522799627e-07
|
||||
],
|
||||
"physics:mass": 0.003341762349009514,
|
||||
"physics:principalAxes": "(0.9024365, 0.0029987681, 0.43081006, 0.0014355157)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/middle_metacarpals",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.007942971773445606,
|
||||
3.0191060318429663e-07,
|
||||
0.0022011229302734137
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
2.8543986729800963e-08,
|
||||
3.1735549299583e-08,
|
||||
4.670372533155387e-08
|
||||
],
|
||||
"physics:mass": 0.0008955339435487986,
|
||||
"physics:principalAxes": "(0.1595419, 0.6888463, 0.68889564, -0.15956172)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/middle_metacarpals/middle_proximal",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.0011416588677093387,
|
||||
-3.4777902328642085e-05,
|
||||
0.02289307489991188
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
1.3455648684157495e-07,
|
||||
6.678977229057637e-07,
|
||||
6.742146183569275e-07
|
||||
],
|
||||
"physics:mass": 0.004509356338530779,
|
||||
"physics:principalAxes": "(0.51171285, 0.5117713, 0.48780316, 0.48814765)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/middle_metacarpals/middle_proximal/middle_middle",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.00020683031470980495,
|
||||
-2.697631998671568e-06,
|
||||
0.016705555841326714
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
9.46798621725975e-08,
|
||||
1.7680224573268788e-07,
|
||||
2.311921036834974e-07
|
||||
],
|
||||
"physics:mass": 0.0023786183446645737,
|
||||
"physics:principalAxes": "(0.74448675, 0.000026309293, 0.6676372, 0.000023150105)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/middle_metacarpals/middle_proximal/middle_middle/middle_distal",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.008162603713572025,
|
||||
-2.2672160412184894e-05,
|
||||
0.008118197321891785
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
8.608285639866153e-08,
|
||||
1.7809531982493354e-07,
|
||||
2.076272522799627e-07
|
||||
],
|
||||
"physics:mass": 0.003341762349009514,
|
||||
"physics:principalAxes": "(0.9024365, 0.0029987684, 0.43081006, 0.0014355157)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/ring_metacarpals",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.007942971773445606,
|
||||
3.0191060318429663e-07,
|
||||
0.0022011229302734137
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
2.8543986729800963e-08,
|
||||
3.1735549299583e-08,
|
||||
4.670372533155387e-08
|
||||
],
|
||||
"physics:mass": 0.0008955339435487986,
|
||||
"physics:principalAxes": "(0.1595419, 0.6888463, 0.68889564, -0.15956172)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/ring_metacarpals/ring_proximal",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.0011416588677093387,
|
||||
-3.4777902328642085e-05,
|
||||
0.02289307489991188
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
1.3455648684157495e-07,
|
||||
6.678977229057637e-07,
|
||||
6.742146183569275e-07
|
||||
],
|
||||
"physics:mass": 0.004509356338530779,
|
||||
"physics:principalAxes": "(0.51171285, 0.5117713, 0.48780316, 0.48814765)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/ring_metacarpals/ring_proximal/ring_middle",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.00020683031470980495,
|
||||
-2.697628360692761e-06,
|
||||
0.016705555841326714
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
9.46798621725975e-08,
|
||||
1.7680224573268788e-07,
|
||||
2.311921036834974e-07
|
||||
],
|
||||
"physics:mass": 0.0023786183446645737,
|
||||
"physics:principalAxes": "(0.74448675, 0.0000263087, 0.6676372, 0.000023150385)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/ring_metacarpals/ring_proximal/ring_middle/ring_distal",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.008162603713572025,
|
||||
-2.2672344130114652e-05,
|
||||
0.008118197321891785
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
8.608285639866153e-08,
|
||||
1.7809531982493354e-07,
|
||||
2.076272522799627e-07
|
||||
],
|
||||
"physics:mass": 0.003341762349009514,
|
||||
"physics:principalAxes": "(0.9024365, 0.0029986603, 0.43081006, 0.0014354715)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/pinky_metacarpals",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.007942971773445606,
|
||||
3.0191060318429663e-07,
|
||||
0.0022011229302734137
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
2.8543986729800963e-08,
|
||||
3.1735549299583e-08,
|
||||
4.670372533155387e-08
|
||||
],
|
||||
"physics:mass": 0.0008955339435487986,
|
||||
"physics:principalAxes": "(0.1595419, 0.6888463, 0.68889564, -0.15956172)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.0011416588677093387,
|
||||
-3.47779096045997e-05,
|
||||
0.02289307489991188
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
1.3455648684157495e-07,
|
||||
6.678977229057637e-07,
|
||||
6.742146183569275e-07
|
||||
],
|
||||
"physics:mass": 0.004509356338530779,
|
||||
"physics:principalAxes": "(0.51171285, 0.5117713, 0.48780316, 0.48814765)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal/pinky_middle",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.00020683031470980495,
|
||||
-2.697628360692761e-06,
|
||||
0.016705555841326714
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
9.46798621725975e-08,
|
||||
1.7680224573268788e-07,
|
||||
2.311921036834974e-07
|
||||
],
|
||||
"physics:mass": 0.0023786183446645737,
|
||||
"physics:principalAxes": "(0.74448675, 0.0000263087, 0.6676372, 0.000023150385)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal/pinky_middle/pinky_distal",
|
||||
"reset_xform_stack": false,
|
||||
"mass_properties": {
|
||||
"physics:centerOfMass": [
|
||||
-0.008162603713572025,
|
||||
-2.2672205886919983e-05,
|
||||
0.008118197321891785
|
||||
],
|
||||
"physics:diagonalInertia": [
|
||||
8.608285639866153e-08,
|
||||
1.7809531982493354e-07,
|
||||
2.076272522799627e-07
|
||||
],
|
||||
"physics:mass": 0.003341762349009514,
|
||||
"physics:principalAxes": "(0.9024365, 0.0029987409, 0.43081006, 0.0014355045)"
|
||||
}
|
||||
}
|
||||
],
|
||||
"joints": [
|
||||
{
|
||||
"name": "index_dip",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/index_dip",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/index_metacarpals/index_proximal/index_middle",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/index_metacarpals/index_proximal/index_middle/index_distal",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.5499999681585768,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "index_mcp_pitch",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/index_mcp_pitch",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/index_metacarpals",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/index_metacarpals/index_proximal",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.219999954319697,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "index_mcp_roll",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/index_mcp_roll",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/index_metacarpals",
|
||||
"axis": "X",
|
||||
"lower_rad": -0.22999999602684235,
|
||||
"upper_rad": 0.22999999602684235,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "index_pip",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/index_pip",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/index_metacarpals/index_proximal",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/index_metacarpals/index_proximal/index_middle",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.7500000370721651,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "middle_dip",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/middle_dip",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/middle_metacarpals/middle_proximal/middle_middle",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/middle_metacarpals/middle_proximal/middle_middle/middle_distal",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.5499999681585768,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "middle_mcp_pitch",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/middle_mcp_pitch",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/middle_metacarpals",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/middle_metacarpals/middle_proximal",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.219999954319697,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "middle_mcp_roll",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/middle_mcp_roll",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/middle_metacarpals",
|
||||
"axis": "X",
|
||||
"lower_rad": -0.22999999602684235,
|
||||
"upper_rad": 0.22999999602684235,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "middle_pip",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/middle_pip",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/middle_metacarpals/middle_proximal",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/middle_metacarpals/middle_proximal/middle_middle",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.7500000370721651,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pinky_dip",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/pinky_dip",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal/pinky_middle",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal/pinky_middle/pinky_distal",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.5499999681585768,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pinky_mcp_pitch",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/pinky_mcp_pitch",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/pinky_metacarpals",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.219999954319697,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pinky_mcp_roll",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/pinky_mcp_roll",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/pinky_metacarpals",
|
||||
"axis": "X",
|
||||
"lower_rad": -0.22999999602684235,
|
||||
"upper_rad": 0.22999999602684235,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pinky_pip",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/pinky_pip",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal/pinky_middle",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.7500000370721651,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ring_dip",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/ring_dip",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/ring_metacarpals/ring_proximal/ring_middle",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/ring_metacarpals/ring_proximal/ring_middle/ring_distal",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.5499999681585768,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ring_mcp_pitch",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/ring_mcp_pitch",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/ring_metacarpals",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/ring_metacarpals/ring_proximal",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.219999954319697,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ring_mcp_roll",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/ring_mcp_roll",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/ring_metacarpals",
|
||||
"axis": "X",
|
||||
"lower_rad": -0.22999999602684235,
|
||||
"upper_rad": 0.22999999602684235,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ring_pip",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/ring_pip",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/ring_metacarpals/ring_proximal",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/ring_metacarpals/ring_proximal/ring_middle",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.7500000370721651,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "thumb_cmc_pitch",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/thumb_cmc_pitch",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 0.8299999863857683,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "thumb_cmc_roll",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/thumb_cmc_roll",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/thumb_metacarpals_base1",
|
||||
"axis": "X",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.3900000461857607,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "thumb_cmc_yaw",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/thumb_cmc_yaw",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/thumb_metacarpals_base1",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2",
|
||||
"axis": "Z",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.570000041628963,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "thumb_ip",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/thumb_ip",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals/thumb_proximal",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals/thumb_proximal/thumb_distal",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.2899999451499395,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "thumb_mcp",
|
||||
"path": "/tn__linkerhand_L25NS_righturdf_td0/Physics/thumb_mcp",
|
||||
"body0": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals",
|
||||
"body1": "/tn__linkerhand_L25NS_righturdf_td0/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals/thumb_proximal",
|
||||
"axis": "Y",
|
||||
"lower_rad": 0.0,
|
||||
"upper_rad": 1.2500000645252762,
|
||||
"authored_drive_properties_usd_units": {
|
||||
"drive:angular:physics:damping": 0.001745329238474369,
|
||||
"drive:angular:physics:maxForce": 1.0,
|
||||
"drive:angular:physics:stiffness": 0.05235987901687622,
|
||||
"drive:angular:physics:type": "force",
|
||||
"physxJoint:maxJointVelocity": 5729.578125
|
||||
}
|
||||
}
|
||||
],
|
||||
"source_urdf": {
|
||||
"status": "STRUCTURAL_MATCH_ONLY",
|
||||
"file_name": "linkerhand_g20_right.urdf",
|
||||
"sha256": "aa198155651eb7e815f1c27bc8bd9c902e969e81c1165aed756779db378e715d",
|
||||
"mimic": [
|
||||
{
|
||||
"joint": "index_dip",
|
||||
"reference": "index_pip",
|
||||
"multiplier": 0.89,
|
||||
"offset_rad": 0.0
|
||||
},
|
||||
{
|
||||
"joint": "middle_dip",
|
||||
"reference": "middle_pip",
|
||||
"multiplier": 0.89,
|
||||
"offset_rad": 0.0
|
||||
},
|
||||
{
|
||||
"joint": "pinky_dip",
|
||||
"reference": "pinky_pip",
|
||||
"multiplier": 0.89,
|
||||
"offset_rad": 0.0
|
||||
},
|
||||
{
|
||||
"joint": "ring_dip",
|
||||
"reference": "ring_pip",
|
||||
"multiplier": 0.89,
|
||||
"offset_rad": 0.0
|
||||
},
|
||||
{
|
||||
"joint": "thumb_ip",
|
||||
"reference": "thumb_mcp",
|
||||
"multiplier": 1.03,
|
||||
"offset_rad": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"coupling_evidence": [
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/thumb_ip.newton:mimicCoef1",
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/thumb_ip.newton:mimicJoint",
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/thumb_ip: SdfTokenListOp(Explicit Items: [PhysxJointAPI, NewtonMimicAPI, PhysicsDriveAPI:angular, PhysicsJointStateAPI:angular, IsaacJointAPI])",
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/index_dip.newton:mimicCoef1",
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/index_dip.newton:mimicJoint",
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/index_dip: SdfTokenListOp(Explicit Items: [PhysxJointAPI, NewtonMimicAPI, PhysicsDriveAPI:angular, PhysicsJointStateAPI:angular, IsaacJointAPI])",
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/middle_dip.newton:mimicCoef1",
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/middle_dip.newton:mimicJoint",
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/middle_dip: SdfTokenListOp(Explicit Items: [PhysxJointAPI, NewtonMimicAPI, PhysicsDriveAPI:angular, PhysicsJointStateAPI:angular, IsaacJointAPI])",
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/ring_dip.newton:mimicCoef1",
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/ring_dip.newton:mimicJoint",
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/ring_dip: SdfTokenListOp(Explicit Items: [PhysxJointAPI, NewtonMimicAPI, PhysicsDriveAPI:angular, PhysicsJointStateAPI:angular, IsaacJointAPI])",
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/pinky_dip.newton:mimicCoef1",
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/pinky_dip.newton:mimicJoint",
|
||||
"/tn__linkerhand_L25NS_righturdf_td0/Physics/pinky_dip: SdfTokenListOp(Explicit Items: [PhysxJointAPI, NewtonMimicAPI, PhysicsDriveAPI:angular, PhysicsJointStateAPI:angular, IsaacJointAPI])"
|
||||
],
|
||||
"physx_coupling_evidence": [],
|
||||
"coupling_status": "MIMIC_SCHEMA_PRESENT_RUNTIME_UNVERIFIED",
|
||||
"dynamic_replay_ready": false,
|
||||
"blockers": [
|
||||
"Runtime mimic response is unverified; original follower drives need suppression for diagnostics.",
|
||||
"No calibrated wrist support controller or whole-hand dynamic replay validation."
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user