PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Techniker Miniprojekt 2011 Modell Kuka Roboterarm



Staind
26.09.2011, 22:43
Hallo,
mein Name ist André und mache zurzeit meinen Staatlich geprüften Techniker (2te von 2 Jahren). Zum Unterricht gehört neben ein 10 wöchiges Projekt in einem Unternehmen auch ein Miniprojekt, welches ich mit ein Schulkollegen zusammen mache.

Wir haben vor ein Kuka Roboterarm- Modell mit RC Servos auszustatten, so dass dieser nachher z.B. Würfel übereinander stapeln kann.

Hier mal ein Bild von den Modell


20133

Der Roboter sollen nachher über 6 Achsen und ein Greif-Arm verfügen. Also insgesamt werden 7 Servos verbaut.
Über ein C# Programm sollen dann einmal manuell die Positionen der Servos angegeben werden und danach soll er diese automatisch abfahren können.
Also das C# Programm schickt die Daten an ein uC, welcher die Servos ansteuert.
So könnte das C# Programm nachher aussehen


http://www.martin-jacobsen.de/images/stories/Robarm/ablauf3.jpg

Verwirklichen wollen wir das ganze mit ein atmega 644 den man bei reichelt in DIL-Gehäuse bestellen kann. Wir nehmen diesen, da dieser 6 PWM- Channels besitzt
Im ersten Schuljahr haben wir die Grundkentnissein von C# gelernt. Und unser Problem ist es momentan das wir noch nicht viel mit uC gemacht haben. Bzw. dieses Thema erst in zweiten Schuljahr durchnehmen. Das Miniprojekt muss bis zu den Winterferien fertig gestellt werden.

In Assembler haben wir leichte Kenntnisse. Wollen unsern uC aber in C programmieren. Zur Zeit arbeiten wir das Tutorial auf mikrocontroller.net durch.
Geschafft haben wir bereits Daten von C# Programm zum uC zu schicken. Wissen aber noch nicht wie wir diese bearbeiten können.
Wir hoffen bei Fragen ein wenig Hilfestellung von Euch zu bekommen.

Aber zurück zum Projekt

Momentan sind wir dabei den Roboter-Arm mit Servos auszustatten.
Verbaut werden 3 digital Servos mit 13 kg/cm und 4 digital Servos mit 1,6 kg/cm

Mit ein Dremel fräsen wir den Roboterarm zurecht. Was bis jetzt ganz gut klappt


20134

20135

20136

20137

So war unser erster Servo schnell untergebracht.
Und der erste Funktionstest ging auch gut


http://www.youtube.com/watch?v=SR5WZXBZjr4&feature=related

schnell folgten weitere Servos


http://www.youtube.com/watch?v=1aw0pOjACMg&feature=related

In den ersten beiden Videos haben wir noch eine einfache Platine von Conrad verwendet um die Servos anzusteuern. Da die Ansteuerung aber nicht so genau war kam schnell der uC zum Einsatz. Jetzt ist auch das Brummen in Ruhestand weg


http://www.youtube.com/watch?v=Le3eztl9Hzk&feature=related

Und hier der aktuelle Stand. Momentan haben wir 4 Servos verbaut. Das uC Programm ist natürlich bis jetzt nur zum Testen da.

http://img713.imageshack.us/img713/2938/dsc00032joh.jpg


http://www.youtube.com/watch?v=Gbc_7tyJPNQ

Wenn man bedenkt, dass wir erst am Samstag angefangen sind mit den Projekt sind wir bis jetzt sehr zufrieden damit.
Wir hoffen euch gefällt es auch.

Staind
29.09.2011, 12:24
Hallo,

haben jetzt 5 Servos verbaut. Die Datenübertragung von C# auf den Mikrocontroller haben wir auch hinbekommen, auch so dass er diese verarbeiten kann.

Momentan versuchen wir den Greifarm zu realisieren

Hier nochmal 2-3 Bilder

20147
20148
20149

Zum Schluss noch ein kleines Video :p


http://www.youtube.com/watch?v=guNsNSw-16o

Staind
30.09.2011, 00:40
So heute haben wir es geschafft die Servos über PWM laufen zu lassen. Klappt echt super. Haben ein kleines Beispiel-Programm erstellt um die Datenübertragung
PC (C#)<-> uC zu testen.
Haben natürlich wieder ein kleines Video: Erst sieht man wie einen Regler einen Servo des Roboterarms ansteuert. Im zweiten Teil des Videos wird der Servo gedrosselt, so das nachher auch ein präzises bewegen des Armes möglich ist.



http://www.youtube.com/watch?v=kRaVYgBfgwY

Staind
30.09.2011, 07:01
so jetzt habe ich eine Frage, und zwar kann man irgendwie einen Gleichstrom (max1,5 A ) mit ein uC messen?
naja müsste 7 Ströme messen mit einen atmega64 ist sowas möglich?

radbruch
30.09.2011, 09:37
Hallo

Klasse Projekt.

Den Strom kann man indirekt messen indem man den Spannungsabfall an einem in Reihe zum Servo geschalteten Widerstand misst. So macht es z.B. die Ansteuerung der arexx-Roboterarme. Diese verwendet ebenfalls einen Mega64:

http://arexx.com/robot_arm/html/de/documentation.htm#schematics

Gruß

mic

Staind
02.10.2011, 19:00
Hey, danke für die Antwort.

hätte ich auch selber darauf kommen können :-)

Habe hier mal diesen Widerstand rausgesucht. Damit müsste es doch realisierbar sein oder?

http://www.conrad.de/ce/de/product/416991/?insert=U1&hk=WW2&utm_source=epro&utm_medium=seosite&utm_campaign=link&WT.mc_id=epro

