Skip to content
chaithanyakasi27Public

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🤖 RoboLab

ML Data & Evaluations Platform for Industrial Robotic Arm Anomaly Detection

CI Pipeline Python 3.11+ Node 18+ License: MIT


RoboLab is a full-stack ML platform for ingesting, validating, transforming, and evaluating sensor data from industrial robotic arms. It supports end-to-end anomaly detection workflows — from raw IMU data upload through model training, comparison, and interactive annotation.

📸 Screenshots

RoboLab Dashboard

RoboLab App Dashboard

API Documentation (Swagger UI)

RoboLab API Swagger


✨ Features

Feature Description
Data Ingestion CSV upload with automatic schema detection, MinIO storage, and metadata extraction
Validation Pipeline Null checks, duplicate detection, range validation, timestamp monotonicity
Feature Engineering Sliding-window extraction with statistical, frequency, and temporal features
ML Training Isolation Forest, Autoencoder (PyTorch), and One-Class SVM with MLflow tracking
Real-time Progress WebSocket-based live training progress with epoch-level updates
Model Comparison Side-by-side radar charts, bar plots, and metrics tables
Annotation Studio Interactive time-series labeler with keyboard shortcuts (N/A/U)
Anomaly Timeline Full-sequence ground truth vs. prediction visualization

🏗️ Architecture

graph TB
    subgraph Frontend
        UI[React + TypeScript + Tailwind]
        Charts[Recharts Visualizations]
        WS_Client[WebSocket Client]
    end

    subgraph API Gateway
        FastAPI[FastAPI Server]
        WS_Server[WebSocket Endpoint]
    end

    subgraph Workers
        Celery[Celery Workers]
        ML[ML Models]
    end

    subgraph Storage
        PG[(PostgreSQL)]
        Redis[(Redis)]
        MinIO[(MinIO / S3)]
        MLflow[MLflow Tracking]
    end

    UI --> FastAPI
    WS_Client --> WS_Server
    FastAPI --> PG
    FastAPI --> Celery
    Celery --> Redis
    Celery --> ML
    ML --> MinIO
    ML --> MLflow
    FastAPI --> MinIO
Loading

🛠️ Tech Stack

Backend Frontend
Python 3.11 React 18 + TypeScript
FastAPI + Uvicorn Vite
SQLAlchemy + Alembic Tailwind CSS
Celery + Redis Recharts
MinIO (S3-compatible) TanStack Query + Table
MLflow Zustand
PyTorch, scikit-learn Lucide Icons
Docker Compose React Router

🚀 Quick Start

Prerequisites

  • Docker & Docker Compose
  • Python 3.11+
  • Node.js 18+

Setup

# Clone the repository
git clone https://github.com/chaithanyakasi27/robolabs.git
cd robolabs/RoboLab

# Start infrastructure services
docker-compose up -d postgres redis minio mlflow

# Backend setup
cd backend
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt
alembic upgrade head
uvicorn app.main:app --reload --port 8000

# Frontend setup (new terminal)
cd frontend
npm install
npm run dev

Usage

  1. Upload a dataset — Navigate to /datasets/new, drag-and-drop a CSV file
  2. Validate & Transform — Click "Process" to run the validation + feature extraction pipeline
  3. Train models — Go to /experiments/new, select a model type and hyperparameters
  4. Compare results — Use /experiments/compare for side-by-side radar/bar analysis
  5. Annotate data — Open /annotations to interactively label time-series windows

📡 API Documentation

When the backend is running, Swagger docs are available at http://localhost:8000/docs.

Method Endpoint Description
POST /api/datasets/upload Upload CSV dataset
GET /api/datasets List datasets (paginated)
POST /api/datasets/{id}/process Trigger validation + transform
GET /api/datasets/{id}/preview Preview first N rows
POST /api/experiments Create & launch experiment
GET /api/experiments List experiments
POST /api/experiments/compare Compare multiple experiments
GET /api/health Service health check
WS /ws/tasks/{task_id} Real-time training progress

📁 Project Structure

RoboLab/
├── backend/
│   ├── app/
│   │   ├── api/routes/       # FastAPI endpoints
│   │   ├── ml/models/        # IF, Autoencoder, SVM
│   │   ├── models/           # SQLAlchemy ORM models
│   │   ├── schemas/          # Pydantic request/response
│   │   ├── services/         # Business logic
│   │   └── tasks/            # Celery async tasks
│   ├── migrations/           # Alembic migrations
│   ├── tests/                # pytest test suite
│   └── requirements.txt
├── frontend/
│   ├── src/
│   │   ├── components/       # Reusable UI components
│   │   ├── hooks/            # Custom React hooks
│   │   ├── pages/            # Route pages
│   │   └── store/            # Zustand state
│   └── package.json
├── data/raw/                 # Kaggle dataset CSVs
├── notebooks/                # EDA notebooks
├── docker-compose.yml
└── .github/workflows/ci.yml

🧪 Development

# Backend tests
cd backend
pytest tests/ --cov=app -v

# Frontend tests
cd frontend
npx vitest run

# Lint backend
ruff check app/
ruff format app/

# Type check frontend
npx tsc --noEmit

🗺️ Roadmap

  • Kubernetes deployment manifests
  • Real-time streaming data ingestion
  • LSTM and Transformer model architectures
  • Multi-user authentication (OAuth2)
  • Cloud storage adapters (AWS S3, GCS)
  • Model A/B testing framework
  • Automated retraining pipelines

📄 License

This project is licensed under the MIT License — see the LICENSE file for details.

🙏 Acknowledgments

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages