udaan.control.quadrotor.geometric_attitude module

Geometric attitude controller on SE(3) for quadrotor.

Taeyoung Lee, Melvin Leok, and N. Harris McClamroch, “Geometric Tracking Control of a Quadrotor UAV on SE(3)”, CDC 2010. Paper: http://www.math.ucsd.edu/~mleok/pdf/LeLeMc2010_quadrotor.pdf

class udaan.control.quadrotor.geometric_attitude.GeometricAttitudeController[source]

Bases: Controller

Geometric tracking control of a quadrotor UAV on SE(3).

Control law (Lee, Leok, McClamroch 2010, Eq. 18-19):
M = -kR·eR - kΩ·eΩ + Ω × J·Ω
  • J·(hat(Ω)·Rᵀ·Rd·Ωd - Rᵀ·Rd·dΩd)

where:

eR = 0.5·vee(Rdᵀ·R - Rᵀ·Rd) (attitude error on so(3)) eΩ = Ω - Rᵀ·Rd·Ωd (angular velocity error) f = F · R·e3 (scalar thrust)

__init__(**kwargs)[source]
compute(t, state, thrust_force, desired_att=None)[source]

Compute scalar thrust and torque vector.

Parameters:
Return type:

tuple[float, ndarray[tuple[Any, ...], dtype[floating]]]

Returns:

(f, M) — scalar thrust and 3D torque vector.

property inertia