Nox: DIY SLAM-fähiger Hauswander-Roboter mit ROS
Nox ist ein Differentialdrive-Roboter basierend auf ROS, Raspberry Pi und Arduino, ausgestattet mit Kinect 360 für Echtzeit-SLAM und Hinderniserkennung.
Ursprünglich als modulare Basis konzipiert, erweiterte ich ihn zur vollautonomen Plattform, die Karten der Umgebung erstellt (via gmapping), sich selbst lokalisiert und kollisionsfreie Pfade zu jedem Ziel plant.
Angetrieben von 11,1-V-Li-Ion-Akku und zwei 12-V-DC-Motoren (107 U/min) von Banggood, lässt sich der Roboter schnell neu bestücken – die Frontplatte ist abnehmbar und akzeptiert Akkus verschiedener Längen. Ein Akku-Level-Display warnt vor nötiger Aufladung.
Obwohl die Motoren hohes Tempo bieten, priorisierte ich präzise Encoder für sanftere Navigation.
Das Chassis wurde für nahtlose Kinect-Integration designed. Ich wählte eine schlanke, dreieckige Form inspiriert von zeitgenössischem Design und der ikonischen „Deus Ex“-Ästhetik. Umfangreiches CAD-Tweaking sicherte professionelles Finish bei handhabbarer Verkabelung.
Status-LEDs – recycelt von Silvester-Leuchtstäben – geben visuelle Hinweise: schnelles Dreifach-Blinken signalisiert, dass Arduino noch nicht mit ROS-Master verbunden ist; Atemmuster zeigt aktive Navigation, Blinkrate skaliert mit Roboter-Geschwindigkeit.
Nicht verbunden blinkend
Leerlauf blinkend
Struktur
Der Differentialdrive platziert beide Motoren auf gemeinsamer Achse. Holzbasisträger stützt zwei Lenkrollen für Stabilität; hinterer Bereich beherbergt gestapelte Platten für Raspberry Pi, Arduino und weitere Elektronik.
Der äußere Aufbau ist eine handgeschnittene schwarze Kunststoffplatte, ein Design, das in zukünftigen Builds durch 3D-Druck optimiert wird.
Hardware
Im Kern sitzt ein Raspberry Pi 3B mit Ubuntu und ROS, erreichbar via WLAN und SSH für Fernsteuerung. ROS übernimmt Odometrie, Navigationsplanung und SLAM mit Kinect-Daten. Der Pi sendet Geschwindigkeitsbefehle an Arduino Mega 2560, der Motoren über Adafruit Motor Shield per PID-Loop antreibt. Encoder-Feedback geht zurück an Pi für präzise Odometrie.
Ich testete Uno und Leonardo, bevor ich auf Mega 2560 wechselte, der ample Speicher und Interrupt-Pins für Encoder-Auslesung bietet.
Der Kinect 360 ist zentral: 25 € 3D-Kamera, die Tiefendaten für gmapping liefert, plus Vision, Beschleunigungsmesser und Mikrofonarray – wertvoll für zukünftige Erweiterungen.
Strommanagement nutzt zwei DC-Wandler: Motoren direkt von 11,1 V Akku, Pi, Arduino, Encoder bei 5 V, Kinect erhält stabilisierte 12 V.
Software
Projekt läuft auf ROS Kinetic. Einziger Custom-Node nox_controller berechnet Odometrie aus Motorgeschwindigkeitsdaten. Kinematisches Modell folgt „On Differential Drive Robot Odometry with Application to Path Planning“. Kovarianzmatrizen werden für zukünftige Sensorfusion veröffentlicht.
Motorsteuerung nutzt aktuell direkte PWM-Befehle; PID-Loop deaktiviert, wird aber für verbesserte Präzision kalibriert. Encoder-Feedback liefert bereits zufriedenstellende Geschwindigkeitsregelung.
Mehr Details: Nox – A House Wandering Robot (ROS)
Herstellungsprozess
- Arduino-Roboter mit Raspberry Pi bauen: Schritt-für-Schritt-Anleitung
- Intelligenten Roboter mit Bridge Shield bauen – Raspberry Pi & Arduino Integration
- DIY Wall-E-inspirierter Raspberry Pi CD-Box-Roboter
- ANDY – Der vielseitige humanoide Roboter
- Rolling Alarm Robot: Intelligentes, mobiles Wecksystem mit Raspberry Pi und Google Kalender
- Einen motorisierten Minecraft-Creeper-Roboter mit Arduino bauen
- JQR Vierbein-Roboter: DIY-Laufroboter für autonome Navigation & Rettung
- Archimedes: Der emotionserkennende KI-Roboter-Eule
- EMAR Mini: Kompakter Open-Source-Notfallhilfe-Roboter
- WLAN-gesteuerter Raspberry Pi Roboter mit Python bauen – Schritt-für-Schritt