BAM: Better Actuator Models
SoftwareIdentification and simulation of servo actuator friction and control models. [1] [2] [3] [4] [5] [6]
Installation & first result →Official websiteGetting started
- Source rights
- Named licenses are documented by part. Review licenses
- Unknowns
- operating system, compute requirements not fully established. Review gaps
Source researched · Not tested by us
Sources checked · Research details
Licenses & related hardware
- License
- Apache-2.0 · Details by part
Overview
BAM, Better Actuator Models, provides servo-actuator identification and simulation tools with extended friction models. Its README describes models for effects such as Stribeck friction, load dependence and quadratic effects, plus bundled identified parameters for several servo families. It is a model library and workflow, not a physical actuator, universal calibration or evidence that a learned policy will transfer to hardware. [1]
Is this for you?
- Known limitations
- Model parameters and testbench conditions must match the actuator being simulated.
- CPU/GPU simulation and physical identification were not executed; simulation accuracy or policy transfer is not established here.
Editorial source-scope assessment; no installation, execution or compatibility test.
What you need
Installation & first result
Open the upstream getting-started guide [1] [2] [3] [4] [5] [6]
- Inspect the pinned source instructions and select the documented configuration.
- Install only the dependencies for the chosen route; validate against the selected robot or model before hardware integration.
Editorial source-scope assessment; no installation, execution or compatibility test.
Project notes
Use the dependency set for your task
The reviewed pyproject.toml declares package version 1.0.3 and Python >=3.12,<3.13, with numpy and colorama as base dependencies. This differs from the README's historical software-citation version 0.0.1; the citation is not the current package declaration. Select the source revision and compatible environment rather than combining examples from different releases. No installation was reproduced. [1] [3]
For the CPU route, the guide documents pip install 'better-actuator-models[mujoco]'. GPU/mjlab integration and physical identification use separate extras. The reviewed mjlab extra constrains mjlab to 1.3, MuJoCo and MuJoCo Warp to the 3.7 series and warp-lang to the 1.12 series; source comments explain API incompatibilities with newer stacks. Installing every extra is unnecessary for an initial CPU model investigation. [3] [6]
Match the motor and MJCF representation
The CPU guide begins with bam.model.load_model, selecting a bundled motor name and model variant m1 through m6, or a custom parameter JSON. The placeholder {actuator} needs a supported motor selection; it is not a literal working model name. Inspect the identified-actuator list referenced by the guide and match the physical servo and identification conditions before interpreting predictions. [5] [6]
Its MJCF requirement is concrete: actuators must be declared as motor, rather than position or velocity actuators. BAM overwrites frictionloss, damping and armature at runtime, so values placed in those XML fields are not preserved. The documented CPU controller computes motor torque, writes control and friction quantities, and can model load-dependent supply-voltage drop. These are upstream interface descriptions, not observed simulation results. [6]
The inspected actuator source also distinguishes stateful models: they must be evaluated once per timestep in chronological order, and independent simulations sharing a model require separate saved/restored state. That matters when moving a single-model experiment into parallel environments; the excerpt does not verify a particular batching integration. [4]
The repository and package declare Apache-2.0. Simulator dependencies, hardware drivers and any external recordings or models retain separate terms. The identification extra includes hardware/optimization/logging dependencies; installing it does not collect calibration data or validate a physical testbench. No dependency install, identification run, CPU/GPU simulation, friction fit, accuracy benchmark or sim-to-real transfer test was performed. [2] [3]
What we checked
Pinned source research only; selected implementation and setup text inspected. No dependency installation, upstream build, API export, robot simulation, hardware commissioning, timing or performance test performed.
Not yet established
- Requirements: operating system, host computer
- Version-specific hardware compatibility (ecosystem tags alone do not establish it)
Updates
- Upstream last updated
- Not established
- Latest release
- Not established
- Profile updated
- Nov 1, 2026
- Sources last checked
- Nov 1, 2026
- Next review
- Dec 1, 2026
- Reviewed revision
b9e1111
Source files and licenses
Distinct robotics software implementation with inspectable source, declared license and bounded initial workflow.
| Layer | Availability / license |
|---|---|
| software | available · Apache-2.0 Repository project notice; bundled/external dependencies and robot/model/CAD/hardware assets retain their separate terms. No whole-tree license audit or hardware rights clearance. [1] [2] [3] [4] [5] [6] |
| documentation | available · Apache-2.0 Repository project notice; bundled/external dependencies and robot/model/CAD/hardware assets retain their separate terms. No whole-tree license audit or hardware rights clearance. [1] [2] [3] [4] [5] [6] |
Software entry; no separate physical design, firmware distribution, training-weight or dataset claim selected.
References
Each source links to the exact revision we read. “Used for” shows where this page relies on it.
- S001 README.md
Revision, date & where cited
Rhoban/bam contributors · github.com · revision
b9e1111· README.md at · Accessed Nov 1, 2026
Used for: Overview, Is this for you?, What you need, Installation & first result and 2 more - S002 LICENSE
Revision, date & where cited
Rhoban/bam contributors · github.com · revision
b9e1111· LICENSE at · Accessed Nov 1, 2026
Used for: Is this for you?, What you need, Installation & first result, Match the motor and MJCF representation and 1 more - S003 pyproject.toml
Revision, date & where cited
Rhoban/bam contributors · github.com · revision
b9e1111· pyproject.toml at · Accessed Nov 1, 2026
Used for: Is this for you?, What you need, Installation & first result, Use the dependency set for your task and 2 more - S004 bam/actuator.py
Revision, date & where cited
Rhoban/bam contributors · github.com · revision
b9e1111· bam/actuator.py at · Accessed Nov 1, 2026
Used for: Is this for you?, What you need, Installation & first result, Match the motor and MJCF representation and 1 more - S005 docs/usage/index.rst
Revision, date & where cited
Rhoban/bam contributors · github.com · revision
b9e1111· docs/usage/index.rst at · Accessed Nov 1, 2026
Used for: Is this for you?, What you need, Installation & first result, Match the motor and MJCF representation and 1 more - S006 docs/usage/mujoco_cpu.rst
Revision, date & where cited
Rhoban/bam contributors · github.com · revision
b9e1111· docs/usage/mujoco_cpu.rst at · Accessed Nov 1, 2026
Used for: Is this for you?, What you need, Installation & first result, Use the dependency set for your task and 2 more
Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5