Den Spannungsabfall würden wir dann noch mit einer OP-Schaltung verstärken.


Und hier dann noch zwei Bilder, wo nachher der Roboterarm darauf geschraubt wird.

Einmal hier betriebsbereit: Die blauen Streifen sind Plexiglas-Platten und werden halt blau beleuchtet. Dies soll über PWM geschehen, sprich es soll langsam blau pulsieren

20176

Hier im Störungsfall, wenn z.B. der Not-Aus gedrückt wird. Dabei pulsiert es schnell und in rot.
20178

Der runde Kreis der unten links zu sehen ist wird ein Not-Aus und rechts daneben kommt ein Display was den aktuellen Zustand/ Störmeldungen anzeigt.

wkrug
03.10.2011, 07:29
so jetzt habe ich eine Frage, und zwar kann man irgendwie einen Gleichstrom (max1,5 A ) mit ein uC messen?
Eine andere Möglichkeit wären Stromsensoren, die dann auch gleich die galvanische Trennung zwischen Messkreis und Auswerteschaltung erledigen.
Guck mal z.B. bei http://www.allegromicro.com/ , in der Unterrubrik Hall - Effect Sensor IC's.
Bei 7 Sensoren wird aber das schon ziemlich aufwändig.

crabtack
03.10.2011, 09:08
Bei 7 Sensoren wird aber das schon ziemlich aufwändig.

Nicht unbedingt.
Es gibt doch diese Ic´s, die immer von einem pin zum anderen pin eine analoge spannung durchlassen.
Ein Pin kommt dann an den Stromsensor und an die anderen kommen die Messleitungen.
Dann kann der µC alle leitungen nacheinander durchschalten und sich die Messungen vom Stromsensor speichern.
Wie hießen diese Ic´s noch gleich?

Gruß
Olaf

021aet04
03.10.2011, 09:37
Diese ICs nennen sich Analogmultiplexer.

MfG Hannes

radbruch
03.10.2011, 10:00
Beim arexx-Arm wird ein 74HC4051 verwendet, allerdings nicht zur Strommessung der Servos:

http://www.nxp.com/documents/data_sheet/74HC_HCT4051.pdf

http://www.conrad.de/ce/de/product/151572/

Staind
03.10.2011, 12:40
Danke für die Antworten. Werden es aber erst mal ohne Analogmultiplexer versuchen, müssten genug analoge Eingänge zur Verfügung haben. Wir werden die Schaltung eh erst mal auf ein Steckbrett zusammenstecken bevor wir eine Platine ätzen.

Heute haben wir die Grundplatte fertig gesägt. Sieht alles schon ganz gut aus. Haben zum Testen eine Ecke schon mal bezogen. Klappt ganz gut.
Hier mal ein Bild:

20185

crabtack
03.10.2011, 13:33
Die Grundplatte sieht doch schonmal ganz Ordentlich aus.


Werden es aber erst mal ohne Analogmultiplexer versuchen, müssten genug analoge Eingänge zur Verfügung haben,
Es geht nicht um die Analogen eingänge des µC sondern um die des Stromsensors.
Die Dinger haben in der Regel nur einen.
So kannst du einen Stromsensor nacheinander mit endlos vielen Signalen versorgen.
Das Spart Zeit,Geld,Platz und I/O Pins.

Gruß
Olaf

Staind
03.10.2011, 14:27
Hmm hatten das jetzt so vor: Über einen Lastwiedersand der in Reihe zu ein Servo sitzt würde ich die Spannung die am Lastwiderstand abfällt, am Analogeingang des uC messen. Dann im C# / uC Programm durch den Widerstandwert rechnen.
Wäre das nicht möglich?
Habe das Programm für die Beleuchtung der Grundplatte schon fertig. Hier ein Testvideo. Erst mal nur mit einer Diode, diese läuft aber schon über ein Transistor.
Sorry für die schlechte Bildqualität


http://www.youtube.com/watch?v=BL8fSOWVNjw

crabtack
03.10.2011, 15:33
So wäre das natürlich auch möglich, ich dachte nur, dass du es unbedingt mit einem Stromsensor machen willst.

Die Beleuchtung gefällt mir.

Staind
03.10.2011, 18:15
Ne, wollten das wie gesagt erst mal so probieren. Wäre super wenn du uns ein Link von so ein Stromsensor schicken könntest.

Jetzt geht es um die Spannungsversorgung. Da wollten wir dieses hier nehmen.

http://www.reichelt.de/Netzteile-Universal/SNT-5000/index.html?;ACTION=3;LA=2;ARTICLE=88560;GROUPID=49 48;SID=13Tno5638AAAIAAC1TtTwa38e1b1a2030126541f0b4 74225088b3

Es sollte auf jedenfall 6V haben, da die Servos mit 6V am meisten Kraft haben bzw mit 6V laufen. Da nacher auch mehrere Servos gleichzeitig laufen sollen brauchen wir schon einiges an Strom. Also wir haben die großen Servos getestet und die verbrauchen unter Last schon 1,3A @ 5V kurzzeitig. Meistens aber so 500mA @ 5V.
Dann kommt noch die Beleuchtung dazu. Denke mal das wir 20 Leds insgesammt verlöten also 20 x 20mA. Die 5V für den uC wollen wir über ein 7805 IC stabilisieren.

Was meint ihr wird das Netzteil reichen? oder wisst ihr was besseres? Ist so ein Netzteil Kurzschluss fest?

Staind
03.10.2011, 22:37
So schnell noch ein Bild von C# Programm, bzw. vom Layout

20190

021aet04
04.10.2011, 08:11
Ein 7805 dürfte nicht funktionieren, da der einen Eingangsspannung von mind. 3V über der Ausgangsspannung haben muss (beim 7805 mind. 8V). Du solltest entweder einen Lowdrop-Regler (falls du einen findest) oder du musst etwas anderes finden. Eventuell geht auch ein DC/DC Wandler.

