Skip to main content

Concepts

Background reading. These pages discuss the design of bar_ros2 — the architecture, the conventions, the trade-offs that decided which abstractions live where. Read these when you want to understand the project well enough to extend it (or argue with it).

If you're trying to get a specific job done, you probably want a how-to guide or the reference. Concepts are for understanding, not for doing.

PageWhat it explains
ArchitectureThe big picture: ros2_control as the spine, the in-process vs. out-of-process policy split, the four orthogonal axes (robot / hardware tier / task / compute).
Five-mode FSMWhy the operator surface is a state machine, what each mode is for, the transition rules and their gates.
MIT command surfaceWhy every joint exposes 5 command interfaces, the τ = K·err + D·erṙ + ff convention, how it makes silicon / MuJoCo / mock interchangeable.
Calibration mathThe direction × homing_offset transform, where it lives (URDF + YAML), why it lives in the plugin and not the controller.
Safety pipelineSafetyStatus flags, who publishes them, how mode_manager consumes them, the auto-DAMP fault path.
Frozen schemasWhat "the schema is frozen once a policy depends on it" means in practice: joint order, message fields, command interfaces.