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.
| 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 |
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
| 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 |
- Docker & Docker Compose
- Python 3.11+
- Node.js 18+
# 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- Upload a dataset — Navigate to
/datasets/new, drag-and-drop a CSV file - Validate & Transform — Click "Process" to run the validation + feature extraction pipeline
- Train models — Go to
/experiments/new, select a model type and hyperparameters - Compare results — Use
/experiments/comparefor side-by-side radar/bar analysis - Annotate data — Open
/annotationsto interactively label time-series windows
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 |
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
# 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- 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
This project is licensed under the MIT License — see the LICENSE file for details.
- Dataset: Industrial Robotic Arm Anomaly Detection by hkayan on Kaggle
- Inspired by: Sunday Robotics ML Platform Engineering role

