Willkommen im Forum und schön, das du dein Vorhaben so detailliert beschreibst
Ich bin kurz vor Ende meines Mechatronikstudiums und überlege selber dauernd darüber nach, wie man mit Hobbymitteln einen vernünftigen sechsachsigen Knickarmroboter bauen kann und muss mittlerweile zugeben, dass das ein wirklich anspruchsvolles Projekt ist. Vor allem braucht es da wirklich viel Einarbeitung in sämtlichen Branchen (Leistungslektronik, Mechanik, Elektromotoren, Mikrocontroller, Software etc.). Ich hab mir auch schon einen Roboter mit normalen günstigen Servos gebaut, allerdings musste ich feststellen, dass die Servos einen zu sehr eingeschränkten Stellbereich haben, um eine anständige inverse Kinematik zu ermöglichen. Ich werd jetzt erstmal nur auf ein paar Punkte eingehen, die mir besonders auffallen, da ich zu dieser späten Stunde nicht mehr viel schreiben mag:
-ein Arduino Uno für alles wird wahrscheinlich nicht ausreichen. Der dürfte nichteinmal die inverse Kinematik in ausreichender Geschwindigkeit berechnet bekommen, oder zumindest gerade so. Ich bin da jedenfalls zum Schluss gekommen, dass man am besten für die Regelung jedem Motor einen eigenen Controller spendiert und die Kinematik entweder dem Steuer-PC oder einem leistungsfähigeren Controller überlässt. Interessant ist dabei eine effizeinte Kommunikation zwischen den Komponenten, was mir derzeit ein wenig Probleme macht.
-ich werd zur Ansteuerung der Motoren wahrscheinlich L6205 nehmen, die haben eigentlich ganz gute Charakteristiken.
-für die Kugellagerungen solltest du dir vielleicht etwas besseres überlegen, das mit der Gewindestange ist jedenfalls nicht wirklich ideal. Wo sollen die Kugellager eigentlich hineinkommen? Normalerweise wird dafür extra ein Lagersitz gefertigt, der dann recht enge Toleranzen erfüllen muss, damit da auch nix wackelt. Sobald irgendwo irgendwas wackeln kann, kannst du es mit der Präzision vergessen. Die Drehteller sehen jedenfalls so aus wie die Teile, die in Drehstühlen und Laufrollen verbaut sind, und die taugen einfach nix.
-Die Sensoren von AS sind eine gute Wahl, ich hab mit denen auch schon gute Erfahrungen gemacht. Ich hatte anfangs auch AS5045, allerdings bin ich jetzt zu den neueren AS5048A/B übergewechselt, da die eine höhere Auflösung haben und leichter auszulesen sind dank standardisierter Schnittstelle (SPI bzw. I2C)
-Die Regelung ist auch relativ schwierig bei solchen Robotern, da man da einfach extrem viele Abhängigkeiten hat und diese größtenteils auch nichtlinearer Natur sind (zB. ändert sich das Trägheitsmoment in Abghängigkeit aller Gelenkwinkel außer dem ersten). Bei den richtigen Industrierobotern wird da das meiste tatsächlich berücksichtigt, da läuft dann ein physikalisches Simulationsmodell in Echzeit mit und der Gelenkregelung wird dann ein entsprechender Wert für die Vorsteuerung übergeben). Die Berücksichtigung der kompletten Dynamik ist allerdings wirklich zu komplex für so ein kleines Projekt, daher werd ich mich da auch nur auf eine Regelung auf Gelenkebene beschränken
-die DH-Parameter bringen dir bei der inversen Kinematik nix, da ist es sinnvoller, die analytisch zu lösen. Ich hab ein Buch über das Thema (Industrieroboter: Methoden der Steuerung und Regelung), wo die Vorgehensweise für die Standardkinematik durchgegangen wird. Das meiste wird entweder über Sinus- bzw. Kosinussatz gelöst oder mittels Vektoren zusammengestellt und dann aufgelöst.
-versuche am besten, Getriebemotoren mit möglichst wenig Getriebespiel zu verwenden, da sowas eigentlich kaum ausregeln lässt. Getriebespiel führt fast unweigerlich zu Schwingungen, wer schonmal in einem Fahrzeug mit lockerem Lenkrad saß weiß, was ich meine. Ich werd jedenfalls auch Zahnriemen zur Übertragung des Momentes an die Gelenke verwenden, da diese recht steif sind und vor allem nicht lose sind. Bei Zahnrädern ist es ja so, dass sie immer ein Stück weit wackeln, ohne dass man viel Kraft aufwenden muss (Spiel), während Zahnriemen sich etwa proportional zur Kraft ausdehnen (Nachgiebigkeit, wie bei einer Feder). Letzteres lässt sich in der Regelung viel besser kompensieren.
-die Motoren wählt man sich eigentlich erst zum Schluss aus, wenn man etwa abschätzden kann, wie schwer die einzelnen Teile werden und wie schnell da was beschleunigt wird. Das ist erfahrungsgemäß ein iterativer Prozess, da sich in der Planungsphase immer mal wieder Sachen ändern, die dann andere Motoren erforderlich machen.
Ansonsten: nicht entmutigen lassen, es ist möglich, ganz ansprechende Ergebnisse zu erzielen (an dieser Stelle wollte ich eigentlich ein Video von einem sehr geilen Hobby-Roboterarm zeigen, aber anscheinend wurde das Video runtergenommen). Ich würde das ganze an deiner Stelle jedenfalls studienbegleitend bearbeiten, da das ein sehr gutes Projekt ist, um das Gelernte auch anzuwenden. Und vielleicht lohnt es sich ja auch für dich, erstmal klein anzufangen und ein einfaches Modell zu bauen, nur um sich mit der Materie ein wenig anzufreunden.
Lesezeichen