Better Actuator Models (BAM)#

What is it?

BAM (for Better Actuator Models) is a library to identify and use servo-actuator models in simulation engines. In particular, it provides extended friction models, which are more accurate than the default friction models used in most simulators (e.g., MuJoCo).

The animation above is a face-to-face comparison of the default MuJoCo friction model (M1) and an extended friction model (M6) identified for Dynamixel MX-64 and MX-106 servo-actuators lifting a load.

Features#

Getting started#

Pick the path that matches where you are:

🔌 Use a bundled model

Your motor is already in the library (xl320, xl330, mx64, mx106, …).

Load its parameters and plug them into your MuJoCo or mjlab simulation right away.

Usage
🔧 Identify a new motor

Your motor is not in the library yet.

Build a simple pendulum test bench, record trajectories under varying load, and run the identification pipeline to fit a friction model.

Identification
📐 Understand the theory

You want to understand the modeling approach.

Dive into the pendulum dynamics, the friction-budget formulation, and the six model variants M1–M6.

Theory

Reference paper#

This library implements the modeling and identification approach introduced in the paper “Extended Friction Models for the Physics Simulation of Servo Actuators” by Marc Duclusaud, Gregoire Passault, Vincent Padois, and Olivier Ly .

If you use BAM or the friction models provided in this library for your scientific work, please cite the publication:

@inproceedings{duclusaud2025extended,
  title={Extended Friction Models for the Physics Simulation of Servo Actuators},
  author={Duclusaud, Marc and Passault, Gr{\'e}goire and Padois, Vincent and Ly, Olivier},
  booktitle={2025 IEEE International Conference on Robotics and Automation (ICRA)},
  pages={12091--12097},
  year={2025},
  organization={IEEE}
}

If you also wish to cite the software directly, you may use:

@software{BAM,
  title = {{BAM: Better Actuator Models}},
  author = {Duclusaud, Marc and Passault, Grégoire},
  license = {Apache-2.0},
  url = {https://github.com/Rhoban/bam},
  version = {0.0.1},
  year = {2024}
}