Skip to main content

Quadrotor dynamics and control for cable-suspended payload systems

Project description

udaan — aerial robotics framework

A Python MuJoCo-based models and controllers for quadcopter cable-suspended payload systems.

CI License Python 3.10+ MuJoCo


Quadrotor Quad + Payload (tendon) Quad + Payload (links)

Multi-Quad Pointmass Multi-Quad Rigidbody Fleet L1 Comparison


Developed as part of the thesis: Dynamics and Control for Collaborative Aerial Manipulation (Kotaru, 2022). Original research code: vkotaru/floating_models. This package is the cleaned-up public release, refactored with Claude.

🚁 Quadrotor dynamics  •  🎛 Geometric control on SE(3)/SO(3)  •  ⛓ Cable-suspended payloads  •  🤝 Multi-quad cooperative transport  •  🕹 MuJoCo simulation  •  🖥 CLI interface

Installation

pip install udaan

MuJoCo is included as a core dependency. Install all extras (dev, docs, RL):

pip install udaan[all]

For development:

git clone https://github.com/vkotaru/udaan.git
cd udaan
pip install -e ".[all]"

Quick Start

CLI

# Quadrotor with geometric SE(3) control
udaan run quadrotor                                    # MuJoCo (default)
udaan run quadrotor -m base                            # pure dynamics (no viz)
udaan run quadrotor -m vfx                             # VPython visualization

# Trajectory tracking
udaan run quadrotor --traj hover -p 1,1,0              # hover (default)
udaan run quadrotor --traj spiral -p 0,0,2             # helical spiral
udaan run quadrotor --traj lissajous -p 0,0,2          # 3D Lissajous
udaan run quadrotor --traj circle -p 0,0,1             # circular

# Cable-suspended payload
udaan run quad-payload -t 10 -m tendon                 # tendon model
udaan run quad-payload -t 10 -m links                  # rigid links

# Multi-quadrotor cooperative transport
udaan run multi-quad -n 3 -t 10                        # N-quad pointmass payload
udaan run multi-quad-rigid -t 10                       # rigid-body payload

# Fleet: compare controllers side-by-side
udaan run fleet --demo l1-comparison                   # L1 adaptive vs PD
udaan run fleet --demo gain-sweep                      # PD gain comparison
udaan run fleet -n 4 --trail                           # 4 quads with trails

# Recording
udaan run quadrotor -t 5 -r out.gif                    # save to GIF
udaan run quadrotor --traj spiral -r spiral.mp4        # save to MP4

Python

from udaan.models.quadrotor import QuadrotorBase, QuadrotorMujoco

# Pure dynamics (no rendering)
mdl = QuadrotorBase()
mdl.simulate(tf=10, position=[1., 1., 0.])

# MuJoCo with visualization
mdl = QuadrotorMujoco(render=True)
mdl.simulate(tf=10, position=[1., 1., 0.])

Documentation

Full API reference, controller roadmap, and tutorials coming soon at udaan.readthedocs.io.

License

BSD 3-Clause License. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

udaan-1.2.0.tar.gz (73.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

udaan-1.2.0-py3-none-any.whl (97.8 kB view details)

Uploaded Python 3

File details

Details for the file udaan-1.2.0.tar.gz.

File metadata

  • Download URL: udaan-1.2.0.tar.gz
  • Upload date:
  • Size: 73.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for udaan-1.2.0.tar.gz
Algorithm Hash digest
SHA256 df3d5ef5d85cb330c97cf295f5d3384e838dd6cab236a61b5d7a708e6e3fc82f
MD5 a08864277b678c1ab99a904f1f84bede
BLAKE2b-256 a3f730664b9fa32627bfe0d1f07f207d251b5d77bb242fd7da1fc7bb86ea50f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for udaan-1.2.0.tar.gz:

Publisher: publish.yml on vkotaru/udaan

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file udaan-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: udaan-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 97.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for udaan-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7a2e9d4778c9cfabb266bf9f0ba8eb7295a5f7588b75c292281c879f7cccc0bc
MD5 ba803956f6f206bd82639fa376afef65
BLAKE2b-256 60da33a85f7d1e3421f31ca4973b86c1a86c1c917b6eca434ed696df5d649eb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for udaan-1.2.0-py3-none-any.whl:

Publisher: publish.yml on vkotaru/udaan

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page