Configure Controllers and Control Pipelines¶
ControlPipelineCfg combines a public ActionMode, a controller configuration, and Pyroki IK configuration when the selected pipeline resolves end-effector targets through IK. RobotProfileCfg binds that pipeline to a robot specification. Select or tune the complete composition rather than treating the environment ID's controller token as an isolated switch.
Maintained compositions¶
| Robot/profile family | Pipeline | Public action | Controller | IK |
|---|---|---|---|---|
| EE oracle | EndEffectorPosePipeline |
absolute EE | six-DoF PID or L1 adaptive | none |
| UAQuad | ManipulatorIKPipeline |
absolute EE | four-DoF PID | Pyroki with roll/pitch fixed |
| UAHexa | ManipulatorIKPipeline |
absolute EE | four-DoF PID | Pyroki with roll/pitch fixed |
| FAHexa | ManipulatorIKPipeline |
absolute EE | six-DoF PID or L1 adaptive | Pyroki with base orientation fixed |
| FAHexa | ManipulatorDirectPipeline |
absolute base plus joints | six-DoF PID or L1 adaptive | bypassed by the action path |
| FAHexa | ManipulatorMPCPipeline |
absolute EE | whole-body MPC | none |
| OmniHexa | ManipulatorIKPipeline |
absolute EE | six-DoF PID or L1 adaptive | Pyroki with free base orientation |
| OmniHexa | ManipulatorDirectPipeline |
absolute base plus joints | six-DoF PID | none |
Not every task registers every reusable profile. Use the live registry rather than substituting tokens in an environment ID.
Controller roles¶
Six-DoF PID tracks full base position and orientation for fully actuated platforms. Four-DoF PID uses nested position and attitude loops for underactuated platforms; the reusable profiles set its outer-loop decimation to 3. L1 adaptive control wraps the six-DoF tracking structure with bounded adaptive compensation. Whole-body MPC jointly produces the base wrench and arm targets for the maintained FAHexa absolute-EE profile.
Pyroki is an IK front end, not a low-level wrench controller. It converts an EE target into base and arm targets for ManipulatorIKPipeline; PID or L1 then tracks the base target.
Tune the owned parameters¶
Controller constructor parameters live in ControllerCfg.params. The reusable profiles in source/ambench/ambench/tasks/base/robot_profiles.py provide the maintained gains and constraints:
PID6DOFGainsholds position and rotationkp,kd, andkivalues;PID4DOFGainsseparates XY, Z, and rotation gains, withouter_loop_decimationconfigured alongside it;- L1 adds
low_pass_filter_bandwidth, linear/angular sigma limits, andadaptive_mix; PyrokiIKControllerConfigowns fixed base axes, initial state, cost weights, base-position limits, collision setting, safety margin, and ordered arm joints;- the MPC parameter map owns horizon
T, node countN, state/input weights, position and joint bounds, output filtering, build directory, and model name.
Treat the values in the reusable profile as a starting configuration, not a universal protocol. Create a new profile for a new tuned combination and copy nested parameter mappings before changing them; mutating a shared profile can affect every task class that references it.
Dependencies and validation¶
Pyroki and acados are installed by the standard setup procedure. Physical EE-target IK profiles use Pyroki. The whole-body MPC profile uses acados and generates solver code under its configured build directory. Follow Installation before selecting either pipeline.
After changing a controller or IK constraint, validate the selected task with one environment and inspect controller telemetry before scaling. The public ControllerOutput contract and maintained controller inventory are in Controllers. Physical limits and effect ordering are covered in Physics, Disturbances, and Randomization.