udaan.models.quadrotor_cspayload.base module

QuadrotorCsPayloadBase — pure dynamics and state, no rendering.

Rigid body with cable-suspended payload dynamics with ZOH (zero-order hold) Euler integration.

Dynamics reference: Koushil Sreenath, Taeyoung Lee, and Vijay Kumar. “Geometric control and differential flatness of a quadrotor UAV with a cable-suspended load.” In 52nd IEEE Conference on Decision and Control, pp. 2269-2274. IEEE, 2013. https://hybrid-robotics.berkeley.edu/publications/CDC2013_supplement.pdf

class udaan.models.quadrotor_cspayload.base.QuadrotorCsPayloadBase[source]

Bases: object

Base quadrotor-cable-suspended payload 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 cable_length: float
property inertia
property inertia_inv
property mass
property payload_controller
property payload_mass: float
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_cspayload.base.QuadrotorCsPayloadState[source]

Bases: object

Quadrotor with cable-suspended payload state.

__init__(position=<factory>, velocity=<factory>, orientation=<factory>, angular_velocity=<factory>, payload_position=<factory>, payload_velocity=<factory>, cable_attitude=<factory>, cable_angular_velocity=<factory>)
angular_velocity: TSO3
cable_angular_velocity: TS2
cable_attitude: S2
dq()[source]
orientation: SO3
payload_position: ndarray[tuple[Any, ...], dtype[floating]]
payload_velocity: ndarray[tuple[Any, ...], dtype[floating]]
position: ndarray[tuple[Any, ...], dtype[floating]]
reset()[source]
velocity: ndarray[tuple[Any, ...], dtype[floating]]