https://github.com/aaronjs99/squat-plan
SQuAT Plan: Smooth Quadrotor Agile Trajectory Planning
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.4%) to scientific vocabulary
Keywords
Repository
SQuAT Plan: Smooth Quadrotor Agile Trajectory Planning
Basic Info
Statistics
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
SQuAT Plan: Smooth Quadrotor Agile Trajectory Planning
SQuAT Plan is a Python-based framework for agile trajectory planning of quadrotors navigating through complex environments. It integrates nonlinear optimization (via GEKKO), obstacle avoidance, and both 3D and ROS-based visualizations.
Project Structure
squat-plan/
├── run.py # Unified entry point
├── pyproject.toml # Modern build system config
├── src/
│ └── squatplan/
│ ├── __init__.py
│ ├── main.py # Core simulation runner
│ ├── trajopt.py # Trajectory optimization logic
│ ├── plotter.py # Matplotlib-based plotting
│ ├── quaternion.py # Quaternion math utils
│ ├── forester.py # Obstacle generation
│ └── sphere_example_rviz.py # ROS RViz marker publishing
├── squat.rviz # RViz display config
├── LICENSE
├── README.md
└── presentation.pdf # MAE 271D presentation
Features
- Trajectory optimization using GEKKO with full or simplified dynamics
- Obstacle avoidance using geometric constraints
- Quaternion-based orientation modeling
- 3D visualizations via Matplotlib and RViz
- Synthetic forest generation for randomized path planning scenarios
Getting Started
Dependencies
Clone the repo and install in editable mode:
bash
git clone https://github.com/aaronjohnsabu1999/squat-plan.git
cd squat-plan
python3 -m venv .venv
source venv/bin/activate
pip install -e .[dev]
Install ROS dependencies if on Linux or a WSL:
bash
sudo apt install ros-${ROS_DISTRO}-rospy \
ros-${ROS_DISTRO}-geometry-msgs \
ros-${ROS_DISTRO}-visualization-msgs
Run Simulation
bash
python run.py
To launch RViz in parallel:
```bash roscore
Then in another terminal:
python src/squatplan/sphereexamplerviz.py ```
Output Example
- Trajectory and state evolution plots (position, velocity, quaternion, thrust, moments)
- 3D environment with spherical/cylindrical obstacles and path trajectory
Project Context
Developed as a final project for MAE 271D — Control and Trajectory Planning for Autonomous Aerial Systems at UCLA.
Contributors:
- Aaron John Sabu
- Ryan Nemiroff
- Brett T. Lopez (Instructor)
Contact: {aaronjs, ryguyn, btlopez}@ucla.edu
License
MIT License © 2025
University of California, Los Angeles
Owner
- Name: Aaron John Sabu
- Login: aaronjs99
- Kind: user
- Location: Los Angeles, California
- Company: University of California Los Angeles
- Website: sites.google.com/view/aaronjs
- Repositories: 3
- Profile: https://github.com/aaronjs99
Mechanical and Aerospace Engineering PhD Candidate | Class of 2027 (hopefully)
GitHub Events
Total
- Watch event: 1
Last Year
- Watch event: 1