udaan.models.quadrotor.base module

QuadrotorBase — pure dynamics and state, no rendering.

Rigid body quadrotor dynamics with ZOH (zero-order hold) Euler integration. Matches floating_models integration structure: 5ms outer loop, 4 inner substeps at 1.25ms for numerical stability.

class udaan.models.quadrotor.base.QuadrotorBase[source]

Bases: object

Base quadrotor model — pure dynamics, no rendering.

Supports multiple input types (acceleration, wrench, propeller forces) and force types (wrench, propeller forces). Controllers are pluggable via position_controller and attitude_controller properties.

FORCE_TYPE

alias of ForceType

INPUT_TYPE

alias of InputType

__init__(**kwargs)[source]
property attitude_controller
property inertia
property mass
property position_controller
reset(**kwargs)[source]
simulate(tf, **kwargs)[source]

Run closed-loop simulation to time tf.

step(u, desired_att=None)[source]

One outer step: repackage input, then run inner substeps.

class udaan.models.quadrotor.base.QuadrotorState[source]

Bases: object

Quadrotor state: position, velocity, orientation, angular velocity.

__init__(position=<factory>, velocity=<factory>, orientation=<factory>, angular_velocity=<factory>)
angular_velocity: TSO3
orientation: SO3
position: ndarray[tuple[Any, ...], dtype[floating]]
reset()[source]
velocity: ndarray[tuple[Any, ...], dtype[floating]]