[PYTHON] Ich habe meinen eigenen Parallel Link Roboter (Software Edition) gemacht

Parallel Link Roboterproduktion (Software Edition)

Ein Memo zur Herstellung eines Parallelverbindungsroboters, auch als Delta-Roboter bekannt. Soft Edition.

In der mechanischen Ausgabe haben wir 3D-CAD- und 3D-Druckdienste verwendet, um den Hauptkörper eines Parallelverbindungsroboters zu erstellen, der aus drei Servomotoren besteht. Dieses Mal werde ich über die Software schreiben, die ich entwickelt habe, um den Servomotor von Python aus zu steuern und als Roboter zu bewegen. fusion_rendering_3.png

Erforderliche Spezifikationen

Bei der Steuerung eines Roboters wird die Prozedur ausgeführt, mit der dem Roboter die Bewegung beigebracht wird, die allgemein als "Lehren" bezeichnet wird, und dann wird der Roboter automatisch wie gelehrt ausgeführt. Es gibt drei Hauptarten des Unterrichts. Dieses Mal habe ich beschlossen, all dies umzusetzen.

Arten des Unterrichts Erläuterung
Online-Unterricht Lernen Sie mit der Fernbedienung, die den Roboter steuert, die Bewegung, während Sie den Roboter tatsächlich bewegen.
Offline-Unterricht Bewegen Sie den Roboter auf dem Simulator, um die Bewegung zu lernen.
Direkter Unterricht Berühren Sie den Roboter mit bloßen Händen, um direkte Bewegungen zu lernen.

Klassenstruktur

Es ist ein Klassendiagramm eines in Python geschriebenen Moduls. class_diagram.png

Die Rolle jeder Klasse.

Name der Klasse Rolle
PS4Controller Eine Klasse, die das Pygame-Modul verwendet, um verschiedene Betriebsinformationen vom PS4 DualShock4-Controller abzurufen. Die Informationen auf dem Analogstick werden verwendet, um die dreidimensionale Bewegung des Delta-Roboters anzuweisen. Mit der Schaltfläche ○ △ □ × wird der Ansichtsmodus des Zeichenbereichs des Simulationsmodells des Delta-Roboters umgeschaltet.
AX12Driver dynamixel_Eine Klasse, die den Dynamixel AX12-Servomotor mithilfe des SDK-Moduls steuert. Durch die Steuerung der Positionierung der drei Servermotoren, aus denen der Delta Robot besteht, arbeitet der Delta Robot nach oben, unten, links und rechts.
DeltaModel Eine Klasse, die Rechenlogik für die Delta-Roboterkinetik und die inverse Kinetik bereitstellt.
DeltaBase Eine abstrakte Klasse, die die Funktionen bereitstellt, die üblicherweise zur Steuerung von Delta-Robotern erforderlich sind. Zusätzlich zur Initialisierung verschiedener Klassen bietet es eine Funktion zum ständigen Zeichnen von 3D-Diagrammen von Roboterformen mit matplotlib.
DeltaTeaching Eine abstrakte Klasse, die die Funktionen bereitstellt, die üblicherweise zum Unterrichten von Delta-Robotern erforderlich sind. Die Positionsinformationen des Servomotors während des Lernvorgangs werden im Speicher aufgezeichnet und am Ende des Programms in eine Datei ausgegeben. Das Ausgabeformat ist JSON.
DeltaTeachingOffline Eine Klasse für den Offline-Unterricht von Delta-Robotern. Aus den vom PS4Controller erhaltenen Betriebsinformationen wird die Bewegungsgeschwindigkeit in jeder axialen Richtung erfasst und die aktuelle Position des Roboters berechnet. Konvertieren Sie Positionsinformationen in Motorwinkelinformationen mithilfe der Berechnungsfunktion für die inverse Kinematik von DeltaModel. Eine von DeltaBase geerbte Funktion, die den aktualisierten Roboterstatus auf einem virtuellen Modell in einem 3D-Diagramm zeichnet.
DeltaTeachingOnline Eine Klasse für den Online-Unterricht von Delta Robots. Das virtuelle Modell wird mithilfe der von der DeltaTeachingOffline-Klasse geerbten Funktion gesteuert, und die Positionssteuerungsanweisung des Servomotors wird an den AX12-Treiber übergeben, sodass sich das virtuelle Modell und die tatsächliche Maschine im selben Zustand befinden.
DeltaTeachingDirect Eine Klasse für den direkten Unterricht von Delta-Robotern. Erfasst die aktuellen Positionsinformationen (Winkel) des Servomotors vom AX12Driver und zeichnet sie auf. Gleichzeitig spiegelt die von DeltaBase geerbte Funktion dieselben Informationen im virtuellen Modell im 3D-Diagramm wider.
DeltaPlayerOffline Eine Klasse, die Offline-Delta-Roboter automatisch ausführt. Durch Eingabe der Zeitreihendaten der Positionsinformationen des Servomotors, die zum Zeitpunkt verschiedener Lehren aufgezeichnet wurden, wird die gelernte Bewegung mit einem virtuellen Modell in einem 3D-Diagramm reproduziert.
DeltaPlayerOnline Eine Klasse, die Online-Delta-Roboter automatisch ausführt. Das virtuelle Modell wird mit der von DeltaPlayerOffline geerbten Funktion gesteuert, und die Positionssteuerungsanweisung des Servomotors wird an den AX12-Treiber übergeben, sodass sich das virtuelle Modell und die tatsächliche Maschine im selben Zustand befinden.

