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:
@@ -0,0 +1,398 @@
|
||||
#usda 1.0
|
||||
(
|
||||
defaultPrim = "linkerhand_g20_left"
|
||||
metersPerUnit = 1
|
||||
kilogramsPerUnit = 1
|
||||
upAxis = "Z"
|
||||
)
|
||||
|
||||
over "linkerhand_g20_left"
|
||||
{
|
||||
over "Geometry"
|
||||
{
|
||||
over "hand_base_link" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "thumb_metacarpals_base1" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "thumb_metacarpals_base1"
|
||||
{
|
||||
over "thumb_metacarpals_base2" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "thumb_metacarpals_base1"
|
||||
{
|
||||
over "thumb_metacarpals_base2"
|
||||
{
|
||||
over "thumb_metacarpals" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "thumb_metacarpals_base1"
|
||||
{
|
||||
over "thumb_metacarpals_base2"
|
||||
{
|
||||
over "thumb_metacarpals"
|
||||
{
|
||||
over "thumb_proximal" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "thumb_metacarpals_base1"
|
||||
{
|
||||
over "thumb_metacarpals_base2"
|
||||
{
|
||||
over "thumb_metacarpals"
|
||||
{
|
||||
over "thumb_proximal"
|
||||
{
|
||||
over "thumb_distal" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "index_metacarpals" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "index_metacarpals"
|
||||
{
|
||||
over "index_proximal" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "index_metacarpals"
|
||||
{
|
||||
over "index_proximal"
|
||||
{
|
||||
over "index_middle" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "index_metacarpals"
|
||||
{
|
||||
over "index_proximal"
|
||||
{
|
||||
over "index_middle"
|
||||
{
|
||||
over "index_distal" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "middle_metacarpals" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "middle_metacarpals"
|
||||
{
|
||||
over "middle_proximal" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "middle_metacarpals"
|
||||
{
|
||||
over "middle_proximal"
|
||||
{
|
||||
over "middle_middle" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "middle_metacarpals"
|
||||
{
|
||||
over "middle_proximal"
|
||||
{
|
||||
over "middle_middle"
|
||||
{
|
||||
over "middle_distal" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "ring_metacarpals" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "ring_metacarpals"
|
||||
{
|
||||
over "ring_proximal" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "ring_metacarpals"
|
||||
{
|
||||
over "ring_proximal"
|
||||
{
|
||||
over "ring_middle" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "ring_metacarpals"
|
||||
{
|
||||
over "ring_proximal"
|
||||
{
|
||||
over "ring_middle"
|
||||
{
|
||||
over "ring_distal" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "pinky_metacarpals" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "pinky_metacarpals"
|
||||
{
|
||||
over "pinky_proximal" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "pinky_metacarpals"
|
||||
{
|
||||
over "pinky_proximal"
|
||||
{
|
||||
over "pinky_middle" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "pinky_metacarpals"
|
||||
{
|
||||
over "pinky_proximal"
|
||||
{
|
||||
over "pinky_middle"
|
||||
{
|
||||
over "pinky_distal" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 6.0
|
||||
float physxRigidBody:angularDamping = 6.0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,582 @@
|
||||
#usda 1.0
|
||||
(
|
||||
customLayerData = {
|
||||
string creator = "URDF USD Converter v0.1.3"
|
||||
}
|
||||
defaultPrim = "linkerhand_g20_left"
|
||||
doc = """Generated from Composed Stage of root layer /tmp/tmp5xni4jzi/linkerhand_g20_left.usdc
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_g20_left_9306w6un/usdex_linkerhand_g20_left/linkerhand_g20_left.usdc
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_g20_left_9306w6un/temp_linkerhand_g20_left/linkerhand_g20_left.usd
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /home/lxqs/isaacsim/linkerhand/urdf/g20/left/linkerhand_g20_left/payloads/base.usd
|
||||
"""
|
||||
kilogramsPerUnit = 1
|
||||
metersPerUnit = 1
|
||||
subLayers = [
|
||||
@./physics.usda@
|
||||
]
|
||||
upAxis = "Z"
|
||||
)
|
||||
|
||||
over "linkerhand_g20_left"
|
||||
{
|
||||
over "Physics"
|
||||
{
|
||||
def MjcActuator "thumb_cmc_roll_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/thumb_cmc_roll>
|
||||
}
|
||||
|
||||
def MjcActuator "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_g20_left/Physics/thumb_cmc_yaw>
|
||||
}
|
||||
|
||||
def MjcActuator "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_g20_left/Physics/thumb_cmc_pitch>
|
||||
}
|
||||
|
||||
def MjcActuator "thumb_mcp_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/thumb_mcp>
|
||||
}
|
||||
|
||||
def MjcActuator "thumb_ip_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/thumb_ip>
|
||||
}
|
||||
|
||||
def MjcActuator "index_mcp_roll_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/index_mcp_roll>
|
||||
}
|
||||
|
||||
def MjcActuator "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_g20_left/Physics/index_mcp_pitch>
|
||||
}
|
||||
|
||||
def MjcActuator "index_pip_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/index_pip>
|
||||
}
|
||||
|
||||
def MjcActuator "index_dip_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/index_dip>
|
||||
}
|
||||
|
||||
def MjcActuator "middle_mcp_roll_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/middle_mcp_roll>
|
||||
}
|
||||
|
||||
def MjcActuator "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_g20_left/Physics/middle_mcp_pitch>
|
||||
}
|
||||
|
||||
def MjcActuator "middle_pip_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/middle_pip>
|
||||
}
|
||||
|
||||
def MjcActuator "middle_dip_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/middle_dip>
|
||||
}
|
||||
|
||||
def MjcActuator "ring_mcp_roll_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/ring_mcp_roll>
|
||||
}
|
||||
|
||||
def MjcActuator "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_g20_left/Physics/ring_mcp_pitch>
|
||||
}
|
||||
|
||||
def MjcActuator "ring_pip_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/ring_pip>
|
||||
}
|
||||
|
||||
def MjcActuator "ring_dip_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/ring_dip>
|
||||
}
|
||||
|
||||
def MjcActuator "pinky_mcp_roll_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/pinky_mcp_roll>
|
||||
}
|
||||
|
||||
def MjcActuator "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_g20_left/Physics/pinky_mcp_pitch>
|
||||
}
|
||||
|
||||
def MjcActuator "pinky_pip_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/pinky_pip>
|
||||
}
|
||||
|
||||
def MjcActuator "pinky_dip_actuator"
|
||||
{
|
||||
uniform double mjc:forceRange:max = 100
|
||||
uniform double mjc:forceRange:min = -100
|
||||
custom rel mjc:target
|
||||
prepend rel mjc:target = </linkerhand_g20_left/Physics/pinky_dip>
|
||||
}
|
||||
|
||||
over "root_joint"
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_cmc_roll" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_cmc_yaw" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_cmc_pitch" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_mcp" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_ip" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "index_mcp_roll" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "index_mcp_pitch" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "index_pip" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "index_dip" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "middle_mcp_roll" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "middle_mcp_pitch" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "middle_pip" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "middle_dip" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "ring_mcp_roll" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "ring_mcp_pitch" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "ring_pip" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "ring_dip" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "pinky_mcp_roll" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "pinky_mcp_pitch" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "pinky_pip" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "pinky_dip" (
|
||||
delete apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "Geometry"
|
||||
{
|
||||
over "hand_base_link"
|
||||
{
|
||||
over "thumb_metacarpals_base1"
|
||||
{
|
||||
over "thumb_metacarpals_base2"
|
||||
{
|
||||
over "thumb_metacarpals"
|
||||
{
|
||||
over "thumb_proximal"
|
||||
{
|
||||
over "thumb_distal"
|
||||
{
|
||||
over "thumb_distal"
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_distal_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "thumb_proximal"
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_proximal_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "thumb_metacarpals"
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_metacarpals_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "thumb_metacarpals_base2"
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_metacarpals_base2_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "thumb_metacarpals_base1"
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_metacarpals_base1_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "index_metacarpals"
|
||||
{
|
||||
over "index_proximal"
|
||||
{
|
||||
over "index_middle"
|
||||
{
|
||||
over "index_distal"
|
||||
{
|
||||
over "index_distal"
|
||||
{
|
||||
}
|
||||
|
||||
over "index_distal_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "index_middle"
|
||||
{
|
||||
}
|
||||
|
||||
over "index_middle_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "index_proximal"
|
||||
{
|
||||
}
|
||||
|
||||
over "index_proximal_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "index_metacarpals"
|
||||
{
|
||||
}
|
||||
|
||||
over "index_metacarpals_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "middle_metacarpals"
|
||||
{
|
||||
over "middle_proximal"
|
||||
{
|
||||
over "middle_middle"
|
||||
{
|
||||
over "middle_distal"
|
||||
{
|
||||
over "middle_distal"
|
||||
{
|
||||
}
|
||||
|
||||
over "middle_distal_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "middle_middle"
|
||||
{
|
||||
}
|
||||
|
||||
over "middle_middle_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "middle_proximal"
|
||||
{
|
||||
}
|
||||
|
||||
over "middle_proximal_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "middle_metacarpals"
|
||||
{
|
||||
}
|
||||
|
||||
over "middle_metacarpals_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "ring_metacarpals"
|
||||
{
|
||||
over "ring_proximal"
|
||||
{
|
||||
over "ring_middle"
|
||||
{
|
||||
over "ring_distal"
|
||||
{
|
||||
over "ring_distal"
|
||||
{
|
||||
}
|
||||
|
||||
over "ring_distal_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "ring_middle"
|
||||
{
|
||||
}
|
||||
|
||||
over "ring_middle_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "ring_proximal"
|
||||
{
|
||||
}
|
||||
|
||||
over "ring_proximal_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "ring_metacarpals"
|
||||
{
|
||||
}
|
||||
|
||||
over "ring_metacarpals_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "pinky_metacarpals"
|
||||
{
|
||||
over "pinky_proximal"
|
||||
{
|
||||
over "pinky_middle"
|
||||
{
|
||||
over "pinky_distal"
|
||||
{
|
||||
over "pinky_distal"
|
||||
{
|
||||
}
|
||||
|
||||
over "pinky_distal_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "pinky_middle"
|
||||
{
|
||||
}
|
||||
|
||||
over "pinky_middle_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "pinky_proximal"
|
||||
{
|
||||
}
|
||||
|
||||
over "pinky_proximal_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "pinky_metacarpals"
|
||||
{
|
||||
}
|
||||
|
||||
over "pinky_metacarpals_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
over "hand_base_link"
|
||||
{
|
||||
}
|
||||
|
||||
over "hand_base_link_1"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "Materials"
|
||||
{
|
||||
}
|
||||
|
||||
over "VisualMaterials"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,720 @@
|
||||
#usda 1.0
|
||||
(
|
||||
customLayerData = {
|
||||
string creator = "URDF USD Converter v0.1.3"
|
||||
}
|
||||
defaultPrim = "linkerhand_g20_left"
|
||||
doc = """Generated from Composed Stage of root layer /tmp/tmp5xni4jzi/linkerhand_g20_left.usdc
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_g20_left_9306w6un/usdex_linkerhand_g20_left/linkerhand_g20_left.usdc
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_g20_left_9306w6un/temp_linkerhand_g20_left/linkerhand_g20_left.usd
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /home/lxqs/isaacsim/linkerhand/urdf/g20/left/linkerhand_g20_left/payloads/base.usd
|
||||
"""
|
||||
kilogramsPerUnit = 1
|
||||
metersPerUnit = 1
|
||||
upAxis = "Z"
|
||||
)
|
||||
|
||||
over "linkerhand_g20_left"
|
||||
{
|
||||
over "Geometry" (
|
||||
prepend apiSchemas = ["PhysicsArticulationRootAPI", "NewtonArticulationRootAPI"]
|
||||
)
|
||||
{
|
||||
bool newton:selfCollisionEnabled = 1
|
||||
|
||||
over "hand_base_link" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.000986417, 0.000268049, 0.077379845)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.1103735
|
||||
quatf physics:principalAxes = (0.70273006, 0.038762398, 0.7092034, -0.04121172)
|
||||
|
||||
over "thumb_metacarpals_base1" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (0.011515513, 0.0039806883, 0.00027288825)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.69315267, 0.09873541, 0.69662505, -0.15653834)
|
||||
|
||||
over "thumb_metacarpals_base2" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (0.0028671462, -0.0061572655, 0.0047260527)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (-0.4856348, 0.6328352, 0.57746726, 0.17381014)
|
||||
|
||||
over "thumb_metacarpals" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (0.0067065787, 0.000086075896, 0.033141293)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.028716035
|
||||
quatf physics:principalAxes = (0.5003233, 0.49646425, 0.50234294, 0.50085074)
|
||||
|
||||
over "thumb_proximal" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.002687344, 0.00056824455, 0.011850173)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.4466405, 0.44347262, 0.5443941, 0.55450827)
|
||||
|
||||
over "thumb_distal" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.0007100218, -0.0026757591, 0.012476266)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.7076172, 0.49610376, 0.40506423, 0.29846585)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "index_metacarpals" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.007942997, -2.9367396e-7, 0.0022010603)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.15955442, 0.6888882, 0.68885684, -0.15953577)
|
||||
|
||||
over "index_proximal" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.0011418548, 0.000034731576, 0.02289284)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.5117973, 0.51168644, 0.48817277, 0.48777848)
|
||||
|
||||
over "index_middle" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.00020699194, 0.0000026061707, 0.016706534)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.7445136, -0.00005444173, 0.6676073, 0.000047438436)
|
||||
|
||||
over "index_distal" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.008162465, 0.000022705892, 0.008118065)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.90243715, -0.0029940915, 0.43080872, -0.0014403827)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "middle_metacarpals" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.007942996, -2.9300665e-7, 0.0022010633)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.1595545, 0.6888883, 0.6888567, -0.15953599)
|
||||
|
||||
over "middle_proximal" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.0011418548, 0.000034731576, 0.02289284)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.5117973, 0.51168644, 0.48817277, 0.48777848)
|
||||
|
||||
over "middle_middle" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.0002069919, 0.0000026062498, 0.016706534)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.7445136, -0.000054456927, 0.6676073, 0.00004744315)
|
||||
|
||||
over "middle_distal" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.008162466, 0.000022705855, 0.008118066)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.90243715, -0.0029941155, 0.4308087, -0.0014403895)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "ring_metacarpals" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.007942996, -2.945131e-7, 0.0022010615)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.15955459, 0.6888881, 0.68885696, -0.1595357)
|
||||
|
||||
over "ring_proximal" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.0011418548, 0.00003473158, 0.02289284)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.5117973, 0.51168644, 0.48817277, 0.48777848)
|
||||
|
||||
over "ring_middle" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.00020699321, 0.0000026074692, 0.016706532)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.74451363, -0.000054586842, 0.6676073, 0.000047385933)
|
||||
|
||||
over "ring_distal" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.008162466, 0.000022705732, 0.008118066)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.90243715, -0.0029941578, 0.43080872, -0.0014404262)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "pinky_metacarpals" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.007942996, -2.9300685e-7, 0.0022010633)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.1595545, 0.6888883, 0.6888567, -0.15953599)
|
||||
|
||||
over "pinky_proximal" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.0011418548, 0.00003473158, 0.02289284)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.5117973, 0.51168644, 0.48817277, 0.48777848)
|
||||
|
||||
over "pinky_middle" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.00020699325, 0.00000260749, 0.016706532)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.74451363, -0.0000545887, 0.6676073, 0.000047383306)
|
||||
|
||||
over "pinky_distal" (
|
||||
prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
|
||||
)
|
||||
{
|
||||
point3f physics:centerOfMass = (-0.008162466, 0.000022705419, 0.008118066)
|
||||
float3 physics:diagonalInertia = (0.0005, 0.0005, 0.0005)
|
||||
float physics:mass = 0.02
|
||||
quatf physics:principalAxes = (0.90243715, -0.002994122, 0.43080872, -0.001440418)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "Physics"
|
||||
{
|
||||
def PhysicsRevoluteJoint "thumb_cmc_roll" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "X"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/thumb_metacarpals_base1>
|
||||
point3f physics:localPos0 = (0.01916, -0.01, 0.0436)
|
||||
point3f physics:localPos1 = (0, 0, 0)
|
||||
quatf physics:localRot0 = (0, 0, -1, 0)
|
||||
quatf physics:localRot1 = (0, 0, -1, 0)
|
||||
float physics:lowerLimit = 0
|
||||
float physics:upperLimit = 84.22480
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "thumb_cmc_yaw" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "Z"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/thumb_metacarpals_base1>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2>
|
||||
point3f physics:localPos0 = (0.019845, 0, 0)
|
||||
point3f physics:localPos1 = (0, 0, 0)
|
||||
quatf physics:localRot0 = (0.9264883, 0.3763236, 0, 0)
|
||||
quatf physics:localRot1 = (1, 0, 0, 0)
|
||||
float physics:lowerLimit = 0
|
||||
float physics:upperLimit = 89.95438
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "thumb_cmc_pitch" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals>
|
||||
point3f physics:localPos0 = (0.0088218, -0.024245, 0.0005)
|
||||
point3f physics:localPos1 = (0, 0, 0)
|
||||
quatf physics:localRot0 = (0.49418968, 0.41577393, -0.29111633, 0.7058044)
|
||||
quatf physics:localRot1 = (1, 0, 0, 0)
|
||||
float physics:lowerLimit = 0
|
||||
float physics:upperLimit = 48.128456
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "thumb_mcp" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals/thumb_proximal>
|
||||
point3f physics:localPos0 = (0.012701825, -6.938894e-18, 0.06272562)
|
||||
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 = 72.19268
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "thumb_ip" (
|
||||
prepend apiSchemas = ["NewtonMimicAPI", "PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
float newton:mimicCoef1 = 1.02
|
||||
rel newton:mimicJoint = </linkerhand_g20_left/Physics/thumb_mcp>
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals/thumb_proximal>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals/thumb_proximal/thumb_distal>
|
||||
point3f physics:localPos0 = (-0.004836522, 1.3877788e-17, 0.034222648)
|
||||
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 = 73.91155
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "index_mcp_roll" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "X"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/index_metacarpals>
|
||||
point3f physics:localPos0 = (0.0038, -0.03525, 0.1481)
|
||||
point3f physics:localPos1 = (0, 0, 0)
|
||||
quatf physics:localRot0 = (1, 0, 0, 0)
|
||||
quatf physics:localRot1 = (1, 0, 0, 0)
|
||||
float physics:lowerLimit = -13.178029
|
||||
float physics:upperLimit = 13.178029
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "index_mcp_pitch" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/index_metacarpals>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/index_metacarpals/index_proximal>
|
||||
point3f physics:localPos0 = (-0.0021302, 0, 0)
|
||||
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 = 69.90085
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "index_pip" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/index_metacarpals/index_proximal>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/index_metacarpals/index_proximal/index_middle>
|
||||
point3f physics:localPos0 = (-0.0041946, 0, 0.044819)
|
||||
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 = 99.69466
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "index_dip" (
|
||||
prepend apiSchemas = ["NewtonMimicAPI", "PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
float newton:mimicCoef1 = 0.89
|
||||
rel newton:mimicJoint = </linkerhand_g20_left/Physics/index_pip>
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/index_metacarpals/index_proximal/index_middle>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/index_metacarpals/index_proximal/index_middle/index_distal>
|
||||
point3f physics:localPos0 = (0.0028245, 0, 0.031696)
|
||||
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 = 88.80846
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "middle_mcp_roll" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "X"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/middle_metacarpals>
|
||||
point3f physics:localPos0 = (0.0038, -0.01175, 0.1526)
|
||||
point3f physics:localPos1 = (0, 0, 0)
|
||||
quatf physics:localRot0 = (1, 0, 0, 0)
|
||||
quatf physics:localRot1 = (1, 0, 0, 0)
|
||||
float physics:lowerLimit = -13.178029
|
||||
float physics:upperLimit = 13.178029
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "middle_mcp_pitch" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/middle_metacarpals>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/middle_metacarpals/middle_proximal>
|
||||
point3f physics:localPos0 = (-0.0021302, 0, 0)
|
||||
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 = 69.90085
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "middle_pip" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/middle_metacarpals/middle_proximal>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/middle_metacarpals/middle_proximal/middle_middle>
|
||||
point3f physics:localPos0 = (-0.004194577, 0, 0.044819433)
|
||||
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 = 99.69466
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "middle_dip" (
|
||||
prepend apiSchemas = ["NewtonMimicAPI", "PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
float newton:mimicCoef1 = 0.89
|
||||
rel newton:mimicJoint = </linkerhand_g20_left/Physics/middle_pip>
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/middle_metacarpals/middle_proximal/middle_middle>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/middle_metacarpals/middle_proximal/middle_middle/middle_distal>
|
||||
point3f physics:localPos0 = (0.0028245, 0, 0.031696)
|
||||
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 = 88.80846
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "ring_mcp_roll" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "X"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/ring_metacarpals>
|
||||
point3f physics:localPos0 = (0.0038, 0.01175, 0.1481)
|
||||
point3f physics:localPos1 = (0, 0, 0)
|
||||
quatf physics:localRot0 = (1, 0, 0, 0)
|
||||
quatf physics:localRot1 = (1, 0, 0, 0)
|
||||
float physics:lowerLimit = -13.178029
|
||||
float physics:upperLimit = 13.178029
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "ring_mcp_pitch" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/ring_metacarpals>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/ring_metacarpals/ring_proximal>
|
||||
point3f physics:localPos0 = (-0.0021302, 0, 0)
|
||||
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 = 69.90085
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "ring_pip" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/ring_metacarpals/ring_proximal>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/ring_metacarpals/ring_proximal/ring_middle>
|
||||
point3f physics:localPos0 = (-0.004194577, 0, 0.044819433)
|
||||
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 = 99.69466
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "ring_dip" (
|
||||
prepend apiSchemas = ["NewtonMimicAPI", "PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
float newton:mimicCoef1 = 0.89
|
||||
rel newton:mimicJoint = </linkerhand_g20_left/Physics/ring_pip>
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/ring_metacarpals/ring_proximal/ring_middle>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/ring_metacarpals/ring_proximal/ring_middle/ring_distal>
|
||||
point3f physics:localPos0 = (0.0028245, 0, 0.031696)
|
||||
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 = 88.80846
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "pinky_mcp_roll" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "X"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/pinky_metacarpals>
|
||||
point3f physics:localPos0 = (0.0038, 0.03525, 0.1436)
|
||||
point3f physics:localPos1 = (0, 0, 0)
|
||||
quatf physics:localRot0 = (1, 0, 0, 0)
|
||||
quatf physics:localRot1 = (1, 0, 0, 0)
|
||||
float physics:lowerLimit = -13.178029
|
||||
float physics:upperLimit = 13.178029
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "pinky_mcp_pitch" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/pinky_metacarpals>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal>
|
||||
point3f physics:localPos0 = (-0.0021302, 0, 0)
|
||||
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 = 69.90085
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "pinky_pip" (
|
||||
prepend apiSchemas = ["PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal/pinky_middle>
|
||||
point3f physics:localPos0 = (-0.0041946, 0, 0.044819)
|
||||
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 = 99.69466
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsRevoluteJoint "pinky_dip" (
|
||||
prepend apiSchemas = ["NewtonMimicAPI", "PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
|
||||
)
|
||||
{
|
||||
float drive:angular:physics:maxForce = 10
|
||||
uniform token drive:angular:physics:type = "force"
|
||||
float newton:mimicCoef1 = 0.89
|
||||
rel newton:mimicJoint = </linkerhand_g20_left/Physics/pinky_pip>
|
||||
uniform token physics:axis = "Y"
|
||||
custom rel physics:body0
|
||||
prepend rel physics:body0 = </linkerhand_g20_left/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal/pinky_middle>
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal/pinky_middle/pinky_distal>
|
||||
point3f physics:localPos0 = (0.0028245, 0, 0.031696)
|
||||
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 = 88.80846
|
||||
custom float urdf:limit:effort = 100
|
||||
custom float urdf:limit:velocity = 1
|
||||
}
|
||||
|
||||
def PhysicsFixedJoint "root_joint"
|
||||
{
|
||||
# Deliverable fixed base: empty body0 = world, body1 = palm rigid body.
|
||||
# Mount pose comes from the referencing Xform in the scene (not localPos0).
|
||||
custom rel physics:body0
|
||||
custom rel physics:body1
|
||||
prepend rel physics:body1 = </linkerhand_g20_left/Geometry/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)
|
||||
bool physics:jointEnabled = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,230 @@
|
||||
#usda 1.0
|
||||
(
|
||||
customLayerData = {
|
||||
string creator = "URDF USD Converter v0.1.3"
|
||||
}
|
||||
defaultPrim = "linkerhand_g20_left"
|
||||
doc = """Generated from Composed Stage of root layer /tmp/tmp5xni4jzi/linkerhand_g20_left.usdc
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_g20_left_9306w6un/usdex_linkerhand_g20_left/linkerhand_g20_left.usdc
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_g20_left_9306w6un/temp_linkerhand_g20_left/linkerhand_g20_left.usd
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /home/lxqs/isaacsim/linkerhand/urdf/g20/left/linkerhand_g20_left/payloads/base.usd
|
||||
"""
|
||||
kilogramsPerUnit = 1
|
||||
metersPerUnit = 1
|
||||
subLayers = [
|
||||
@./physics.usda@,
|
||||
@./hand_body_limits.usda@
|
||||
]
|
||||
upAxis = "Z"
|
||||
)
|
||||
|
||||
over "linkerhand_g20_left"
|
||||
{
|
||||
|
||||
# Deliverable PhysX limits: prevent contact impulse blow-ups when fingertips collide
|
||||
over "Geometry" (
|
||||
prepend apiSchemas = ["PhysxArticulationAPI"]
|
||||
)
|
||||
{
|
||||
bool physxArticulation:enabledSelfCollisions = 1
|
||||
bool newton:selfCollisionEnabled = 1
|
||||
int physxArticulation:solverPositionIterationCount = 32
|
||||
int physxArticulation:solverVelocityIterationCount = 4
|
||||
float physxArticulation:sleepThreshold = 0.005
|
||||
|
||||
over "hand_base_link" (
|
||||
prepend apiSchemas = ["PhysxRigidBodyAPI"]
|
||||
)
|
||||
{
|
||||
# Retarget/PD 稳定:限速 + 阻尼,避免握拳末端冲飞
|
||||
float physxRigidBody:maxLinearVelocity = 3.0
|
||||
float physxRigidBody:maxAngularVelocity = 360.0
|
||||
float physxRigidBody:linearDamping = 5.0
|
||||
float physxRigidBody:angularDamping = 5.0
|
||||
bool physxRigidBody:disableGravity = 0
|
||||
}
|
||||
}
|
||||
|
||||
over "Physics"
|
||||
{
|
||||
over "thumb_cmc_roll" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
|
||||
}
|
||||
|
||||
over "thumb_cmc_yaw" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
|
||||
}
|
||||
|
||||
over "thumb_cmc_pitch" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
|
||||
}
|
||||
|
||||
over "thumb_mcp" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
|
||||
}
|
||||
|
||||
over "thumb_ip" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
|
||||
}
|
||||
|
||||
over "index_mcp_roll" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "index_mcp_pitch" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "index_pip" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "index_dip" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "middle_mcp_roll" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "middle_mcp_pitch" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "middle_pip" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "middle_dip" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "ring_mcp_roll" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "ring_mcp_pitch" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "ring_pip" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "ring_dip" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "pinky_mcp_roll" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "pinky_mcp_pitch" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "pinky_pip" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
|
||||
over "pinky_dip" (
|
||||
prepend apiSchemas = ["PhysxJointAPI"]
|
||||
)
|
||||
{
|
||||
float physxJoint:maxJointVelocity = 171.887
|
||||
float physxJoint:armature = 0.05
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,730 @@
|
||||
#usda 1.0
|
||||
(
|
||||
customLayerData = {
|
||||
string creator = "URDF USD Converter v0.1.3"
|
||||
}
|
||||
defaultPrim = "linkerhand_g20_left"
|
||||
doc = """Generated from Composed Stage of root layer /tmp/tmp5xni4jzi/linkerhand_g20_left.usdc
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_g20_left_9306w6un/usdex_linkerhand_g20_left/linkerhand_g20_left.usdc
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_g20_left_9306w6un/temp_linkerhand_g20_left/linkerhand_g20_left.usd
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /home/lxqs/isaacsim/linkerhand/urdf/g20/left/linkerhand_g20_left/payloads/base.usd
|
||||
"""
|
||||
kilogramsPerUnit = 1
|
||||
metersPerUnit = 1
|
||||
subLayers = [
|
||||
@./robot.usda@
|
||||
]
|
||||
upAxis = "Z"
|
||||
)
|
||||
|
||||
def Xform "linkerhand_g20_left" (
|
||||
prepend apiSchemas = ["GeomModelAPI"]
|
||||
assetInfo = {
|
||||
string name = "linkerhand_g20_left"
|
||||
}
|
||||
kind = "component"
|
||||
)
|
||||
{
|
||||
float3[] extentsHint = [(-0.031971373, -0.153883, -0.007755601), (0.095290326, 0.052480385, 0.25205174), (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.031971373, -0.153883, -0.007755601), (0.095290326, 0.052480385, 0.25205174)]
|
||||
|
||||
def Scope "Materials"
|
||||
{
|
||||
}
|
||||
|
||||
def Scope "Geometry"
|
||||
{
|
||||
def Xform "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 "thumb_metacarpals_base1"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (0.01916, -0.01, 0.0436)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
|
||||
def Xform "thumb_metacarpals_base1" (
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/thumb_metacarpals_base1>
|
||||
)
|
||||
{
|
||||
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"
|
||||
{
|
||||
quatf xformOp:orient = (0.9264883, 0.3763236, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (0.019845, 0, 0)
|
||||
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 "thumb_metacarpals"
|
||||
{
|
||||
quatf xformOp:orient = (0.49418968, 0.41577393, -0.29111633, 0.7058044)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (0.0088218, -0.024245, 0.0005)
|
||||
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 "thumb_proximal"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (0.0127018248047608, 0, 0.0627256157349894)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
|
||||
def Xform "thumb_proximal" (
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/thumb_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 "thumb_distal"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (-0.00483652209209624, 0, 0.0342226492098615)
|
||||
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 = (0.70, 0.70, 0.70)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "thumb_proximal_1" (
|
||||
displayName = "thumb_proximal"
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/thumb_proximal_1>
|
||||
)
|
||||
{
|
||||
quatd xformOp:orient = (1, 0, 0, 0)
|
||||
double3 xformOp:scale = (0.55, 0.55, 0.55)
|
||||
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 = (0.55, 0.55, 0.55)
|
||||
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 = (0.65, 0.65, 0.65)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "thumb_metacarpals_base1_1" (
|
||||
displayName = "thumb_metacarpals_base1"
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/thumb_metacarpals_base1_1>
|
||||
)
|
||||
{
|
||||
quatd xformOp:orient = (1, 0, 0, 0)
|
||||
double3 xformOp:scale = (0.65, 0.65, 0.65)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "index_metacarpals"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (0.0038, -0.03525, 0.1481)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
|
||||
def Xform "index_metacarpals" (
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/index_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 "index_proximal"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (-0.0021302, 0, 0)
|
||||
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 "index_middle"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (-0.0041946, 0, 0.044819)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
|
||||
def Xform "index_middle" (
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/index_middle>
|
||||
)
|
||||
{
|
||||
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"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (0.0028245, 0, 0.031696)
|
||||
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 = (0.75, 0.75, 0.75)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "index_middle_1" (
|
||||
displayName = "index_middle"
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/index_middle_1>
|
||||
)
|
||||
{
|
||||
quatd xformOp:orient = (1, 0, 0, 0)
|
||||
double3 xformOp:scale = (0.85, 0.85, 0.85)
|
||||
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 = (0.85, 0.85, 0.85)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "index_metacarpals_1" (
|
||||
displayName = "index_metacarpals"
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/index_metacarpals_1>
|
||||
)
|
||||
{
|
||||
quatd xformOp:orient = (1, 0, 0, 0)
|
||||
double3 xformOp:scale = (0.75, 0.75, 0.75)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "middle_metacarpals"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (0.00379999999265848, -0.0117500000029305, 0.1526)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
|
||||
def Xform "middle_metacarpals" (
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/index_metacarpals_2>
|
||||
)
|
||||
{
|
||||
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"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (-0.0021302, 0, 0)
|
||||
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 "middle_middle"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (-0.00419457745591796, 0, 0.0448194332262389)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
|
||||
def Xform "middle_middle" (
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/middle_middle>
|
||||
)
|
||||
{
|
||||
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"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (0.0028245, 0, 0.031696)
|
||||
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 = (0.75, 0.75, 0.75)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "middle_middle_1" (
|
||||
displayName = "middle_middle"
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/middle_middle_1>
|
||||
)
|
||||
{
|
||||
quatd xformOp:orient = (1, 0, 0, 0)
|
||||
double3 xformOp:scale = (0.85, 0.85, 0.85)
|
||||
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 = (0.85, 0.85, 0.85)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "middle_metacarpals_1" (
|
||||
displayName = "middle_metacarpals"
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/index_metacarpals_1>
|
||||
)
|
||||
{
|
||||
quatd xformOp:orient = (1, 0, 0, 0)
|
||||
double3 xformOp:scale = (0.75, 0.75, 0.75)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "ring_metacarpals"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (0.00379999999632174, 0.0117499999970695, 0.1481)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
|
||||
def Xform "ring_metacarpals" (
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/index_metacarpals_3>
|
||||
)
|
||||
{
|
||||
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"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (-0.0021302, 0, 0)
|
||||
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 "ring_middle"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (-0.00419457745591796, 0, 0.0448194332262389)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
|
||||
def Xform "ring_middle" (
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/ring_middle>
|
||||
)
|
||||
{
|
||||
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"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (0.0028245, 0, 0.031696)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
|
||||
def Xform "ring_distal" (
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/index_distal_2>
|
||||
)
|
||||
{
|
||||
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/index_distal_1>
|
||||
)
|
||||
{
|
||||
quatd xformOp:orient = (1, 0, 0, 0)
|
||||
double3 xformOp:scale = (0.75, 0.75, 0.75)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "ring_middle_1" (
|
||||
displayName = "ring_middle"
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/ring_middle_1>
|
||||
)
|
||||
{
|
||||
quatd xformOp:orient = (1, 0, 0, 0)
|
||||
double3 xformOp:scale = (0.85, 0.85, 0.85)
|
||||
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 = (0.85, 0.85, 0.85)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "ring_metacarpals_1" (
|
||||
displayName = "ring_metacarpals"
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/index_metacarpals_1>
|
||||
)
|
||||
{
|
||||
quatd xformOp:orient = (1, 0, 0, 0)
|
||||
double3 xformOp:scale = (0.75, 0.75, 0.75)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "pinky_metacarpals"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (0.00379999999998499, 0.0352499999970695, 0.1436)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
|
||||
def Xform "pinky_metacarpals" (
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/index_metacarpals_4>
|
||||
)
|
||||
{
|
||||
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"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (-0.0021302, 0, 0)
|
||||
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 "pinky_middle"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (-0.0041946, 0, 0.044819)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
|
||||
def Xform "pinky_middle" (
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/index_middle_2>
|
||||
)
|
||||
{
|
||||
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"
|
||||
{
|
||||
quatf xformOp:orient = (1, 0, 0, 0)
|
||||
float3 xformOp:scale = (1, 1, 1)
|
||||
double3 xformOp:translate = (0.0028245, 0, 0.031696)
|
||||
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 = (0.75, 0.75, 0.75)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "pinky_middle_1" (
|
||||
displayName = "pinky_middle"
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/index_middle_1>
|
||||
)
|
||||
{
|
||||
quatd xformOp:orient = (1, 0, 0, 0)
|
||||
double3 xformOp:scale = (0.85, 0.85, 0.85)
|
||||
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 = (0.85, 0.85, 0.85)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "pinky_metacarpals_1" (
|
||||
displayName = "pinky_metacarpals"
|
||||
instanceable = true
|
||||
prepend references = @./instances.usda@</Instances/index_metacarpals_1>
|
||||
)
|
||||
{
|
||||
quatd xformOp:orient = (1, 0, 0, 0)
|
||||
double3 xformOp:scale = (0.75, 0.75, 0.75)
|
||||
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>
|
||||
)
|
||||
{
|
||||
# Same visual mesh as collision source; scale 1 = match rendered palm.
|
||||
# purpose=guide on the mesh keeps this collider invisible in viewport.
|
||||
quatd xformOp:orient = (1, 0, 0, 0)
|
||||
double3 xformOp:scale = (0.90, 0.90, 0.90)
|
||||
double3 xformOp:translate = (0, 0, 0)
|
||||
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Scope "Physics"
|
||||
{
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,798 @@
|
||||
#usda 1.0
|
||||
(
|
||||
customLayerData = {
|
||||
string creator = "URDF USD Converter v0.1.3"
|
||||
}
|
||||
doc = """Generated from Composed Stage of root layer /tmp/tmp5xni4jzi/linkerhand_g20_left.usdc
|
||||
|
||||
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_g20_left_9306w6un/usdex_linkerhand_g20_left/linkerhand_g20_left.usdc
|
||||
|
||||
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_g20_left_9306w6un/temp_linkerhand_g20_left/linkerhand_g20_left.usd
|
||||
|
||||
Generated from Composed Stage of root layer /home/lxqs/isaacsim/linkerhand/urdf/g20/left/linkerhand_g20_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/material_1>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_1" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "hand_base_link_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/hand_base_link>
|
||||
)
|
||||
{
|
||||
over "hand_base_link" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI", "PhysxCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# Self-collision ON: palm visual-mesh collider (purpose=guide).
|
||||
# Mid/proximal finger hulls stay OFF to avoid PD fist-end explode.
|
||||
bool physics:collisionEnabled = 1
|
||||
token physics:approximation = "convexHull"
|
||||
token purpose = "guide"
|
||||
float physxCollision:contactOffset = 0.001
|
||||
float physxCollision:restOffset = -0.0005
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "thumb_metacarpals_base1" (
|
||||
prepend references = @./geometries.usd@</Geometries/thumb_metacarpals_base1>
|
||||
)
|
||||
{
|
||||
over "thumb_metacarpals_base1" (
|
||||
apiSchemas = ["MaterialBindingAPI"]
|
||||
)
|
||||
{
|
||||
custom rel material:binding
|
||||
prepend rel material:binding = </Instances/thumb_metacarpals_base1/VisualMaterials/material_2>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_2" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "thumb_metacarpals_base1_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/thumb_metacarpals_base1>
|
||||
)
|
||||
{
|
||||
over "thumb_metacarpals_base1" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# OFF: CMC rest-pose convexHull overlaps palm.
|
||||
bool physics:collisionEnabled = 0
|
||||
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/material_3>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_3" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "thumb_metacarpals_base2_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/thumb_metacarpals_base2>
|
||||
)
|
||||
{
|
||||
over "thumb_metacarpals_base2" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# OFF: CMC rest-pose convexHull overlaps palm.
|
||||
bool physics:collisionEnabled = 0
|
||||
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/material_4>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_4" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "thumb_metacarpals_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/thumb_metacarpals>
|
||||
)
|
||||
{
|
||||
over "thumb_metacarpals" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI", "PhysxCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# OFF: open-pose convexHull embeds into palm → Instant NaN.
|
||||
bool physics:collisionEnabled = 0
|
||||
token physics:approximation = "convexHull"
|
||||
token purpose = "guide"
|
||||
float physxCollision:contactOffset = 0.001
|
||||
float physxCollision:restOffset = -0.0005
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "thumb_proximal" (
|
||||
prepend references = @./geometries.usd@</Geometries/thumb_proximal>
|
||||
)
|
||||
{
|
||||
over "thumb_proximal" (
|
||||
apiSchemas = ["MaterialBindingAPI"]
|
||||
)
|
||||
{
|
||||
custom rel material:binding
|
||||
prepend rel material:binding = </Instances/thumb_proximal/VisualMaterials/material_5>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_5" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "thumb_proximal_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/thumb_proximal>
|
||||
)
|
||||
{
|
||||
over "thumb_proximal" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI", "PhysxCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# OFF: open-pose convexHull embeds into palm → Instant NaN.
|
||||
bool physics:collisionEnabled = 0
|
||||
token physics:approximation = "convexHull"
|
||||
token purpose = "guide"
|
||||
float physxCollision:contactOffset = 0.001
|
||||
float physxCollision:restOffset = -0.0005
|
||||
}
|
||||
}
|
||||
|
||||
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/material_6>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_6" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "thumb_distal_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/thumb_distal>
|
||||
)
|
||||
{
|
||||
over "thumb_distal" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI", "PhysxCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# ON: tip vs palm only (shaft OFF for open-pose stability).
|
||||
bool physics:collisionEnabled = 1
|
||||
token physics:approximation = "convexHull"
|
||||
token purpose = "guide"
|
||||
float physxCollision:contactOffset = 0.001
|
||||
float physxCollision:restOffset = -0.0005
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "index_metacarpals" (
|
||||
prepend references = @./geometries.usd@</Geometries/index_metacarpals>
|
||||
)
|
||||
{
|
||||
over "index_metacarpals" (
|
||||
apiSchemas = ["MaterialBindingAPI"]
|
||||
)
|
||||
{
|
||||
custom rel material:binding
|
||||
prepend rel material:binding = </Instances/index_metacarpals/VisualMaterials/material_7>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_7" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "index_metacarpals_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/index_metacarpals>
|
||||
)
|
||||
{
|
||||
over "index_metacarpals" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# OFF: fat/adjacent hulls explode under PD close-fist.
|
||||
bool physics:collisionEnabled = 0
|
||||
token physics:approximation = "convexHull"
|
||||
token purpose = "guide"
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "index_metacarpals_2" (
|
||||
prepend references = @./geometries.usd@</Geometries/index_metacarpals>
|
||||
)
|
||||
{
|
||||
over "index_metacarpals" (
|
||||
apiSchemas = ["MaterialBindingAPI"]
|
||||
)
|
||||
{
|
||||
custom rel material:binding
|
||||
prepend rel material:binding = </Instances/index_metacarpals_2/VisualMaterials/material_11>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_11" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "index_metacarpals_3" (
|
||||
prepend references = @./geometries.usd@</Geometries/index_metacarpals>
|
||||
)
|
||||
{
|
||||
over "index_metacarpals" (
|
||||
apiSchemas = ["MaterialBindingAPI"]
|
||||
)
|
||||
{
|
||||
custom rel material:binding
|
||||
prepend rel material:binding = </Instances/index_metacarpals_3/VisualMaterials/material_15>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_15" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "index_metacarpals_4" (
|
||||
prepend references = @./geometries.usd@</Geometries/index_metacarpals>
|
||||
)
|
||||
{
|
||||
over "index_metacarpals" (
|
||||
apiSchemas = ["MaterialBindingAPI"]
|
||||
)
|
||||
{
|
||||
custom rel material:binding
|
||||
prepend rel material:binding = </Instances/index_metacarpals_4/VisualMaterials/material_19>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_19" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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/material_8>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_8" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "index_proximal_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/index_proximal>
|
||||
)
|
||||
{
|
||||
over "index_proximal" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# OFF: fat/adjacent hulls explode under PD close-fist.
|
||||
bool physics:collisionEnabled = 0
|
||||
token physics:approximation = "convexHull"
|
||||
token purpose = "guide"
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "index_middle" (
|
||||
prepend references = @./geometries.usd@</Geometries/index_middle>
|
||||
)
|
||||
{
|
||||
over "index_middle" (
|
||||
apiSchemas = ["MaterialBindingAPI"]
|
||||
)
|
||||
{
|
||||
custom rel material:binding
|
||||
prepend rel material:binding = </Instances/index_middle/VisualMaterials/material_9>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_9" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "index_middle_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/index_middle>
|
||||
)
|
||||
{
|
||||
over "index_middle" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# OFF: fat/adjacent hulls explode under PD close-fist.
|
||||
bool physics:collisionEnabled = 0
|
||||
token physics:approximation = "convexHull"
|
||||
token purpose = "guide"
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "index_middle_2" (
|
||||
prepend references = @./geometries.usd@</Geometries/index_middle>
|
||||
)
|
||||
{
|
||||
over "index_middle" (
|
||||
apiSchemas = ["MaterialBindingAPI"]
|
||||
)
|
||||
{
|
||||
custom rel material:binding
|
||||
prepend rel material:binding = </Instances/index_middle_2/VisualMaterials/material_21>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_21" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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/material_10>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_10" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "index_distal_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/index_distal>
|
||||
)
|
||||
{
|
||||
over "index_distal" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI", "PhysxCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# ON: fingertip contact under self-collision.
|
||||
bool physics:collisionEnabled = 1
|
||||
token physics:approximation = "convexHull"
|
||||
token purpose = "guide"
|
||||
float physxCollision:contactOffset = 0.001
|
||||
float physxCollision:restOffset = -0.0005
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "index_distal_2" (
|
||||
prepend references = @./geometries.usd@</Geometries/index_distal>
|
||||
)
|
||||
{
|
||||
over "index_distal" (
|
||||
apiSchemas = ["MaterialBindingAPI"]
|
||||
)
|
||||
{
|
||||
custom rel material:binding
|
||||
prepend rel material:binding = </Instances/index_distal_2/VisualMaterials/material_18>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_18" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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/material_12>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_12" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "middle_proximal_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/middle_proximal>
|
||||
)
|
||||
{
|
||||
over "middle_proximal" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# OFF: fat/adjacent hulls explode under PD close-fist.
|
||||
bool physics:collisionEnabled = 0
|
||||
token physics:approximation = "convexHull"
|
||||
token purpose = "guide"
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "middle_middle" (
|
||||
prepend references = @./geometries.usd@</Geometries/middle_middle>
|
||||
)
|
||||
{
|
||||
over "middle_middle" (
|
||||
apiSchemas = ["MaterialBindingAPI"]
|
||||
)
|
||||
{
|
||||
custom rel material:binding
|
||||
prepend rel material:binding = </Instances/middle_middle/VisualMaterials/material_13>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_13" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "middle_middle_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/middle_middle>
|
||||
)
|
||||
{
|
||||
over "middle_middle" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# OFF: fat/adjacent hulls explode under PD close-fist.
|
||||
bool physics:collisionEnabled = 0
|
||||
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/material_14>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_14" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "middle_distal_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/middle_distal>
|
||||
)
|
||||
{
|
||||
over "middle_distal" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI", "PhysxCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# ON: fingertip contact under self-collision.
|
||||
bool physics:collisionEnabled = 1
|
||||
token physics:approximation = "convexHull"
|
||||
token purpose = "guide"
|
||||
float physxCollision:contactOffset = 0.001
|
||||
float physxCollision:restOffset = -0.0005
|
||||
}
|
||||
}
|
||||
|
||||
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/material_16>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_16" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "ring_proximal_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/ring_proximal>
|
||||
)
|
||||
{
|
||||
over "ring_proximal" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# OFF: fat/adjacent hulls explode under PD close-fist.
|
||||
bool physics:collisionEnabled = 0
|
||||
token physics:approximation = "convexHull"
|
||||
token purpose = "guide"
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "ring_middle" (
|
||||
prepend references = @./geometries.usd@</Geometries/ring_middle>
|
||||
)
|
||||
{
|
||||
over "ring_middle" (
|
||||
apiSchemas = ["MaterialBindingAPI"]
|
||||
)
|
||||
{
|
||||
custom rel material:binding
|
||||
prepend rel material:binding = </Instances/ring_middle/VisualMaterials/material_17>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_17" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "ring_middle_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/ring_middle>
|
||||
)
|
||||
{
|
||||
over "ring_middle" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# OFF: fat/adjacent hulls explode under PD close-fist.
|
||||
bool physics:collisionEnabled = 0
|
||||
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/material_20>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_20" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "pinky_proximal_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/pinky_proximal>
|
||||
)
|
||||
{
|
||||
over "pinky_proximal" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# OFF: fat/adjacent hulls explode under PD close-fist.
|
||||
bool physics:collisionEnabled = 0
|
||||
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/material_22>
|
||||
}
|
||||
|
||||
def Scope "VisualMaterials"
|
||||
{
|
||||
def Material "material_22" (
|
||||
instanceable = true
|
||||
prepend references = @./materials.usda@</Materials/material_1>
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def Xform "pinky_distal_1" (
|
||||
prepend references = @./geometries.usd@</Geometries/pinky_distal>
|
||||
)
|
||||
{
|
||||
over "pinky_distal" (
|
||||
apiSchemas = ["PhysicsCollisionAPI", "NewtonCollisionAPI", "PhysicsMeshCollisionAPI", "NewtonMeshCollisionAPI", "PhysxCollisionAPI"]
|
||||
)
|
||||
{
|
||||
# ON: fingertip contact under self-collision.
|
||||
bool physics:collisionEnabled = 1
|
||||
token physics:approximation = "convexHull"
|
||||
token purpose = "guide"
|
||||
float physxCollision:contactOffset = 0.001
|
||||
float physxCollision:restOffset = -0.0005
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
#usda 1.0
|
||||
(
|
||||
customLayerData = {
|
||||
string creator = "URDF USD Converter v0.1.3"
|
||||
}
|
||||
doc = """Generated from Composed Stage of root layer /tmp/tmp5xni4jzi/linkerhand_g20_left.usdc
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_g20_left_9306w6un/usdex_linkerhand_g20_left/linkerhand_g20_left.usdc
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_g20_left_9306w6un/temp_linkerhand_g20_left/linkerhand_g20_left.usd
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /home/lxqs/isaacsim/linkerhand/urdf/g20/left/linkerhand_g20_left/payloads/base.usd
|
||||
"""
|
||||
kilogramsPerUnit = 1
|
||||
metersPerUnit = 1
|
||||
upAxis = "Z"
|
||||
)
|
||||
|
||||
def Scope "Materials"
|
||||
{
|
||||
def Material "material_1"
|
||||
{
|
||||
color3f inputs:diffuseColor = (1, 1, 1)
|
||||
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/material_1/PreviewSurface.outputs:displacement>
|
||||
token outputs:surface (
|
||||
displayGroup = "Outputs"
|
||||
)
|
||||
prepend token outputs:surface.connect = </Materials/material_1/PreviewSurface.outputs:surface>
|
||||
token outputs:volume (
|
||||
displayGroup = "Outputs"
|
||||
)
|
||||
|
||||
def Shader "PreviewSurface" (
|
||||
apiSchemas = ["NodeDefAPI"]
|
||||
)
|
||||
{
|
||||
token info:id = "UsdPreviewSurface"
|
||||
prepend color3f inputs:diffuseColor.connect = </Materials/material_1.inputs:diffuseColor>
|
||||
prepend float inputs:metallic.connect = </Materials/material_1.inputs:metallic>
|
||||
prepend float inputs:opacity.connect = </Materials/material_1.inputs:opacity>
|
||||
prepend float inputs:roughness.connect = </Materials/material_1.inputs:roughness>
|
||||
token outputs:displacement
|
||||
token outputs:surface
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,327 @@
|
||||
#usda 1.0
|
||||
(
|
||||
customLayerData = {
|
||||
string creator = "URDF USD Converter v0.1.3"
|
||||
}
|
||||
defaultPrim = "linkerhand_g20_left"
|
||||
doc = """Generated from Composed Stage of root layer /tmp/tmp5xni4jzi/linkerhand_g20_left.usdc
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_g20_left_9306w6un/usdex_linkerhand_g20_left/linkerhand_g20_left.usdc
|
||||
|
||||
|
||||
Generated from Composed Stage of root layer /tmp/urdf_import_linkerhand_g20_left_9306w6un/temp_linkerhand_g20_left/linkerhand_g20_left.usd
|
||||
"""
|
||||
kilogramsPerUnit = 1
|
||||
metersPerUnit = 1
|
||||
upAxis = "Z"
|
||||
)
|
||||
|
||||
over "linkerhand_g20_left" (
|
||||
prepend apiSchemas = ["IsaacRobotAPI"]
|
||||
)
|
||||
{
|
||||
prepend rel isaac:physics:robotJoints = [
|
||||
</linkerhand_g20_left/Physics/root_joint>,
|
||||
</linkerhand_g20_left/Physics/thumb_cmc_roll>,
|
||||
</linkerhand_g20_left/Physics/index_mcp_roll>,
|
||||
</linkerhand_g20_left/Physics/middle_mcp_roll>,
|
||||
</linkerhand_g20_left/Physics/ring_mcp_roll>,
|
||||
</linkerhand_g20_left/Physics/pinky_mcp_roll>,
|
||||
</linkerhand_g20_left/Physics/thumb_cmc_yaw>,
|
||||
</linkerhand_g20_left/Physics/thumb_cmc_pitch>,
|
||||
</linkerhand_g20_left/Physics/thumb_mcp>,
|
||||
</linkerhand_g20_left/Physics/thumb_ip>,
|
||||
</linkerhand_g20_left/Physics/index_mcp_pitch>,
|
||||
</linkerhand_g20_left/Physics/index_pip>,
|
||||
</linkerhand_g20_left/Physics/index_dip>,
|
||||
</linkerhand_g20_left/Physics/middle_mcp_pitch>,
|
||||
</linkerhand_g20_left/Physics/middle_pip>,
|
||||
</linkerhand_g20_left/Physics/middle_dip>,
|
||||
</linkerhand_g20_left/Physics/ring_mcp_pitch>,
|
||||
</linkerhand_g20_left/Physics/ring_pip>,
|
||||
</linkerhand_g20_left/Physics/ring_dip>,
|
||||
</linkerhand_g20_left/Physics/pinky_mcp_pitch>,
|
||||
</linkerhand_g20_left/Physics/pinky_pip>,
|
||||
</linkerhand_g20_left/Physics/pinky_dip>,
|
||||
]
|
||||
prepend rel isaac:physics:robotLinks = [
|
||||
</linkerhand_g20_left/Geometry/hand_base_link>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/thumb_metacarpals_base1>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals/thumb_proximal>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/thumb_metacarpals_base1/thumb_metacarpals_base2/thumb_metacarpals/thumb_proximal/thumb_distal>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/index_metacarpals>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/index_metacarpals/index_proximal>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/index_metacarpals/index_proximal/index_middle>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/index_metacarpals/index_proximal/index_middle/index_distal>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/middle_metacarpals>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/middle_metacarpals/middle_proximal>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/middle_metacarpals/middle_proximal/middle_middle>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/middle_metacarpals/middle_proximal/middle_middle/middle_distal>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/ring_metacarpals>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/ring_metacarpals/ring_proximal>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/ring_metacarpals/ring_proximal/ring_middle>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/ring_metacarpals/ring_proximal/ring_middle/ring_distal>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/pinky_metacarpals>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal/pinky_middle>,
|
||||
</linkerhand_g20_left/Geometry/hand_base_link/pinky_metacarpals/pinky_proximal/pinky_middle/pinky_distal>,
|
||||
]
|
||||
token isaac:robotType = "End Effector"
|
||||
|
||||
over "Geometry"
|
||||
{
|
||||
over "hand_base_link" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "thumb_metacarpals_base1" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "thumb_metacarpals_base2" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "thumb_metacarpals" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "thumb_proximal" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "thumb_distal" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "index_metacarpals" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "index_proximal" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "index_middle" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "index_distal" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "middle_metacarpals" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "middle_proximal" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "middle_middle" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "middle_distal" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "ring_metacarpals" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "ring_proximal" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "ring_middle" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "ring_distal" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "pinky_metacarpals" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "pinky_proximal" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "pinky_middle" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
over "pinky_distal" (
|
||||
prepend apiSchemas = ["IsaacLinkAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
over "Physics"
|
||||
{
|
||||
over "root_joint" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_cmc_roll" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_cmc_yaw" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_cmc_pitch" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_mcp" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "thumb_ip" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "index_mcp_roll" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "index_mcp_pitch" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "index_pip" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "index_dip" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "middle_mcp_roll" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "middle_mcp_pitch" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "middle_pip" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "middle_dip" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "ring_mcp_roll" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "ring_mcp_pitch" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "ring_pip" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "ring_dip" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "pinky_mcp_roll" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "pinky_mcp_pitch" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "pinky_pip" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
over "pinky_dip" (
|
||||
prepend apiSchemas = ["IsaacJointAPI"]
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user