core
Core tools for registering and capability checking for the drone models.
load_params(physics, drone_model, xp=None)
¶
TODO.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
physics
|
str
|
description |
required |
drone_model
|
str
|
description |
required |
xp
|
ModuleType | None
|
The array API module to use. If not provided, numpy is used. |
None
|
Returns:
| Type | Description |
|---|---|
dict
|
dict[str, Array]: description |
Source code in drone_models/core.py
parametrize(fn, drone_model, xp=None, device=None)
¶
Parametrize a dynamics function with the default dynamics parameters for a drone model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fn
|
Callable[P, R]
|
The dynamics 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
from drone_models.core import parametrize
from drone_models.first_principles import dynamics
dynamics_fn = parametrize(dynamics, drone_model="cf2x_L250")
pos_dot, quat_dot, vel_dot, ang_vel_dot, rotor_vel_dot = dynamics_fn(
pos=pos, quat=quat, vel=vel, ang_vel=ang_vel, cmd=cmd, rotor_vel=rotor_vel
)
Returns:
| Type | Description |
|---|---|
Callable[P, R]
|
The parametrized dynamics function with all keyword argument only parameters filled in. |
Source code in drone_models/core.py
supports(rotor_dynamics=True)
¶
Decorator to indicate which features are supported.