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:
2026-03-25 16:32:52 +08:00
parent bfe28b188a
commit eef7ff838d
3 changed files with 24 additions and 10 deletions

View File

@@ -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"],