The BAM actuator model
Last updated
BAM (Better Actuator Models) is Rhoban’s framework for modelling and identifying servo behaviour. Every microduck_rl task uses its M6 model for the Dynamixel XL330.
What it models
- The voltage control law — a servo receives voltage, not torque
- Back-EMF — the faster it turns, the less torque is available
- Coulomb friction — constant drag opposing the direction of motion
- Stribeck friction — the non-linear low-speed region between static and kinetic
- Load-dependent friction — more load on the joint, more friction
Why this layer decides the outcome
Treat the servo as an ideal torque source — ask for 0.3 Nm and receive 0.3 Nm — and the trained policy will depend on a response it cannot actually get.
Concretely: in simulation the policy keeps balance with a fast, small correction; on hardware that correction either never happens because of stiction, or falls short because of back-EMF, and the robot goes over.
What makes this failure hard to diagnose is that it looks like a badly trained policy. The policy is trained well — for a world that is not the real one.