PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PROJEKT: Hexabot in 3 Monaten



spycem
21.09.2017, 13:43
Hallo zusammen,
ich bin ganz neu hier in der community und habe folgendes Projekt:

Im Rahmen meiner Bachelorarbeit (Praxisprojekt) (ich studiere Elektrotechnik, Vertiefung Automatisierungs- und Antriebstechnik) muss/darf ich einen Hexabot bauen und programmieren.
Hier vielleicht stichpunktartig etwas zu den Rahmenbedingungen:

Zeit: 2-3 Monate (Vollzeit)
Preis: ~1000 Euro
Größe: nicht ausschlaggebend
Aufbau: Bausatz
Hauptfokus: Software
Plattform/Software: MatLab? Arduino? was empfiehlt sich?
Erfahrung: Anfänger
Ziel: einfache Bewegungsabläufe (aus Zeitgründen)

mögliches erstes Problem: vorzugsweise ohne Akku (1,5V Batterien oder Netzstecker mit Kabel, wegen Laborsicherheit)

Also im Rahmen meiner Bachelorarbeit muss ich ein Hexabot bauen, mit den oben genannten Rahmenbedingungen.
Da meine Zeit leider sehr begrenzt ist, tendiere ich im Moment dazu sich einen fertigen Bausatz zu bestellen und sich auf den Software-Part zu konzentrieren, damit ich möglichst wenig Zeitverlust Probleme auf der Hardware-Seite habe.

Meine ersten Fragen wären:

1. ist es überhaupt möglich in dem Zeitraum als Anfänger ein Hexabot zu bestellen (Bausatz), aufzubauen sich mit der Elektronik auseinander zu setzen und einen funktionsfähigen Bewegungsalgorithmus zu implementieren ?

2. Was sagt ihr zu dem Problem Akku? Mein Prof würde wenn es geht am liebsten einen ohne Akku haben wegen der Laborsicherheit :S

3. Was sind die ersten Schritte der Planung? Gibt es vielleicht bestehende Einträge in denen ich mich gut einlesen kann?

4. Gibt es bestimmte Hersteller/Seiten auf denen ich mich gut umschauen kann? (Auswahl,Qualität,Lieferzeiten,Ersatzteile,Kundens ervice)
4.1 Gibt es vielleicht sogar einen bekannten/bewährten Einsteigerbausatz mit dem man "schnell" erste Erfolge auf Programmebene erzielen kann?


Soo, das waren jetzt erstmal meine ersten Gedanken, Fragen, Ideen. Ich würde mich super darüber freuen wenn ihr mir eure Meinung zu meinem Vorhaben sagt, und vielleicht sogar erste Tipps, Guides, Foreneinträge vermitteln könntet.

Dann erstmal schonmal vielen Dank! Ich freue mich über jeden Input! :)

Tomy83
21.09.2017, 19:48
Hallo,
ich hab mir einen Hexabod zu Hobbyzwecken gebaut. Da hat man keine Vollzeit zur verfügung, und dauert deutlich länger. Ich hab eher Jahre als Monate benötig. Viel Zeit ging für Try & Error drauf. Es wird sich schon viel zeit sparen lassen wenn du einen fertigen Bod kaufst. Der zusammenbau sollte je nach Begabung nur 1-2 Tage dauern, wenn alle Komponenten bereits fertig hergestellt sind.
Den Aufwand der Programmierung kann ich dir garnicht so leicht einschätzen, da ich dieses erstmal "erlernen" musste, es waren nur geringe Vorkenntnisse vorhanden. Dies ist bei dir wohl anders. Hier im Forum ist auch mein Code gepostet, da hast du mal einen Überblick. Ein Profi wird dies bestimmt anders/besser machen. Da dein Schwerpunkt Software sein soll würde ich da auch mindestens 75%-90% der Zeit investieren.
Die Stromversorgung ist nicht ohne. Eine Baterie oder ein Steckernetzteil ist bei weitem nicht ausreichend. Ein Potenter Akku (Lixx) ist schon die günstigste Variante. Ein Labornetzgerät geht auch. So eine "Nabelschnurr" hatte ich anfangs auch. Mein Bot hat etwas Übergewicht und brauchte anfänglich 12A (ohne Spitzenlast), durch SW Optimierung bin ich noch auf ca. 8A runter gekommen. Zur Zeit hab ich mit der Stromversorgung mittels Akku immer noch Probleme.

Da du nur zeitlich begrenz arbeiten kannst, würde ich eher einen Radroboter Empfehlen.

spycem
22.09.2017, 09:53
ich hab mir einen Hexabod zu Hobbyzwecken gebaut. Da hat man keine Vollzeit zur verfügung, und dauert deutlich länger. Ich hab eher Jahre als Monate benötig. Viel Zeit ging für Try & Error drauf. Es wird sich schon viel zeit sparen lassen wenn du einen fertigen Bod kaufst. Der zusammenbau sollte je nach Begabung nur 1-2 Tage dauern, wenn alle Komponenten bereits fertig hergestellt sind.
Also Mit Vollzeit meinte ich, dass ich mich in den 2 bis 3 Monaten ausschließlich mit diesem Projekt befassen werde und keine Nebenbeschäftigungen oder Vorlesungen nachgehen muss.
Aber genau wie du denke ich, dass ein fertiger Bausatz am meisten Sinn macht bei meiner nicht vorhandenen Erfahrung im Hexabotbau. Ich habe ir bereits mal einen Quadrocopter gebaut und weiß daher wie viel Zeit durch Try& Error drauf gehen kann :(

Bezüglich der Stromversorgung werde ich dann zu gegebener Zeit denke ich nochmal mit meinem Professor reden müssen, da die gängigen fertigen Bausätze erstmal alle (nehme ich an) mit Akkus betrieben werden...

Da ich jetzt schon in mehreren Forum-Einträgen bedenken bezüglich der Rechenleistung und Kommunikationsgeschwindigkeit der Boards gelesen habe, würde mich auch interessieren ob die gängigen Servos hier auch eine Position zurück geben, sodass man wirklich Posistionsgenau regeln kann, oder nur steuert?

Tomy83
22.09.2017, 11:08
Ich glaube den bot ist es egal ob der Strom aus dem Netzteil oder den Akku kommt, solange die Spannungsquelle potent genug ist.

Ja es gibt servos mit Rückmeldung. Meist über ein Bussystem. Suche mal nach Robotik Servo. Ich glaube von Hitec und Dynamixel gibt es da etwas. Billig sind diese aber nicht. Kraft und Geschwindigkeit sind auch Faktoren die wichtig sind. Die 1000€ kannst du locker in die servos investieren, musst du aber nicht.

Die benötigte Rechenleistung ist garnicht mal so sehr groß. Mein ATXmega mit 32Mhz (Hardware diff. Ohne FPU) schafft die gesamt IK und die servoanstsuerung in 8-11ms. Um mal ein Beispiel zu bringen. Meiner Meinung nach bedarf es keinen separaten Servokontroller. Ich habe aber für die Sensor Auswertung einen zweiten uC verbaut.
Welchen Chip hat du den für dein Quadrocopter genutzt?

Die servos werden bei mir nur gesteuert.

spycem
22.09.2017, 11:25
Ja da magst du wahrscheinlich recht haben.
Also mein Vorgänger hatte die AX-Reihe von Dynamixel, gibt es glaube ich mit 12 un 18A. Passend hierzu habe ich einen Bausatz von Trossen Robotics gefunden,
den PhantomX MKIII, mit den Dynamixel Servos, sowie kompletter Elektronik.

https://nodna.de/PhantomX-MkIII-Metall-Profi-Hexapod-18x-AX-12A

ich erhoffe mir von einem solchen Bausatz, dass die Komponenten soweit aufeinander abgestimmt sind, dass ich vorerst zumindest einfache Bewegungsabläufe damit problemlos erreichen kann. Was meinst du zu dem Bausatz?

Bei meinem quadrocopter habe ich damals das KK2.1.5 benutzt, welches prima für Einsteiger war, jedoch habe ich bei der Motorwahl auf eine billige Chinavariante gesetzt, sodass ich ewig Probleme mit einer stabilen Fluglage hatte :S

Tomy83
22.09.2017, 18:44
Nun was soll ich zu den Bausatz sagen, ich kenn den halt nicht. 1200€ist schon eine Stange Geld, billiger wird der Selbstbau aber auch nicht. Der aufpreis für die besseren Motoren ist schon heftig. Der Controller ist schonmal der gleiche Chip wie von deinen copter. Als E-Technik Student soltest du die Komponenten besser beurteilen können als ich. Versuch doch mal einen Schaltplan vom Bord zu bekommen. Da die servos bekannt sind wird sich prüfen lassen ob etwas nicht passt. Ich glaube aber nicht dass dir ein seriöser Anbieter Schrott verkauft. Hast du Google Schonmal nach Erfahrungen befragt?

Urinstein
23.09.2017, 12:03
Da ich jetzt schon in mehreren Forum-Einträgen bedenken bezüglich der Rechenleistung und Kommunikationsgeschwindigkeit der Boards gelesen habe, würde mich auch interessieren ob die gängigen Servos hier auch eine Position zurück geben, sodass man wirklich Posistionsgenau regeln kann, oder nur steuert?
Die Standardservos sind bereits Positionsgeregelt. Wenn du die Ist-position auslesen willst kannst du natürlich auch die internen Drehwinkelgeber (für gewöhnlich Drehpotentiometer) abgreifen. Für 18 Servos brauchst du dann aber auch 18 analoge Eingänge alleine dafür. Mit einem Arduinoboard wird das dann nichts mehr.

https://abload.de/thumb/servo_modoxp0k.png (http://abload.de/image.php?img=servo_modoxp0k.png)

HaWe
23.09.2017, 12:16
außer, man verwendet einen Arduino Mega oder Due (mit 14-16 ADC) plus ggf. 1 zusätzlichen externen i2c-Mehrkanal-ADC (PCF8591, ADS1115, o.ä). Gerade der ADS1115 ist super-easy für den Arduino, und über versch. Adressregister kann man glaube ich bis zu 8 davon gemeinsam am Bus adressieren (=> 8*4=32 ADC-ports)! http://www.mindstormsforum.de/viewtopic.php?f=78&t=8491&start=75#p69282

spycem
25.09.2017, 18:26
Hey,
erstmal vielen Dank euch allen fürs Antworten und eure Hilfe!
Also sehe ich das richtig, dass (in meinem Fall der Dynamixel AX-12A/18A) den Positionsregler) schon integriert hat? (Sprich ich muss den eigentlich garnicht an den Controller zurück geben?)
Mir geht es im Endeffekt nur darum, dass der Roboter das Laufmuster dynamisch und flüssig abläuft, und ich nicht ungenaue Zeitangaben machen muss wie lange die Bewegung dauern könnte bevor die nächste losgeht.

spycem
26.09.2017, 10:54
So, ich habe nochmal mit meinem Prof gesprochen, und da das Projekt auch nach mir weitergeführt werden soll, wäre eine Ist-Position der einzelnen Servos wünschenswert, d.h. da würde ich dann auf die von dir (HaWe) empfohlene Hardware zurück greifen?

Ich verstehe dann im Moment noch nicht so ganz wie die gängigen Laufalgorithmen aufgebaut sind, wenn der Controller keine Ist-Position zurück bekommt? Steuert ihr die Beine dann zeitverzögert an und berechnet wie lange der Servo für die zurückzulegende Distanz braucht? oder wie stellt ihr sicher, dass eine neue Bewegung erst ausgeführt wird, wenn die vorherige auch sicher abgeschlossen ist?

oberallgeier
26.09.2017, 12:37
.. Ich verstehe .. nicht so ganz wie .. wie stellt ihr sicher, dass eine neue Bewegung erst ausgeführt wird, wenn die vorherige auch sicher abgeschlossen ist?Selten; das können nur Servos mit mehr als drei Anschlussdrähten, nicht die üblichen Modellbauservos. Je nach Servo und Reglerauslegung bleibt eine mehr oder weniger große Regelabweichung. Der ursprüngliche Verwendungszweck der Modellbauservos sind ja im Wesentlichen Steuerungsaufgaben, zB Schwenks von Rudern zum Steuern von Modellautos, -flugzeugen, -schiffen etc. Da hatte der Bediener der (Funk-)Fernsteuerung immer ne optische Kontrolle: Größe der Kurve etc. Der Regelkreis wurde also nur durch den Mensch geschlossen. Kurz und böse ausgedrückt: der Servo bekommt eine Positionsangabe (Länge des Servopulses) und fährt mit einer für ihn bei der jeweiligen Last typischen Genauigkeit auf diese Position. Ich hatte schon mal (Billig-)Servos in der Hand die bei Maximallast laut Datenblattangabe an die 40°-60° von der angesteuerten Position blieben.

Tomy83
26.09.2017, 12:42
Hallo,

