Humanoider Roboter A1: mobile Basis PDF Drucken E-Mail
Geschrieben von: malte   
Mittwoch, den 26. September 2012 um 20:53 Uhr

Omnidirektionaler Antrieb | Zunächst hatte ich die Basis des A1 als Dreirad mit zwei unabhängig angetriebenen Vorderrädern und einer passiven Lenkrolle hinten realisiert (siehe unten). Kurvenfahrten konnten mit differentieller Aktivierung der beiden Räder erreicht werden, wobei sich die Lenkrolle passiv entsprechend der Fahrtrichtung einstellt. Diese Art differentieller Antrieb hat den Nachteil, dass man die Plattform damit nicht aus dem Stand zur Seite (d. h. senkrecht zur Rotationsebene der Räder) bewegen kann. Wenn man sich an den Bewegungsmöglichkeiten von Zweibeinern orientiert, ist deshalb ein omnidirektionaler Antrieb ein - zumindest funktional - realistischeres Antriebskonzept für einen humanoiden Roboter.

Als kleine Vorstudie dazu habe ich deshalb kürzlich eine kleine Plattform mit Omniwheels aufgebaut. Nachdem das problemlos geklappt hat, wurde jetzt auch der A1 mit einem solchen Antrieb ausgestattet. Er sollte wieder dreirädrig sein, weil dann naturgemäß immer alle Räder zuverlässig Bodenkontakt haben. Bei vier Rädern müsste man mit einer gefederten Radaufhängung dafür sorgen.

Konstruktion | Die australische Firma rotacaster hat mir freundlicherweise einen Satz ihrer 125 mm Omniwheels zur Verfügung gestellt. Um sie kraftschlüssig mit den Abtriebswellen der Nema 23 Getriebeschrittmotoren zu verbinden, mussten entsprechende Naben hergestellt werden.

spacer

omniwheelsomniwheels

spacer

spacer

Die Flanschplatten für die vorderen beiden Motoren habe ich so weiterverwendet, wie sie für das erste Motorisierungskonzept hergestellt wurden. Da der dritte Antrieb rückseitig dazugekommen ist, wurde dafür eine weitere Flanschplatte angefertigt.

spacer

Die Räder sind mitsamt ihrer Antriebseinheiten kreisförmig mit 120° Abstand zueinander angeordnet. Um das zu ermöglichen habe ich zwei Adapterwinkel angefertigt, die jeweils an den Stirnseiten des vorderen Alu-Profils angebracht sind.

omniwheelsbasis

spacer

omniwheelsomniwheels

spacer

Ein Bekannter aus dem Roboternetz hat mich nochmal auf einen Punkt aufmerksam gemacht, dem ich bisher eher ignoriert habe: man kann mit diesen (und wohl den allermeisten) Omniwheels nur relativ geringe Hindernishöhen überwinden. In dem Moment, in dem die Drehachse der passiven Querrollen parallel zum überwindenden Hindernis ausgereichtet ist, können nur noch Hindernishöhen von weniger als dem halben Rollendurchmesser überfahren werden. Die passiven Rollen haben bei den rotacaser Rädern 20 mm Durchmesser. Ein Hindernis darf dann nur noch weniger als 10 mm hoch sein um überwindbar zu sein. Ein Problem wären somit u. U. Türschwellen, die ja durchaus mal eine Höhe von 20 mm und mehr haben können. Für mich steht diese Problematik aktuell allerdings nicht sehr im Vordergrund weil der Roboter sich ohnehin erst mal in einer relativ artifiziellen Umgebung bewegt. Der Punkt ist aber trotzdem bemerkenswert und interessant, denn zumindest in dieser Hinsicht war das alte Antriebskonzept diesem (etwas) überlegen.

 

