Skip to content

scanlonowen/AI_Partner

Repository files navigation

Robot Terrain Classification Dashboard This project is a real-time data pipeline and dashboard for visualizing robot terrain classification data. It simulates a robot walking on different surfaces (Grass, Concrete, Gravel) by streaming force data through Apache Kafka (Confluent) to a web dashboard.

🏗 Architecture The system is built using a microservices architecture containerized with Docker:

Producer (producer.py): Acts as the robot. It reads historical vibration data from a CSV and streams it to a Kafka topic (my-topic) when triggered via the web UI. It hosts the Flask Web Server on Port 5000.

Consumer (consumer.py): Acts as the AI/Processing unit. It listens for "robot actions" or predictions and broadcasts them back to the frontend via WebSockets.

Message Broker (Kafka & Zookeeper): Handles the asynchronous communication between the robot (Producer) and the dashboard (Consumer).

📊 Data Source Citation This project utilizes the QCAT Legged Robot Terrain Classification Dataset.

Ahmadi, Reza; Nygaard, Tønnes; Kottege, Navinda; Howard, David; & Hudson, Nicolas (2020): QCAT legged robot terrain classification dataset. v2. CSIRO. Data Collection.

DOI: https://doi.org/10.25919/5f88b9c730442

🚀 Getting Started

Prerequisites Docker Desktop (or Docker Engine + Compose) installed.

Google Cloud Service Account Key (JSON file) for Secret Manager access.

Installation Clone the repository:

    git clone <your-repo-url>
    cd AI_Partner

Add Credentials: Place your Google Cloud Service Account key in the root directory and name it gcp-key.json.

Note: This file is ignored by git to protect your secrets.

Launch the System: Run the entire stack with one command:

    docker compose up --build

Access the Dashboard: Open your browser and navigate to: http://localhost:5000

📂 Project Structure AI_Partner/ ├── Web Dashboard/ # HTML/CSS/JS frontend files ├── producer.py # Flask Server + Kafka Producer ├── consumer.py # Background Kafka Consumer ├── docker-compose.yml # Docker services configuration ├── Dockerfile # Python environment definition ├── requirements.txt # Python dependencies ├── gcp-key.json # (DO NOT COMMIT) Google Cloud credentials └── AI_Partner_...csv # QCAT Dataset Source File

🛠 Tech Stack Language: Python 3.9

Web Framework: Flask & Flask-SocketIO

Messaging: Apache Kafka (Confluent)

Containerization: Docker & Docker Compose

Cloud Services: Google Cloud Secret Manager\Google Cloud

📝 License

This project is for educational/hackathon purposes. The dataset is licensed by CSIRO as cited above.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors