Retour
Computer VisionEdge AIPoint Cloud

On-robot Perception

Vision YOLO + Traitement LiDAR embarqué

Défi

Donner des "yeux" au robot : lui permettre de percevoir son environnement en temps réel pour naviguer en sécurité parmi les piétons, véhicules et obstacles.

Opportunité

Un robot autonome qui roule en environnement réel doit comprendre ce qui l'entoure. Pas question de foncer dans un piéton ou de rater un véhicule qui arrive. Il fallait construire les pipelines de perception qui alimentent la navigation.

Disciplines

Computer VisionPoint Cloud ProcessingEdge AIRobotics Integration

Responsabilités

Pipeline vision YOLO

Traitement LiDAR

Optimisation embarquée

Intégration ROS

Stack

YOLOTensorRTONNXTensorFlowPCLROS

Contexte

En 2021, au début de Hive Robotics, j'ai construit les briques de perception embarquées sur les robots. L'objectif : détecter en temps réel les personnes, véhicules et obstacles pour permettre une navigation sûre.

Deux sources de données à exploiter : les caméras RGB pour la détection d'objets (personnes, véhicules, signalisation) et le LiDAR pour la compréhension 3D de l'environnement. Le défi était d'intégrer des modèles state-of-the-art tout en respectant les contraintes de l'embarqué : latence minimale, ressources limitées.

Architecture

1

Pipeline vision

J'ai intégré des modèles YOLO pré-entraînés pour la détection d'objets : personnes, véhicules, signalisation. Pas de training custom, l'objectif était d'exploiter des modèles éprouvés et de les optimiser pour l'inférence embarquée. Conversion ONNX puis TensorRT pour tirer parti du GPU.

2

Pipeline LiDAR

Le LiDAR génère des nuages de points 3D de l'environnement. J'ai utilisé PCL (Point Cloud Library) pour le traitement : filtrage, segmentation, clustering. Détection d'obstacles et de personnes directement sur les données 3D, complémentaire à la vision caméra.

3

Exploration prédiction de trajectoires

J'ai exploré la prédiction de trajectoires de piétons en adaptant des approches issues de papers de recherche. L'idée : anticiper où vont les personnes pour une navigation plus fluide. Resté au stade exploratoire, le focus étant sur la détection robuste.

Pipeline de perception

Détection multi-classes

Le pipeline vision détecte plusieurs classes d'objets : piétons (priorité sécurité), véhicules (voitures, vélos, trottinettes), et signalisation (panneaux, feux). Chaque détection est associée à une bounding box et un score de confiance, transmis au module de navigation.

Fusion caméra + LiDAR

Les deux sources de données se complètent : la caméra excelle pour classifier les objets (personne vs véhicule), le LiDAR donne la distance et la forme 3D précise. La fusion permet une détection plus robuste, notamment dans les cas limites (contre-jour, objets partiellement masqués).

Format de sortie ROS

Les détections sont publiées sur des topics ROS standardisés : bounding boxes 2D pour la vision, point clouds segmentés pour le LiDAR. Le module de navigation consomme ces données pour construire sa représentation de l'environnement et planifier ses trajectoires.

Stack technique

1Optimisation TensorRT

Les modèles YOLO sont convertis en ONNX puis optimisés avec TensorRT pour l'inférence GPU. Cette optimisation divise le temps d'inférence par 3-4x par rapport au modèle PyTorch original. Indispensable pour atteindre le temps réel sur hardware embarqué.

2Traitement point cloud avec PCL

PCL (Point Cloud Library) en C++ pour le traitement LiDAR : voxel grid filtering pour réduire la densité, ground plane removal pour isoler les obstacles, euclidean clustering pour segmenter les objets distincts. Pipeline optimisé pour tourner à 10Hz minimum.

3Hardware embarqué

Développement et tests sur Jetson Nano et Xavier (NVIDIA). Le code a été optimisé pour ces plateformes contraintes. En production, déploiement sur un PC embarqué plus puissant fixé dans le robot, mais l'architecture reste compatible Jetson pour de futurs robots plus compacts.

4Intégration ROS

Chaque pipeline est packagé en node ROS : un node pour la détection caméra, un pour le traitement LiDAR. Communication via topics ROS standards. Paramètres configurables (seuils de confiance, classes actives) via rosparam. Logs et diagnostics intégrés.

Impact

Perception temps réel

Les pipelines tournent en temps réel sur le robot : ~30 FPS pour la détection YOLO, 10Hz pour le traitement LiDAR. Latence suffisamment basse pour que la navigation réagisse instantanément aux obstacles détectés.

Détection fiable

Taux de détection >95% sur les classes critiques (piétons, véhicules). Les faux négatifs sont minimisés : mieux vaut freiner pour un faux positif que rater un vrai obstacle. Le système a prouvé sa robustesse lors des déploiements terrain.

Base pour la navigation autonome

Ces briques de perception sont devenues le socle de la navigation autonome des robots Hive. Elles alimentent le path planning et permettent au robot de circuler en sécurité parmi les piétons et véhicules, de jour comme de nuit.

Résultats

Inférence locale temps réel
Détection personnes/véhicules >95%
Traitement LiDAR 10Hz
Intégration ROS complète

Intéressé par ce projet ?

Contactez-moi pour en discuter ou voir une démo.

Me contacter