Die Platte sieht gut aus.

MfG Hannes

Richard
04.10.2011, 10:57
Was meint ihr wird das Netzteil reichen? oder wisst ihr was besseres? Ist so ein Netzteil Kurzschluss fest?

Ich würde da auf ein Schaltnetzteil zurückgreifen, das hat weniger Wärmeverluste. So ein 7805 setzt auch zufiel in Wärme um. :-(
Bei den Led's solltet hr einmal über Serienschaltung nachdenken wenn ihr ca. 26 VDC zusammen bekommt. Das Spart Leitungen, Widerstände und Ausgänge. :-)

Gruß Richard

021aet04
04.10.2011, 11:17
Er hat geschrieben das er mit dem NT auch die Servos (=6V) versorgen will. Das NT hat nur einen Ausgang und daher würde er den 7805 mit 6V betreiben. Der funktioniert aber erst ab ca. 8V richtig. Daher würde ein 7805 Regler nicht funktionieren. Wegen den Verlusten würde ich auch auf einen DC/DC Wandler und nicht auf einen Linearregler setzen.

MfG Hannes

Richard
04.10.2011, 11:41
Er hat geschrieben das er mit dem NT auch die Servos (=6V) versorgen will. Das NT hat nur einen Ausgang und daher würde er den 7805 mit 6V betreiben. Der funktioniert aber erst ab ca. 8V richtig. Daher würde ein 7805 Regler nicht funktionieren. Wegen den Verlusten würde ich auch auf einen DC/DC Wandler und nicht auf einen Linearregler setzen.

MfG Hannes

Das habe ich zwar gelesen, bin aber davon ausgegangen das für die Servos sowieso eine eigene Versorgung genommen wird, Bei der andauernd wechselnden Strombelastung dürfte das sehr ratsam sein. Der Vorteil einer Serienschaltung der LED's besteht einfach darin das nur 1 x 20 mA für alle LED's nötig ist. Nachteil man braucht eine entsprechend hohe Spannung. :-( Step Up Regler?

Gruß Richard

Staind
04.10.2011, 23:44
Hallo,

haben uns noch mal ein wenig Gedanken über die Spannungsversorgung gemacht. Wollten das jetzt so machen: 6V über ein Schaltnetzteil (5-12V / 4000mA) für die Servos und die Leds.
Haben nochmal genau die Ströme gemessen. Also die großen Servos (insgesamt 3) verbrauchen unter Last je 300-700mA@5V, die kleinen (insgesamt 4) je 150-300m@5V und Leds würden wir insgesamt 28 berbauen (wobei 2 immer in Riehe geschaltet werden)
Kommen wir im schlimmsten Fall auf
3X 700mA = 2100mA
4X300mA = 1200mA
14x20mA = 280mA
Gesamt = 3580mA
Denke aber, dass es niemals vorkommen wird das alle Servos maximal Last haben und dass die Servos bei 6 V weniger Strom verbrauchen.

Und für den Mikrocontroller wollten wir die 5 V von dem USB-Port nehmen.
Haben dieses Modul für die UART Schnittstelle gefunden

http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=28776&flv=1

Hier die Pin-Belegung


20203

Damit könnten wir doch den Mikrocontroller versorgen, oder? Müssen wir dabei noch irgendetwas beachten?

Danke schon mal für die Antworten :-)

Staind
05.10.2011, 23:25
so es hat sich mal wíeder einiges getan ;-)

einmal haben wir die letzten Holzstücke mit der passenden Plexiglas Platte fertig gesägt. Das eine Holzstück wurde auch schon mit Folie bezogen.


20211

Dann ging es auch weiter an den Roboterarm. Dort haben wir angefangen ein Greifer zu entwerfen. Sieht jetzt irgendwie aus als ob der Arm ein Gesicht hätte :p.

20212

und zum Schluss wurde noch etwas an den Layout des C# Programms gemacht

20213

Wir hoffen, dass die Tage noch das bestellte Kabel ankommt, damit wir endlich diesen Kabelsalat entsorgen können...

tbasnoopy
06.10.2011, 09:34
Und für den Mikrocontroller wollten wir die 5 V von dem USB-Port nehmen.
[...]
Damit könnten wir doch den Mikrocontroller versorgen, oder? Müssen wir dabei noch irgendetwas beachten?


Zu beachten ist, dass pro Anschluss maximal lediglich 500 mA (http://de.wikipedia.org/wiki/Ampere) (High Power) oder 100 mA (Low Power) bei 5 Volt als Stromversorgung am USB-Port zugesichert werden müssen.


http://de.wikipedia.org/wiki/USB

reicht euch das? Ich vermute mal nicht...

Staind
06.10.2011, 13:49
also die 5V/500mA von der USB Büchse würden wir nur für 2 Mikrocontroller (1 Atmega644, 1 ATtiny), zum Schalten von 1 Transistor (nur Basisstrom),für das Display und für die Signalleitung der Servos gebrauchen. Wir denken/hoffen das sollte reichen.

Richard
06.10.2011, 16:10
also die 5V/500mA von der USB Büchse würden wir nur für 2 Mikrocontroller (1 Atmega644, 1 ATtiny), zum Schalten von 1 Transistor (nur Basisstrom),für das Display und für die Signalleitung der Servos gebrauchen. Wir denken/hoffen das sollte reichen.

Wenn nicht nehmt ihr einfach einen USB Switch mit eigenem Netzteil, der liefert 500 mA an jeden seiner Ports. :-) Bei (mir) läuft ALLES über so ein Teil, so zerstöre ich nicht gleich den ganzen PC wenn (ich) Pfusch baue. :-)

Gruß Richard

Staind
07.10.2011, 01:49
Wenn nicht nehmt ihr einfach einen USB Switch mit eigenem Netzteil, der liefert 500 mA an jeden seiner Ports. :-) Bei (mir) läuft ALLES über so ein Teil, so zerstöre ich nicht gleich den ganzen PC wenn (ich) Pfusch baue. :-)

Gruß Richard

Danke Richard genau so haben wir es auch bis jetzt gemacht :-)

So heute hat sich mal wieder einiges getan:-)

Zum einen haben wir die Operationsverstärker-Schaltung für die Strommessung der Servos erstellt und getestet und zum anderen ist das Kabel (12 x 0,35 mm²) angekommen.
In C# Programm soll nachher von jeden Motor über ein Diagramm der Stromwert angezeigt werden. Desweiteren brauchen wir die Stromwerte um Blockierungen der Servos festzustellen um so ein eventuelles durchbrennen der Motoren durch abschalten zu verhindern.

Hier ein paar Fotos von der Verdrahtung:

20222


20223


20224


20225

Geistesblitz
07.10.2011, 11:02
Echt cooles Projekt habt ihr euch da ausgesucht :)
Als ich zum ersten Mal dieses Modell in der Vorlesung gesehen hab, dachte ich nur "Kann der sich auch bewegen oder ist das nur ein Modell?". Als sich letzteres bestätigt hatte, begann ich zu überlegen, wie man den denn motorisieren könnte. Und ihr macht das hier einfach mal, und das sogar richtig gut :)
Ich bin wirklich gespannt, was ihr aus diesem Modell noch herausholt. Das Nonplusultra wäre ja eine schöne CP-Bewegung, wobei aber PTP-Bewegungen schon was Nettes wären. Kann man denn das Programm nur über PC-schreiben und läd es dann auf den µC oder kann man dn Roboter auch über den PC steuern?

Staind
07.10.2011, 19:35
Echt cooles Projekt habt ihr euch da ausgesucht :)
Als ich zum ersten Mal dieses Modell in der Vorlesung gesehen hab, dachte ich nur "Kann der sich auch bewegen oder ist das nur ein Modell?". Als sich letzteres bestätigt hatte, begann ich zu überlegen, wie man den denn motorisieren könnte. Und ihr macht das hier einfach mal, und das sogar richtig gut :)
Ich bin wirklich gespannt, was ihr aus diesem Modell noch herausholt. Das Nonplusultra wäre ja eine schöne CP-Bewegung, wobei aber PTP-Bewegungen schon was Nettes wären. Kann man denn das Programm nur über PC-schreiben und läd es dann auf den µC oder kann man den Roboter auch über den PC steuern?

Hey schön das es dir gefällt! Naja leicht ist es nicht die Servos anzupassen, aber mit ein bissen Geduld klappt es eigentlich ganz gut.

Also der Roboterarm wird nachher schon eine CP-Bewegung haben (Hoffen wir zumindest). Er wird nur über den PC steuerbar sein. Also ein PC wird immer benötigt. Man kann ihn dann entweder manuell fahren oder einmal manuell fahren und die Positionen speichern, so dass dieser nachher per Knopfdruck (alle abspielen) diese automatisch abfährt. Diese Abfahrten soll man dann auch speichern können und nachher wieder laden.


So Heutet haben wir die letzten Kabel am Roboterarm verlegt. Hier mal schnell zwei Bilder.
Läuft natürlich auch alles :-)

20229
20230

Geistesblitz
07.10.2011, 22:34
Ich find das ehrlichgesagt mit den 3 Nebenachsen recht elegant gelöst. Im Original sind dort ja elendig viele Getriebe drin, so ist der Aktor aber direkt an der Achse und behindert die Bewegungsfreiheit trotzdem kaum. Ließen sich eigentlich die Bauteile gut an die Servowellen montieren? Ich hab ja weiterhin geplant, auch mal sowas zu bauen. Sind die Segmente nur an den Servoachsen befestigt, oder sind die nochmal extra gelagert? Wie macht ihr eigentlich die Kommunikation zwischen PC und µC? Wollt ihr auch noch Tests zur Genauigkeit machen? Würde mich über ein aktuelles Video freuen :)

Staind
08.10.2011, 09:46
also die Stellen an denen die Servos sitzen müssen schon recht aufwendig bearbeitet werden. Am besten geht das mit einen 3mm Fräsekopf. Ein Akkubohrschrauber ist dabei nicht zu empfehlen, besser ist da ein Dremel. Diesen kann man ähnlich wie ein Stift halten. Haben ca. 2 Stunden pro Servo benötigt. Auf wunsch könnten wir auch Bilder von den einzelnen Bauteile posten.

Bis auf eine Servo sind alle Segmente nur an den Servos montiert. Es ist aber dennoch sehr stabil. Man sollte da auf jedenfall Servos mit ein Metallgetriebe nehmen. Also bei uns verfügen die schwarzen Servos über ein metall Getriebe.

Die Kommunikation zwischen PC und uC läuft über ein virtuellen COM-Port (UART, USB). Wir wollen nachher (wenn noch Zeit ist) versuchen dieses über Bluetooth zu realisieren, ob wir dazu kommen wissen wir noch nicht.

Klar werden Test zur Genauigkeit gemacht. Unser eigentliches Ziel ist es möglichs viele Würfel übereinander zu Stapeln. Aber denke das der Roboterarm schon ziemlich genau arbeiten kann. Bei den Video wo der Würfel in Glas landet sieht man es auch.Denn dieser landete immer in Glas. Naja ab und zu ist er wieder rausgesprungen :-P Aber wie gesagt Tests kommen noch.

Ein neues Video kommt warscheinlich erst am Dienstag. Dort haben wir ein Studien-Tag, so dass wir dann viel Zeit haben.

Geistesblitz
08.10.2011, 13:28
Hört sich eigentlich gut an.
Kann die Konstruktion denn stark wackeln? Wegen den Plastikteilen dürfte doch schon eine gewisse Flexibilität vorliegen.
Wie habt ihr denn die Teile befestigt? Über die Servohörner oder direkt an der Welle?

Staind
08.10.2011, 17:11
Ja haben die Teile über die Servohörner befestigt. Und ja die Teile Wackeln auch wenn man dran rüttelt. Es ist halt immernoch ein Arm aus Plastik aber er soll ja auch keine schweren Teile bewegen. Denke mal er könnte so Sachen bis ca 100-150g heben. Aber für uns reicht es, wenn er Würfel heben kann.

Hier noch ein paar Bilder
20236

20237

20238

20239

20240

Staind
09.10.2011, 18:50
heute haben wir uns an den Greifer gewagt. Sieht eigentlich ganz gut aus, nur leider ist uns beim bohren ein Teil von Greifer abgebrochen. Wir die Tage also nochmal neu gemacht. Für ein Foto reicht es trozdem :-)

20254

20255

radbruch
09.10.2011, 18:57
So ein klobiger Greifer? Das sieht ja schrecklich aus. Zum Würfeln dürfte etwas in dieser Art reichen:

http://radbruch.bplaced.net/robot/delta/deltagreifer1_klein.jpg (http://radbruch.bplaced.net/robot/delta/deltagreifer1.jpg) http://radbruch.bplaced.net/robot/delta/deltagreifer2_klein.jpg (http://radbruch.bplaced.net/robot/delta/deltagreifer2.jpg) http://radbruch.bplaced.net/robot/delta/deltagreifer3_klein.jpg (http://radbruch.bplaced.net/robot/delta/deltagreifer3.jpg)
http://radbruch.bplaced.net/robot/delta/deltagreifer4_klein.jpg (http://radbruch.bplaced.net/robot/delta/deltagreifer4.jpg) http://radbruch.bplaced.net/robot/delta/deltagreifer5_klein.jpg (http://radbruch.bplaced.net/robot/delta/deltagreifer5.jpg) http://radbruch.bplaced.net/robot/delta/deltagreifer6_klein.jpg (http://radbruch.bplaced.net/robot/delta/deltagreifer6.jpg)

Gruß

mic

Staind
09.10.2011, 19:40
Hey,

meinen Sie? Wir meinen der ist so schon ziemlich klein. Klar ist das kein Vergleich zu Ihrer Lösung, aber bei uns sind vorne im Greifelement zwei Servos, einen zum Greifen und einen, der den Greifkopf nochmal um 180° drehen kann nach dem Gelenk. Somit kann man jede Stellung einehmen.

Hier sieht man die zwei Servos (naja man kann es erahnen)

20256

Um kleine sachen zu Greifen kann man also den Kopf um 180° drehen

20257

So soll es nacher aussehen

20258

Vorne am Greifer kommt noch ca 3mm dicker Mosgummi, damit er mehr Grip hat

Staind
18.10.2011, 22:00
Hallo,

haben leider die letzte Woche nicht so viel geschafft.
Naja der aktuelle Stand ist das alle 6 Achsen sowie den Greifarm realisiert sind.
Viel kam nicht dazu, weil a) wir uns um das richtige Abschluss-Projekt kümmern mussten, welches super mit diesem Thema zusammen passt. Müssen nämlich für einen Unternehmen einen richtigen Roboterarm (Adept Cobra 600) programmieren.

20307

Wird auf jeden Fall spannend. Anderseits schreiben wir jetzt kurz vor den Ferien noch ein paar Klausuren und müssen dafür lernen.
Zum Glück fangen nächste Woche die Ferien an, so können wir uns ganz auf das Mini-Projekt konzentrieren.

Ganz ohne Bilder wollten wir den Beitrag aber nicht schreiben :-) Haben die ersten Leds in der Grundplatte verlötet.

20306

thewulf00
19.10.2011, 13:55
Hey super Projekt!

Dieser Beitrag ist für mich mehr ein Miteifern als ein Bericht. :) Nur weiter so!

Geistesblitz
24.10.2011, 22:20
Moin

Wie ist eigentlich der aktuelle Stand des Projekts? Hat ja bisher schon einen guten Verlauf genommen, wär wirklich zu schade, wenn das einschlafen würd.
Was nehmt ihr eigentlich für einen Controller für die Servos? Ich bin gerade erst über das Mini Maestro von Pololu (http://www.watterott.com/de/Schnittstellen/Motorsteuerungen/Servo) gestoßen und von den Spezifikationen hört es sich echt genial an. Also, lasst mal wieder was von euch hören ;)

Staind
25.10.2011, 17:49
Hallo,


Der aktuelle Stand ist so lala. Mein Kollege der muss ab Morgen für 1 Wochen ins Krankenhaus und ich habe zwar 2Wochen Ferien, in den ich hoffentlich viel schaffen werde aber irgendwie komme ich momentan nicht weiter.

Vorher lief ja alles mit ein Atmega8. Gestern Abend und Heute den ganzen Tag versuche ich den Atmega644 über UART anzusteuern und das klappt nicht so gut wie beim Atmega8...

Anfangs hatten wir Probleme Daten in den EEPROM des Atmega664 reinzuschreiben. Dabei haben wir das mySmartUSB Board MK2 Programmer benutzt. Es hat auch nicht geklappt. Liegt wohl an den Programmer. Haben dann über Ebay ein günstiges STK500 ersteigert und damit klappt es.

Habe heute geschafft das LCD Display anzusteuern und den Wert den ich über UART sende über das Display ausgeben lassen, aber dieses Funktioniert nicht. Ich Sende zwar über das C# Programm Daten zum uC, es kommen auch welche an, aber nicht die die ich gesendet habe.

Am C# Programm wird es wohl nicht liegen, da dieses mit den Atmega8 funktioniert hat.

Hoffe Ihr könnt uns ein paar Tipps geben.

Hier mal das uC Programm



#include <avr/io.h>
#include <inttypes.h>
#include "lcd-routines.h"

#define BAUD 9600UL
#define UBRR_BAUD ((F_CPU/(16UL*BAUD))-1)

// USART initialisieren

void
uart_init(void)
{
// Baudrate einstellen (Normaler Modus)
UBRR0H = (uint8_t) (UBRR_BAUD>>8);
UBRR0L = (uint8_t) (UBRR_BAUD & 0x0ff);

// Aktivieren von receiver und transmitter
UCSR0B = (1<<RXEN0)|(1<<TXEN0);

// Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit
UCSR0C = (1<<UCSZ01)|(3<<UCSZ00);
}
main(void)
{

//-------------------------------------------------------------------------------------------
// Initialisierung
//-------------------------------------------------------------------------------------------

uart_init();
lcd_init();

// Variablen
uint8_t buffer= 00;



//TCCR1A = (1<<WGM11) | (1<<WGM10) | (1<<COM1A1);
//TCCR1B = (0<<WGM13) | (1<<WGM12) | (1<<CS10) | (0<<CS11) | (0<<CS12);

//-------------------------------------------------------------------------------------------
// Schleife
//-------------------------------------------------------------------------------------------
//Zeile 1
lcd_setcursor( 0, 1) ;
lcd_string("Hallo");
//Zeile 2
lcd_setcursor( 0, 2 );
lcd_string("Bitte um Hilfe!");
//Zeile 3
lcd_setcursor( 20, 1 );
lcd_string("UART funkt. nicht!");
//Zeile 4
lcd_setcursor( 20, 2 );
lcd_data(UDR0);


while (1)
{

// Wenn Daten empfangen wurden dann...
if ( (UCSR0A & (1<<RXC0)) )
{
lcd_setcursor( 20, 2 );
lcd_data(UDR0);
}

//sonst....
else
{

}

}
return 0; // never reached
}



Ich weiß dass er in der vierten Zeile nicht den Wert z. B. 102 schreibt, sondern diesen in ASCII Zeichen angibt, aber die könnte man ja vergleichen z.B. hier:
http://www.code-knacker.de/ascii.htm

Hier mal ein Bild:

20367

Das STK500 benutze ich zum Programmieren und das mySmartUSB Board MK2 wird ist in den UART-USB-Bridge Modus. Angeschlossen ist ein 16MHz Quarzoszillator.

Momentan sieht es folgenermaßen aus:


Wenn ich das Programm darauf gespielt habe dann erscheint folgendes auf den Display

20368

das Zeichen in der 4ten Zeile ist denk ich mal normal weil ja noch nichts wirkliches in UDR0 drinsteht.

Sende ich jetzt irgendeine Zahl (Byte)

dann sieht es so aus:

20369

Folgende FuseBits sind gesetzt

20370

hoffe Ihr könnt uns ein paar Tips geben!

Gruß André

Staind
25.10.2011, 18:29
^^ habe gerade den Fehler gefunden!
Es lag an den Fuse Bits. Entlich kann es weiter gehen.
Das Projekt wird auf jedenfall weitergeführt, will ja keine schlechte Zeugnisnote kassieren :-)

Staind
26.10.2011, 00:35
So heute haben wir viel geschafft. UART läuft endlich mit den Atmega644, Display läuft, alle 6 PWM Ausgänge laufen auch erstmal.
Haben aber wieder ein weiteres Problemm, welches wir hier beschrieben haben:
https://www.roboternetz.de/community/threads/55344-Servo-ansteuern-mit-ein-8-Bit-PWM-Signal-%FCber-122-Schritte-!?p=529017#post529017

hoffe Ihr könnt uns da ein wenig weiter helfen.

radbruch
26.10.2011, 01:08
Der Link (https://www.roboternetz.de/community/newthread.php?do=postthread&f=43) funktioniert nicht.


...aber bei uns sind vorne im Greifelement zwei Servos, einen zum Greifen und einen, der den Greifkopf nochmal um 180° drehen kann...Günstiger ist es natürlich, wenn das Gewicht möglichst innen liegt. Drehservo am Arm und Greiferservo an der Drehservoachse.

Staind
26.10.2011, 01:42
Der Link (https://www.roboternetz.de/community/newthread.php?do=postthread&f=43) funktioniert nicht.

Günstiger ist es natürlich, wenn das Gewicht möglichst innen liegt. Drehservo am Arm und Greiferservo an der Drehservoachse.

So der Links sollte jetzt funktionieren.

Ja da haben Sie recht. Das es günstiger ist das Gewicht so weit wie möglich innen zu verlegen. Wir denken aber das die Servos das Gewicht packen

Staind
26.10.2011, 18:58
So heute kam endlich ein größeres Streckboard an.

20379

Morgen kommt denke ich mal das erste Video wo der Roboterarm richtig was macht (hoffe ich zumindest mal).

Geistesblitz
26.10.2011, 21:25
Das wäre wirklich cool :)
Hast du das mit der PWM noch hinbekommen?

Staind
27.10.2011, 17:05
Hallo,

benutze bis jetzt die 8bit PWM-Variante. Mal schauen was noch so kommt.

Und ja ich habe nicht zu viel versprochen, nach ca 12 Stunden durch programmieren habe ich es geschafft ein halbwegs vernünftiges Programm auf den Beinen zu stellen. Klar gibt es an den massig noch zu verbessern, aber ich wollte erst mal gucken ob es läuft... und eigentlich läuft es super, trotz 8 Bit PWM und nur ca. 31 Schritten Verfahrensweg des Servos.

Aber schaut selbst :-) (das versprochene Video)


http://www.youtube.com/watch?v=QKOwv071Ef4

Vitis
27.10.2011, 18:07
die Änderung der Positionen ist mal heftig schnell ... n tucken langsamer würde den Arm weniger schwingen lassen und die Positionierung verbessern, oder?

Aber RESPEKT ... saugeil

Bammel
27.10.2011, 18:55
Hallo,

ich war bislnag stillschweigender mitleser.. aber ich bin auch sehr begeistert... soeine idee hatte ich auch mal kurzzeitig...

aber wenn der roboterarm mir immer die würfel runterschmeisen würde, würde ich ihn aus den fenster werfen :D

achja... nette musik... ich bin nen dubstep (freak)

gruß, bammel

Geistesblitz
27.10.2011, 22:27
Jau, geil :)
Es ist immer besonders schön, wenn man merkt, dass das funktioniert, was man gemacht hat^^
Als nächsten Schritt würde ich anpeilen, die PWM zu verfeinern, Anregungen dürftest du ja schon ein paar bekommen haben. Dann könnte man auch mal probieren, die Servos Rampen fahren zu lassen oder sowas, aber das wäre dann schon wirklich advanced. Aber auf jeden Fall habt ihr damit schon ein schickes Modell, an dem man weiter üben kann. Und das mit den Würfeln sieht doch auch schon ganz gut aus ;)

danimath
28.10.2011, 08:20
Wow!! Respekt, was Ihr da hinbekommen habt.

viele Grüße
Andreass (staunend)

Staind
31.10.2011, 22:32
Ja momentan sind wir dabei die Software zu verfeinern. Jetzt läuft er auch langsam. Er soll nachher 3 Geschwindigkeits Stufen haben. Hier mal ein kleines Video, wie weit wir momentan sind. Jetzt läuft er auch viel genauer, als im schnellen Modus.


http://www.youtube.com/watch?v=ouLrp1S-kBg

Anbei noch ein Foto vom Layout des C# Programm, wie es nachher in der Finalen Version aussehen soll/könnte.

20410

Geistesblitz
01.11.2011, 08:23
Schon cool. Wozu sind denn die weißen Flächen auf dem Layout? Soll da noch ein 3D-Modell realisiert werden, das sich mitbewegt?

Staind
04.11.2011, 14:42
Hey,
ja im großen Fenster wird ein 2D Modell realisiert was sich mit bewegt. In den kleineren Fenstern daneben versuchen wir die Achsen darzustellen die nicht in der 2D Ansicht zu sehen sind.
Soweit sind wir


20463

Momentan sind wir beim Display



http://www.youtube.com/watch?v=RHZLONgOdRM

Staind
06.11.2011, 19:00
So heute haben wir es geschafft auch den letzten Servo (Servo1) mit einzubinden. Dazu benutzen wir einen zweiten Atmega, bzw. werden erst die Daten an den Atmega 644P geschickt und dieser schickt dann die Werte für den Servo1 weiter an einen zusätzlichen Atmega 644.

Staind
07.11.2011, 23:25
So hier mal ein Video mit der 2ten Geschwindigkeitsstufe. Läuft zwar immernoch nicht 100%ig aber dafür mit allen Achsen :-)


http://www.youtube.com/watch?v=YEBnbD4xl8g

Geistesblitz
08.11.2011, 07:59
Niedlich^^
Sieht schon echt gut aus. Schön wäre es, wenn der Roboter jetzt eine synchrone PTP-Bewegung machen würde, also alle Achsen in der Geschwindigkeit fahren, dass sie gleichzeitig am Ziel ankommen. Bis jetzt ist aber schon viel geschafft, das wäre jetzt quasi noch das Sahnhäubchen^^

marvin-42
12.11.2011, 17:09
Hallo,

ich plane so einen ähnlichen Roboter zu bauen, welche Servomotoren (Hersteller/Typ) habt ihr denn bitte verwendet ? Ich frage, weil in dem Video Achsbewegungen von ca. 180° zu sehen sind und die meisten Servos nur einen 90° Winkel steuern - oder habt ihr die Servos umgebaut ?

PS. wenn ihr mal eine inverse Transformation programmieren wollt, dabei kann ich helfen..

Bammel
12.11.2011, 17:45
hallo...

ich meine das er weiter vorne erwähnte welche servos er verwendet...
normale servos haben eine stellweg von 120° die meisten können aber trotzdem 180° erreichen.

gruß, bammel

patti16
12.11.2011, 21:40
Hallo,

sieht echt gut aus. Mal gespannt was ihr noch so macht ;-).

Gruß

Staind
14.11.2011, 23:17
hey, haben diese Servos verbaut:
klein: TP MG90S
groß: MG946R

einfach mal bei ebay suchen.

hier noch schnell ein kleines foto

20553

Geistesblitz
15.11.2011, 12:30
Das sind ja mit die günstigsten Digitalservos, die man bekommen kann. Ich glaub, die Kleinen sind noch nichtmal digital. Und, wie machen die sich so? Zittern die stark rum? Sind das ganz günstige aus Hongkong oder welche, wo dazu steht, dass sie keine Billigimporte sind? Wurden sie modifiziert?

Staind
18.11.2011, 19:31
Hey, ja genau das sind die günstigsten die man bekommen kann. Zittern tuen sie eigentlich gar nicht. Das einzigste was ein wenig stört ist das die Servos warm werden (würde mal so sagen 30°C). Das hat natürlich zufolge das der Widerstandswert der Potis welche in den Servos sitzen sich leicht ändern. Somit ändern sich auch die Positionen. Wenn nacher die Servos alle warm sind ist es kein Problem mehr, aber wenn man Werte in kalten zustand speichert und die dann nacher in warmen Zustand abgespielt werden dann passen die Positionen nicht mehr richtig....

Aber vielleicht werden die Servos irgendwann mal durch bessere ersetzt ...

Hier mal ein aktuelles Bild

20579

Staind
07.01.2012, 22:52
So nach längeren mal wieder ein kleines Update. Ist zwar noch nicht ganz fertig, aber wollte trozdem ein Video hier lassen.


http://www.youtube.com/watch?v=OJLvOomks-Y&context=C3ea1b93ADOEgsToPDskKpZWFhsa2k74yStbiM4YmL

Die Tage poste ich noch ein paar Bilder.

Geistesblitz
08.01.2012, 00:27
Hey, der ist ja richtig cool geworden.
Wolltest du nicht noch ein 3d-Modell auf den Arbeitsbildschirm bringen? Wird die Elektronik auch noch hübsch verstaut?
Gefällt mir bisher aber wirklich gut, das Teil. Was ist noch weiter geplant, wenn überhaupt?

PS: Bin gerade dabei, etwas ähnliches zu planen, kannst ja mal in meinem Thread (https://www.roboternetz.de/community/threads/56135-6-achsiger-Knickarmroboter-%28Testmodell%29) reinschaun, vielleicht könnten mir deine Erfahrungen bei dem Projekt behilflich sein.

Staind
08.01.2012, 21:19
So hier nochmal ein Video, wo der Roboterarm auch etwas sinvolles macht.


http://www.youtube.com/watch?v=IrtcJAMZriI&feature=youtu.be

@ Geistesblitz

Danke, ja wollte ein 2d Modell noch ins Programm reinprogramieren, aber soweit bin ich noch nicht. Habe dein Thread schon gesehen. vielleicht wechsele ich auch noch auf kleine digitale Servos. Vielleicht kann ich dir ja bei Fragen helfen. Dein Projekt ist ja ziemlich ähnlich.

BlueNature
06.02.2012, 11:39
Servus,

wie ich sehe, hat mein orginal Kuka-Roboter Ableger bekommen. Kam eher durch Zufall über Dritte auf dieses Thema.
Das Zittern der analogen Servos basiert auf der Pulsung, was eine sinnvolle Strom-Messung unmöglich macht. Das Problem wird durch übliche Digitalservos kaum sinnvoll zu beseitigen sein. Ich hatte daher die Servos später duch eigens dafür entwickelte Antriebskarten ersetzt. die Thermik der Motoren bekommt man nicht weg, daher hatte ich hinten eine Zugfeder für die A2-Achse eingesetzt, um dem Arm einen Gewichtsausgleich zu schaffen. Die A4-Achse ist noch zu instabil. Wie man das stabilisiert auf Zug und radialer Last siehst ja auf meiner Webseite.

Grüße Wolfgang

Staind
29.02.2012, 22:27
Servus,

wie ich sehe, hat mein orginal Kuka-Roboter Ableger bekommen.

Hey,

ja, er hat aber nicht nur einen Ableger bekommen :-)

21725

Die Strommessung funktioniert eigentlich ganz gut. Klar ist keine präzise Messung möglich, aber man kann schon erkennen ob der Servo zu 25,50,75 oder 100 % belastet ist. So konnte ich eine Abschaltung realisieren, die abschaltet wenn der Servo länger als 20 Sekunden mit 80% oder mehr belastet wird.

Ich würde mich freuen, wenn Sie ein Video von Ihren Roboter reinstellen könnten. Ich kenne bereits das Video wo Sie alle Achsen austesten. Für mich wäre Interesant, den Roboter einmal in Aktion zu sehen, z.B. beim Tee Kochen.

Hier nochmal ein Video von meinen


http://www.youtube.com/watch?v=AIbzBNlmdIc

tbasnoopy
01.03.2012, 20:38
Inspiriert von euch habe ich mir auch einen kleinen KUKA besorgt und werde ihn im naechsten Urlaub umbauen.

Danke fuer die Inspiration. Dank euch habe ich das Thema Roboarm neu aufgegriffen...

MarsoTexx
02.03.2012, 08:16
= Wir hoffen euch gefällt es auch.

Mir gefallt es sehr gut! Toller Arbeit!

HobbyRob
27.02.2015, 06:22
Hallo,

Euer Projekt hat mir sehr gut gefallen und ich würde gern mehr über die Ansteuerung der Servos erfahren, könnt Ihr mir Bitte mehr Info´s geben wie und mit welcher Steuerung Ihr diese angesprochen habt.

Schonmal im vorraus vielen Dank.
Gruß

Geistesblitz
27.02.2015, 10:37
Auch wenn ich mit dem hier gezeigten Roboter nix zu tun hab, kann ich sagen, wie ich es bei meinem Roboterarm gelöst hatte: Ich hab mir ein Pololu Mini-Maestro-Board besorgt, worüber man mehrere Servos mittels USB vom Rechner oder UART vom Mikrocontroller aus steuern kann. Die Steuerung erfolgt dann entweder über das mitgelieferte Programm, wo man auch einige Einstellungen vornehmen kann, oder über einen virtuellen COM-Port, den das Board bereitstellt, der sich mit den meisten Programmiersprachen als serielle Schnittstelle verwenden lässt. Das Datenprotokoll ist bei Pololu in der Dokumentation zum Board ausführlich beschrieben, allerdings nur in Englisch.