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:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,52 @@
|
||||
#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"
|
||||
)
|
||||
|
||||
def Xform "linkerhand_g20_left" (
|
||||
prepend references = @./payloads/base.usda@
|
||||
variants = {
|
||||
string Physics = "physx"
|
||||
}
|
||||
append variantSets = "Physics"
|
||||
)
|
||||
{
|
||||
variantSet "Physics" = {
|
||||
"mujoco" (
|
||||
prepend payload = @./payloads/Physics/mujoco.usda@
|
||||
) {
|
||||
|
||||
}
|
||||
"none" {
|
||||
|
||||
}
|
||||
"physics" (
|
||||
prepend payload = @./payloads/Physics/physics.usda@
|
||||
) {
|
||||
|
||||
}
|
||||
"physx" (
|
||||
prepend payload = @./payloads/Physics/physx.usda@
|
||||
) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,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"]
|
||||
)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user