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

udaan run quadrotor -t 10                             # quadrotor with geometric control
udaan run quad-payload -t 10 -m tendon                # quadrotor + cable-suspended payload
udaan run multi-quad -n 3 -t 10                       # multi-quadrotor cooperative payload
udaan run multi-quad-rigid -t 10                      # multi-quadrotor rigid-body payload
udaan run fleet --demo l1-comparison -t 10            # L1 vs PD controller comparison
udaan run fleet --demo gain-sweep -t 10               # PD gain tuning comparison
udaan run quadrotor -t 5 -r out.gif                   # record to GIF

Python

import udaan as U
import numpy as np

mdl = U.models.mujoco.Quadrotor(render=True)
mdl.simulate(tf=10, position=np.array([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.0.2.tar.gz (60.1 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.0.2-py3-none-any.whl (85.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for udaan-1.0.2.tar.gz
Algorithm Hash digest
SHA256 b5350d7f85a6de293dc811b656d2fc914bb0f57abc74661c8cc8f6bf3b4b60d1
MD5 40f3d813bd5878286404bf217cbcede2
BLAKE2b-256 c3d996984ac2596a89a3a59a06418f338a857f3aedf9aa8297202fb90db98f38

See more details on using hashes here.

Provenance

The following attestation bundles were made for udaan-1.0.2.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.0.2-py3-none-any.whl.

File metadata

  • Download URL: udaan-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 85.3 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.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b512a709bf5d377c82413b4aa24809faf0ab3cb8e6081068b297aafcfafdc4d3
MD5 a4b963a7110c8a29967712ff71d8e1a5
BLAKE2b-256 f099b4907a2eebcbeda4f5c142f9adad0dc92315cbda8a49f65fd5041601e9d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for udaan-1.0.2-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