Overview#

Our codebase offers a variety of robot controllers.

To see a full list of default controller parameters, you can do:

from deoxys.utils.config_utils import get_available_controller_configs
get_available_controller_configs(verbose=True)

And the output should contain dictionaries, each of which has information like this:

{ 'Kp': {'rotation': 250.0, 'translation': 150.0},
  'action_scale': {'rotation': 1.0, 'translation': 0.05},
  'controller_type': 'OSC_POSE',
  'residual_mass_vec': None,
  'state_estimator_cfg': { 'alpha_dq': 0.9,
                           'alpha_eef': 1.0,
                           'alpha_eef_vel': 1.0,
                           'alpha_q': 0.9,
                           'is_estimation': False,
                           'state_estimator_type': 'EXPONENTIAL_SMOOTHING'},
  'traj_interpolator_cfg': { 'time_fraction': 0.3,
                             'traj_interpolator_type': 'LINEAR_POSE'}}
In this section, we introduces three key components in the implementation of high-frequency robot controllers: Task / Joint Space Controllers, Trajectory Interpolators, and State Estimators.

Quick overview of type names#

Here are tables that list the implemented controllers, traj interpolators, and state estimators and their corresponding enum types in the codebase.

Important configuration

We recommend is_delta=True for OSC-family controllers, and is_delta=False for joint-space controllers.

Controllers Controller Type Name
6DoF Operational Space Controller OSC_POSE
4DoF Operational Space Yaw Controlelr OSC_YAW
3DoF Position-only Operational Space Contorller OSC_POSITION
Joint Impedance Controller JOINT_IMPEDANCE
Joint Positional Controller JOINT_POSITION
Cartesian Velocity Controller CARTESIAN_VELOCITY
Trajectory Interpolators Trajectory Interpolator Type Name
Linear Interpolation in Pose LINEAR_POSE
Minimal Jerkiness Interpolation in Pose MIN_JERK_POSE
Minimal Jerkiness Interpolation in Joint Positions MIN_JERK_JOINT_POSITION
Smooth interpolation for the Joint Position Controller SMOOTH_JOINT_POSITION
Linear Interpolation of Cartesian Velocities LINEAR_CARTESIAN_VELOCITY
Cosine Interpolation of Cartesian Velocities COSINE_CARTESIAN_VELOCITY
State Estimators Estimation Type Name
Exponential Smoothing (Lowpass Filter) EXPONENTIAL_SMOOTHING