Core¶
drone_controllers.core
¶
Core functionalities for controller parametrization.
parametrize(fn, drone_model, xp=None, device=None)
¶
Parametrize a controller function with the default controller parameters for a drone model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fn
|
Callable[P, R]
|
The controller function to parametrize. |
required |
drone_model
|
str
|
The drone model to use. |
required |
xp
|
ModuleType | None
|
The array API module to use. If not provided, numpy is used. |
None
|
device
|
str | None
|
The device to use. If None, the device is inferred from the xp module. |
None
|
Example
import numpy as np
from drone_controllers import parametrize
from drone_controllers.mellinger import state2attitude
ctrl = parametrize(state2attitude, "cf2x_L250")
pos = np.zeros(3)
quat = np.array([0.0, 0.0, 0.0, 1.0])
vel = np.zeros(3)
cmd = np.zeros(13)
rpyt, int_pos_err = ctrl(pos, quat, vel, cmd)
Returns:
| Type | Description |
|---|---|
Callable[P, R]
|
The parametrized controller function with all keyword argument only parameters filled in. |
load_params(fn, drone_model, xp=None, device=None)
¶
Load and merge controller parameters for a specific function.
Reads drone_controllers/<controller>/params.toml and merges the
[drone_model.core] section with the [drone_model.<fn_name>] section,
with function-specific values taking precedence over core values.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fn
|
Callable
|
The controller function for which to load parameters. |
required |
drone_model
|
str
|
Name of the drone configuration, e.g. |
required |
xp
|
ModuleType | None
|
The array API module to use. If not provided, numpy is used. |
None
|
device
|
str | None
|
The device to use. If None, the device is inferred from the xp module. |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, Array]
|
A flat dict mapping parameter names to arrays in the requested array namespace. |
Raises:
| Type | Description |
|---|---|
KeyError
|
If |
load_core_params(mod, drone_model, xp=None, device=None)
¶
Load core parameters for a given controller module and drone model.
See the Parametrize user guide for usage examples, available drone configurations, and backend switching.