Elektronik | Controller für die Schrittmotoren sind prototypisch fertig. Sie basieren auf dem L6470 von STMicroelectronics. Das ist ein relativ neues IC das ich mir mal als Sample von ST besorgt habe. Ungewöhnlich an dem Treiber ist, dass er den Motor nicht strom- sondern spannungsgesteuert betreibt. Das hat eigentlich verschiedene Nachteile (Einfluss der back EMF u. ä.), die aber vom L6470 kompensiert werden. Sehr bequem ist die integrierte "motion engine", die Beschleunigungsrampen u. ä. intern erzeugen kann. Der Chip ist per SPI mit einem AVR verbunden, darüber wird er konfiguriert und angesteuert. Wenn man sich mal durch die mit der SPI Kommunikation verbundene Bitschubserrei gebissen hat, ist der L6470 durchaus pflegeleicht. Ob sich der Baustein für mich längerfristig bewährt, bleibt abzuwarten. An dieser Stelle (für die Nema 23 Motoren) ist er mit seiner Belastbarkeit von 3 A dauer (lt. Datenblatt) evntuell etwas knapp bemessen, ggf. muss ich auf kosten des Drehmoments etwas mit der Spannung runtergehen.

 

Ansteuerung | Mit welchen Drehzahlen die drei Motoren betrieben werden müssen um die Plattform in eine gewünschte Richtung zu bewegen, habe ich an anderer Stelle ausführlich beschrieben.

 

Echolot | Nicht nur (aber auch) weil man einfache Ultraschall Entfernungssensoren mittlerweile vom Chinesen hinterhergeschmissen bekommt, habe ich die Basis damit ausgestattet. Auch wenn der Roboter irgendwann einmal visuell navigieren können soll, ist ein einfaches System zur Kollisionsvermeidung praktisch.

Die Ultraschall-Module wurde in passende Abschnitte eines Aluminum U-Profils eingebaut. Dieses musste nur mit den entsprechenden Löchern versehen werden um ein rudimentäres Gehäuse für Schutz und einfache Montage der Module zu bilden. Die Einheiten werden mittels eines Nutsteins in dem Profil der Basis fixiert. Auf diese Weise ist die Ausrichtung einstellbar.

 

Zur Auswertung der Sensoren folgen in Kürze noch etwas mehr Infos. Sie werden mit von dem Modul ausgewertet, das auch die Treiber für die Fahrmotoren und den Motor für das Rückgrat kontrolliert. Im folgenden Video sieht man eine einfache Visualisierung der von den Sensoren gemessenen Abstände zu Hindernissen, hier zu Testzwecken einer Aluplatte.

 

 

Alte Version | In erster Linie aus "historischen" Gründen finden sich folgend noch einige Fotos, Videos und Infos zu den Vorgängerversionen der Basis. Ich habe mir bisher nicht die Mühe gemacht, den Text zu überarbeiten.

Als Räder verwende ich billige Scooterrollen (Hyper, Hyper), so wie sie auf Ebay für ein paar Euro zu haben sind. Die Nabe der Räder ist in diesem Falle mit einem hier recht nützlichen Lochkreis versehen, den ich zur Befestigung verwende. Durch die entsprechenden Löcher sind die Räder jeweils mit einer Adapterplatte aus PVC verschraubt, die dann ihrerseits auf der Abtriebsachse des Motors sitzt. Diese Achse hat ein zentrales Gewindeloch, hierin wird das Rad über einen Abstandsbolzen (nicht auf den Bildern zu sehen) verschraubt und somit gegen die Achse gezogen. Die eigentliche Kraftübertragung von der Achse auf das Rad erfolgt über eine Passfeder.

Weil ich den Zeitaufwand für die Eigenkonstruktion einer Lenkrolle gescheut habe, wurde hier so ein einfaches Baumarktding verwendet, auch wenn ich diese nicht sonderlich mag. Zufällig habe ich eines mit durchsichtiger Laufrolle gefunden, das somit optisch ganz gut zu den ebenfalls durchsichtigen Antriebsrädern passt. Um die Lenkrolle ordentlich mit den Aluprofilen verschrauben zu können wurde eine Adapterplatte angefertigt. Die Lenkrolle ist nicht gerade ein Präzisionsteil, läuft aber einigermaßen sauber.

