# Rotary cartpole (Furuta pendulum) — real hardware config. # Describes the physical device for the SerialRunner. # Robot-specific constants that don't belong in the runner config # (which is machine-specific: port, baud) or the env config # (which is task-specific: rewards, max_steps). encoder: ppr: 11 # pulses per revolution (before quadrature) gear_ratio: 30.0 # gearbox ratio # counts_per_rev = ppr × gear_ratio × 4 (quadrature) = 1320 safety: max_motor_angle_deg: 90.0 # hard termination limit (0 = disabled) soft_limit_deg: 40.0 # progressive penalty ramp starts here reset: drive_speed: 80 # PWM magnitude for bang-bang drive-to-center deadband: 15 # encoder count threshold to consider "centered" drive_timeout: 3.0 # seconds before giving up on drive-to-center settle_angle_deg: 2.0 # pendulum angle threshold for "still" (degrees) settle_vel_dps: 5.0 # pendulum velocity threshold (deg/s) settle_duration: 0.5 # how long pendulum must stay still (seconds) settle_timeout: 30.0 # give up waiting after this (seconds)