Quellcode

https://github.com/kizitorashiro/deltarobot

Referenzierte Site

Dies ist die Site, auf die ich bei der Implementierung verwiesen habe.

Artikel URL
Umkehrkinematik von Delta-Robotern https://tony-mooori.blogspot.com/2016/09/kinematics.html
Delta-Roboterkinematik http://hypertriangle.com/~alex/delta-robot-tutorial/
Delta-Roboterkinematik https://github.com/awesomebytes/delta_robot/blob/master/src/delta_kinematics.py
PS4 DualShock4 https://gist.github.com/claymcleod/028386b860b75e4f5472
Technische Daten des Dynamixel-Servomotors http://support.robotis.com/jp/product/dynamixel/ax_series/dxl_ax_actuator.htm
Dynamixel-Servomotortreiber https://github.com/ROBOTIS-GIT/DynamixelSDK

Betriebsdemo

demo1.png

Online-Unterricht

Verwenden Sie die PS4-Steuerung als Fernbedienung, um den Delta-Roboter zu bewegen. Das virtuelle Modell auf dem PC und die eigentliche Maschine arbeiten synchron. Das virtuelle Modell kann durch Umschalten in den Ansichtsmodus mit einem anderen Blickwinkel angezeigt werden. Online-Lehrvideo

Offline-Unterricht

Mit der PS4-Steuerung als Fernbedienung können Sie das virtuelle Modell des Delta-Roboters steuern und gleichzeitig die Positionsinformationen als Zeitreihendaten aufzeichnen. Danach spielt der Roboter automatisch dieselbe Bewegung ab. Offline-Lehrvideo

Direkter Unterricht

Bewegen Sie den Roboter, indem Sie ihn direkt mit Ihren Händen berühren. Jedes Mal, wenn sich die Position des Roboters ändert, werden diese Informationen als Zeitreihendaten aufgezeichnet. Danach spielt der Roboter automatisch dieselbe Bewegung ab. Direktes Lehrvideo

Recommended Posts

Ich habe meinen eigenen Parallel Link Roboter (Software Edition) gemacht
Ich habe meinen eigenen Parallelverbindungsroboter gebaut (mechanische Ausgabe)
Ich habe meine eigene Sprache gemacht. (1)
Ich habe meine eigene Sprache gemacht (2)
Ich habe meine eigene AML gemacht
Ich habe meine eigene Python-Bibliothek erstellt
Ich habe meinen eigenen primitiven statischen Site-Generator erstellt
[Python] Ich habe meine eigene Bibliothek erstellt, die dynamisch importiert werden kann
Python> Ich habe einen Testcode für meine eigene externe Datei erstellt
Ich habe mein eigenes Filter-Plug-In für Ansibles Textanalyse erstellt
Ich habe mein eigenes Recherchetool mit der Gesetzes-API [Smart Roppo] erstellt.
Ich habe weder die Fähigkeiten noch die Stärke, aber ich habe meinen eigenen Compiler erstellt
Ich mache mein eigenes aws cli
Ich habe meinen Hund "Monaka Bot" mit Line Bot gemacht
[Ich habe versucht, Pythonista 3 zu verwenden] Importieren meines eigenen Moduls
Ich habe meine eigene Django Middleware erstellt, damit ich von überall auf Anforderungsinformationen zugreifen kann