# Overview
Our codebase offers a variety of robot controllers.
To see a full list of default controller parameters, you can do:
```python
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:
```shell
{ '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'}}
```
### 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` |
| 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` |
| State Estimators | Estimation Type Name |
|:------------------|:-------|
| Exponential Smoothing (Lowpass Filter) | `EXPONENTIAL_SMOOTHING` |