Die Robotik beruht auf einer Vielzahl von Algorithmen, die mehrere Kernbereiche umfassen. Hier ist eine Aufschlüsselung einiger der wichtigsten:
1. Wahrnehmung/Erfassung: Algorithmen, die es dem Roboter ermöglichen, seine Umgebung durch Sensoren zu verstehen.
* Computer Vision:
* Objekterkennung: Yolo, SSD, schnelleres R-CNN, Mask R-CNN, Transformatoren (DETR, Verformbares DEFable)-Identifizieren und Lokalisierung von Objekten in Bildern/Video.
* Bildsegmentierung: U -NET, Deeplab - Ein Bild in sinnvolle Regionen teilen und jedem Pixel ein Etikett zuweisen.
* Feature -Erkennung &Matching: SIFT, SURF, ORB - Finden von charakteristischen Merkmalen in Bildern für die Übereinstimmung zwischen verschiedenen Standpunkten und Bedingungen.
* Struktur aus Bewegung (SFM): Rekonstruktion der 3D -Struktur aus einer Reihe von 2D -Bildern.
* Visual Slam (gleichzeitige Lokalisierung und Zuordnung): Orb-Slam, DSO-Slam-gleichzeitig eine Karte der Umwelt aufbauen und den Standort des Roboters innerhalb dieser Karte mithilfe von Vision bestimmen.
* optischer Fluss: Lucas -Kanade, FarneBack - Schätzung der Bewegung von Objekten und des Roboters selbst basierend auf Änderungen der visuellen Merkmale.
* Tiefenschätzung: Stereo -Vision, monokulare Tiefenschätzung mit tiefem Lernen (z. B. mit Transformatoren).
* LIDAR -Verarbeitung:
* Punktwolkenregistrierung: ICP (iterativer nächster Punkt), RANSAC -Ausrichtungspunktwolken aus mehreren Scans, um ein vollständiges 3D -Modell zu erstellen.
* Objekterkennung und Klassifizierung: PointNet, Pointnet ++, DGCNN - Verarbeitung von Punktdaten direkt verarbeiten, um Objekte zu identifizieren und zu klassifizieren.
* Segmentierung: Region Wachstum, planische Anpassung, Tiefkollo -Segmentierung auf der Basis von Punktwolken.
* Lidar Slam: Lehm (Lidar -Odometrie und Mapping), LEGO -LOAM - ähnlich wie Visual Slam, aber Lidar -Daten.
* Belegungsnetzzuordnung: Darstellung der Umgebung als Netz, in dem jede Zelle angibt, ob sie besetzt oder frei ist.
* Sensorfusion: Kombinieren Sie Daten von mehreren Sensoren, um eine genauere und robustere Wahrnehmung der Umgebung zu erhalten.
* Kalman -Filter: Schätzung des Zustands eines Systems (z. B. Roboterposition und Geschwindigkeit) durch Kombination von lauten Sensordaten mit einem dynamischen Modell. Der erweiterte Kalman-Filter (EKF), der unmittelbare Kalman-Filter (UKF), sind Variationen für nichtlineare Systeme.
* Bayes'sche Filterung: Ein allgemeiner Rahmen für die Kombination von Vorkenntnissen mit Sensornaten, um Überzeugungen über die Umwelt zu aktualisieren. Partikelfilter sind eine spezifische Implementierung.
* Komplementärer Filter: Mischen Sie die Ausgabe verschiedener Sensoren basierend auf ihren Frequenzeigenschaften (z. B. unter Verwendung des Beschleunigungsmessers für Hochfrequenzbewegungen und Gyroskop für die Langzeitorientierung).
2. Lokalisierung und Zuordnung: Algorithmen, die es dem Roboter ermöglichen, seine Position zu kennen und eine Darstellung seiner Umgebung zu schaffen. Oft überschneidet sich mit Wahrnehmung.
* Slam (gleichzeitige Lokalisierung und Zuordnung): Wie oben erwähnt, sind sowohl visuelle als auch Lidar -Slam kritisch. Zu den wichtigsten Algorithmen gehören:
* EKF Slam: Ein früher Ansatz unter Verwendung des erweiterten Kalman -Filters.
* Graph-basiertes SLAM: Die Darstellung der Karte als Diagramm, in dem Knoten Roboterposen und Kanten sind, sind Einschränkungen zwischen Posen. G2O, Ceres Solver sind gemeinsame Optimierungsbibliotheken.
* Partikelfilter Slam (Fastslam): Verwenden einer Reihe von Partikeln (Hypothesen) zur Darstellung der möglichen Roboterposen und der Karte.
* Faktorgraphen: Eine Verallgemeinerung von Graph -Slam, die eine flexiblere Modellierung von Sensorgeräuschen und Einschränkungen ermöglicht.
* Nur Lokalisierung:
* Monte Carlo Lokalisierung (MCL): Verwenden eines Partikelfilters zur Schätzung der Pose des Roboters bei einer bekannten Karte.
* amcl (adaptive Monte Carlo Lokalisierung): Eine Erweiterung von MCL, die die Anzahl der Partikel anhand der Unsicherheit in der Pose des Roboters anpassen kann.
* GPS (globales Positionierungssystem): In Umgebungen im Freien, in denen GPS -Signal verfügbar ist. Oft mit anderen Sensoren verschmolzen.
* Mapping:
* Belegungsnetzzuordnung: Aufbau einer probabilistischen Karte der Umgebung.
* Feature-basierte Zuordnung: Erstellen einer Karte mit herausragenden Merkmalen in der Umgebung (z. B. Ecken, Kanten).
* Topologisches Mapping: Darstellung der Umgebung als Grafik von Orten und Verbindungen zwischen ihnen. Nützlich für die Navigation auf hoher Ebene.
* Semantisches Mapping: Erweitern Sie die Karte mit semantischen Informationen über die Objekte und Orte in der Umgebung (z. B. "Küche", "Tisch", "Person").
3. Planung &Navigation: Algorithmen zur Bestimmung des besten Weges für den Roboter, um ein Ziel zu erreichen.
* Pfadplanung:
* a* Suche: Ein Graph -Suchalgorithmus, der den kürzesten Weg von einem Start zu einem Ziel findet und eine Heuristik verwendet, um die Suche zu leiten.
* Dijkstra -Algorithmus: Ein weiterer Graph -Suchalgorithmus, der den kürzesten Weg findet, aber ohne Heuristik.
* rrt (schnell erforschender Zufallsbaum): Ein Algorithmus, der einen Baum möglicher Pfade baut, indem der Konfigurationsraum zufällig abgetastet wird. RRT*, informierte RRT* sind Varianten, die die Leistung verbessern.
* prm (probabilistische Roadmap): Ein auf Stichprobenbasis basierender Algorithmus, der eine Roadmap der Umgebung aufbaut, mit der dann Wege zwischen zwei beliebigen Punkten geplant werden kann.
* potenzielle Felder: Schaffung eines künstlichen potenziellen Bereichs, auf dem das Ziel attraktiv ist und Hindernisse abstoßend sind. Der Roboter folgt dem Gradienten des Feldes.
* Trajektorienoptimierung: Formulieren des Pfadplanungsproblems als Optimierungsproblem und Lösung von Techniken wie Gradientenabfällen oder sequentieller quadratischer Programmierung. Chomp, Trajopt.
* Bewegungsplanung: Betrachtet die Dynamik und Einschränkungen des Roboters (z. B. Geschwindigkeit, Beschleunigung, gemeinsame Grenzen) bei der Planung eines Pfades. Verwendet oft die Flugbahnoptimierung.
* Navigation:
* PID -Steuerung: Ein weit verbreiteter Kontrollalgorithmus zur Regulierung der Bewegung des Roboters. Proportionale, integrale, abgeleitete Begriffe.
* Modellvorhersagekontrolle (MPC): Eine fortschrittliche Steuerungstechnik, die die Flugbahn des Roboters über einen endlichen Horizont optimiert, unter Berücksichtigung der Dynamik und Einschränkungen des Roboters.
* Verstärkungslernen: Training des Roboters, um in einer Umgebung durch Versuch und Irrtum zu navigieren. Q-Learning, Deep Q-Networks (DQN), proximale Richtlinienoptimierung (PPO). Besonders nützlich für komplexe, dynamische Umgebungen.
* Verhaltensbasierte Robotik: Gestaltung des Verhaltens des Roboters als eine Sammlung reaktiver Module, die auf verschiedene Sensoreingaben reagieren. Abhängigkeitsarchitektur.
* Aufgabenplanung: Übergreifende Planung, bei der eine komplexe Aufgabe in eine Folge von Aktionen unterteilt wird. Hierarchische Task -Netzwerke (HTNs).
4. Kontrolle: Algorithmen zur Ausführung des geplanten Pfades und zur Aufrechterhaltung der Stabilität.
* PID -Steuerung: (Wie oben erwähnt, auch in der Navigation verwendet).
* Feedforward Control: Verwenden eines Modells des Systems zur Vorhersage der erforderlichen Steuereingänge.
* Zustandsschätzung: (Kalman -Filter usw.) Schätzung des internen Zustands des Roboters (Position, Geschwindigkeit usw.) aus Sensordaten. Dies ist für die Rückkopplungsregelung von entscheidender Bedeutung.
* Kraftkontrolle: Kontrolle der vom Roboter in der Umgebung ausgeübten Kräfte. Hybridposition/Kraftkontrolle, Impedanzkontrolle, Zulassungskontrolle. Wichtig für Manipulationsaufgaben.
* Adaptive Kontrolle: Anpassen der Steuerparameter in Echtzeit, um Änderungen in der Umgebung oder in der Dynamik des Roboters auszugleichen.
* robuste Kontrolle: Entwerfen von Controllern, die unempfindlich gegenüber Unsicherheiten und Störungen sind.
* Nichtlineare Kontrolle: Techniken zur Kontrolle von Robotern mit nichtlinearer Dynamik. Backstepping, Schiebemodussteuerung.
5. Manipulation: Algorithmen zum Greifen, Manipulieren und Zusammenbau von Gegenständen.
* Greifen:
* Planung: Bestimmen Sie den besten Weg, um ein Objekt basierend auf seiner Form und dem Greifer des Roboters zu erfassen.
* Kraftverschluss: Sicherstellen, dass der Griff stabil ist und externen Kräften widerstehen kann.
* Qualitätsmetriken erfassen: Bewertung der Qualität eines Griffs basierend auf Faktoren wie Stabilität, Robustheit und Geschicklichkeit.
* tiefes Lernen zum Greifen: Schulung neuronaler Netzwerke, um Griffen direkt aus Bildern oder Punktwolken vorherzusagen. Graspnet, Dex-Net.
* Bewegungsplanung für Manipulation:
* Stichprobenerplanung: (RRT, PRM) Planen Sie die Bewegung des Arms des Roboters und vermeiden Sie Kollisionen mit der Umwelt und dem manipulierten Objekt.
* Trajektorienoptimierung: Optimierung der Flugbahn des Roboters, um den Energieverbrauch oder die Ausführungszeit zu minimieren.
* Kraftkontrolle für die Manipulation: (Wie oben erwähnt)
* Montageplanung: Planen Sie die Abfolge von Aktionen, die erforderlich sind, um ein komplexes Objekt zusammenzustellen.
* geschickter Manipulation: Algorithmen zur Verwendung mehrerer Finger oder Arme, um komplexe Manipulationsaufgaben auszuführen.
6. Maschinelles Lernen und künstliche Intelligenz:
* Verstärkungslernen: (Wie oben erwähnt)
* Überwachendes Lernen: Trainingsmodelle zur Vorhersage des Roboterverhaltens oder zur Klassifizierung von Sensordaten.
* unbeaufsichtigtes Lernen: Entdecken Sie Muster in Sensordaten ohne markierte Beispiele.
* Deep Learning: Verwendung von tiefen neuronalen Netzwerken für Wahrnehmung, Planung und Kontrolle.
* Nachahmungslernen: Training eines Roboters, um das Verhalten eines menschlichen Demonstrators nachzuahmen.
* Generative Modelle: Erstellen von Modellen, die neue Daten (z. B. Bilder, Punktwolken) für die Simulation oder die Datenvergrößerung generieren können. Gans, Vaes.
* Verarbeitung natürlicher Sprache (NLP): Roboter ermöglichen, natürliche Sprachbefehle zu verstehen und zu reagieren.
Wichtige Überlegungen:
* Echtzeitleistung: Viele Robotikalgorithmen müssen in Echtzeit ausgeführt werden, um nützlich zu sein.
* Robustheit: Algorithmen müssen für Lärm, Unsicherheit und Änderungen in der Umgebung robust sein.
* Computerkomplexität: Die rechnerische Komplexität des Algorithmus muss berücksichtigt werden, insbesondere für Roboter mit begrenzter Verarbeitungsleistung.
* Integration: Verschiedene Algorithmen müssen zusammen integriert werden, um ein vollständiges Robotersystem zu erstellen.
* Simulation: Simulation wird häufig verwendet, um Robotikalgorithmen zu entwickeln und zu testen, bevor sie auf echten Robotern bereitgestellt werden. Pybullet Gavebo, V-Rep/Coppeliasim, Pybullet sind häufige Simulationsumgebungen.
* Frameworks und Bibliotheken: ROS (Robot -Betriebssystem) ist ein weit verbreitetes Framework, das eine Sammlung von Tools und Bibliotheken für die Entwicklung von Robotiksoftware bietet. OpenCV (für Computer Vision), PCL (Point Cloud Library), TensorFlow, Pytorch (für maschinelles Lernen) sind ebenfalls unerlässlich.
Diese Liste ist nicht erschöpfend, bietet jedoch einen guten Überblick über die wichtigsten Algorithmen, die in der Robotik verwendet werden. Die in einem bestimmten Roboter verwendeten spezifischen Algorithmen hängen von der Aufgabe, Umgebung und Hardware des Roboters ab. Das Gebiet der Robotik entwickelt sich ständig, sodass ständig neue Algorithmen und Techniken entwickelt werden.