Unified the two separate sysid codepaths (motor-only and full-system) into a single module that optimizes all 28 parameters jointly: - 13 motor params (asymmetric gear, damping, friction, deadzone, Stribeck boost, action bias, filter tau, armature, ctrl_limit) - 15 pendulum/arm params (mass, CoM, inertia, joint dynamics) Key changes: - Added stribeck_friction_boost, stribeck_vel, action_bias to ActuatorConfig (robot.py) and MJX runner - Created shared src/sysid/preprocess.py (SG velocity recomputation) - Rewrote src/sysid/rollout.py with unified MOTOR_PARAMS + PENDULUM_PARAMS spec and PARAM_SETS dict for flexible subset optimization - Updated optimize.py, export.py, visualize.py to use unified params (removed all LOCKED_MOTOR_PARAMS references) - Removed src/sysid/motor/ module and scripts/motor_sysid.py Net: -1383 lines, zero code duplication between motor and full-system sysid.
14 lines
563 B
YAML
14 lines
563 B
YAML
num_envs: 64
|
|
device: auto # auto = cuda if available, else cpu
|
|
dt: 0.002
|
|
substeps: 10
|
|
|
|
# ── Sim2real: domain randomization ───────────────────────────────
|
|
domain_rand:
|
|
mass_frac: 0.15 # ±15% body mass randomization
|
|
friction_frac: 0.3 # ±30% joint friction
|
|
damping_frac: 0.3 # ±30% joint damping
|
|
armature_frac: 0.2 # ±20% reflected rotor inertia
|
|
gear_frac: 0.15 # ±15% actuator gear ratio
|
|
com_offset: 0.005 # ±5mm center-of-mass shift
|