Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

KI-gestützter Linienfolger-Roboter auf Arduino Nano Basis

Komponenten und Zubehör

BauteilMenge
Arduino Nano1
Bluetooth RF Transceiver (Master/Slave, z. B. HC-05/06)1
IR-Reflexionssensor-Modul (5-Kanal-Array für PID)1
2× Zusätzliche IR-Sensoren (Links/Rechts für Kreuzungserkennung)2
2× Continuous Rotation Servos (Antrieb)2
4,8 V Akku-Pack (z. B. 4× NiMH AA)1

Software

Projektbeschreibung

Motivation

Nach einem Pick-&-Place-Roboter sollte ein KI-basierter Linienfolger entstehen – „Test meiner Skills auf fortgeschrittenem Niveau“. Einfache Linienfolger nutzen PID; hier kommt Maze-Solving mit „Left-Hand-Rule“ und Pfadoptimierung hinzu.

Warum KI bei Linienfolgern?

KI ermöglicht Robotern, reale Probleme (Kreuzungen, Sackgassen, Labyrinthe) autonom zu lösen. Anwendungen: Fertigungsstraßen, autonome Shuttle-Busse. Dieser Prototyp demonstriert die Grundlagen: Sensorfusion, Zustandsmaschine, Pfadlernen & -optimierung.

Sensorkonfiguration

5 PID-Sensoren (LFS0–LFS4) – digital, erkennen schwarze Linie auf weiß. Mittiger Sensor auf Linie = HIGH (1). Typische Muster:

10000  11000  01000  01100  00100  00110  00010  00011  00001  00000  11111

2 Laterale Sensoren (Far-Left, Far-Right) – analog, erkennen Abzweigungen links/rechts außerhalb der Hauptlinie. Schwellenwert THRESHOLD = 150 (anpassbar).

Algorithmus: Left-Hand-Rule Maze Solving

Prinzip

Linke Hand an der Wand entlang: An jeder Kreuzung links abbiegen, wenn möglich; sonst geradeaus; sonst rechts; sonst Umkehr (Dead End). Führt garantiert zum Ziel (nicht notwendigerweise kürzester Weg).

Kreuzungstypen & Aktionen (nach Left-Hand-Rule)

KreuzungAktion
Kreuz (4 Wege)Links
T-KreuzungLinks
Nur RechtsRechts
Nur LinksLinks
Gerade oder LinksLinks
Gerade oder RechtsGeradeaus
Sackgasse180° Wende
Ziel (Ende)Stop

Erkennungsstrategie: „Extra Inch“

Bei Linienende (alle 5 PID-Sensoren HIGH = CONT_LINE) oder Abzweig (lateraler Sensor triggert) fährt der Roboter ein kurzes Stück weiter (extraInch = 200 ms), liest Sensoren neu ein und klassifiziert die Situation eindeutig.

Software-Architektur (Modular)

Code-Highlights

PID-Berechnung

void calculatePID() {
  P = error;
  I = I + error;
  D = error - previousError;
  PIDvalue = (Kp*P) + (Ki*I) + (Kd*D);
  previousError = error;
}

Zustandsmaschine (Exploration)

void mazeSolve(void) {
  while (!status) {
    readLFSsensors();
    switch (mode) {
      case NO_LINE:      motorStop(); goAndTurn(LEFT, 180); recIntersection('B'); break;
      case CONT_LINE:    runExtraInch(); readLFSsensors();
                         if (mode != CONT_LINE) { goAndTurn(LEFT, 90); recIntersection('L'); }
                         else mazeEnd(); break;
      case RIGHT_TURN:   runExtraInch(); readLFSsensors();
                         if (mode == NO_LINE) { goAndTurn(RIGHT, 90); recIntersection('R'); }
                         else recIntersection('S'); break;
      case LEFT_TURN:    goAndTurn(LEFT, 90); recIntersection('L'); break;
      case FOLLOWING_LINE: followingLine(); break;
    }
  }
}

Pfad-Vereinfachung

void simplifyPath() {
  if (pathLength < 3 || path[pathLength-2] != 'B') return;
  int totalAngle = 0;
  for (int i=1; i<=3; i++) {
    switch(path[pathLength-i]) {
      case 'R': totalAngle += 90; break;
      case 'L': totalAngle += 270; break;
      case 'B': totalAngle += 180; break;
    }
  }
  totalAngle %= 360;
  switch(totalAngle) {
    case 0:   path[pathLength-3] = 'S'; break;
    case 90:  path[pathLength-3] = 'R'; break;
    case 180: path[pathLength-3] = 'B'; break;
    case 270: path[pathLength-3] = 'L'; break;
  }
  pathLength -= 2;
}

Bluetooth-Steuerung & PID-Tuning

Per Smartphone (Bluetooth-Terminal) sendet man Befehle: g (Start Linefollow), s (Stopp), f/b/l/r (manuell), p/i/d + Wert (PID-Parameter live ändern).

Aufbau & Inbetriebnahme

  1. Chassis bauen, Servos montieren, Sensor-Array vorne zentriert (5 PID), seitliche Sensoren links/rechts leicht nach außen versetzt.
  2. Verkabelung: PID-Sensoren → D12, D18, D17, D16, D19; Laterale → A0 (Rechts), A1 (Links); Servos → D5 (Links), D3 (Rechts); BT → D10 (RX), D11 (TX); Taster → D9; LED → D13.
  3. Akku anschließen, Arduino programmieren.
  4. PID-Werte per BT anpassen (Start: Kp=50, Ki=0, Kd=0).
  5. Ersten Lauf starten (g), Roboter lernt Labyrinth. Taster drücken → 2. Lauf (Optimiert).

Tipps & Weiterentwicklung

  • Mehr Sensoren (8–10) für höhere Auflösung & Geschwindigkeit.
  • DC-Motoren mit Encodern statt Servos für präzisere Odometrie.
  • Rechte-Hand-Regel als Alternative implementieren.
  • KI-Erweiterung: Q-Learning für optimale Pfadfindung ohne Hand-Regel.
  • Kamera (OpenMV) für visuelle Linien- & Hinderniserkennung.

Fazit

Der Roboter demonstriert eindrucksvoll, wie aus einfachen IR-Sensoren und einer Zustandsmaschine ein lernfähiges System entsteht. Die modulare Code-Struktur erleichtert Experimente. Basis für weiterführende KI-Robotik-Projekte.

Herstellungsprozess

  1. Wand-vermeidenden Roboter mit Raspberry Pi bauen – Schritt-für-Schritt-Anleitung
  2. Visionsbasierter Hindernis-vermeidender Mobiler Roboter auf Raspberry Pi
  3. Star Automations Pinsel-führender Roboter glänzt auf NPE 2018
  4. Wittmann Battenfeld stellt WX153 vor: Fortgeschrittene Roboterlinie für Hochkraft-Spritzgießautomatisierung
  5. Bosch stellt KI‑gestützte Fertigungslösung auf der Hannover Messe vor
  6. FANUC erweitert SCARA‑Roboter‑Portfolio: Sechs Modelle, 3–20 kg Traglast, 400–1.100 mm Reichweite
  7. Künstliche Intelligenz im Retail: Bewiesene Vorteile, kein Hype
  8. KI befähigt Roboter, 90+ Objekte durch Tasten zu erkennen
  9. KI-gestützte Robotik: Spitzenklasse intelligenter Maschinen
  10. KI: Vorteile, Risiken und industrielle Auswirkungen