Fix PrismaticJoint (trunk) control: IdealPDActuator with high stiffness
Replace ImplicitActuator (which doesn't work for prismatic joints) with IdealPDActuator. This bypasses PhysX drive and explicitly computes PD forces using set_dof_actuation_forces(). Changes: - stiffness=100k, damping=5k to resist arm reaction forces (~150N) with <2mm deflection - Read trunk_cmd from ArticulationCfg initial position (single source of truth) - Integrate trunk diagnostics into robot state output - Remove hardcoded trunk_target parameter
This commit is contained in:
@@ -61,11 +61,11 @@ MINDBOT_CFG = ArticulationCfg(
|
||||
# NOTE: pos z = 0.44 (base clearance) + PrismaticJoint value.
|
||||
# If you change PrismaticJoint, update pos z accordingly to avoid
|
||||
# geometry clipping that causes the robot to fall on spawn.
|
||||
"PrismaticJoint": 0.4,
|
||||
"PrismaticJoint": 0.2,
|
||||
"head_pitch_Joint": 0.0,
|
||||
"head_yaw_Joint": 0.0,
|
||||
},
|
||||
pos=(0.001, 0.001, 0.74), # z = 0.44 (base clearance) + 0.26 (PrismaticJoint)
|
||||
pos=(0.001, 0.001, 0.7), # z = 0.44 (base clearance) + 0.26 (PrismaticJoint)
|
||||
),
|
||||
actuators={
|
||||
# RM-65 J1-J3: shoulder/elbow — max 180°/s ≈ 3.14 rad/s
|
||||
@@ -110,13 +110,14 @@ MINDBOT_CFG = ArticulationCfg(
|
||||
# IdealPDActuator: explicitly computes F = k_p*(target-pos) + k_d*(target_vel-vel)
|
||||
# and sends via set_dof_actuation_forces(), bypassing PhysX drive which
|
||||
# doesn't work correctly for prismatic joints with set_dof_position_targets().
|
||||
# NOTE: trunk gravity is disabled in USD, so moderate stiffness is sufficient.
|
||||
"trunk": ImplicitActuatorCfg(
|
||||
# NOTE: trunk gravity disabled by startup event. High stiffness to resist
|
||||
# arm reaction forces (~150N) — deflection < 2mm at 100k stiffness.
|
||||
"trunk": IdealPDActuatorCfg(
|
||||
joint_names_expr=["PrismaticJoint"],
|
||||
effort_limit=100.0,
|
||||
velocity_limit=0.2,
|
||||
effort_limit=2000.0,
|
||||
velocity_limit=0.5,
|
||||
stiffness=100000.0,
|
||||
damping=10000.0,
|
||||
damping=5000.0,
|
||||
),
|
||||
"wheels": ImplicitActuatorCfg(
|
||||
# joint_names_expr=[".*_revolute_Joint"],
|
||||
|
||||
Reference in New Issue
Block a user