udaan.control.quadrotor.geometric_l1_attitude module¶
Geometric L1 adaptive attitude controller on SO(3).
Kotaru, Edmonson, Sreenath (2020) https://doi.org/10.1115/1.4045558
- class udaan.control.quadrotor.geometric_l1_attitude.AttitudeState[source]¶
Bases:
objectInternal attitude state for reference model tracking.
- __init__(R=<factory>, Omega=<factory>, last_M=<factory>, last_t=0.0)¶
- class udaan.control.quadrotor.geometric_l1_attitude.GeometricL1AttitudeController[source]¶
Bases:
GeometricAttitudeControllerGeometric L1 adaptive attitude control on SO(3).
Extends GeometricAttitudeController with L1 adaptive disturbance rejection for unmodeled torque disturbances.
From: Kotaru, Edmonson, Sreenath (2020) https://doi.org/10.1115/1.4045558
- compute(t, state, thrust_force, desired_att=None)[source]¶
Compute thrust and torque with L1 adaptive disturbance rejection.
- Parameters:
t (
float) – current time.state (
tuple[SO3,TSO3]) – (R, Omega) — SO3 rotation and TSO3 angular velocity.thrust_force (
ndarray[tuple[Any,...],dtype[floating]]) – desired thrust force vector in world frame.desired_att (
tuple[SO3,TSO3,ndarray[tuple[Any,...],dtype[floating]]] |None) – optional (Rd, Omegad, dOmegad) feedforward.
- Return type:
- Returns:
(f, M) — scalar thrust and 3D torque vector.