Skip to content

gokulsp1995/rover-code

Repository files navigation

UKSEDS Olympus Rover Trials

Rover Banner

An autonomous planetary rover prototype with advanced sensor fusion and computer vision capabilities

Python Flask OpenCV


πŸ“– Overview

Welcome to MANN-E Rover – a custom-built planetary rover developed for the UKSEDS Olympus Rover Trials! This repository contains the complete software stack for an autonomous and remotely operated rover prototype, featuring advanced hardware control, sensor fusion, a Flask-based web interface, and robust computer vision capabilities.


✨ Key Features

Control Dashboard

  • Live video streaming
  • Real-time sensor telemetry
  • Manual & automated mission controls
  • Intuitive web interface

Tech: Flask, HTML/CSS, JavaScript

Autonomous Navigation

  • Precise odometry calculations
  • Turn-then-drive sequences
  • 2D pose estimation (X, Y, ΞΈ)
  • Mission path execution

Tech: Python, Kinematics Engine

Sensor Fusion

  • IMU + Encoder integration
  • Roll/Pitch monitoring
  • Absolute distance tracking
  • Real-time pose updates

Tech: I2C, Serial Communication

Computer Vision

  • Camera servo control
  • QR code detection
  • Video stream processing
  • Automated scanning

Tech: OpenCV, Computer Vision


πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Web Dashboard (Flask)                β”‚
β”‚               Telemetry β€’ Controls β€’ Video              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β”‚
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚                             β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Python Control   β”‚         β”‚  Computer Vision β”‚
β”‚   β€’ Kinematics    │◄─────────   β€’ QR Detection β”‚
β”‚   β€’ Automation    β”‚         β”‚   β€’ Camera Servo β”‚
β”‚   β€’ Sensor Fusion β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         Hardware Layer (Arduino C++)          β”‚
β”‚    Motors β€’ IMU β€’ Encoders β€’ Servos          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

  • Raspberry Pi 4/5 with SSH enabled
  • Python 3.x
  • Hardware: Motors, IMU, Encoders, Camera, Servo

Installation

1. Clone the repository

git clone https://github.com/gokulsp1995/rover-code.git
cd rover-code

2. Install dependencies

pip3 install flask opencv-python-headless RPi.GPIO smbus

3. Launch the control dashboard

python3 app.py

4. Access the interface

Open your browser: http://<your_pi_ip_address>:5000

πŸ”§ Connection Guide

Click to expand setup instructions

Network Setup

  1. Connect both Pi and laptop to the same WiFi network
  2. Find your Pi's IP address or use raspberrypi.local

SSH Connection

# Using hostname
ssh gokul@raspberrypi.local

# Or using IP address
ssh gokul@<pi_ip_address>

Running the Application

cd ~/Desktop/MANN-E/
python3 app.py

πŸ“‚ Project Structure

Component Files Description
Web Interface app.py, index.html, style.css Flask server & control dashboard
Autonomy automation_controller.py, kinematics.py Mission planning & execution
Sensors imu.py, encoders.py, hardware.py Sensor fusion & data processing
Vision qr.py, camera_scan_controller.py, servo_cam.py Computer vision & scanning
Communication serial_comm.py, heartbeat.py Hardware interface & health monitoring

πŸŽ₯ Media & Demos

Sand Testing at Airbus Facility

rover

Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Key Milestones

Feature Status Description
Auto Camera Tilt βœ… Complete Full camera control for autonomous scanning
Automation System βœ… Complete End-to-end autonomous mission execution
OOP Refactor βœ… Complete Object-oriented kinematics model
Sensor Fusion βœ… Complete IMU integration with roll/pitch/yaw
Manual Control βœ… Complete Stable web-based manual operation

Contact & Support



Built for UKSEDS Olympus Rover Trials

⭐ Star this repo if you find it helpful!

⬆ Back to Top

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors