Forum: Mikrocontroller und Digitale Elektronik Roboterarm - Aktoren und Sensoren, Tipps benötigt


von Peter P. (freund-der-sonne86)


Lesenswert?

Hey Leute,

Folgende Aufgabe:
Roboterarm ähnlich dem menschlichen Arm. (Stichwort: BIOROB)

1. Welche Motoren könnte man für die Gelenke verwenden? Diese sollten 
nicht zu schwer sein, aber trotzdem sehr genau.
Servomotoren oder Schrittmotoren sind oft zu schwach oder werden sehr 
teuer.

2. Gesteuert werden soll das Projekt über einen Mikrocontroller.
Welche Anforderungen sind an einen solchen Mikrocontroller gestellt? 
evtl. PWM Ausgänge?

3. Mit welchen Sensoren ist eine hohe Positioniergenauigkeit 
realisirbar?
Inkrementalgeber werden ab 1000 Schritten/Umdrehung sehr teuer.
Könnten G-Sensoren benutzt werden? wie sieht deren Genauigkeit aus?
Oder hat jemand eine Idee für ein anderes Sensorkonzept?

Die Formulierung ist zwar nicht sehr gut, aber es ist auch schon spät.

Würde mich über jeden Kommentar oder auch nur jeden kleinsten 
Tipp/Erfahrung bedanken.

Mfg

von K. D. (deka)


Lesenswert?

Peter Pan schrieb:
> 1. Welche Motoren könnte man für die Gelenke verwenden? Diese sollten
> nicht zu schwer sein, aber trotzdem sehr genau.
> Servomotoren oder Schrittmotoren sind oft zu schwach oder werden sehr
> teuer.

Servos aus dem Industriebereich. Im Idealfall AC-Servos. Ein guter 
Anfang fürs Hobby wären bürstenbehaftete (!) DC-Motoren und ein 
Hobbycontroller wie der UHU-Servocontroller http://www.uhu-servo.de/
Schrittmotoren sind zu schwach und erfüllen im Allgemeinen nicht die 
physikalischen Anforderungen. Eine Möglichkeit wären aber auch 
Schrittmotoren mit einem Getriebe oder besser ein Harmonic Drive. Aber 
da haben wir dann schonwieder die 1k€ Marke für eine Achse deutlich 
überschritten. Hast dir mal überlegt wieviele Achsen du brauchst.

Peter Pan schrieb:
> 2. Gesteuert werden soll das Projekt über einen Mikrocontroller.
> Welche Anforderungen sind an einen solchen Mikrocontroller gestellt?
> evtl. PWM Ausgänge?

Das kommt darauf an was der Mikrocontroller erledigen soll. Die 
Bewegungen in den Achsen sind so und so derart komplex, dass das mit 
Sicherheit ein Computer machen wird. Ein Mikrocontroller dient 
vielleicht noch zur Umsetzung PC-USB-Servotreiber um die Servotreiber 
vom PC aus ansteuern zu können. Das können 8bitter (AVR, PIC18, ...) 
sehr gut.

Peter Pan schrieb:
> 3. Mit welchen Sensoren ist eine hohe Positioniergenauigkeit
> realisirbar?
> Inkrementalgeber werden ab 1000 Schritten/Umdrehung sehr teuer.


Die Positionierung bekommt man aus den Serovs raus. Die isnd allesamt 
natürlich mit entsprechenden Encoderscheiben versehen. Alternativ kann 
man sich aus Tintenstrahldruckern billige Enocer holen. Die haben meist 
>5000 Striche und sind auf ebay für 1€ zu bekommen.

> Könnten G-Sensoren benutzt werden? wie sieht deren Genauigkeit aus?

Nein sind völlig verrauscht und Beschleunigungssensoren nehmen wie der 
Name schon sagt Beschleunigungen auf und dazu gehört bei einem dyn. 
System nicht nur die Erdbeschleunigung. Völliger Unsinn.

> Oder hat jemand eine Idee für ein anderes Sensorkonzept?

Nein.


Im Allgemeinen macht deine Art der Fragenstellung nicht den Eindruck, 
als ob du nötiges Vorwissen zum Projekt hast. Sei mir nicht böse aber 
ich fürchte sowas sprengt den Hobbykostenrahmen. Ich würde mir als 
Einstieg (wenn es auch Murks ist) einen Roboterarm aus Modellbauservos 
zusammenbauen. Das ist schon Arbeit genug und ein guter Einstieg in die 
Mikrocontrollerwelt.
http://www.mikrocontroller.net/articles/AVR-Tutorial
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
http://www.mikrocontroller.net/articles/Modellbauservo_Ansteuerung
Also einfach nur einen Konverter USB <> Servos und dann am PC eine 
entsprechende Software erstellen. Die ist nämlich der eigentliche Gag 
der Sache und erfordert sehr gute mathematische Kenntnisse. Das ist 
genug Arbeit für ein Hobbyprojet und ein halbes Jahr.

von Frank (Gast)


Lesenswert?

Wie groß soll denn dein Robot werden?
Schwerindustrie oder Feinmechanik?
Welche Genauigkeit ist erforderlich?

Für Kleingeräte und lernmdelle gibt es im Modellbau inzwischen speziell 
geformte Robot-Servos. Die werden wie alle Modellbauservos per PWM 
gesteuert ... es gibt sogar eine Version mit RS232 und 
Positionsrückmelung.

http://www.robonova.de/store/product.php?productid=16185&cat=4&page=1

von Peter P. (freund-der-sonne86)


Lesenswert?

Hey,

ich habe die Aufgabenstellung nicht genau formuliert:

-Projekt für mehrere Leute
-wie menschlicher Arm: Schulter, Ellenbogen, Handgelenk
-möglichst leicht (ca. 10Nm an der Mittelpunkt (Schultergelenk))
-der Arm soll 800mm Radius haben
-Positioniergenauigkeit: 1cm

-eventuell mit Umlenkrollen wie beim BioRob-Projekt
http://www.biorob.de/

-ein Mikrocontroller wäre vorhanden (Atmega32), Frage ist nur welche 
Anforderungen an diesen gestellt werden?


Zu den Servos: die sind meiner Meinung nach sehr teuer oder zu ungenau.
Das ganze soll die 1k€ Grenze nicht überschreiten

Zu den Sensoren: Das mit den Druckerinkrementalgebern ist wohl die 
einzige Möglichkeit günstig an Inkrementalgeber zu kommen.

Der Arm kann ruhig sehr langsam fahren, so dass auch die G-Sensoren in 
den Sinn kamen
Es geht eher um die hohe Präzision in dem System.


Danke für die schnellen Antworten!

von Peter P. (freund-der-sonne86)


Angehängte Dateien:

Lesenswert?

Hier nochmal eine Prizipskizze

von K. D. (deka)


Lesenswert?

Aha.

Peter Pan schrieb:
> -wie menschlicher Arm: Schulter, Ellenbogen, Handgelenk

Oha. Lies mal hier: 
http://prof.beuth-hochschule.de/fileadmin/user/linnemann/PDF-Dateien/Robotertechnik/Roboter_Technik_Vorlesung_Teil_02.pdf
Zitat:

• Freiheitsgrad f einer menschlichen Hand ist 6,
der Bewegungsfreiheitsgrad F ist 22
• Freiheitsgrad f eines menschlichen Arms ) incl. Schulter ist 6,
Bewegungsfreiheitsgrad F ist 7

Das macht dann für eine Hand incl. Schulter bis Finger 22 + 7 = 29 
Motorachsen.
Ohne die Finger sind es immerhin nur noch 2 + 7 = 9 Motoren. Immerhin.

Peter Pan schrieb:
> -ein Mikrocontroller wäre vorhanden (Atmega32), Frage ist nur welche
> Anforderungen an diesen gestellt werden?

Wie soll man so eine Frage beantworten. Ihr habt keine Ahnung was für 
Motoren ihr verwendet, ergo ihr wisst nicht wie man deren Treiber 
ansteuert weil ihr den Treibertyp nicht kennt. Also kann man nichts über 
die Ansteuerung sagen und darum auch nichts über die Anforderungen an 
den Mikrocontroller. Der Mikrocontroller muss nur Signale vom PC 
"übersetzen" und den Motortreiber ansteuern. Berechnen tut alles der PC. 
9 Achsen sind kein Kinderspiel.

Peter Pan schrieb:
> Der Arm kann ruhig sehr langsam fahren, so dass auch die G-Sensoren in
> den Sinn kamen

Das ist wie ein Chirurg der mit der Kettensäge einen Blinddarm entfernt.

von Peter P. (freund-der-sonne86)


Lesenswert?

Also gedacht sind folgende Motoren:

-Torso
-Schulter
-Ellenbogen
-Handgelenk

jeweils nur als "Drehgelenk"



Das man die Frage mit dem Mikrocontroller nicht so einfach beantworten 
kann ist mir bewusst.

Da dies unser erster Roboter ist, war die Frage eher allgemein bezogen.
Soll heißen das wir noch garkeine Idee und Erfahrungen zu allen 
Bauteilen haben.
Die Auswahl an Motoren ist sehr groß, jedoch wissen wir nicht welche 
sich für eine solche Entwicklung am besten eignen.
Zudem kommen die Sensoren, alle die uns ins Auge gefallen sind waren 
entweder viel zu ungenau, oder kosten 250€ (Inkrementalgeber 
1000Schritte)

von Peter P. (freund-der-sonne86)


Lesenswert?

K. D. schrieb:

> Peter Pan schrieb:
>> Der Arm kann ruhig sehr langsam fahren, so dass auch die G-Sensoren in
>> den Sinn kamen
>
> Das ist wie ein Chirurg der mit der Kettensäge einen Blinddarm entfernt.

der hier war unsere Idee:

http://www.mikrocontroller.net/articles/BMA020#Speicheraufteilung

von Karl H. (kbuchegg)


Lesenswert?

Tu dir selbst einen Gefallen und vergiss endlich mal die 
Beschleunigungssensoren!

Ich vesteh überhaupt nicht, welchen Narren die Leute immer an diesen 
Beschleunigungssensoren gefressen haben! Als ob die der Stein der Weisen 
wären.

Überleg dir lieber ein Konzept, wie du zb mit einem Getriebe und 
Übersetzung billige Encoderscheiben einsetzen kannst oder wie du zb mit 
einem Poti als Spannungsteiler die Rückmeldung realisieren kannst.

von Floh (Gast)


Lesenswert?

Peter Pan schrieb:
> http://www.mikrocontroller.net/articles/BMA020#Spe...

10bit Auflösung bei minimal +-2g ?
Schon malgerechnet um wieviel sich der Robotarm abwinkelt, wenn er sich 
ganz vorne um 1 cm bewegt? Das ist niemals mit den Sensoren zu 
detektieren.
Hat ja auch seinen Grund, warum alle Welt Encoder benutzt, robust, 
störarm, billig.

Aber zurück zu Arm, ich würde da so rangehen:
- gewünschte Belastbarkeit, Funktionsumfang definieren
- ausrechnen der dafür notwendigen Drehmomente (Eigengewicht der 
Konstruktion nicht vergessen)
- gewünschte Geschwindigkeit und Beschleunigung festlegen
- Wenns billig sein soll (und das wird so ein Arm mit 80cm Aktionsradius 
nicht) DC-Motoren und Getriebe auswählen, am besten als Einheit kaufen, 
sonst gibts zuviel Getriebespiel, ultimativ wäre hier ja ein 
industrieller Servoantrieb.
- Die Motoren legen dann den Motortreiber fest, die Spannungsversorgung 
und die Ansteuerungsmöglichkeiten per uC.

Und dann sieht man weiter.

von Peter P. (freund-der-sonne86)


Lesenswert?

Floh schrieb:

> Hat ja auch seinen Grund, warum alle Welt Encoder benutzt, robust,
> störarm, billig.

Danke erstmal.

Genau das ist unser Problem, dass die Encoder in der gewünschten 
Auflösung nicht mehr billig sind.
Es sei denn wir zerlegen alte Drucker?

Eine ähnliche Vorgehensweise haben wir auch genutzt. Uns fehlt nur die 
Erfahrung mit den Bauteilen, weil dies unser bislang erstes Projekt ist.

Unser größtes Problem sind halt die Sensoren, da kaum einer die 
gewünschte Genauigkeit bei 800mm Radius erfüllen kann.

von Floh (Gast)


Lesenswert?

Peter Pan schrieb:
> Unser größtes Problem sind halt die Sensoren, da kaum einer die
> gewünschte Genauigkeit bei 800mm Radius erfüllen kann.

Nimm eine billige Encoderscheibe und montiere sie nicht auf die 
Gelenkachse, sondern auf die Motorachse. Dadurch wird die Auflösung mit 
der Getriebestufe vervielfacht. Gibt viele Motoren, die man mit 
integrierten Encodern kaufen kann.
(Bühler, Maxonmotors, Faulhaber ...)

von Peter P. (freund-der-sonne86)


Lesenswert?

Floh schrieb:
> Peter Pan schrieb:
>> Unser größtes Problem sind halt die Sensoren, da kaum einer die
>> gewünschte Genauigkeit bei 800mm Radius erfüllen kann.
>
> Nimm eine billige Encoderscheibe und montiere sie nicht auf die
> Gelenkachse, sondern auf die Motorachse. Dadurch wird die Auflösung mit
> der Getriebestufe vervielfacht. Gibt viele Motoren, die man mit
> integrierten Encodern kaufen kann.
> (Bühler, Maxonmotors, Faulhaber ...)

Da das Vorbild ein menschlicher, nachgiebiger Arm (siehe Vorbild: 
BIOROB) ist, würde eine Auswertung der Motoren mit integrierten Encodern 
nicht funktionieren.

von Karl H. (kbuchegg)


Lesenswert?

Peter Pan schrieb:

>
> Da das Vorbild ein menschlicher, nachgiebiger Arm (siehe Vorbild:
> BIOROB) ist, würde eine Auswertung der Motoren mit integrierten Encodern
> nicht funktionieren.

Irgendwie hab ich das Gefühl, dass ihr unter 'elastisch' etwas völlig 
anderes versteht, als der Hersteller des Biorob.

Schau dir die Videos auf
http://www.biorob.de/download/videos.html
an.

Der Robot ist genauso aus Metallröhren aufgebaut, ich schätze mal Alu.
Von "biegsamen" Armen kann da keine Rede sein. Selbstverständlich 
funktionieren da Motoren mit Encodern. Letzten Endes geht es nur darum, 
festzustellen, wie weit der Motor aktuell das Gelenk verdreht hat.
Die 'Elastizität' von der der Hersteller spricht, kann auch dadurch 
realisiert sein, dass die Stromaufnahme der Motoren überwacht wird und 
die Elektronik die Motoren 'freigibt', sobald es bemerkt, dass die 
Motoren zuviel Strom ziehen und daher offenbar gegen ein Hinderniss 
gestossen sind.

von Martin J. (bluematrix) Benutzerseite


Lesenswert?

Warum versuchst du es nicht erst mal mit einer einfachen Lösung.
Die Ansteuerung wird noch anspruchsvoll genug, dagegen sind deine 
Hardwareprobleme einfach.
Hier hast du ein gutes Beispiel, wie du es am einfachsten lösen 
könntest.
http://www.jtronics.de/modellbau/roboterarm.html

von Martin J. (bluematrix) Benutzerseite


Lesenswert?

Karl Heinz Buchegger schrieb:
> Die 'Elastizität' von der der Hersteller spricht, kann auch dadurch
> realisiert sein, dass die Stromaufnahme der Motoren überwacht wird und
> die Elektronik die Motoren 'freigibt', sobald es bemerkt, dass die
> Motoren zuviel Strom ziehen und daher offenbar gegen ein Hinderniss
> gestossen sind.

genau so ist es.

von Karl H. (kbuchegg)


Lesenswert?

Martin J. schrieb:
> Karl Heinz Buchegger schrieb:
>> Die 'Elastizität' von der der Hersteller spricht, kann auch dadurch
>> realisiert sein, dass die Stromaufnahme der Motoren überwacht wird und
>> die Elektronik die Motoren 'freigibt', sobald es bemerkt, dass die
>> Motoren zuviel Strom ziehen und daher offenbar gegen ein Hinderniss
>> gestossen sind.
>
> genau so ist es.


Hab noch ein wenig auf der Seite geschmökeret.
Der Hersteller spricht auch von eine passiven Kollisionsvorsorge. Ich 
schätze mal, dass die Rohre eine gewisse Biegsamkeit mitbringen, was ja 
auch im Kollisionsfall durchaus erwünscht ist, wenn die ganze 
Konstruktion ein wenig nachgibt.
Ob die die Encoder in den Gelenken sitzen haben, oder an den Motoren 
kann man auf den Bildern und/oder Videos nicht zweifelsfrei erkennen. 
Würde mich aber nicht wundern, wenn die in den Gelenken sitzen. Auf den 
Videos sieht man den Robot leider nie größere Gewichte hantieren, immer 
nur Kleinteile, bei denen sich keine oder kaum eine Durchbiegung ergibt.


Alles in allem hätte ich gesagt: Peter Pan sollte sich erst mal an einem 
klassischen Puma-Robot versuchen. Die Mathematik dahinter ist schon 
anspruchsvoll genug, auch ohne dass man eine evetuelle Durchbiegung 
herausrechnen und bei der Positionierung berücksichtigen muss.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Peter Pan schrieb:
> Genau das ist unser Problem, dass die Encoder in der gewünschten
> Auflösung nicht mehr billig sind.

Das kommt darauf an. Ich habe gerade in der Bucht 2 absolute Drehgeber 
in Industriequalität mit SSI Interface für Stück unter 20 Euro inkl. 
Versand ersteigert. Beide (ein Sick Stegmann und ein Heidenhain) haben 
4096 Schritte pro Umdrehung und können 4095 Drehungen erfassen. Das SSI 
Interface ist bei beiden praktisch identisch (und zum Glück kein EnDat) 
und easy per AVR auszuwerten.
Allerdings sind sie recht gross.

von A.S. (Gast)


Lesenswert?

Peter Pan schrieb:
> Inkrementalgeber werden ab 1000 Schritten/Umdrehung sehr teuer
Du kannst sie parallel mit 45 Grad Winkelversatz auf die Welle setzen, 
um die Auflösung zu erhöhen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.