Add LinkerHand Isaac Sim bridge and G20 assets.

Includes G20 PLAN/cmd_u8 bridge, joint mapping, dual-hand sim scripts,
and G20/L20/O6 URDF with USD payloads for Isaac Sim integration.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
sunxianghui
2026-07-27 14:13:00 +08:00
commit 0b727785c6
134 changed files with 17662 additions and 0 deletions
@@ -0,0 +1,52 @@
#usda 1.0
(
customLayerData = {
string creator = "URDF USD Converter v0.1.3"
}
defaultPrim = "linkerhand_o6_left"
doc = """Generated from Composed Stage of root layer /tmp/tmp43xsk_0z/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/usdex_linkerhand_o6_left/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/temp_linkerhand_o6_left/linkerhand_o6_left.usd
Generated from Composed Stage of root layer /home/lxqs/mujoco_testwork/linkerhand-urdf/o6/left/linkerhand_o6_left/payloads/base.usd
"""
kilogramsPerUnit = 1
metersPerUnit = 1
upAxis = "Z"
)
def Xform "linkerhand_o6_left" (
prepend references = @./payloads/base.usda@
variants = {
string Physics = "physx"
}
append variantSets = "Physics"
)
{
variantSet "Physics" = {
"mujoco" (
prepend payload = @./payloads/Physics/mujoco.usda@
) {
}
"none" {
}
"physics" (
prepend payload = @./payloads/Physics/physics.usda@
) {
}
"physx" (
prepend payload = @./payloads/Physics/physx.usda@
) {
}
}
}
@@ -0,0 +1,332 @@
#usda 1.0
(
customLayerData = {
string creator = "URDF USD Converter v0.1.3"
}
defaultPrim = "linkerhand_o6_left"
doc = """Generated from Composed Stage of root layer /tmp/tmp43xsk_0z/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/usdex_linkerhand_o6_left/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/temp_linkerhand_o6_left/linkerhand_o6_left.usd
Generated from Composed Stage of root layer /home/lxqs/mujoco_testwork/linkerhand-urdf/o6/left/linkerhand_o6_left/payloads/base.usd
"""
kilogramsPerUnit = 1
metersPerUnit = 1
subLayers = [
@./physics.usda@
]
upAxis = "Z"
)
over "linkerhand_o6_left"
{
over "Physics"
{
def MjcActuator "lh_thumb_cmc_yaw_actuator"
{
uniform double mjc:forceRange:max = 100
uniform double mjc:forceRange:min = -100
custom rel mjc:target
prepend rel mjc:target = </linkerhand_o6_left/Physics/lh_thumb_cmc_yaw>
}
def MjcActuator "lh_thumb_cmc_pitch_actuator"
{
uniform double mjc:forceRange:max = 100
uniform double mjc:forceRange:min = -100
custom rel mjc:target
prepend rel mjc:target = </linkerhand_o6_left/Physics/lh_thumb_cmc_pitch>
}
def MjcActuator "lh_thumb_ip_actuator"
{
uniform double mjc:forceRange:max = 100
uniform double mjc:forceRange:min = -100
custom rel mjc:target
prepend rel mjc:target = </linkerhand_o6_left/Physics/lh_thumb_ip>
}
def MjcActuator "lh_index_mcp_pitch_actuator"
{
uniform double mjc:forceRange:max = 100
uniform double mjc:forceRange:min = -100
custom rel mjc:target
prepend rel mjc:target = </linkerhand_o6_left/Physics/lh_index_mcp_pitch>
}
def MjcActuator "lh_index_dip_actuator"
{
uniform double mjc:forceRange:max = 100
uniform double mjc:forceRange:min = -100
custom rel mjc:target
prepend rel mjc:target = </linkerhand_o6_left/Physics/lh_index_dip>
}
def MjcActuator "lh_middle_mcp_pitch_actuator"
{
uniform double mjc:forceRange:max = 100
uniform double mjc:forceRange:min = -100
custom rel mjc:target
prepend rel mjc:target = </linkerhand_o6_left/Physics/lh_middle_mcp_pitch>
}
def MjcActuator "lh_middle_dip_actuator"
{
uniform double mjc:forceRange:max = 100
uniform double mjc:forceRange:min = -100
custom rel mjc:target
prepend rel mjc:target = </linkerhand_o6_left/Physics/lh_middle_dip>
}
def MjcActuator "lh_ring_mcp_pitch_actuator"
{
uniform double mjc:forceRange:max = 100
uniform double mjc:forceRange:min = -100
custom rel mjc:target
prepend rel mjc:target = </linkerhand_o6_left/Physics/lh_ring_mcp_pitch>
}
def MjcActuator "lh_ring_dip_actuator"
{
uniform double mjc:forceRange:max = 100
uniform double mjc:forceRange:min = -100
custom rel mjc:target
prepend rel mjc:target = </linkerhand_o6_left/Physics/lh_ring_dip>
}
def MjcActuator "lh_pinky_mcp_pitch_actuator"
{
uniform double mjc:forceRange:max = 100
uniform double mjc:forceRange:min = -100
custom rel mjc:target
prepend rel mjc:target = </linkerhand_o6_left/Physics/lh_pinky_mcp_pitch>
}
def MjcActuator "lh_pinky_dip_actuator"
{
uniform double mjc:forceRange:max = 100
uniform double mjc:forceRange:min = -100
custom rel mjc:target
prepend rel mjc:target = </linkerhand_o6_left/Physics/lh_pinky_dip>
}
over "root_joint"
{
}
over "lh_thumb_cmc_yaw" (
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
}
over "lh_thumb_cmc_pitch" (
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
}
over "lh_thumb_ip" (
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
}
over "lh_index_mcp_pitch" (
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
}
over "lh_index_dip" (
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
}
over "lh_middle_mcp_pitch" (
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
}
over "lh_middle_dip" (
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
}
over "lh_ring_mcp_pitch" (
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
}
over "lh_ring_dip" (
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
}
over "lh_pinky_mcp_pitch" (
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
}
over "lh_pinky_dip" (
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
}
}
over "Geometry"
{
over "lh_hand_base_link"
{
over "lh_thumb_metacarpals_base2"
{
over "lh_thumb_metacarpals"
{
over "lh_thumb_distal"
{
over "thumb_distal"
{
}
over "thumb_distal_1"
{
}
}
over "thumb_metacarpals"
{
}
over "thumb_metacarpals_1"
{
}
}
over "thumb_metacarpals_base2"
{
}
over "thumb_metacarpals_base2_1"
{
}
}
over "lh_index_proximal"
{
over "lh_index_distal"
{
over "index_distal"
{
}
over "index_distal_1"
{
}
}
over "index_proximal"
{
}
over "index_proximal_1"
{
}
}
over "lh_middle_proximal"
{
over "lh_middle_distal"
{
over "middle_distal"
{
}
over "middle_distal_1"
{
}
}
over "middle_proximal"
{
}
over "middle_proximal_1"
{
}
}
over "lh_ring_proximal"
{
over "lh_ring_distal"
{
over "ring_distal"
{
}
over "ring_distal_1"
{
}
}
over "ring_proximal"
{
}
over "ring_proximal_1"
{
}
}
over "lh_pinky_proximal"
{
over "lh_pinky_distal"
{
over "pinky_distal"
{
}
over "pinky_distal_1"
{
}
}
over "pinky_proximal"
{
}
over "pinky_proximal_1"
{
}
}
over "hand_base_link"
{
}
over "hand_base_link_1"
{
}
}
}
over "Materials"
{
}
over "VisualMaterials"
{
}
}
@@ -0,0 +1,394 @@
#usda 1.0
(
customLayerData = {
string creator = "URDF USD Converter v0.1.3"
}
defaultPrim = "linkerhand_o6_left"
doc = """Generated from Composed Stage of root layer /tmp/tmp43xsk_0z/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/usdex_linkerhand_o6_left/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/temp_linkerhand_o6_left/linkerhand_o6_left.usd
Generated from Composed Stage of root layer /home/lxqs/mujoco_testwork/linkerhand-urdf/o6/left/linkerhand_o6_left/payloads/base.usd
"""
kilogramsPerUnit = 1
metersPerUnit = 1
upAxis = "Z"
)
over "linkerhand_o6_left"
{
over "Geometry"
{
over "lh_hand_base_link" (
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsArticulationRootAPI", "NewtonArticulationRootAPI", "PhysicsMassAPI"]
)
{
bool newton:selfCollisionEnabled = 0
point3f physics:centerOfMass = (-0.0015778857, -0.00034876727, 0.053845223)
float3 physics:diagonalInertia = (0.000022785269, 0.000033403405, 0.00005226303)
float physics:mass = 0.067293525
quatf physics:principalAxes = (0.7112235, 0.0196564, 0.7019677, -0.031875554)
over "lh_thumb_metacarpals_base2" (
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
)
{
point3f physics:centerOfMass = (0.0016280068, -0.0027668017, -0.0018423444)
float3 physics:diagonalInertia = (2.804746e-8, 4.6153662e-8, 5.5545172e-8)
float physics:mass = 0.001385883
quatf physics:principalAxes = (0.71651435, 0.1483551, 0.6348633, 0.2480857)
over "lh_thumb_metacarpals" (
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
)
{
point3f physics:centerOfMass = (0.00004248162, 0.000017418392, 0.022834163)
float3 physics:diagonalInertia = (8.782631e-7, 0.0000011610094, 0.0000017675784)
float physics:mass = 0.012338159
quatf physics:principalAxes = (0.602796, 0.6027095, 0.37003604, 0.3693936)
over "lh_thumb_distal" (
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
)
{
point3f physics:centerOfMass = (-0.004137257, -5.907045e-8, 0.023011401)
float3 physics:diagonalInertia = (2.7226213e-7, 0.0000012248909, 0.0000013107585)
float physics:mass = 0.0076333294
quatf physics:principalAxes = (0.7312508, 0.000050898147, 0.68210864, 0.000050140923)
}
}
}
over "lh_index_proximal" (
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
)
{
point3f physics:centerOfMass = (-0.0020865656, 0.0000025383872, 0.017273495)
float3 physics:diagonalInertia = (7.583063e-8, 2.7291307e-7, 2.757608e-7)
float physics:mass = 0.0025317466
quatf physics:principalAxes = (0.78133, 0.007643632, 0.6240355, 0.0066868095)
over "lh_index_distal" (
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
)
{
point3f physics:centerOfMass = (0.0065898662, 0.0000051385564, 0.01943936)
float3 physics:diagonalInertia = (7.204472e-8, 3.6532765e-7, 3.7459085e-7)
float physics:mass = 0.003769511
quatf physics:principalAxes = (0.54057455, 0.0024824692, 0.84128624, 0.0032386186)
}
}
over "lh_middle_proximal" (
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
)
{
point3f physics:centerOfMass = (-0.0020866066, 0.0000025691818, 0.0172735)
float3 physics:diagonalInertia = (7.5831146e-8, 2.7291338e-7, 2.757611e-7)
float physics:mass = 0.0025317736
quatf physics:principalAxes = (0.7813296, 0.0076768305, 0.62403536, 0.0067128767)
over "lh_middle_distal" (
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
)
{
point3f physics:centerOfMass = (0.0065898653, 0.0000051086295, 0.019439332)
float3 physics:diagonalInertia = (7.204529e-8, 3.6532907e-7, 3.745922e-7)
float physics:mass = 0.003769528
quatf physics:principalAxes = (0.5405751, 0.0024706838, 0.84128594, 0.003223407)
}
}
over "lh_ring_proximal" (
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
)
{
point3f physics:centerOfMass = (-0.0020866792, 0.0000026300042, 0.017273493)
float3 physics:diagonalInertia = (7.5832226e-8, 2.7291406e-7, 2.7576172e-7)
float physics:mass = 0.0025318223
quatf physics:principalAxes = (0.78132856, 0.0077359965, 0.62403536, 0.0067587425)
over "lh_ring_distal" (
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
)
{
point3f physics:centerOfMass = (0.0065898667, 0.000005058835, 0.019439397)
float3 physics:diagonalInertia = (7.20441e-8, 3.6532612e-7, 3.7458938e-7)
float physics:mass = 0.003769496
quatf physics:principalAxes = (0.54057366, 0.002450255, 0.841287, 0.0031969126)
}
}
over "lh_pinky_proximal" (
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
)
{
point3f physics:centerOfMass = (-0.002086736, 0.0000026806224, 0.017273486)
float3 physics:diagonalInertia = (7.5833086e-8, 2.7291458e-7, 2.7576223e-7)
float physics:mass = 0.00253186
quatf physics:principalAxes = (0.78132784, 0.007784023, 0.6240353, 0.0067960154)
over "lh_pinky_distal" (
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
)
{
point3f physics:centerOfMass = (0.006589876, 0.0000050308754, 0.01943945)
float3 physics:diagonalInertia = (7.2043434e-8, 3.6532472e-7, 3.7458818e-7)
float physics:mass = 0.0037694806
quatf physics:principalAxes = (0.54057276, 0.0024336982, 0.8412878, 0.0031746821)
}
}
}
}
over "Physics"
{
def PhysicsRevoluteJoint "lh_thumb_cmc_yaw" (
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
float drive:angular:physics:maxForce = 100
uniform token physics:axis = "Z"
custom rel physics:body0
prepend rel physics:body0 = </linkerhand_o6_left/Geometry/lh_hand_base_link>
custom rel physics:body1
prepend rel physics:body1 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_thumb_metacarpals_base2>
point3f physics:localPos0 = (0.011508, -0.022975, 0.032794)
point3f physics:localPos1 = (0, 0, 0)
quatf physics:localRot0 = (1, 0, 0, 0)
quatf physics:localRot1 = (1, 0, 0, 0)
float physics:lowerLimit = 0
float physics:upperLimit = 74.48451
custom float urdf:limit:effort = 100
custom float urdf:limit:velocity = 1
}
def PhysicsRevoluteJoint "lh_thumb_cmc_pitch" (
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
float drive:angular:physics:maxForce = 100
uniform token physics:axis = "Y"
custom rel physics:body0
prepend rel physics:body0 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_thumb_metacarpals_base2>
custom rel physics:body1
prepend rel physics:body1 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_thumb_metacarpals_base2/lh_thumb_metacarpals>
point3f physics:localPos0 = (0.0061649, -0.010678, -0.004891)
point3f physics:localPos1 = (0, 0, 0)
quatf physics:localRot0 = (0.41919965, 0.47202873, -0.27252436, 0.7260792)
quatf physics:localRot1 = (1, 0, 0, 0)
float physics:lowerLimit = 0
float physics:upperLimit = 33.231552
custom float urdf:limit:effort = 100
custom float urdf:limit:velocity = 1
}
def PhysicsRevoluteJoint "lh_thumb_ip" (
prepend apiSchemas = ["NewtonMimicAPI", "PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
float drive:angular:physics:maxForce = 100
float newton:mimicCoef1 = 2.29
rel newton:mimicJoint = </linkerhand_o6_left/Physics/lh_thumb_cmc_pitch>
uniform token physics:axis = "Y"
custom rel physics:body0
prepend rel physics:body0 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_thumb_metacarpals_base2/lh_thumb_metacarpals>
custom rel physics:body1
prepend rel physics:body1 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_thumb_metacarpals_base2/lh_thumb_metacarpals/lh_thumb_distal>
point3f physics:localPos0 = (0.0037776, 7.372575e-18, 0.045368)
point3f physics:localPos1 = (0, 0, 0)
quatf physics:localRot0 = (1, 0, 0, 0)
quatf physics:localRot1 = (1, 0, 0, 0)
float physics:lowerLimit = 0
float physics:upperLimit = 61.87944
custom float urdf:limit:effort = 100
custom float urdf:limit:velocity = 1
}
def PhysicsRevoluteJoint "lh_index_mcp_pitch" (
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
float drive:angular:physics:maxForce = 100
uniform token physics:axis = "Y"
custom rel physics:body0
prepend rel physics:body0 = </linkerhand_o6_left/Geometry/lh_hand_base_link>
custom rel physics:body1
prepend rel physics:body1 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_index_proximal>
point3f physics:localPos0 = (0.0024758, -0.02419, 0.098779)
point3f physics:localPos1 = (0, 0, 0)
quatf physics:localRot0 = (0.99965733, 0.026176646, 0, 0)
quatf physics:localRot1 = (1, 0, 0, 0)
float physics:lowerLimit = 0
float physics:upperLimit = 91.67325
custom float urdf:limit:effort = 100
custom float urdf:limit:velocity = 1
}
def PhysicsRevoluteJoint "lh_index_dip" (
prepend apiSchemas = ["NewtonMimicAPI", "PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
float drive:angular:physics:maxForce = 100
float newton:mimicCoef1 = 0.89
rel newton:mimicJoint = </linkerhand_o6_left/Physics/lh_index_mcp_pitch>
uniform token physics:axis = "Y"
custom rel physics:body0
prepend rel physics:body0 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_index_proximal>
custom rel physics:body1
prepend rel physics:body1 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_index_proximal/lh_index_distal>
point3f physics:localPos0 = (-0.0052516, 0, 0.036625)
point3f physics:localPos1 = (0, 0, 0)
quatf physics:localRot0 = (1, 0, 0, 0)
quatf physics:localRot1 = (1, 0, 0, 0)
float physics:lowerLimit = 0
float physics:upperLimit = 81.93297
custom float urdf:limit:effort = 100
custom float urdf:limit:velocity = 1
}
def PhysicsRevoluteJoint "lh_middle_mcp_pitch" (
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
float drive:angular:physics:maxForce = 100
uniform token physics:axis = "Y"
custom rel physics:body0
prepend rel physics:body0 = </linkerhand_o6_left/Geometry/lh_hand_base_link>
custom rel physics:body1
prepend rel physics:body1 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_middle_proximal>
point3f physics:localPos0 = (0.00052576, -0.00634, 0.1027)
point3f physics:localPos1 = (0, 0, 0)
quatf physics:localRot0 = (1, 0, 0, 0)
quatf physics:localRot1 = (1, 0, 0, 0)
float physics:lowerLimit = 0
float physics:upperLimit = 91.67325
custom float urdf:limit:effort = 100
custom float urdf:limit:velocity = 1
}
def PhysicsRevoluteJoint "lh_middle_dip" (
prepend apiSchemas = ["NewtonMimicAPI", "PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
float drive:angular:physics:maxForce = 100
float newton:mimicCoef1 = 0.89
rel newton:mimicJoint = </linkerhand_o6_left/Physics/lh_middle_mcp_pitch>
uniform token physics:axis = "Y"
custom rel physics:body0
prepend rel physics:body0 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_middle_proximal>
custom rel physics:body1
prepend rel physics:body1 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_middle_proximal/lh_middle_distal>
point3f physics:localPos0 = (-0.0052516, 0, 0.036625)
point3f physics:localPos1 = (0, 0, 0)
quatf physics:localRot0 = (1, 0, 0, 0)
quatf physics:localRot1 = (1, 0, 0, 0)
float physics:lowerLimit = 0
float physics:upperLimit = 81.93297
custom float urdf:limit:effort = 100
custom float urdf:limit:velocity = 1
}
def PhysicsRevoluteJoint "lh_ring_mcp_pitch" (
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
float drive:angular:physics:maxForce = 100
uniform token physics:axis = "Y"
custom rel physics:body0
prepend rel physics:body0 = </linkerhand_o6_left/Geometry/lh_hand_base_link>
custom rel physics:body1
prepend rel physics:body1 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_ring_proximal>
point3f physics:localPos0 = (0.0010258, 0.011135, 0.098767)
point3f physics:localPos1 = (0, 0, 0)
quatf physics:localRot0 = (0.99965733, -0.026176646, 0, 0)
quatf physics:localRot1 = (1, 0, 0, 0)
float physics:lowerLimit = 0
float physics:upperLimit = 91.67325
custom float urdf:limit:effort = 100
custom float urdf:limit:velocity = 1
}
def PhysicsRevoluteJoint "lh_ring_dip" (
prepend apiSchemas = ["NewtonMimicAPI", "PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
float drive:angular:physics:maxForce = 100
float newton:mimicCoef1 = 0.89
rel newton:mimicJoint = </linkerhand_o6_left/Physics/lh_ring_mcp_pitch>
uniform token physics:axis = "Y"
custom rel physics:body0
prepend rel physics:body0 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_ring_proximal>
custom rel physics:body1
prepend rel physics:body1 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_ring_proximal/lh_ring_distal>
point3f physics:localPos0 = (-0.0052516, 0, 0.036625)
point3f physics:localPos1 = (0, 0, 0)
quatf physics:localRot0 = (1, 0, 0, 0)
quatf physics:localRot1 = (1, 0, 0, 0)
float physics:lowerLimit = 0
float physics:upperLimit = 81.93297
custom float urdf:limit:effort = 100
custom float urdf:limit:velocity = 1
}
def PhysicsRevoluteJoint "lh_pinky_mcp_pitch" (
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
float drive:angular:physics:maxForce = 100
uniform token physics:axis = "Y"
custom rel physics:body0
prepend rel physics:body0 = </linkerhand_o6_left/Geometry/lh_hand_base_link>
custom rel physics:body1
prepend rel physics:body1 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_pinky_proximal>
point3f physics:localPos0 = (0.0024758, 0.028372, 0.092741)
point3f physics:localPos1 = (0, 0, 0)
quatf physics:localRot0 = (0.99904823, -0.043619126, 0, 0)
quatf physics:localRot1 = (1, 0, 0, 0)
float physics:lowerLimit = 0
float physics:upperLimit = 91.67325
custom float urdf:limit:effort = 100
custom float urdf:limit:velocity = 1
}
def PhysicsRevoluteJoint "lh_pinky_dip" (
prepend apiSchemas = ["NewtonMimicAPI", "PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
float drive:angular:physics:maxForce = 100
float newton:mimicCoef1 = 0.89
rel newton:mimicJoint = </linkerhand_o6_left/Physics/lh_pinky_mcp_pitch>
uniform token physics:axis = "Y"
custom rel physics:body0
prepend rel physics:body0 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_pinky_proximal>
custom rel physics:body1
prepend rel physics:body1 = </linkerhand_o6_left/Geometry/lh_hand_base_link/lh_pinky_proximal/lh_pinky_distal>
point3f physics:localPos0 = (-0.0052516, -3.469447e-18, 0.036625)
point3f physics:localPos1 = (0, 0, 0)
quatf physics:localRot0 = (1, 0, 0, 0)
quatf physics:localRot1 = (1, 0, 0, 0)
float physics:lowerLimit = 0
float physics:upperLimit = 81.93297
custom float urdf:limit:effort = 100
custom float urdf:limit:velocity = 1
}
def PhysicsFixedJoint "root_joint"
{
custom rel physics:body0
prepend rel physics:body0 = </linkerhand_o6_left>
custom rel physics:body1
prepend rel physics:body1 = </linkerhand_o6_left/Geometry/lh_hand_base_link>
point3f physics:localPos0 = (0, 0, 0)
point3f physics:localPos1 = (0, 0, 0)
quatf physics:localRot0 = (1, 0, 0, 0)
quatf physics:localRot1 = (1, 0, 0, 0)
}
}
}
@@ -0,0 +1,108 @@
#usda 1.0
(
customLayerData = {
string creator = "URDF USD Converter v0.1.3"
}
defaultPrim = "linkerhand_o6_left"
doc = """Generated from Composed Stage of root layer /tmp/tmp43xsk_0z/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/usdex_linkerhand_o6_left/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/temp_linkerhand_o6_left/linkerhand_o6_left.usd
Generated from Composed Stage of root layer /home/lxqs/mujoco_testwork/linkerhand-urdf/o6/left/linkerhand_o6_left/payloads/base.usd
"""
kilogramsPerUnit = 1
metersPerUnit = 1
subLayers = [
@./physics.usda@
]
upAxis = "Z"
)
over "linkerhand_o6_left"
{
over "Physics"
{
over "lh_thumb_cmc_yaw" (
prepend apiSchemas = ["PhysxJointAPI"]
)
{
float physxJoint:maxJointVelocity = 57.29578
}
over "lh_thumb_cmc_pitch" (
prepend apiSchemas = ["PhysxJointAPI"]
)
{
float physxJoint:maxJointVelocity = 57.29578
}
over "lh_thumb_ip" (
prepend apiSchemas = ["PhysxJointAPI"]
)
{
float physxJoint:maxJointVelocity = 57.29578
}
over "lh_index_mcp_pitch" (
prepend apiSchemas = ["PhysxJointAPI"]
)
{
float physxJoint:maxJointVelocity = 57.29578
}
over "lh_index_dip" (
prepend apiSchemas = ["PhysxJointAPI"]
)
{
float physxJoint:maxJointVelocity = 57.29578
}
over "lh_middle_mcp_pitch" (
prepend apiSchemas = ["PhysxJointAPI"]
)
{
float physxJoint:maxJointVelocity = 57.29578
}
over "lh_middle_dip" (
prepend apiSchemas = ["PhysxJointAPI"]
)
{
float physxJoint:maxJointVelocity = 57.29578
}
over "lh_ring_mcp_pitch" (
prepend apiSchemas = ["PhysxJointAPI"]
)
{
float physxJoint:maxJointVelocity = 57.29578
}
over "lh_ring_dip" (
prepend apiSchemas = ["PhysxJointAPI"]
)
{
float physxJoint:maxJointVelocity = 57.29578
}
over "lh_pinky_mcp_pitch" (
prepend apiSchemas = ["PhysxJointAPI"]
)
{
float physxJoint:maxJointVelocity = 57.29578
}
over "lh_pinky_dip" (
prepend apiSchemas = ["PhysxJointAPI"]
)
{
float physxJoint:maxJointVelocity = 57.29578
}
}
}
@@ -0,0 +1,418 @@
#usda 1.0
(
customLayerData = {
string creator = "URDF USD Converter v0.1.3"
}
defaultPrim = "linkerhand_o6_left"
doc = """Generated from Composed Stage of root layer /tmp/tmp43xsk_0z/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/usdex_linkerhand_o6_left/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/temp_linkerhand_o6_left/linkerhand_o6_left.usd
Generated from Composed Stage of root layer /home/lxqs/mujoco_testwork/linkerhand-urdf/o6/left/linkerhand_o6_left/payloads/base.usd
"""
kilogramsPerUnit = 1
metersPerUnit = 1
subLayers = [
@./robot.usda@
]
upAxis = "Z"
)
def Xform "linkerhand_o6_left" (
prepend apiSchemas = ["GeomModelAPI"]
assetInfo = {
string name = "linkerhand_o6_left"
}
kind = "component"
)
{
float3[] extentsHint = [(-0.02, -0.116600335, 8.4912535e-11), (0.071913876, 0.040911872, 0.17689712), (3.4028235e38, 3.4028235e38, 3.4028235e38), (-3.4028235e38, -3.4028235e38, -3.4028235e38), (3.4028235e38, 3.4028235e38, 3.4028235e38), (-3.4028235e38, -3.4028235e38, -3.4028235e38), (-0.02, -0.116600335, 8.4912535e-11), (0.071913876, 0.040911872, 0.17689712)]
def Scope "Materials"
{
}
def Scope "Geometry"
{
def Xform "lh_hand_base_link"
{
def Xform "hand_base_link" (
instanceable = true
prepend references = @./instances.usda@</Instances/hand_base_link>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
def Xform "lh_thumb_metacarpals_base2"
{
quatf xformOp:orient = (1, 0, 0, 0)
float3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0.011508, -0.022975, 0.032794)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
def Xform "thumb_metacarpals_base2" (
instanceable = true
prepend references = @./instances.usda@</Instances/thumb_metacarpals_base2>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
def Xform "lh_thumb_metacarpals"
{
quatf xformOp:orient = (0.41919965, 0.47202873, -0.27252436, 0.7260792)
float3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0.0061649, -0.010678, -0.004891)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
def Xform "thumb_metacarpals" (
instanceable = true
prepend references = @./instances.usda@</Instances/thumb_metacarpals>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
def Xform "lh_thumb_distal"
{
quatf xformOp:orient = (1, 0, 0, 0)
float3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0.0037776, 0, 0.045368)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
def Xform "thumb_distal" (
instanceable = true
prepend references = @./instances.usda@</Instances/thumb_distal>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
def Xform "thumb_distal_1" (
displayName = "thumb_distal"
instanceable = true
prepend references = @./instances.usda@</Instances/thumb_distal_1>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
}
def Xform "thumb_metacarpals_1" (
displayName = "thumb_metacarpals"
instanceable = true
prepend references = @./instances.usda@</Instances/thumb_metacarpals_1>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
}
def Xform "thumb_metacarpals_base2_1" (
displayName = "thumb_metacarpals_base2"
instanceable = true
prepend references = @./instances.usda@</Instances/thumb_metacarpals_base2_1>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
}
def Xform "lh_index_proximal"
{
quatf xformOp:orient = (0.99965733, 0.026176646, 0, 0)
float3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0.0024758, -0.02419, 0.098779)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
def Xform "index_proximal" (
instanceable = true
prepend references = @./instances.usda@</Instances/index_proximal>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
def Xform "lh_index_distal"
{
quatf xformOp:orient = (1, 0, 0, 0)
float3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (-0.0052516, 0, 0.036625)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
def Xform "index_distal" (
instanceable = true
prepend references = @./instances.usda@</Instances/index_distal>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
def Xform "index_distal_1" (
displayName = "index_distal"
instanceable = true
prepend references = @./instances.usda@</Instances/index_distal_1>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
}
def Xform "index_proximal_1" (
displayName = "index_proximal"
instanceable = true
prepend references = @./instances.usda@</Instances/index_proximal_1>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
}
def Xform "lh_middle_proximal"
{
quatf xformOp:orient = (1, 0, 0, 0)
float3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0.00052576, -0.00634, 0.1027)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
def Xform "middle_proximal" (
instanceable = true
prepend references = @./instances.usda@</Instances/middle_proximal>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
def Xform "lh_middle_distal"
{
quatf xformOp:orient = (1, 0, 0, 0)
float3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (-0.0052516, 0, 0.036625)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
def Xform "middle_distal" (
instanceable = true
prepend references = @./instances.usda@</Instances/middle_distal>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
def Xform "middle_distal_1" (
displayName = "middle_distal"
instanceable = true
prepend references = @./instances.usda@</Instances/middle_distal_1>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
}
def Xform "middle_proximal_1" (
displayName = "middle_proximal"
instanceable = true
prepend references = @./instances.usda@</Instances/middle_proximal_1>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
}
def Xform "lh_ring_proximal"
{
quatf xformOp:orient = (0.99965733, -0.026176646, 0, 0)
float3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0.0010258, 0.011135, 0.098767)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
def Xform "ring_proximal" (
instanceable = true
prepend references = @./instances.usda@</Instances/ring_proximal>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
def Xform "lh_ring_distal"
{
quatf xformOp:orient = (1, 0, 0, 0)
float3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (-0.0052516, 0, 0.036625)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
def Xform "ring_distal" (
instanceable = true
prepend references = @./instances.usda@</Instances/ring_distal>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
def Xform "ring_distal_1" (
displayName = "ring_distal"
instanceable = true
prepend references = @./instances.usda@</Instances/ring_distal_1>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
}
def Xform "ring_proximal_1" (
displayName = "ring_proximal"
instanceable = true
prepend references = @./instances.usda@</Instances/ring_proximal_1>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
}
def Xform "lh_pinky_proximal"
{
quatf xformOp:orient = (0.99904823, -0.043619126, 0, 0)
float3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0.0024758, 0.028372, 0.092741)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
def Xform "pinky_proximal" (
instanceable = true
prepend references = @./instances.usda@</Instances/pinky_proximal>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
def Xform "lh_pinky_distal"
{
quatf xformOp:orient = (1, 0, 0, 0)
float3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (-0.0052516, 0, 0.036625)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
def Xform "pinky_distal" (
instanceable = true
prepend references = @./instances.usda@</Instances/pinky_distal>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
def Xform "pinky_distal_1" (
displayName = "pinky_distal"
instanceable = true
prepend references = @./instances.usda@</Instances/pinky_distal_1>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
}
def Xform "pinky_proximal_1" (
displayName = "pinky_proximal"
instanceable = true
prepend references = @./instances.usda@</Instances/pinky_proximal_1>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
}
def Xform "hand_base_link_1" (
displayName = "hand_base_link"
instanceable = true
prepend references = @./instances.usda@</Instances/hand_base_link_1>
)
{
quatd xformOp:orient = (1, 0, 0, 0)
double3 xformOp:scale = (1, 1, 1)
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
}
}
}
def Scope "Physics"
{
}
def Scope "VisualMaterials"
{
}
}
@@ -0,0 +1,456 @@
#usda 1.0
(
customLayerData = {
string creator = "URDF USD Converter v0.1.3"
}
doc = """Generated from Composed Stage of root layer /tmp/tmp43xsk_0z/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/usdex_linkerhand_o6_left/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/temp_linkerhand_o6_left/linkerhand_o6_left.usd
Generated from Composed Stage of root layer /home/lxqs/mujoco_testwork/linkerhand-urdf/o6/left/linkerhand_o6_left/payloads/base.usd
"""
kilogramsPerUnit = 1
metersPerUnit = 1
upAxis = "Z"
)
def Scope "Instances"
{
def Xform "hand_base_link" (
prepend references = @./geometries.usd@</Geometries/hand_base_link>
)
{
over "hand_base_link" (
apiSchemas = ["MaterialBindingAPI"]
)
{
custom rel material:binding
prepend rel material:binding = </Instances/hand_base_link/VisualMaterials/silver>
}
def Scope "VisualMaterials"
{
def Material "silver" (
instanceable = true
prepend references = @./materials.usda@</Materials/silver>
)
{
}
}
}
def Xform "hand_base_link_1" (
prepend references = @./geometries.usd@</Geometries/hand_base_link>
)
{
over "hand_base_link" (
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
)
{
token physics:approximation = "convexHull"
token purpose = "guide"
}
}
def Xform "thumb_metacarpals_base2" (
prepend references = @./geometries.usd@</Geometries/thumb_metacarpals_base2>
)
{
over "thumb_metacarpals_base2" (
apiSchemas = ["MaterialBindingAPI"]
)
{
custom rel material:binding
prepend rel material:binding = </Instances/thumb_metacarpals_base2/VisualMaterials/BlackAccent>
}
def Scope "VisualMaterials"
{
def Material "BlackAccent" (
instanceable = true
prepend references = @./materials.usda@</Materials/BlackAccent>
)
{
}
}
}
def Xform "thumb_metacarpals_base2_1" (
prepend references = @./geometries.usd@</Geometries/thumb_metacarpals_base2>
)
{
over "thumb_metacarpals_base2" (
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
)
{
token physics:approximation = "convexHull"
token purpose = "guide"
}
}
def Xform "thumb_metacarpals" (
prepend references = @./geometries.usd@</Geometries/thumb_metacarpals>
)
{
over "thumb_metacarpals" (
apiSchemas = ["MaterialBindingAPI"]
)
{
custom rel material:binding
prepend rel material:binding = </Instances/thumb_metacarpals/VisualMaterials/silver>
}
def Scope "VisualMaterials"
{
def Material "silver" (
instanceable = true
prepend references = @./materials.usda@</Materials/silver>
)
{
}
}
}
def Xform "thumb_metacarpals_1" (
prepend references = @./geometries.usd@</Geometries/thumb_metacarpals>
)
{
over "thumb_metacarpals" (
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
)
{
token physics:approximation = "convexHull"
token purpose = "guide"
}
}
def Xform "thumb_distal" (
prepend references = @./geometries.usd@</Geometries/thumb_distal>
)
{
over "thumb_distal" (
apiSchemas = ["MaterialBindingAPI"]
)
{
custom rel material:binding
prepend rel material:binding = </Instances/thumb_distal/VisualMaterials/silver>
}
def Scope "VisualMaterials"
{
def Material "silver" (
instanceable = true
prepend references = @./materials.usda@</Materials/silver>
)
{
}
}
}
def Xform "thumb_distal_1" (
prepend references = @./geometries.usd@</Geometries/thumb_distal>
)
{
over "thumb_distal" (
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
)
{
token physics:approximation = "convexHull"
token purpose = "guide"
}
}
def Xform "index_proximal" (
prepend references = @./geometries.usd@</Geometries/index_proximal>
)
{
over "index_proximal" (
apiSchemas = ["MaterialBindingAPI"]
)
{
custom rel material:binding
prepend rel material:binding = </Instances/index_proximal/VisualMaterials/silver>
}
def Scope "VisualMaterials"
{
def Material "silver" (
instanceable = true
prepend references = @./materials.usda@</Materials/silver>
)
{
}
}
}
def Xform "index_proximal_1" (
prepend references = @./geometries.usd@</Geometries/index_proximal>
)
{
over "index_proximal" (
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
)
{
token physics:approximation = "convexHull"
token purpose = "guide"
}
}
def Xform "index_distal" (
prepend references = @./geometries.usd@</Geometries/index_distal>
)
{
over "index_distal" (
apiSchemas = ["MaterialBindingAPI"]
)
{
custom rel material:binding
prepend rel material:binding = </Instances/index_distal/VisualMaterials/silver>
}
def Scope "VisualMaterials"
{
def Material "silver" (
instanceable = true
prepend references = @./materials.usda@</Materials/silver>
)
{
}
}
}
def Xform "index_distal_1" (
prepend references = @./geometries.usd@</Geometries/index_distal>
)
{
over "index_distal" (
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
)
{
token physics:approximation = "convexHull"
token purpose = "guide"
}
}
def Xform "middle_proximal" (
prepend references = @./geometries.usd@</Geometries/middle_proximal>
)
{
over "middle_proximal" (
apiSchemas = ["MaterialBindingAPI"]
)
{
custom rel material:binding
prepend rel material:binding = </Instances/middle_proximal/VisualMaterials/silver>
}
def Scope "VisualMaterials"
{
def Material "silver" (
instanceable = true
prepend references = @./materials.usda@</Materials/silver>
)
{
}
}
}
def Xform "middle_proximal_1" (
prepend references = @./geometries.usd@</Geometries/middle_proximal>
)
{
over "middle_proximal" (
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
)
{
token physics:approximation = "convexHull"
token purpose = "guide"
}
}
def Xform "middle_distal" (
prepend references = @./geometries.usd@</Geometries/middle_distal>
)
{
over "middle_distal" (
apiSchemas = ["MaterialBindingAPI"]
)
{
custom rel material:binding
prepend rel material:binding = </Instances/middle_distal/VisualMaterials/silver>
}
def Scope "VisualMaterials"
{
def Material "silver" (
instanceable = true
prepend references = @./materials.usda@</Materials/silver>
)
{
}
}
}
def Xform "middle_distal_1" (
prepend references = @./geometries.usd@</Geometries/middle_distal>
)
{
over "middle_distal" (
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
)
{
token physics:approximation = "convexHull"
token purpose = "guide"
}
}
def Xform "ring_proximal" (
prepend references = @./geometries.usd@</Geometries/ring_proximal>
)
{
over "ring_proximal" (
apiSchemas = ["MaterialBindingAPI"]
)
{
custom rel material:binding
prepend rel material:binding = </Instances/ring_proximal/VisualMaterials/silver>
}
def Scope "VisualMaterials"
{
def Material "silver" (
instanceable = true
prepend references = @./materials.usda@</Materials/silver>
)
{
}
}
}
def Xform "ring_proximal_1" (
prepend references = @./geometries.usd@</Geometries/ring_proximal>
)
{
over "ring_proximal" (
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
)
{
token physics:approximation = "convexHull"
token purpose = "guide"
}
}
def Xform "ring_distal" (
prepend references = @./geometries.usd@</Geometries/ring_distal>
)
{
over "ring_distal" (
apiSchemas = ["MaterialBindingAPI"]
)
{
custom rel material:binding
prepend rel material:binding = </Instances/ring_distal/VisualMaterials/silver>
}
def Scope "VisualMaterials"
{
def Material "silver" (
instanceable = true
prepend references = @./materials.usda@</Materials/silver>
)
{
}
}
}
def Xform "ring_distal_1" (
prepend references = @./geometries.usd@</Geometries/ring_distal>
)
{
over "ring_distal" (
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
)
{
token physics:approximation = "convexHull"
token purpose = "guide"
}
}
def Xform "pinky_proximal" (
prepend references = @./geometries.usd@</Geometries/pinky_proximal>
)
{
over "pinky_proximal" (
apiSchemas = ["MaterialBindingAPI"]
)
{
custom rel material:binding
prepend rel material:binding = </Instances/pinky_proximal/VisualMaterials/silver>
}
def Scope "VisualMaterials"
{
def Material "silver" (
instanceable = true
prepend references = @./materials.usda@</Materials/silver>
)
{
}
}
}
def Xform "pinky_proximal_1" (
prepend references = @./geometries.usd@</Geometries/pinky_proximal>
)
{
over "pinky_proximal" (
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
)
{
token physics:approximation = "convexHull"
token purpose = "guide"
}
}
def Xform "pinky_distal" (
prepend references = @./geometries.usd@</Geometries/pinky_distal>
)
{
over "pinky_distal" (
apiSchemas = ["MaterialBindingAPI"]
)
{
custom rel material:binding
prepend rel material:binding = </Instances/pinky_distal/VisualMaterials/silver>
}
def Scope "VisualMaterials"
{
def Material "silver" (
instanceable = true
prepend references = @./materials.usda@</Materials/silver>
)
{
}
}
}
def Xform "pinky_distal_1" (
prepend references = @./geometries.usd@</Geometries/pinky_distal>
)
{
over "pinky_distal" (
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
)
{
token physics:approximation = "convexHull"
token purpose = "guide"
}
}
}
@@ -0,0 +1,90 @@
#usda 1.0
(
customLayerData = {
string creator = "URDF USD Converter v0.1.3"
}
doc = """Generated from Composed Stage of root layer /tmp/tmp43xsk_0z/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/usdex_linkerhand_o6_left/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/temp_linkerhand_o6_left/linkerhand_o6_left.usd
Generated from Composed Stage of root layer /home/lxqs/mujoco_testwork/linkerhand-urdf/o6/left/linkerhand_o6_left/payloads/base.usd
"""
kilogramsPerUnit = 1
metersPerUnit = 1
upAxis = "Z"
)
def Scope "Materials"
{
def Material "silver"
{
color3f inputs:diffuseColor = (0.21404114, 0.21404114, 0.23302203)
float inputs:metallic = 0
float inputs:opacity = 1
float inputs:roughness = 0.5
token inputs:wrapMode = "repeat"
token outputs:displacement (
displayGroup = "Outputs"
)
prepend token outputs:displacement.connect = </Materials/silver/PreviewSurface.outputs:displacement>
token outputs:surface (
displayGroup = "Outputs"
)
prepend token outputs:surface.connect = </Materials/silver/PreviewSurface.outputs:surface>
token outputs:volume (
displayGroup = "Outputs"
)
def Shader "PreviewSurface" (
apiSchemas = ["NodeDefAPI"]
)
{
token info:id = "UsdPreviewSurface"
prepend color3f inputs:diffuseColor.connect = </Materials/silver.inputs:diffuseColor>
prepend float inputs:metallic.connect = </Materials/silver.inputs:metallic>
prepend float inputs:opacity.connect = </Materials/silver.inputs:opacity>
prepend float inputs:roughness.connect = </Materials/silver.inputs:roughness>
token outputs:displacement
token outputs:surface
}
}
def Material "BlackAccent"
{
color3f inputs:diffuseColor = (0.01960665, 0.01960665, 0.01960665)
float inputs:metallic = 0
float inputs:opacity = 1
float inputs:roughness = 0.5
token inputs:wrapMode = "repeat"
token outputs:displacement (
displayGroup = "Outputs"
)
prepend token outputs:displacement.connect = </Materials/BlackAccent/PreviewSurface.outputs:displacement>
token outputs:surface (
displayGroup = "Outputs"
)
prepend token outputs:surface.connect = </Materials/BlackAccent/PreviewSurface.outputs:surface>
token outputs:volume (
displayGroup = "Outputs"
)
def Shader "PreviewSurface" (
apiSchemas = ["NodeDefAPI"]
)
{
token info:id = "UsdPreviewSurface"
prepend color3f inputs:diffuseColor.connect = </Materials/BlackAccent.inputs:diffuseColor>
prepend float inputs:metallic.connect = </Materials/BlackAccent.inputs:metallic>
prepend float inputs:opacity.connect = </Materials/BlackAccent.inputs:opacity>
prepend float inputs:roughness.connect = </Materials/BlackAccent.inputs:roughness>
token outputs:displacement
token outputs:surface
}
}
}
@@ -0,0 +1,197 @@
#usda 1.0
(
customLayerData = {
string creator = "URDF USD Converter v0.1.3"
}
defaultPrim = "linkerhand_o6_left"
doc = """Generated from Composed Stage of root layer /tmp/tmp43xsk_0z/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/usdex_linkerhand_o6_left/linkerhand_o6_left.usdc
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_o6_left_7nekwe14/temp_linkerhand_o6_left/linkerhand_o6_left.usd
"""
kilogramsPerUnit = 1
metersPerUnit = 1
upAxis = "Z"
)
over "linkerhand_o6_left" (
prepend apiSchemas = ["IsaacRobotAPI"]
)
{
prepend rel isaac:physics:robotJoints = [
</linkerhand_o6_left/Physics/root_joint>,
</linkerhand_o6_left/Physics/lh_thumb_cmc_yaw>,
</linkerhand_o6_left/Physics/lh_index_mcp_pitch>,
</linkerhand_o6_left/Physics/lh_middle_mcp_pitch>,
</linkerhand_o6_left/Physics/lh_ring_mcp_pitch>,
</linkerhand_o6_left/Physics/lh_pinky_mcp_pitch>,
</linkerhand_o6_left/Physics/lh_thumb_cmc_pitch>,
</linkerhand_o6_left/Physics/lh_thumb_ip>,
</linkerhand_o6_left/Physics/lh_index_dip>,
</linkerhand_o6_left/Physics/lh_middle_dip>,
</linkerhand_o6_left/Physics/lh_ring_dip>,
</linkerhand_o6_left/Physics/lh_pinky_dip>,
]
prepend rel isaac:physics:robotLinks = [
</linkerhand_o6_left/Geometry/lh_hand_base_link>,
</linkerhand_o6_left/Geometry/lh_hand_base_link/lh_thumb_metacarpals_base2>,
</linkerhand_o6_left/Geometry/lh_hand_base_link/lh_thumb_metacarpals_base2/lh_thumb_metacarpals>,
</linkerhand_o6_left/Geometry/lh_hand_base_link/lh_thumb_metacarpals_base2/lh_thumb_metacarpals/lh_thumb_distal>,
</linkerhand_o6_left/Geometry/lh_hand_base_link/lh_index_proximal>,
</linkerhand_o6_left/Geometry/lh_hand_base_link/lh_index_proximal/lh_index_distal>,
</linkerhand_o6_left/Geometry/lh_hand_base_link/lh_middle_proximal>,
</linkerhand_o6_left/Geometry/lh_hand_base_link/lh_middle_proximal/lh_middle_distal>,
</linkerhand_o6_left/Geometry/lh_hand_base_link/lh_ring_proximal>,
</linkerhand_o6_left/Geometry/lh_hand_base_link/lh_ring_proximal/lh_ring_distal>,
</linkerhand_o6_left/Geometry/lh_hand_base_link/lh_pinky_proximal>,
</linkerhand_o6_left/Geometry/lh_hand_base_link/lh_pinky_proximal/lh_pinky_distal>,
]
token isaac:robotType = "Default"
over "Geometry"
{
over "lh_hand_base_link" (
prepend apiSchemas = ["IsaacLinkAPI"]
)
{
over "lh_thumb_metacarpals_base2" (
prepend apiSchemas = ["IsaacLinkAPI"]
)
{
over "lh_thumb_metacarpals" (
prepend apiSchemas = ["IsaacLinkAPI"]
)
{
over "lh_thumb_distal" (
prepend apiSchemas = ["IsaacLinkAPI"]
)
{
}
}
}
over "lh_index_proximal" (
prepend apiSchemas = ["IsaacLinkAPI"]
)
{
over "lh_index_distal" (
prepend apiSchemas = ["IsaacLinkAPI"]
)
{
}
}
over "lh_middle_proximal" (
prepend apiSchemas = ["IsaacLinkAPI"]
)
{
over "lh_middle_distal" (
prepend apiSchemas = ["IsaacLinkAPI"]
)
{
}
}
over "lh_ring_proximal" (
prepend apiSchemas = ["IsaacLinkAPI"]
)
{
over "lh_ring_distal" (
prepend apiSchemas = ["IsaacLinkAPI"]
)
{
}
}
over "lh_pinky_proximal" (
prepend apiSchemas = ["IsaacLinkAPI"]
)
{
over "lh_pinky_distal" (
prepend apiSchemas = ["IsaacLinkAPI"]
)
{
}
}
}
}
over "Physics"
{
over "root_joint" (
prepend apiSchemas = ["IsaacJointAPI"]
)
{
}
over "lh_thumb_cmc_yaw" (
prepend apiSchemas = ["IsaacJointAPI"]
)
{
}
over "lh_thumb_cmc_pitch" (
prepend apiSchemas = ["IsaacJointAPI"]
)
{
}
over "lh_thumb_ip" (
prepend apiSchemas = ["IsaacJointAPI"]
)
{
}
over "lh_index_mcp_pitch" (
prepend apiSchemas = ["IsaacJointAPI"]
)
{
}
over "lh_index_dip" (
prepend apiSchemas = ["IsaacJointAPI"]
)
{
}
over "lh_middle_mcp_pitch" (
prepend apiSchemas = ["IsaacJointAPI"]
)
{
}
over "lh_middle_dip" (
prepend apiSchemas = ["IsaacJointAPI"]
)
{
}
over "lh_ring_mcp_pitch" (
prepend apiSchemas = ["IsaacJointAPI"]
)
{
}
over "lh_ring_dip" (
prepend apiSchemas = ["IsaacJointAPI"]
)
{
}
over "lh_pinky_mcp_pitch" (
prepend apiSchemas = ["IsaacJointAPI"]
)
{
}
over "lh_pinky_dip" (
prepend apiSchemas = ["IsaacJointAPI"]
)
{
}
}
}