Robotics Operations Platform
Mission orchestration + Dashboard + Backend temps réel
Défi
Construire une plateforme production-ready pour orchestrer et monitorer une flotte de 1000+ robots autonomes, avec deux interfaces distinctes (équipe interne et clients), une architecture scalable avec load balancing, et une observabilité complète.
Opportunité
Créer le système nerveux central de Hive Robotics : permettre à l'équipe interne d'avoir un contrôle total sur la flotte (pilotage, debugging, métriques avancées) et aux clients d'utiliser les robots simplement (créer missions, suivre progression).
Disciplines
Responsabilités
Backend Python
Dashboard React
Task Manager
Load Balancing
Dual Interface Design
Stack
Contexte
Hive Robotics déploie des robots de livraison autonomes chez ses clients. Chaque robot tourne sous ROS et remonte en continu des données vers le serveur central via WebSockets : position GPS, niveau de batterie, état des compartiments, logs avec 4 niveaux de gravité (debug, info, warning, error).
Le besoin était double : une plateforme complète pour l'équipe Hive (monitoring avancé, debugging, pilotage à distance, flux vidéo, visualisation 3D) et une interface simplifiée pour les clients (créer missions, suivre statut, rappel à la base). L'architecture devait supporter 1000+ robots simultanés sans dégradation de performance, avec une infrastructure cloud production-ready (Digital Ocean, CI/CD) et deux bases de données complémentaires pour répondre aux différents besoins.
Architecture et scalabilité
Backend Python et SmartTaskManager
Backend Python avec FastAPI pour l'API REST et deux WebSocket endpoints distincts (robots et opérateurs). SmartTaskManager implémenté avec SmartMessageQueue et gestion de la concurrence via Semaphore pour distribution optimale des missions : assignation manuelle à un robot spécifique, ou queue automatique avec assignation au prochain robot disponible. Intégration d'un LLM avec OpenAI function calling pour l'analyse d'intent et l'aide aux opérateurs.
Architecture dual-database
Deux bases de données complémentaires pour optimiser les performances : MongoDB pour les données temps réel et la structure hiérarchique (missions actives, états robots, cache), MySQL pour le stockage long terme des logs avec rotation journalière. Cette architecture permet de gérer efficacement les données chaudes (accès fréquent) et froides (archivage).
Infrastructure cloud et CI/CD
Déploiement sur Digital Ocean avec deux serveurs indépendants (backend et frontend) pour garantir la séparation des responsabilités. Pipeline CI/CD complet via GitHub Actions pour déployer automatiquement la partie backend en production. Monitoring avec Prometheus et Grafana pour observer les métriques système et applicatives 24/7.
Deux interfaces, deux besoins
Interface équipe Hive (full control)
Dashboard complet pour l'équipe interne avec accès à toutes les données : pilotage manuel à distance via ROS, flux vidéo en direct, logs détaillés multi-niveaux, debug tools. Carte interactive Google Maps avec position temps réel de chaque robot. Visualisation 3D du robot avec Three.js (React Three Fiber) pour voir l'orientation et l'état en temps réel. Vue par robot avec état des compartiments, batterie, capteurs, historique complet des missions.
Interface clients (simplifiée)
Version épurée pour les clients avec routing dédié (/interface/). Création de missions (destination, état chargé/vide), suivi de la progression, stop mission, rappel à la base. Pas d'accès au pilotage manuel, pas de flux vidéo, pas de logs bas niveau. Focus sur l'essentiel pour utiliser les robots sans complexité technique.
Page Rewind (time travel debugging)
Outil unique pour l'équipe interne (/statistics/[...]/rewind/) : visualisation rétrospective d'une journée type du robot avec plus de 36 000 lignes de code. Timeline interactive avec playback des déplacements sur Google Maps, logs synchronisés avec la position, missions effectuées avec durée. Requêtes SQL dynamiques optimisées pour récupérer l'historique complet. Essentiel pour le debugging et l'optimisation des parcours.
Création de missions
Interface de création intuitive : clic sur la carte Google Maps pour définir destination, sélection du robot ou assignation automatique via queue, choix de l'état du chargement (vide/chargé/semi-chargé). Preview de l'itinéraire calculé avant validation. Une fois validée, la mission entre dans le SmartTaskManager pour distribution via le système de queues.
Stack technique et défis
1Backend FastAPI et architecture modulaire
Backend Python avec FastAPI organisé en 4 routers principaux pour séparer les responsabilités. SmartTaskManager avec SmartMessageQueue utilise des Semaphores pour gérer la concurrence et éviter les race conditions. Intégration LLM avec OpenAI function calling pour analyser les intentions des opérateurs et automatiser certaines actions. Logging avec rotation journalière et 4 niveaux de gravité, stockés dans MySQL pour analyse long terme.
2Dual WebSocket et temps réel
Deux endpoints WebSocket distincts : un pour les robots (reception des données capteurs, position, état), un pour les opérateurs (envoi des commandes, visualisation temps réel). Connexions persistantes avec heartbeat pour détecter les déconnexions. Load balancing avec connection pooling pour distribuer la charge des 1000+ robots. Messages agrégés par batch pour optimiser les performances.
3Frontend Next.js 14 avec App Router
Application Next.js 14.2.4 avec App Router et routing dual : /statistics/ pour l'équipe Hive (full control), /interface/ pour les clients (simplifié). Intégration ROS via ROSLib pour communiquer avec les robots. React Three Fiber pour la visualisation 3D des robots. Google Maps API pour la cartographie. Chart.js pour les analytics. WebSocketContext pour gérer les connexions temps réel côté client.
4Page Rewind : 36k lignes de code
Feature de time travel debugging la plus complexe du projet : +36 000 lignes de code pour gérer la visualisation rétrospective complète. Requêtes SQL dynamiques optimisées pour récupérer l'historique d'un robot sur une journée entière. Playback interactif avec timeline, replay synchronisé des déplacements sur Google Maps, affichage des logs avec filtres multi-niveaux, calcul des métriques de performance. Outil critique pour le debugging en production.
Résultats et impact
Production sur 2 ans
Plateforme déployée sur Digital Ocean et utilisée quotidiennement pendant 2 ans (2022-2024). Gère ~20 missions par jour et par robot en production. Les deux interfaces (équipe interne sur /statistics/, clients sur /interface/) sont utilisées en parallèle sans friction. Le SmartTaskManager distribue automatiquement les missions avec un taux de succès > 95%.
Performance et scale
Updates temps réel < 100ms du robot au dashboard grâce aux WebSockets optimisés. Architecture dual-database (MongoDB + MySQL) validée pour 1000+ robots simultanés. La page Rewind (36k lignes) permet de debugger les problèmes en quelques minutes au lieu de plusieurs heures. Pipeline CI/CD GitHub Actions pour déployer automatiquement le backend en production sans downtime.
Impact équipe et clients
L'équipe Hive a une visibilité complète sur les opérations : debugging rapide avec Rewind, pilotage à distance via ROS en cas d'urgence, visualisation 3D avec Three.js, métriques détaillées pour optimisation. Les clients peuvent utiliser les robots simplement via l'interface dédiée : créer des missions en quelques clics sur Google Maps, suivre la progression temps réel, pas besoin de formation technique approfondie. Deux expériences optimales pour deux besoins différents.
Résultats
Intéressé par ce projet ?
Contactez-moi pour en discuter ou voir une démo.