Aufgrund der Dimensionen des Torsos musste die Basis natürlich stabil und solide aufgebaut werden. Ich habe ein Aluminium Profilsystem verwendet, dass sich gut und flexibel verarbeiten lässt. Solcherart Komponenten findet man natürlich zahlreich und günstig bei Ebay. Die Profile haben einen Querschnitt von 45 x 90 mm und kosten in dieser Form etwa 19 €/m. Grundsätzlich lassen die Profile mit Hilfe von Winkelelementen über die T-Nuten verbinden, so habe ich es hier bisher getan. Ob es insbesondere für den senkrechten Holm, an dem dann in naher Zukunft der Torso hängt, dabei bleiben kann, wage ich zu bezweifeln. Sobald alle Maße endgültig feststehen, werde ich die Profile konventionell miteinander verschrauben. Es ist auch nicht ausgeschlossen, dass sich die Konstruktion in dieser Form insgesamt als zu wabbelig erweist, insbesondere bei den verschiedenen Bewegungsmomenten, die im Betrieb auftreten können. Dann müsste an dieser Stelle ohnehin noch überarbeitet werden.

 

Der Torso ist mittlerweile am senkrechten Holm der Basis befestigt. Allerdings sind an dieser Stelle noch einige Änderungen geplant. Zum einen ist die Konstruktion etwas wackelig. Der Holm mit dem Torso neigt ein wenig zum Pendeln. Es ist schon bemerkenswert, wieviel Bewegung selbst so ein solides Profil auf einem Meter Länge noch zulässt. Aber ich hatte damit auch schon ein wenig gerechnet. Deshalb soll der Holm nun 90° um seine Längsachse gedreht und durch ein zusätzliches Profil verstärkt werden. Dadurch dass die Profile zur Zeit nur vorläufig über die Winkelelemente miteinander verbunden sind, sind solche Umbauten ohne größere Probleme möglich. Bei der Gelegenheit möchte ich dann aber außerdem noch eine Lineareinheit integrieren, mit der der Torso dann insgesamt hoch- und runter gefahren werden kann. Damit kann der Roboter mir auch aus einem ebenerdig aufgestellten Kühlschrank Bier holen.

Folgend ein Video von einem kleinen Testlauf der Basis. Das oben beschriebene Schrittmotortreibermodul wurde dafür zweifach aufgebaut. Die beiden Module sind per I2C mit einem vorläufigen "Master" verbunden, der seinerseits per RS232 mit dem Steuerrechner kommuniziert und von dort die Befehle empfängt. Die Module sind improvisiert an der Basis angebracht - das soll längerfristig natürlich nicht so bleiben. Die Versorgungsspannung für die Schrittmotoren ist noch zu niedrig, deswegen ist die Basis noch ziemlich langsam. Bei Zeiten muss ich mir ein großes 48V Netzteil besorgen. Bei den Leistungen die ich insgesamt (nicht nur für die Basis) benötige, ist das leider nicht mehr ganz billig.

 

 

Hinter diesen Thumbnails gibt es detailliertere Infos zu den anderen Teilprojekten:

Sensor-Head

robolink-Arme

Rückgrat

Greifer

Zentralrechner

Zuletzt aktualisiert am Montag, den 06. April 2015 um 09:11 Uhr
 

Kommentare  

 
#1 2013-04-03 17:39
Hello. Could you please say something about how did you choose steppers and gears for the base? How did you calculate a needed torque dependent of robot weight etc.? And how do you solve a problem with blocked wheels? Because steppers don't have a feedback and you can't know if they did a move. Thank you.
 
 

Suche

Benutzer

Wir haben 13 Gäste online

unterstützt von

batronix logo

spacer

rotacaster logo

spacer

spacer

spacer

Meine Tweets

Extern

youtube logo twitter logo email logo

spacer

spacer

spacer

Reklame