Ich habe einen 6-Achsen-Roboter entworfen. Die Hauptanforderung an den Roboter besteht darin, dass alle Achsen hochgradig synchronisiert sein müssen, um präzise (Sub-Millimeter, Sub-Grad) 6DOF (x, y, z, Gieren, Neigen, Rollen) Trajektorien im Raum zu erzeugen. Ich habe diesen Roboter implementiert mit:
Hardware: Controller NI PCI-7358, Verstärker NI MID-7604, Stepper
Software: NI Labview
Allerdings würde ich gerne von NI-Produkten auf etwas Kompakteres umsteigen, damit ich keinen Computerwagen herumschleppen muss. Ein Beispiel, das ich auf GitHub gefunden habe , ist ein Roboter, bei dem der Ersteller Folgendes verwendet hat:
Hardware: Arduino, A4988 Schrittantriebe, Stepper
Software: Python
Bei einem solchen Setup mache ich mir jedoch Sorgen, dass die synchronisierte Mehrachsensteuerung aufgrund der Arduino-Verarbeitungsverzögerung nicht aufrechterhalten wird. Kann jemand empfehlen, ob die Arduino-Lösung geeignet ist, oder alternative Lösungen präsentieren (bitte geben Sie Ihre spezifische Hardware und Software an)?
Meine Frage ist also, kann jemand gute Hardware/Methoden empfehlen, um dies zu erreichen?
Ja, nehmen Sie alle Ihre Blöcke in Labview und finden oder schreiben Sie Codestücke, die die Funktionen der Blöcke replizieren. Sie können sogar C-Code in Labview schreiben und benutzerdefinierte Blöcke erstellen , sodass Sie jeden Block einzeln testen und durch Ihren eigenen ersetzen können.
Oder es gibt einen C-Code-Generator für Labview (den ich noch nie benutzt habe und der wahrscheinlich mehr Geld kostet und wahrscheinlich keine gute Arbeit beim Konvertieren leistet).
Ich würde C verwenden, weil es nicht interpretiert wird und wahrscheinlich besser in Echtzeit laufen würde. Wenn Sie das Bedürfnis haben, Python zu verwenden, würde ich zuerst C schreiben und es dann umwandeln.
Sie benötigen ein echtzeitfähiges Betriebssystem. Die Open-Source-CNC-Site ist LinuxCNC zum Erstellen der CNC-Maschine. Das gegabelte Projekt ist Machinekit, das zum Erstellen benutzerdefinierter Maschinen gedacht ist, die nicht mit dem Standard-G-Code-Interpreter zusammenhängen.
Wenn Sie über genügend Ressourcen verfügen, sind Laufwerke und E / A basierend auf dem Ethercat-Kommunikationsprotokoll am besten geeignet. Es bietet Synchronität, so dass alle Geräte gleichzeitig eine Momentaufnahme der Istwerte machen, auch die Sollwerte werden gleichzeitig ausgegeben. Außerdem hat der Jitter des OS-Interrupts keine Relevanz, bis die neuen Werte in jedem Kommunikationszyklus berechnet werden, also macht das Linux-Preemption-OS den Trick.
Chris Stratton
Spitz