A comprehensive web application for monitoring and controlling CUAir's Intelligent Systems, including obstacle avoidance, mapping, and warning systems.
- Obstacle Avoidance: Real-time LiDAR data visualization and obstacle detection
- Mapping System: Capture, store, and generate mapping data
- Warning System: Monitor and respond to system warnings
- System Status: Track the status of all connected systems
- Next.js - React framework with App Router
- React - UI library
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - UI component library
- Plotly.js - Data visualization
- Recharts - Responsive charts
- FastAPI - Python web framework
- WebSocket - Real-time data streaming
- Computer Vision - Obstacle detection algorithms
- RTSP - Video streaming
- Node.js (v18 or higher)
- Python (v3.8 or higher)
- npm or yarn
-
Clone the repository
git clone https://github.com/cuair/intsys-ground-station.git cd intsys-ground-station
-
Install frontend dependencies
npm install # or yarn install
-
Install backend dependencies
cd src/server pip install -r requirements.txt
Run the development server with Turbopack:
npm run dev
# or
yarn dev
Open http://localhost:3000 with your browser to see the result.
Start the FastAPI server:
npm run backend
# or
cd src/server
uvicorn main:app --host 0.0.0.0 --reload --port 8888
The backend API will be available at http://localhost:8888.
/ws
- Real-time LiDAR and telemetry data/ws/detection
- Real-time obstacle detection data
POST /start
- Start LiDAR servicePOST /stop
- Stop LiDAR serviceGET /status
- Check LiDAR service status
GET /mapping/images
- Retrieve captured mapping imagesPOST /mapping/upload
- Upload new mapping dataPOST /mapping/start
- Start mapping processPOST /mapping/stop
- Stop mapping processPOST /mapping/generate
- Generate mapping dataDELETE /mapping/images/{image_id}
- Delete a mapping image
POST /raspberry-pi/offer
- Handle Raspberry Pi WebRTC offerPOST /client/offer
- Handle client WebRTC offer
├── src/
│ ├── app/ # Next.js frontend
│ │ ├── components/ # Shared UI components
│ │ ├── mapping/ # Mapping system UI
│ │ ├── obstacle-avoidance/ # Obstacle avoidance UI
│ │ ├── warning-system/ # Warning system UI
│ │ └── system/ # System status UI
│ ├── components/ # Global components
│ ├── lib/ # Utility functions
│ └── server/ # FastAPI backend
│ ├── main.py # Main server file
│ ├── obstacle_detection.py # Obstacle detection logic
│ ├── rtsp_server.py # RTSP camera integration
│ └── webrtc_manager.py # WebRTC connection management
├── public/ # Static assets
└── detectionscript.py # Standalone detection script
Contributions to the CUAir IntSys Ground Station are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is maintained by Cornell University Autonomous Aerial Systems (CUAir).