ROS2 Surveillance Robot · Autonomous Perception

Autonomes industrielles Überwachungssystem mit ROS2 Jazzy — 6 Nodes kommunizieren über Topics, OpenCV-Echtzeit-Anomalieerkennung, autonome STOP/CONTINUE-Entscheidungen und RViz2-Visualisierung der Roboterposition und erkannten Anomalien.

GitHub Repository

Kontext & Motivation

Industrielle Überwachungssysteme müssen autonom auf Anomalien reagieren — ohne menschliches Eingreifen. Dieses Projekt demonstriert einen vollständigen ROS2-Pipeline: ein simulierter Roboter patrouilliert durch eine Anlage, seine Kamera erkennt Defekte mit OpenCV, und das System entscheidet autonom ob der Roboter anhalten oder weiterfahren soll. Alle Positionen und Anomalien werden in Echtzeit in RViz2 visualisiert.

ROS2 Jazzy

6 Nodes kommunizieren über 5 Topics — Publisher/Subscriber Pattern

OpenCV Perception

Echtzeit-Anomalieerkennung mit HSV-Farbsegmentierung und Konturdetektion

Autonome Entscheidung

STOP/CONTINUE basierend auf Confidence-Score — kein menschliches Eingreifen

RViz2 Visualisierung

Roboterposition, Waypoints und Anomalie-Marker in 3D-Raum

1 — Architektur

ROS2 Surveillance Robot Architektur 6 ROS2 Nodes kommunizieren ueber 5 Topics. robot_navigator publiziert robot/pose, camera_sensor publiziert camera/image_raw, anomaly_detector publiziert detection/result, surveillance_manager publiziert robot/command, visualizer zeigt OpenCV Fenster, rviz_publisher zeigt MarkerArray in RViz2 robot_navigator Waypoint navigation camera_sensor Simulated camera images /robot/pose /camera/image_raw anomaly_detector OpenCV HSV detection /detection/result surveillance_manager Autonomous decisions /robot/command visualizer OpenCV live window rviz_publisher MarkerArray for RViz2 OpenCV Window RViz2 3D View
6
ROS2 Nodes
5
ROS2 Topics
30%
Anomalierate
2
Bugs behoben

2 — Live Visualisierung

Zwei gleichzeitige Ansichten — die Kamerasicht und die räumliche Übersicht:

System OK — keine Anomalie
OpenCV — Normalbetrieb: Pièces conformes (grün), System OK
Anomalie erkannt
OpenCV — Anomalie erkannt: rote Bordure, Bounding Box, Confidence 0.48
RViz2 Visualisierung
RViz2 — Roboterposition (blauer Pfeil), Waypoints (grüne Zylinder), erkannte Anomalien (rote Sphären)

3 — ROS2 Topics

TopicTypPublisherSubscriber
/robot/posePose2Drobot_navigatorcamera_sensor, surveillance_manager, rviz_publisher
/camera/image_rawImagecamera_sensoranomaly_detector, visualizer
/detection/resultString (JSON)anomaly_detectorsurveillance_manager, rviz_publisher
/robot/commandStringsurveillance_managerrobot_navigator
/visualization/markersMarkerArrayrviz_publisherRViz2

4 — Autonome Entscheidungslogik

Camera publiziert Bild alle 1s (30% Anomalie-Wahrscheinlichkeit)
        |
AnomalyDetector: HSV-Segmentierung → rote Formen → Confidence Score
        |
SurveillanceManager:
  confidence > 0.3 → STOP  → Robot haelt an aktueller Position
  zone clear       → CONTINUE → Robot setzt Patrouille fort
        |
Visualizer: OpenCV-Fenster mit Bounding Boxes und Status
RViz2:      Anomalie-Marker an exakter Position in 3D-Raum
⚠️ Bug 1 — Confidence Threshold: surveillance_manager hatte Schwelle 0.5, aber detector meldete 0.48 — alle Anomalien wurden verpasst (0/N erkannt). Fix: Schwelle auf 0.3 gesenkt.
⚠️ Bug 2 — flake8 Import Order: ROS2 verwendet google-style Import-Reihenfolge (I100, I201, Q000). Durch CI-Pipeline in 3 Fix-Commits iterativ behoben.
✅ Nach allen Fixes: CI grün, alle Tests bestanden, System läuft stabil.

5 — Tech Stack

ROS2 Jazzy Python OpenCV RViz2 Publisher / Subscriber MarkerArray cv_bridge colcon GitHub Actions CI WSL2 Ubuntu 24.04 Autonome Entscheidung Computer Vision

6 — Ausblick