Dreidimensionales Bewegungssimulationssystem für einen Parallelroboter mit drei Freiheitsgraden basierend auf OpenCL
2026-02-21 12:52:31··#1
Die 3D-Simulation von Robotern spielt eine entscheidende Rolle in der Roboterforschung und -entwicklung und zählt zu den neuesten Forschungsrichtungen auf diesem Gebiet. Dieses System nutzt Visual C++, um OpenGL-Grafikfunktionen aufzurufen und so einen Parallelroboter mit drei Freiheitsgraden sowie seine Arbeitsumgebung zu modellieren und darzustellen. Es visualisiert den 3D-Arbeitsraum basierend auf den Ergebnissen der Vorwärtskinematik und visualisiert den Arbeitsprozess des Parallelroboters in Echtzeit anhand der Trajektorie eines gegebenen Referenzpunktes und der Ergebnisse der inversen Kinematik. 1 Einleitung : Roboter finden heutzutage immer breitere Anwendung in der Produktion und im Alltag. Parallelroboter mit drei Freiheitsgraden haben sich aufgrund ihrer herausragenden Vorteile wie hoher Steifigkeit, starker Tragfähigkeit, geringem kumulativem Fehler und guter Dynamik zu einem wichtigen Anwendungsgebiet mit großem Potenzial entwickelt. Die Forschung und Entwicklung in diesem Bereich ist jedoch noch unzureichend. Die 3D-Bewegungssimulation ist ein wesentlicher Bestandteil verschiedener Simulationen im Rahmen der Forschung an Parallelrobotern mit drei Freiheitsgraden. Die Überprüfung von Roboterzusammensetzung, Arbeitsbereich, Trajektorienplanung, Steuerungsalgorithmen, Kollisionserkennung usw. ist von großer Bedeutung. Gleichzeitig hat sich die Entwicklung von Simulationssoftware für PCs mit der rasanten Verbesserung der Computerleistung zu einem Trend in der Simulationstechnologie entwickelt. Dieser Artikel stellt ein Simulationssystem für die Bewegung eines parallelen Roboters mit drei Freiheitsgraden vor. Unter Windows nutzt es das Modellierungswerkzeug AutoCAD und Visual C++, um Funktionen der OpenGL-Grafikbibliothek aufzurufen und so eine 3D-Bewegungssimulation zu realisieren. 2. Entwicklungsumgebung und Einführung in AutoCAD und OpenGL Dieses System wurde auf der Windows NT-Plattform entwickelt. Um die Implementierung verschiedener Berechnungs- und Grafikalgorithmen zu vereinfachen und deren Korrektheit, Zuverlässigkeit und hohe Effizienz zu gewährleisten, wurde die Entwicklungsumgebung Visual C++ unter Verwendung objektorientierter Programmiertechniken gewählt. AutoCAD ist ein typisches Beispiel für viele 2D/3D-CAD/CAM-Systeme. Es ist ein leistungsstarkes Modellierungswerkzeug, das die präzise Modellierung allgemeiner 3D-Geometrien ermöglicht. OpenGL ist ein in den letzten Jahren entwickelter, leistungsstarker 3D-Grafikstandard. Es wurde unter der Schirmherrschaft von SGI und anderen namhaften Computerunternehmen auf Basis der GL 3D-Grafikbibliothek von SGI entwickelt und ist ein universeller und weit verbreiteter offener 3D-Grafikstandard. Es ist unabhängig von Fenstersystemen und Betriebssystemen, und darauf basierende Anwendungen lassen sich problemlos zwischen verschiedenen Plattformen portieren. Es findet breite Anwendung in der wissenschaftlichen Datenvisualisierung, der Volumenmodellierung, CAD/CAM, Simulation und vielen anderen Bereichen. Aufgrund seiner Vorteile wie komfortabler Modellierung, einfacher Realisierung hochauflösender Echtzeit-3D-Simulationen, Unabhängigkeit und Vielseitigkeit wird OpenGL häufig für die Konstruktion und Bewegungsanalyse innovativer Mechanismen und mechanischer Geräte, einschließlich Robotern, eingesetzt. 3. 3D-Bewegungssimulationssystem für einen 3-DOF-Parallelroboter basierend auf OpenGL3.1 Erstellung des geometrischen Modells Obwohl OpenGL starke Grafikfunktionen bietet, sind seine 3D-Modellierungsfunktionen vergleichsweise schwach. Die in der Hilfsbibliothek bereitgestellten 3D-Formzeichnungsfunktionen können nur einfache Formen wie Kugeln, Würfel und Polyeder zeichnen. Darüber hinaus bietet es einige grundlegende Elemente wie Punkte, Linien und Polygone. Kombinationen dieser Grundelemente können zur Modellierung einfacher Objekte verwendet werden, die Modellierung komplexer Formen ist jedoch eine mühsame Angelegenheit. Gängige CAD-Systeme wie AutoCAD, 3DS und Pro/E verfügen über leistungsstarke 3D-Zeichenfunktionen. AutoCAD ist ein hervorragendes Beispiel; diese Software wurde zur geometrischen Modellierung verschiedener Roboterteile verwendet, wie in Abbildung 1 dargestellt. [align=center]Abbildung 1. Komponentendarstellung[/align] 3.2 Datenkonvertierung und Generierung der Anzeigeliste Nach der Modellierung der verschiedenen Roboterteile mithilfe der CAD-Software wird die Standard-CAD-Datendatei (z. B. das von AutoCAD verwendete DXF-Dateiformat) in das OpenGL-Dateiformat konvertiert. Die Datenkonvertierung wird als separates Modul programmiert. Beim Erstellen des Modells muss auf die Referenzpunkte des Modells geachtet werden. Komponenten innerhalb des Mechanismus werden separat konvertiert, und ihre Montagebeziehungen beim Zusammenbau des Modells müssen berücksichtigt werden. Die Schritte sind wie folgt: ① Vernetzung des geometrischen Modells, im Allgemeinen unterteilt in Dreiecke; ② Festlegen der Knotennummern im Netzwerk und Auslesen der 3D-Koordinaten jedes Knotens; ③ Festlegen der Dreiecksnummern und Zuweisung der entsprechenden Eckpunktnummern für jedes Dreieck; ④ Berechnen des Oberflächennormalenvektors jedes Dreiecks; ⑤ Platzieren jedes Dreiecks in der OpenGL-Anzeigeliste zur späteren Verwendung. Am Beispiel der C++-Sprachbeschreibung sieht die Datenstruktur wie folgt aus: struct CADObj { charname[16]; // Name des Robotergeometriemoduls int NumFaces; // Anzahl der Dreiecke in der Dreiecksflächenliste int NumVerts; // Anzahl der Punkte in der Eckpunktliste int NumMaps; // Anzahl der Texturen in der Texturkoordinatenliste BOOL matrix; // Gibt an, ob eine Transformationsmatrix vorhanden ist int NumBindings; // Anzahl der gebundenen Materialien CADFace *facelist; // Dreiecksflächenindexliste CADFet *vertlist; // Eckpunktliste CADMap *maplist; // Texturkoordinatenliste Float32 TraMatrix[3*4]; // 3×3 Rotationsmatrix, 3×1 Transformationsmatrix CAMMatList *bindings; // Materialien an Dreiecke binden 3.3 Transformation und Darstellungsverarbeitung von Projektion, Viewport usw. sowie Verarbeitung von Farbe, Material, Textur, Beleuchtung und Hintergrund Dreidimensionale Objekte werden in dreidimensionalen Koordinaten definiert. Werden Computergrafikpunkte jedoch auf dem Bildschirm dargestellt, erscheinen die dreidimensionalen Objekte als zweidimensionale Bilder. Daher sind für die Transformation der dreidimensionalen Koordinaten geometrischer Objekte in Pixelpositionen auf dem Bildschirm die folgenden drei Transformationen erforderlich (siehe Abbildung 2). [align=center]Abbildung 2: Grafischer Transformationsprozess in OpenGL[/align] ① Transformation, dargestellt durch Matrixmultiplikation. Dies umfasst Operationen wie Modellierung, Ansicht und Projektion. Zu diesen Operationen gehören Rotation, Translation, Skalierung, Spiegelung, orthografische Projektion und perspektivische Projektion. Normalerweise müssen mehrere Transformationen kombiniert werden, um die Szene darzustellen. ② Da die Szene in einem rechteckigen Fenster gezeichnet wird, müssen Objekte (oder Teile von Objekten), die sich außerhalb des Fensters befinden, abgeschnitten werden. In der dreidimensionalen Computergrafik werden Objekte innerhalb des durch Clipping-Ebenen gebildeten Bereichs beschnitten. ③ Durch eine Viewport-Transformation wird eine Korrespondenz zwischen den transformierten Koordinaten und den Bildschirmpixeln hergestellt. Während der Modellerstellung werden Farbe, Material und Textur nicht am Modell verarbeitet. Nach Abschluss der Modelldatenkonvertierung werden OpenGL-Funktionen zur Verarbeitung aufgerufen. Dies vereinfacht die Modelldaten, erleichtert die Konvertierung, verbessert die Entwicklungseffizienz und erhöht die Vielseitigkeit des Systems. 3.4 Vorwärts- und Inverse Algorithmen zur Roboterpositionsanalyse Die Roboterpositionsanalyse umfasst die Bestimmung der Positionsbeziehung zwischen den Eingangs- und Ausgangskomponenten des Roboters. Wenn die Position der Antriebskomponente bekannt ist, wird die Berechnung der Position und Orientierung der Ausgangskomponente als Vorwärtslösung der Positionsanalyse bezeichnet. Sind Position und Orientierung der Ausgangskomponente bekannt, wird die Berechnung der Position der Eingangskomponente als Inverse Lösung der Position des Mechanismus bezeichnet. Bei der Berechnung des Arbeitsraums ist auf das Vorhandensein von Hohlräumen und Vertiefungen zu achten. Die inverse Lösungsmethode für die Position des Mechanismus dieses Parallelroboters mit drei Freiheitsgraden wird wie folgt beschrieben: Ausgehend von den Strukturabmessungen des Mechanismus lassen sich die Koordinaten jedes Gelenkpunkts auf der oberen und unteren Plattform in ihren jeweiligen Koordinatensystemen mithilfe geometrischer Beziehungen leicht ableiten. Durch Koordinatentransformation erhält man anschließend die Koordinaten der Gelenkpunkte auf der oberen und unteren Plattform im Koordinatensystem der festen Plattform (bi, Bj, i = 1, 2, 3). Nun können die Längenvektoren li (i = 1, 2, 3) der drei Aktuatorglieder in einem festen Koordinatensystem als li = bi - Bi (i = 1, 2, 3) ausgedrückt werden. Dies führt zu den inversen Kinematikgleichungen für die Position des Mechanismus. Es handelt sich dabei um drei unabhängige, explizite Gleichungen. Ausgehend von den Grundabmessungen des Mechanismus sowie der Position und Orientierung der oberen Plattform lassen sich die Verschiebungen der drei Aktuatoren mithilfe dieser Gleichungen berechnen. Im Allgemeinen ist die Lösung der inversen Kinematik eines Parallelrobotermechanismus relativ einfach, während die Lösung der direkten Kinematik recht schwierig ist. Dies gilt insbesondere für 6-DOF-Parallelroboter. Bei weniger als 6 Freiheitsgraden des Parallelroboters ist dieser Unterschied etwas geringer. Ausgehend von den Längen der drei Glieder lassen sich mithilfe numerischer oder analytischer Methoden die Position des Mittelpunkts der beweglichen Plattform und die Richtungskosinusmatrix der auf der beweglichen Plattform fixierten Bewegungskoordinaten bestimmen. Daraus ergibt sich der Arbeitsraum. 3.5 Dreidimensionale Darstellung des Roboterbewegungsraums und der vorgegebenen Bewegungstrajektorie. Basierend auf der funktionalen Implementierung der oben genannten Module kann der 3-DOF-Parallelrobotermechanismus und die kinematische Simulation realisiert werden. Zunächst werden die Mechanismusparameter ausgewählt oder eingegeben. Das System konstruiert dann den Mechanismus anhand dieser Parameter, berechnet seinen Arbeitsraum und stellt ihn dreidimensional dar, wodurch Echtzeit-Zoomen und Winkelwechsel zur Beobachtung möglich sind. Die Trajektorienplanung kann in Aufgabenraum und Gelenkraum unterteilt werden. Die Planung im Aufgabenraum wird durch unerreichbare Räume und mehrdeutige Lösungen beeinflusst; abgesehen von Sonderfällen erfolgt die Planung üblicherweise im Gelenkraum. Eine Trajektorie beschreibt Position, Geschwindigkeit und Beschleunigung jedes Freiheitsgrades zu jedem Zeitpunkt der Bewegung. Die Robotertrajektorienplanung berechnet basierend auf den Aufgabenanforderungen die erwartete Bewegungstrajektorie des Roboters und umfasst typischerweise die folgenden drei Aspekte: ① Beschreibung des Bewegungspfads und der Trajektorie des Roboters gemäß den Aufgabenanforderungen. ② Interne Beschreibung der erforderlichen Trajektorie im Computer basierend auf den ermittelten Trajektorienparametern; dies beinhaltet hauptsächlich die Auswahl konventioneller Regeln und einer geeigneten Software-Datenstruktur. ③ Durchführung von Echtzeitberechnungen auf der intern beschriebenen Trajektorie zur Generierung von Echtzeitwerten für Position, Geschwindigkeit und Beschleunigung des Roboters. Im Folgenden wird ein Beispiel für ein Mechanismus-Simulationssystem für einen 3-RPS-Parallelroboter mit drei Freiheitsgraden (siehe Abbildung 3) dargestellt. [align=center]Abbildung 3: Simulationsdiagramm eines 3-RPS-Parallelrobotermechanismus mit drei Freiheitsgraden. 4: Blockdiagramm der Systemstruktur[/align] 4. Fazit: In diesem Beitrag wird ein dreidimensionales Bewegungssimulationssystem für einen Roboter vorgestellt. Das Blockdiagramm der Systemstruktur ist in Abbildung 4 dargestellt. Unter Windows NT wurde mit AutoCAD ein geometrisches Modell erstellt und die Entwicklung mit Visual C++-Tools und der OpenGL-Grafikbibliothek durchgeführt. Die Echtzeitsimulation des Roboters wurde auf einem PC realisiert und erfüllte die Anforderungen der Forschungsarbeit. Darüber hinaus zeichnet sich das System durch gute Skalierbarkeit und Interaktivität aus und ermöglicht weiterführende Forschungen zu Kinematik, Dynamik, Steuerung und Planung.