|
5 | 5 | from functools import partial |
6 | 6 | from typing import TYPE_CHECKING |
7 | 7 |
|
8 | | -from drone_models.so_rpy_rotor_drag import dynamics as so_rpy_rotor_drag_dynamics |
9 | | -from drone_models.so_rpy_rotor_drag.params import SoRpyRotorDragParams |
| 8 | +from drone_models.core import parametrize |
10 | 9 |
|
11 | 10 | if TYPE_CHECKING: |
12 | 11 | from collections.abc import Callable |
13 | 12 |
|
14 | 13 | from array_api_typing import Array |
15 | 14 |
|
16 | 15 |
|
17 | | -def get_dynamics( |
18 | | - model_type: str, drone_model: str |
19 | | -) -> Callable[ |
20 | | - [Array, Array, Array, Array, Array, Array | None, Array | None, Array | None], |
21 | | - tuple[Array, Array, Array, Array, Array | None], |
22 | | -]: |
23 | | - """Simplifies drone-model dynamics by adding all arguments for the given drone_model.""" |
24 | | - match model_type: |
25 | | - case "so_rpy_rotor_drag_dynamics": |
26 | | - params = SoRpyRotorDragParams.load(drone_model) |
27 | | - return partial( |
28 | | - so_rpy_rotor_drag_dynamics, |
29 | | - mass=params.mass, |
30 | | - gravity_vec=params.gravity_vec, |
31 | | - J=params.J, |
32 | | - J_inv=params.J_inv, |
33 | | - KF=params.KF, |
34 | | - KM=params.KM, |
35 | | - thrust_time_coef=params.thrust_time_coef, |
36 | | - acc_coef=params.acc_coef, |
37 | | - cmd_f_coef=params.cmd_f_coef, |
38 | | - rpy_coef=params.rpy_coef, |
39 | | - rpy_rates_coef=params.rpy_rates_coef, |
40 | | - cmd_rpy_coef=params.cmd_rpy_coef, |
41 | | - drag_linear_coef=params.drag_linear_coef, |
42 | | - drag_square_coef=params.drag_square_coef, |
43 | | - ) |
44 | | - case _: |
45 | | - raise NotImplementedError(f"Model type {model_type} not supported.") |
| 16 | +def dynamics_function(model:str, config:str): |
| 17 | + """TODO.""" |
| 18 | + # Idea: |
| 19 | + # from drone_models.{model}.model import dynamics as fn |
| 20 | + |
| 21 | + # return parametrize(fn, config) |
| 22 | + ... |
46 | 23 |
|
47 | 24 |
|
48 | 25 | def observation_function( |
|
0 commit comments