Skip to content

purdue-arc/arc-drone-delivery

Repository files navigation

ARC Drone Delivery - Monorepo

This is the unified monorepo for Purdue's Autonomous Robotics Club (ARC) Drone Delivery project. All drone delivery subsystems have been consolidated here for easier development and collaboration.

πŸ“„ Documentation

Please refer to the Documentation folder for project docs, guides, and technical references.

πŸ“ Repository Structure

arc-drone-delivery/
β”œβ”€β”€ navigation-stack/     # Core ROS 2 Navigation Workspace (DD_Nav_WS)
β”œβ”€β”€ onboarding/           # Tutorial and onboarding materials
β”œβ”€β”€ avoidance-viz/        # Obstacle avoidance visualization tool
β”œβ”€β”€ path-planning/        # Path planning and SLAM algorithms
β”œβ”€β”€ obstacle-avoidance/   # C++ Intel RealSense obstacle avoidance
β”œβ”€β”€ octree-generator/     # Octree generation for mapping
└── operations-website/   # Solid-start frontend operations website

πŸš€ Quick Start

Each subdirectory contains its own README with specific setup instructions. Here's a brief overview:

Navigation Stack

Path: navigation-stack/
Purpose: Core ROS 2 workspace for drone navigation, PX4 integration, and Gazebo simulation
Key Features: GPS global mapping, Nav2 implementation, PX4 flight controller integration
Setup: See navigation-stack/README.md

Onboarding

Path: onboarding/
Purpose: Comprehensive tutorial for new team members
Topics: Git workflow, ROS 2 basics, Gazebo simulation, publisher/subscriber patterns
Setup: See onboarding/README.md

Avoidance Visualization

Path: avoidance-viz/
Purpose: Visualization tool for obstacle avoidance verification
Setup: See avoidance-viz/README.md

Path Planning

Path: path-planning/
Purpose: Path planning algorithms including A*, D*, and Dijkstra
Language: C++
Setup: See path-planning/README.md

Obstacle Avoidance

Path: obstacle-avoidance/
Purpose: Real-time obstacle detection using Intel RealSense cameras
Platform: Windows with Visual Studio
Setup: See obstacle-avoidance/README.md

Octree Generator

Path: octree-generator/
Purpose: Generate octree representations for 3D mapping
Setup: See octree-generator/

Operations Website

Path: operations-website/
Purpose: Web-based drone operations dashboard with CesiumJS 3D visualization
Tech Stack: Solid.js, Solid Start, Material UI (SUID), Nhost, PostgreSQL
Features: Manual drone control, flight monitoring, delivery operations
Setup: See operations-website/README.md

πŸ€– AI Coding Assistants (Recommended)

To help you understand and contribute to this large codebase, we strongly recommend using AI coding assistants:

GitHub Copilot

  • Free for students: Get a free subscription with your .edu email
  • Sign up: GitHub Student Developer Pack
  • Features: Code completion, chat, and explanations directly in VS Code

Google AI Pro (Gemini)

  • Free tier: 1 year of Google AI Pro with your education email
  • Sign up: Google for Education
  • Features: Advanced code understanding, debugging assistance, and documentation generation
  • Download Google Antigravity IDE and sign in

These tools are invaluable for:

  • Understanding unfamiliar ROS 2 concepts
  • Debugging complex C++ and Python code
  • Learning the PX4 flight controller API
  • Navigating this large monorepo structure

πŸ› οΈ Development Workflow

Prerequisites

  • ROS 2 Humble (for navigation-stack, onboarding)
  • Ubuntu 22.04 (recommended for ROS components)
  • Node.js (for operations-website)
  • Python 3 (for various scripts)
  • Visual Studio (for obstacle-avoidance on Windows)

Building Components

Each component has its own build system:

  • ROS packages: Use colcon build in the workspace directory
  • C++ projects: Use make or Visual Studio
  • Website: Use npm install and npm run dev

πŸ“ Contributing

  1. Create a feature branch from main
  2. Make your changes in the appropriate subdirectory
  3. Test thoroughly
  4. Submit a pull request with a clear description

🧹 Monorepo Migration Notes

This monorepo was created on February 1, 2026 by consolidating 7 individual repositories:

  • Removed 121 accidentally-committed build log files from navigation-stack
  • Cleaned git history to improve clone performance
  • Maintained logical separation of components in subdirectories

Original Repositories

⚠️ Important: Accessing Old Branches and Large Files

Specialized Branches Not in Monorepo: The following branches were not migrated to preserve a clean monorepo:

  • DD_Nav_WS: px4, px4-twist, px4-test, nav2_implementation, teleop, gps_global_mapping
  • DD_On_Boarding: simulation_dev
  • dd-navigation: SLAM_Main
  • dd-octree_generator: demonstration-of-bad-voxels
  • drone-delivery-website: docker-testing, geography_point_change, supabase-integration

To access these branches:

  1. Clone the original GitHub repositories: https://github.com/purdue-arc/[repo-name]
  2. Checkout the specific branch you need
  3. Cherry-pick commits into the monorepo if needed

Git LFS Large Files: The following large files are stored in Git LFS and were not included in the monorepo:

  • Purdue_map.dae (977 MB) - Purdue campus 3D model
  • purdue_map.gltf - Purdue campus GLTF format
  • test_world.dae - Gazebo test world file

To access LFS files:

  1. Clone the original DD_Nav_WS repository from GitHub
  2. Run git lfs pull to download the large files
  3. Copy them to your local monorepo if needed (they're gitignored)

πŸ“š Resources

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors