YouDuck.ai

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.