Die Dynamixel und auch die Standart Modellbauservo fahren den ihn übertragenen Sollwert automatisch an und halten diesen. Nur wenn du den Istwert rückführst wird dein programm flexibel auf eine Abweichung reagieren können. Z.b. Beim bleibt hängen. Wenn du also deinen Bausatz mit diesen Servo nimmst hast du das schon dabei. Normale Modellbauservo musst du dann hacken. Z.b. Das interne Poti anzapfen, oder ein externes installieren oder ein Halleffekt sensor verbauen.

Mit einem zeitlichen Ablaufplan und ggf. Wartezeiten wirst du nie einen flüssigen Gang hin bekommen. Eventuell für ein paar wenige Bewegungen. Sobald du flexibel laufen willst, aus jeder Stellung in jede mögliche Richtung, wird das so nichts mehr. Auch das ansteuern des servos auf seine gewünschte "maximale" Endposition führt nur zu einen unruhigen /ruppigen Lauf. An variable Geschwindigkeit ist da auch nicht zu denken.
Ich zerteile mir den Weg zur Endposition in viele kleine Schritt, pro Schleifendurchlauf wird ein Zwischenschritt errechnet und angesteuert. Die Größe/Länge des Schrittes ergibt sich aus der maximal möglichen servo Geschwindigkeit(Augenmaß und Ausprobieren). Einfacher würde das mit Istposition schon gehen.

Probiere doch erstmal die IK zu programmieren, meinetwegen im Excel. Und dann überlege woher dein programm weiß wohin du laufen möchtest und was dazu alles zu berechnen ist. Flüssig ist es dann noch lange nicht aber der anfang ist gemacht.

oberallgeier
26.09.2017, 13:37
.. Die Dynamixel und auch die Standart Modellbauservo fahren den ihn übertragenen Sollwert automatisch an und halten diesen ..Dynamixel hatte ich nie getestet - aber die haben die drei Anschlüsse die ich von Standard-Modellbauservos kenne: Vcc, GND und SIG. Ein Auslesen der Position ist nicht möglich und damit ist keine Gewissheit gegeben ob oder wann der Servo seine Sollposition erreicht hat. Und mehr: ich hatte bisher noch immer ne Regelabweichung bei Belastung von Servos gemessen und war dabei schon sehr sorgfältig (https://www.roboternetz.de/community/threads/62904-Servomesstester-%28Servotester-und-%C2%96messaufbau%29) - und hoffentlich auch richtig.

Kannst Du mir bitte erklären wo/wieso ich damit falsch liege wenn ich behaupte, dass eine Rückmeldung der Postion fehlt?

Tomy83
26.09.2017, 14:05
Da ich so einen servos auch noch nicht in Betrieb /der Hand hatte, ist meine Aussage ein reiner Papiertiger.

Wenn ich also den Dynamixel 12A Servo bei Google suche, finde ich im ersten link folgende Angabe :
"Steuerpaket: Digital Packet
Protokoll: Asynchroner serieller Datenverkehr, Halbduplex (8 Bit, 1 Stop, No Parity)
Link (Physisch): TTL Level Multi Drop (daisy chain type Connector ? serielle Verkettung
ID: 254 ID (0~253)
Übertragungsgeschwindigkeit: 7343bps - 1 Mbps
Feedback: Position, Temperatur, Ladung, Eingangsspannung, etc."

Wenn diese Angabe keine Lüge ist, kann ich über den seriellenbus die aktuelle Position auslesen.

HeXPloreR
26.09.2017, 17:47
Da ich so einen servos auch noch nicht in Betrieb /der Hand hatte, ist meine Aussage ein reiner Papiertiger.

Wenn ich also den Dynamixel 12A Servo bei Google suche, finde ich im ersten link folgende Angabe :
"Steuerpaket: Digital Packet
Protokoll: Asynchroner serieller Datenverkehr, Halbduplex (8 Bit, 1 Stop, No Parity)
Link (Physisch): TTL Level Multi Drop (daisy chain type Connector ? serielle Verkettung
ID: 254 ID (0~253)
Übertragungsgeschwindigkeit: 7343bps - 1 Mbps
Feedback: Position, Temperatur, Ladung, Eingangsspannung, etc."

Wenn diese Angabe keine Lüge ist, kann ich über den seriellenbus die aktuelle Position auslesen.

... korrekt.

Ich würde wenn es diese Servos werden sollten, dazu raten gleich AX18A oder Bausatz mit denen zu nehmen.

(EDIT)


Viele Grüße
Jörg