Skip to content

ByteSizedRobotics/rover-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Rover UI

A full-stack web application for autonomous rover control and monitoring, built as part of the CEG4912/4913 capstone project. This platform provides real-time telemetry, autonomous navigation, manual control, and pothole detection capabilities through a modern web interface communicating with ROS2-based rovers.

๐ŸŽ“ About

This project is part of a capstone initiative to develop an autonomous rover system for infrastructure inspection. The web interface serves as the mission control center, enabling operators to plan routes, monitor rover status, and analyze collected data in real-time.

Project Wiki: https://github.com/ByteSizedRobotics/rover-ui/wiki

โœจ Features

  • ๐Ÿ” User Authentication - Secure login and registration system
  • ๐Ÿค– Rover Management - Monitor and manage multiple rovers
  • ๐Ÿ—บ๏ธ Autonomous Navigation - Plan and execute waypoint-based missions
  • ๐ŸŽฎ Manual Control - Real-time control with live camera feeds
  • ๐Ÿ“ก Live Telemetry - GPS, IMU, battery, and sensor data visualization
  • ๐Ÿšจ Pothole Detection - AI-powered infrastructure analysis and tracking
  • ๐Ÿ“Š Path History - Review past missions and collected data
  • ๐Ÿ“น Triple Camera Support - CSI and USB camera streams via WebRTC
  • ๐Ÿ” LiDAR Visualization - Real-time obstacle detection and mapping

๐Ÿ› ๏ธ Technologies

๐Ÿš€ Quick Start

Prerequisites

Using Docker Compose (Recommended)

The easiest way to run the entire stack with database and sample data:

docker compose up

Navigate to http://localhost:3000 and register a new user account.

To stop:

docker compose down          # Stop services
docker compose down -v       # Stop and remove volumes

Local Development

  1. Start the database:

    docker compose up -d postgres
  2. Install dependencies:

    npm install
  3. Set up environment variables: Create a .env file:

    DATABASE_URL="postgres://root:mysecretpassword@localhost:5432/local"
  4. Start the dev server:

    npm run dev
  5. Navigate to the URL printed in terminal (typically http://localhost:5173)

๐Ÿ“š Useful Commands

Development

npm run dev              # Start dev server
npm run build            # Build for production
npm run preview          # Preview production build
npm run lint             # Check code quality
npm run format           # Format code with Prettier

Database

npx drizzle-kit studio   # Open Drizzle Studio database viewer
npm run db:push          # Push schema changes
npm run db:migrate       # Run migrations

Testing

npm run test             # Run all tests
npm run test:unit        # Run unit tests
npm run test:e2e         # Run E2E tests with Playwright

Docker

docker compose up -d     # Start in detached mode
docker compose logs -f   # Follow logs
docker compose down -v   # Stop and remove everything

๐Ÿค ROS2 Integration

The application communicates with rover hardware through ROS2 Jazzy. Key integration points:

  • rosbridge WebSocket - Real-time bidirectional communication
  • WebRTC - Low-latency camera streaming
  • Topics: GPS (/fix), IMU (/imu/raw), LiDAR (/scan), commands (/command), etc.

Configure the rover connection in src/lib/ros2Config.ts.

ROS2 Documentation: https://docs.ros.org/en/jazzy/

๐Ÿ“– Documentation

๐Ÿ—๏ธ Project Structure

src/
โ”œโ”€โ”€ lib/
โ”‚   โ”œโ”€โ”€ components/       # Reusable Svelte components
โ”‚   โ”œโ”€โ”€ server/          # Backend logic and database
โ”‚   โ”œโ”€โ”€ ros2CommandCentre.ts  # ROS2 WebSocket client
โ”‚   โ””โ”€โ”€ ros2Config.ts    # ROS2 connection settings
โ”œโ”€โ”€ routes/              # SvelteKit pages and API routes
โ”‚   โ”œโ”€โ”€ api/            # REST API endpoints
โ”‚   โ”œโ”€โ”€ rovers/         # Rover management pages
โ”‚   โ”œโ”€โ”€ manual-ctrl/    # Manual control interface
โ”‚   โ””โ”€โ”€ map/            # Mission planning
โ””โ”€โ”€ app.html            # HTML template

๐Ÿ”ง Building & Deployment

Build Docker Image

docker build --build-arg DATABASE_URL="postgres://root:mysecretpassword@localhost:5432/local" \
  -t bytesizedrobotics/rover-ui .

Run Docker Image

docker run -e DATABASE_URL="postgres://..." \
  -e ORIGIN=http://localhost:3000 \
  --network rover-ui_default \
  -p 3000:3000 \
  bytesizedrobotics/rover-ui

Note: The ORIGIN environment variable is required for server-side functionality.

๐Ÿ“ฆ Automated Releases

GitHub Actions automatically builds and publishes Docker images to Docker Hub when a new release is published.

๐Ÿ“„ License

Developed for CEG4912/4913 (4th year Computer Engineering Capstone Project)

๐Ÿ‘ฅ Contributors

Built by ByteSized Robotics capstone team.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •