udaan.models.quadrotor package

Submodules

Module contents

Quadrotor models — base dynamics, VPython visualization, and MuJoCo physics.

class udaan.models.quadrotor.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.QuadrotorMujoco[source]

Bases: QuadrotorBase

Quadrotor backed by MuJoCo physics engine.

Overrides step/reset to use MuJoCo instead of Euler ZOH. Reads mass/inertia from the MJCF XML model.

__init__(**kwargs)[source]
add_reference_marker(x)[source]
property inertia
property mass
reset(**kwargs)[source]
step(u, desired_att=None)[source]

Step MuJoCo simulation.

class udaan.models.quadrotor.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]]
class udaan.models.quadrotor.QuadrotorVfx[source]

Bases: QuadrotorBase

Quadrotor with VPython 3D visualization and real-time sync.

__init__(**kwargs)[source]
reset(**kwargs)[source]
step(u)[source]

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