PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "EVa" - Bioloid Hexapod



HeXPloreR
19.08.2008, 19:42
Hallo @ All,

ich möchte Euch heute hiermit mein Projekt "EV-A" vorstellen.

Schon länger interessiere ich mich für Robotik aber kam leider bis jetzt nicht dazu einen eigenen Bot aufzubauen. Seit Anfang Juli 2008 bin ich nun neu begeistert, lese mich in die Möglichkeiten ein und freue ich mich schon sehr darauf mich vorallem mit der Problematik des Programmierens weiter auseinander zu setzen. Hier sieht man es schon, ich bin kein Elektronikass hatte so weiter nie direkt was mit Sensoren und deren gelieferten Werten zu tun.
Ebenso habe ich im Moment auch nicht mehr die Möglichkeit die Einzelteile für einen Bot welcher Form auch immer selbst herzustellen.

Hiermit habe ich einen Bausatz gefunden der meinem Anspruch unter anderem der Flexiblität mehr entspricht als z. B. das Mindstorms von LEGO das ich zuerst in betracht gezogen hatte, weil ich wohl noch so viel Technik-Lego rumliegen habe...

Es ist ein Roboterbausatz der Bioloid AX-12 Serie von www.ROBOTIS.com. Da die Bioloid AX Frames einen fast, wenn nicht sogar genau gleichen Lochabstand wie die Techniksteine besitzt könnten mit kleinen Modifikationen einige Teile wie Zahnräder vielleicht mitverwendet werden.


Das Herzstück:

- wird mit dem sogenannten CM-5 gebildet in dem ein Atmel Mega128 verbaut wurde der von Haus aus mit 1Mhz getaktet wird.
Die Betriebsspannung von max 10V (der Mega128 bekommt davon nur 5V ab) liefert ein Akkupack mit 9,6V 2500mAh das in dem Gehäuse mit dem Contollerboard verstaut ist.
Weiter sind auf dem Board an verschiedenen Stellen insgesamt vier BUS-Ports untergebracht die über eine Daisy Chain Verbindung mit den Servos und Sensoren, "Dynamixel" genannt verbunden werden. Hierdurch ist es möglich immer größer werdende Kabelbäume zu vermeiden. Es können max. (wegen der Stromaufnahme denke ich) 30 Servos und 10 Sensoren per änderbaren ID-Nummern angesteuert werden.
Programmiert wird über RS232, auf dem PC eine objektorientierte Software (Behavior control programmer) und ein Motion Editor, weiter kann auch mit C programmiert werden.


Die Dynamixel:

- AX-12 - der Servomotor, mit einem Haltemoment von 120 - 160N/cm (bei 9,6V, wenn ich mich nicht täusche) liefern wichtige Werte wie Position (300°), Temperatur und Belastung in einer 10bit Auflösung. Die Servos können auf Endloslauf per Software gestellt werden, wobei die allerdings die Positionsausgabe verloren geht, und nur noch eine Laufzeitsteuerung möglich ist. An mehreren Seiten gibt es Aufnahmen für die Muttern um sie mit den Frames zu verbinden. Leider schalten sie sich automatisch bei Überhitzung und zu hoher Stromaufnahme ab, aber besser ist es wohl ;)

- AX-S1 - der Sensor, verfügt über 3 x IR-Distanzmessung, einen Soundgeber (Buzzer), Mikrofon und einer Empfangsdiode für IR-Fernsteuerungen. Leider ist der IR-Teil des Sensors für meine Zwecke vorerst kaum brauchbar da er einfach zu störempfindlich ist weil anscheinend nicht moduliert.

- Die Verbindungselemente (Frames) - sind in hellgrauem Kunststoff (gibs nun auch in Alu, aber besonders sind die wohl nicht) gehalten, durch Bohrungen werden sie mit M2 Schrauben und Muttern gefügt. Eine etwas bessere Nacharbeit nachdem Spritzguß hätte dem einen oder anderem Teil sicherlich gut getan, aber mit einem scharfen Cutter ist auch das überhaupt kein Problem. Wirklich ärgerlich sind aber die Kabeldurchführungen da die Kabel, wohl durch geänderte Kabeldurchmesser, nicht mehr durch den Eingangsschlitz gedrückt werden können. Aber es geht auch prima ohne, wenn nicht sogar besser ;)



Im Moment habe ich eine sechsbeinigen V-förmigen Bot der eher an einen Krebs oder ähnliches errinnert nach hinten schmaler werdend. Diese Form habe ich gewählt da ich noch etwas Platz vorne benötige um zwei weitere Komponenten unterzubringen worauf ich unter anderem auch zu arbeite. Ob ich damit vernünpftig arbeiten kann wird sich zeigen, besonders gespannt bin ich wie es mit Drehungen funktioniert wobei nur der Drehwinkel gegeben werden soll. Der Durchmesser liegt etwa zwischen 30 - 40 cm bei einem Gewicht von jetzt schon inklusive NiMH-Akkus und Controller knapp 2Kg.


Was soll "EV-A" mal können?

Durch geplante Erweiterungen per I/O oder Propeller Board (wobei ich noch nicht weiß wo der Unterschied liegt und welches sich besser eignen würde), analoge und digitale Sensoren und Kopplung von verschiedenen Messsystemen, Zigbee100, Gyroskop sowie natürlich Programmierung
soll folgendes erreicht werden:


1. Positionsbestimmung im bekannten Raum (2Dimensional, vorerst vorraussichtlich 2 aktive Baken, später 2 passive Makierungen)
2. Positionsbestimmung im unbekannten Raum (wie oben, nur erweitert)
3. Anlaufen von Zielpunkten über/durch verschieden Hindernisse mit autonomer Wahl des Laufmodus. (Bein/Fußsensorik, kombinierte Abgrund und Hindernisserkennung)
4. Selbständiges finden (Zielpunkt setzen) einer Steckdose und anschliessen zum laden. (mitführbares kleines Netzladegerät)
5. Bildausgabe und Fernsteuerung (Übersteuerung des Programms/KNN) am/vom PC/Notebook


Zum Schluß soll "EV-A" durch ein künstliches neuronales Netzwerk in der Lage sein "ihre" Position über eine hinterlegte Karte und vergleich markanter Punkte in der Umgebung die über Stereoskopie (Kamera+Laser) in Normallicht sowie Nachtsichtmodus überlagert werden sollen zu ermitteln und gleichzeitig den Weg zu einem Zielpunkt finden ggf melden das keine Möglichkeit gefunden wurde bzw gegeben ist.
Außerdem sollen zur Steigerung der Betriebszeit und Stabilisierung der Spannung Lithium-Polymer Akkus für die Servos, getrennt von der Controllerversorgung verwendet werden.
Eventuell soll auch mit Solarzellenunterstützung gearbeitet werden, sofern nach dem Einbau der Orientierungseinheit noch ausreichend geeigneter Platz dafür übrig bleibt.

Ich rechne mit mehreren Jahren Entwicklung und reallisieren der Programmierung da meine Vorkenntnisse sich maximal auf SPS und QBasic (kennt das überhaupt noch jemand? 8-[ ) beziehen.
Dazu kommen natürlich solche schönen Dinge wie z.B.mal nen Controller schrotten, und der eine oder andere Tiefpunkt wenn man erkennt das etwas entweder nicht funktioniert oder auf Grund des Wissenstandes nun doch länger dauern wird...
...umso mehr dann die Freude wenn es geschafft wird. \:D/



mfg

BlackDevil
19.08.2008, 20:52
ÄH Wie krass ist der denn? Gekauft oder?

HeXPloreR
19.08.2008, 21:03
Bausatz ist gekauft - individuell zusammen geschraubt natürlich selbst...wollte dann doch noch nen bischen zum basteln haben. 8-[

mfg

Murdoc_mm
19.08.2008, 22:37
Hi,

ich trau mich gar nicht zu fragen aber wie viel hastn für das gute Stück bezahlt?

Gruß

HeXPloreR
20.08.2008, 09:26
hi,

...also für mich hielt sich das im angepeiltem Rahmen, für fast neu ;) ...naja wie sagte doch ein mir kürzlich über den weg gelaufener Transformer mit tiefer erfürchtiger Stimme... "ebay"; mehr möchte ich da aber nicht zu sagen (bei www.noDNA.com kommt der Kit NEU z.Z. ca 870 Euro)

mfg

EDIT: 27.02.09

barbar
24.08.2008, 14:03
Moin HeXPloreR!

Ein schönes und anspruchsvolles Projekt! Wünsche viel Freude und Erfolg!

Werde mir erlauben, Dein Vorhaben zu verfolgen, wenn Du über Fortschritte bitte gelegentlich berichten würdest O:)

Bewege mich auf gleicher Hardwarebasis aber mit stark begrenztem Zeit- und Wissenskontingent in ähnlicher Richtung. Ziel ist es, bis Frühjahr 2009 mit einem MEGA8-Board in Minimalausstattung und mittels BASCOM ein AX12-Servo steuern zu können (unter Verwendung von Bus und Protokoll des AX12 bzw. BIOLOID).

MfG!

HeXPloreR
27.08.2008, 16:24
hey,

@ barbar - das ist ja super das du dich meldest. Ich nehme einfach mal an das es nicht dabei bleiben soll einen einzigen Servo anzusteuern. Was mich mal ganz stumpf vermuten lässt, das du entweder später mehrere Mega8 boards mit jeweils einem zu steuernden AX12 planst, oder das ganze versuchst erstmal im kleinen ins Bascom zu pressen? Egal was du da machen willst, für mich ist es genauso undurchsichtig wie das UART oder TTL-protokoll überhaupt denn ich bewege mich da auch auf neuland (weiß noch nicht mal genau was was heißt und wofür es da ist :oops: ).
Wo ist denn dein ATMega128 hin? Weißt du zufällig ob da auch andere Programmiersprachen drauf gehen außer "C"(AVR-GCC) und ob man den dann auch höher takten kann ...könnte ja auch ein grund sein warum man das 128 board nicht nimmt?!! Wäre nur irgendwie schade drum...man kann z.B. zwei per ZigBee100 verbinden...meine ich jedenfalls...schade nur das der in SMD-Bauweise ist...nix da mit eben mal was rangelötet.

Aber was auch immer Du vorhast, mußt ja auch nichts dazu sagen wenn Du nicht möchtest, ich wünsche Dir natürlich dennoch auch viel Freude und Erfolg bei Deinen Unternehmungen.

thx2u

mfg


EDIT: Fortschritte wird es vorerst maximal bei der Auswahl der zusätzlichen Komponenten geben, wenn ich denn weiß welche ich verwenden kann und welche mal besser nicht. Da muß ich mich erst reinlesen und dann verstehen was es für mich bedeutet. ...auf geht's... :cheesy:

HeXPloreR
30.08.2008, 10:01
Hallo,

das war einer meiner ersten Aufbauten (siehe unten), ich werde den momentanen Aufbau in den nächsten Tagen wieder in diese Richtung drücken, um wieder etwas kompakter zu werden. Den Hauptkörper vielleicht nicht quer sondern längs.
Die jetzige Form erscheint mir einfach nicht zweckmässig, auch wenn ich damit vorne den extra für andere Dinge geschaffenen Platz wieder verliere. Ich wollte dort zwei Arme mit unterschiedlichen Funktionen anbringen, dazu ergeben sich hoffentlich neue Ansatzpunkte (Scorponok lässt grüssen)

Auch lässt sich dann mit der neuen alten Form, die Grösse der Orientierungseinheit besser abstimmen. Ich möchte auch nicht unbedingt über die Kniehöhe im Standbymodus hinaus bauen wenn es nicht sein muß.

Leider hat sich für mich immer noch nicht erschlossen wie ich die Kraftausgabe des Servos nutzen kann um damit den Kontakt zum Boden oder einem Hinderniss festzustellen.
Deshalb plane ich immer noch den Aufbau eines kombinierten Fußsensors mit mindestens einer Abgrunderkennung und einem berührungsempfindlichen Teil für jeden Fuß, wenn man dort anfasst soll darauf auch reagiert werden ...soll ja auch bischen Spaß drin versteckt sein
;)

Das Buch ist da, jetzt komme hoffentlich ich auch endlich weiter mit der Elektronik. \:D/


mfg

Asuro91
31.08.2008, 00:51
hi
krasses teil aber ziehmlich teuer

HeXPloreR
03.09.2008, 15:40
hey,

ja, nicht ganz so günstig. aber 120Ncm bei 7undnen bischen Volt...das ist schon was.

@ barbar...hab grade gesehen, da ist ja nen AtMega8 in den Servos verbaut.


mfg

barbar
06.09.2008, 18:22
Moin!


erstmal im kleinen ins Bascom zu pressen?

Ja, prinzipiell die Kommunikation bzw. das Protokoll auf dem BIOLOID-Bus mittels BASCOM nachzubauen ist das Ziel. Habe einfach keine Zeit {und wohl auch keine Lust} auf meine alten Tage noch C zu lernen.


Weißt du zufällig ob da auch andere Programmiersprachen drauf gehen außer "C"
Dem Bootloader auf der CM-5 (Mega128) ist es egal, mit welchem Compiler Du programmierst. Aber er prüft leider genau, ob das zu flashende Programm für das CM-5 Betriebssystem geeignet ist. Soweit ich weiß, haben sich Bootloader und Betriebssystem gegen ein Reverse Engineering bisher erfolgreich gewehrt. Aber es gibt einige "Hacker", die da am Ball sind.


wie ich die Kraftausgabe des Servos nutzen kann um damit den Kontakt zum Boden oder einem Hinderniss festzustellen
Könnte man dazu nicht z.B. bei einem (oder mehreren) geeigneten AX12 das Register 40 (0X28, 0X29) "Current Load" auswerten? Dieser Kollege hier kam auskunfstgemäß auch ohne weitere Sensorik aus: http://www.youtube.com/watch?v=tDuTL-l93kY



hab grade gesehen, da ist ja nen AtMega8 in den Servos verbaut
Jawohl, Dein Hexabot wird also stand heute bereits durch 19 MCUs gesteuert. 8)
.
http://tbn0.google.com/images?q=tbn:Yc-H0rPdhM7QDM:http://www.huv.com/blog/uploaded_images/ax-12-Inside-1-725664.jpg

Näheres dazu beispielsweise hier (http://www.huv.com/blog/2007/02/ax-12-insides.html).


Weitermachen! O:)

HeXPloreR
07.09.2008, 21:10
...hey,

hoha, hab im Moment das "Present Load" in Arbeit, und es funktioniert für ein Bein bis jetzt auch sehr gut. Wollte das nun so schreiben daß das nächste Bein immer erst gesetzt wird wenn das vordere "Kontakt" gemeldet hat ;)


mfg

HeXPloreR
18.09.2008, 22:01
hallo zusammen,

nun habe ich die Form neu gewählt. Fotos folgen.

Erste Versuche mit dem "Present Load" - Kraftrückmeldung des Servos verliefen bis jetzt erfolgreich. Demnach ist es wichtig in welche Richtung sich der Servo dreht wenn er auftritt. Um diesem Problem gleichmässig für die DXL's zu berücksichtigen habe ich sie nun alle gleich ausgerichtet - das bedeutet daß sie sich nun von der kleineren Position zur größeren drehen wenn der Schritt gesetzt wird (clockwise = CW ). Beim Auftreten wird nun ein höheres Moment gemessen als beim abwärtsbewegen und in Verbindung mit der Position durch IF-Bedingungen ausgewertet. Beachten sollte man hier daß die Anfahrtskraft höher sein kann als die eigentliche Bewegungskraft, weshalb man diesen Anfahrtspunkt etwas höher legt, also ausserhalb der IF-Bedingungen halten sollte.
Damit fällt dann auch vorerst die Idee des "kombinierten Fuß" weg.

Bei vollem Akku alles kein problem...
aber bei Anschluß des Netzladegerätes mit 12V Versorgung der Servos werden diese doch relativ schnell warm und erreichern leicht 70°C. Ab da in etwa schalten sie sich dann auch ab, und da jeder Servo das unabhängig tut kommen da nochmal Störungen im Ablauf zustande.
Das objektorientiert Programm ist noch nicht fertig, aber es soll dann auch die Temperatur berücksichtigen.

Das Nächste wird sein eine stabilere Energieversorgung zu erhalten. Dabei denke ich sollten zwei zweizellige LiPo's (7,4V) parallel ausreichen, denn bei dreizelligen (11,1V) ist man doch schnell mit dem frischen Akku über 12V und dazu werden die Servos schneller überhitzen. Die LiPo's sollen dann vom Controller getrennt nur die Servos versorgen.

Da ich nun schon feststellen mußte das es vermutlich nur möglich ist über I/O Boards mit ID auch externe Sensoren oder Kameras in "C" zu betreiben werde ich um eine tiefere Einarbeitung wohl so bald nicht herum kommen.

@barbar - weißt du ob der BehaviorControlProgramer und/oder der MotionEditor von alleine mehr als 19 DXL's erkennt? Denn ich wollte mindestens noch 6 weitere nutzen, ohne nen zweiten CM-5 zu benutzen.

Wenn du es eventuell geschaftt hast die Mega8 in den DXL's als Slave anzusprechen, überleg ich mir das auch nochmal ob ich mit dem CM-5 weiter arbeite. Im Moment ist es mir aber noch egal, ob ich mir nun C oder Bascom anlerne, denn ich kenne beide nicht. Aber ich weiß das Bascom kürzer geschriebn werden kann als C.


mfg

(erstes kurzes Video nur 9sec ;) )
http://www.myvideo.de/watch/5120291/Bioloid_EVA

sigo
19.09.2008, 23:42
Das ist ja klasse, weiter so. Hab auf yooutube auch ne schlange aus den teilen gesehen, wusste aber nicht, wo es die gibt. Prima! Schönes modulares Konzept.

LG Sigo

nomad
20.09.2008, 09:08
hi,
hab jetzt gerade in eueren thread rein geguckt.
den servo mit eingebauten controller find ich
toll. Nur die Preise jeses.

dies haette ich vor 2 jahren wissen muessen.
betr. servos.

arbeite seit 2 jahren an einem krabbelTier mit 4

servobeinen und 3DOF.
meine servos sind (hihi) von conrad
und leisten bei 6volt ca. 247 ncm

die roboterplatform wird z.Z. von 2 propeller

protoBoards und einem propeller demoBoard betrieben.

(von parllax)

hinweis: betr. wie stellt man fest ob ein bein bezw.
fuss am boden ist: hab das mit drucksensoren geloest
wenn wert < 100 dann auf boden.

betr. "C"-programmieren. ich wuerd mich recht tief
in die materie einarbeiten. auf dich wartet noch sehr
viel arbeit.

hast du schon eine ahnung wie du umher wandern

willst?
google mal:
- gaitsPatternGeneratoren (schrittMusterGeneratoren)
- walknet unter cruse (der hat das mal entdeckt)
ist aber sehr mathe-haltig
auch die generatoren haben's insich.

betr. den 2 jahren, hab einige zeit damit zugebracht,
unter linux und c & opengl einige
3d-simulationen zu entwickeln, um die schrittfolgen
raus zu finden.

die schlange find ich auch suess, aber wenn ich da an die preise denk....

aber eins nie aufgeben

gruss
nomad

hosti
20.09.2008, 09:39
von conrad
und leisten bei 6volt ca. 247 ncm


Schreibfehler oder im ernst?

HeXPloreR
20.09.2008, 10:57
Hi,

@ nomad: Schreibst du uns nochmal dazu was für Servos du da genau benutzt, und wie viel so einer kostet. Tippfehler?
Von Robotis gibs auch schöne starke Servos...aber auch richtig schön teuer dazu...

Ich lese im moment noch das "Present Load" des DXL's (Servo) aus um Rückschlüsse auf Bodenkontakt zu ziehen - die Kraft ist bei der Abwärtsbewegung niedrig und steigt bei Kontakt an, das in Kombination mit der Position (IF-Bedingungen).
Bin noch nicht fertig mit dem Programm...probiere noch bischen rum ;)

Schrittgenerator?? - kann momentan nur im "MotionEditor" Pages erzeugen oder jedes Bein einzelnt programmieren. Benutze dazu den BehaviarControl Programmer.
Bin noch begrenzt auf das was man mir als Werkzeuge und Hardware dazu gegeben hat bzw bekommt. Deshalb "versuche" ich erstmal im Rahmen dieser Möglichkeiten zu programmiere, und plane "C" für etwas später ein.

Über youtube und myvideo habe ich auch nur von den Robotis Bioloid's erfahren - soviele Ähnliche sind dort zu finden daß ich dachte es muß doch Bausätze zu kaufen geben...leider wußte ich da auch noch nicht wie das System heißt-steht nicht überall dabei. ...doch dann hatte sich eine zeitgleiche Suche bei ebay als durchaus lohnenswert ergeben...direkt um die Ecke von mir wurde einer Angeboten. ;)

Die Bewegungen im Video sind übrigens mit dem MotionEditor erstellt.


mfg

nomad
20.09.2008, 14:10
hi
@hexplorer
@hosti

also mit den servos ist es folgender masen:
letztes jahr gab's bei conrad-elektronik diesen servo
im jetzigen online-angebot ist er nicht mehr drinn.
hab aber noch meine damalige rechnung gefunden also
art.no. 223154-62, bezeichnung Jumbo
198 Ncm bei 4.8 volt, 247 Ncm bei 6 volt
kostete damals SFR. 85.-- also ca. 40 euro.
also kein tipfehler
mein krabbeltier ist ca. 50 cm lang , mit beinen ca, 50 cm breit
gewicht ca. 4kg
mit den beiden vorderen beinen kann ich problemlos die platform
vorne hochstemmen.

betr. schritt-muster-generatoren:
also dass kommt daher, dass ich das krabbeltier erstmal sich selbststaendig hochstemmen lass.
und (dabei bin ich jetzt) umherwandern und auch hinternissen ausweichen
kann.
der begriff wird in bezug mit Walknet gebraucht
(das ist eine eigene art von einem neuralen Netzwerk)

also das system erzeugt eine gewisse art von (sinus)-wellen
die bestimmen dann, wie sich die einzelnen beine bewegen.
man unterscheidet eine swing-phase (einzelne beine) und
eine stence-phase (4-beine)
da ich 4 beine hab kann ich nur immer ein bein bewegen.
das numerische muster waer dann z.b.
swing-phase:
bein 1, bein 3, bein 2, bein 4
der gaits-pattern-generator liefert dann die schrittweite etc.

im web gibt einige gute doks darueber wie man software maessig
solche generatoren und walkNets entwickelt
(in c )
mit meinen controllern kann ich solche sachen programmieren.
neuralNetze und generatoren (floatingPoints & viel mathe)

gruss
nomad

ps @hexexplorer
eva sieht richtig suess aus,
das mit der entwicklungszeit von > 2 jahren ist voellig richtig.
macht aber spass und frustet manchmal, besonders wenn mal was
wieder den geist aufgibt, mc, etc.... aber das gehoert dazu.
find's auch toll, dass du s mit neuralen netzen versuchen moechtest

HeXPloreR
20.09.2008, 15:06
hi,

@ dem umherwandern:

das werde ich wohl so lösen das ich die Kraft aus dem Schultergelenkservos messe,und damit feststelle ob er irgendwo angestoßen ist. Ursprünglich wollte ich an jedem Bein ja jeweils einen AX-S1 Sensor (inkl. IR) zum berührungslosen Messen verbauen, aber erste Versuche damit haben alles zerschlagen weil einfach zu unzuverlässig auszuwerten.
Zu "normalen" Hindernisserkennung eignet er sich gerade noch so, aber benutze ihn nur zur Kommandoeingabe (per Mikrofon) im Moment.

Ich werde maximal noch DXL's dazu kaufen, und später wenn ich denn auch ein wenig mit C probiert habe, externe Sensoren in die Beine einbauen damit ich da zur berührungslosen Hindernisserkennung komme.
Vielleicht werden auch "normale kleinere Servos" dann mit verbaut.

Neurale Netze interessieren mich zur Zeit nur in ihrer Funktion und wie es erreicht wird damit zu arbeiten. Ich überlege mir dazu vielleicht extra nen günstigen Controller zu besorgen, auf dem man mal etwas in dieser Richtung testen kann. Sonst weiß ich darüber eigentlich noch nichts genaues, aber es scheint interessant zu sein. Ich werde mir das mal ansehen. thx


mfg

nomad
20.09.2008, 17:21
hi
@hexaplorer

vielleicht haben wir beide ein verstaendnis-problem:

1)
Beine auf den Boden, find ich im augenblick einwenig komplex
da der Fuss quassi abrollt, bei mir jedenfalls.
da ist der drucksensor recht gut
also :=
if wert < 100 (auf grund)
if wert ca. 25 dann max Wert erreicht, bein onGround mit ganzem
gewicht so ca. 1 kg

2)
hinternisse werte ich mit 3 "ping"-entfernungsmesser aus (links,mitte,rechts)
+ einen pir-bewegungsmelder aus. (damit er (es) ein verhaltensMuster
zeigen kann, (wegrennen, angreifen etc)

aus diesen werte kann ich dann einen teil der schrittweite bekommen.
also wenn links ein hinterniss ist, sind die schrittweiten der linken beine
also, bein 1, bein3 etwas groesser und die rechten etwas kleiner, dann
gehts rechts rum.
fuer den rest ist der gaitsPatternGenerator und das walknet zustaendig

nur ist es im augenblick so, das "cruse et al.. fuer das teorethische
walknet pro achse ein neurales netz vorgesehen haben also bei
4 beinen 12 netze mit etlichen eingaengen und drei ausgaengen.
2. gibts zu diesem netz nur rein numerische simulationen.

wenn's mir zuviel wird, wird das ganze auf einen linux-laptop
transferiert. das wars dann. oder wenn's ganz arg kommt nehm ich
eben meinen quad-pc 64 bit, 4gb-ram + c oder (c++) plus eine 3d-
simulation unter opengl.

macht aber spass
gruss
nomad

barbar
20.09.2008, 17:33
@barbar - weißt du ob der BehaviorControlProgramer und/oder der MotionEditor von alleine mehr als 19 DXL's erkennt? Denn ich wollte mindestens noch 6 weitere nutzen, ohne nen zweiten CM-5 zu benutzen.


hi,

Quellen bleibe ich aus Zeitmangel schuldig:

- BCP: Dort werden 19 DXLs mit ihren IDs 1 bis 19 als "anklickbare DXL-Icons" angeboten, aber Du kannst mittels "Custom ID" auch mehr als 19 DXLs ansprechen. Ich vermute mal 100 (IDs 0-99).

- MotionEditor (der grafische, der größtenteils auf dem PC läuft) kann m.E. je nach Version nur 18 bzw. 19 DXLs darstellen. Diesen Editor benutze ich allerdings nicht, habe daher kaum Erfahrungswerte. Irgendwo (robosavvy?) glaube ich gelesen zu haben, dass einer die RBT-File-Struktur verstanden und erweitert hat... vielleicht kann er dann doch mehr?

- MotionEditor (der textbasierte, der auf dem Mega128 läuft) kann 31 DXLs ansprechen (IDs 0 bis 30) und wird aufgrund übersichtlichleit für "State-Machine-Anforderungen" von mir bevorzugt.

cu

HeXPloreR
20.09.2008, 17:56
hi,

@ nomad: wir haben kein verständnisproblem, warum auch, du machst es eben anders als ich verstehe das soweit schon. Direkt eine Programmiersprache benutze ich ja nicht, macht der Compiler für mich...
( genauer gesagt: Objektorientierte Programmierung mit beschränkten Funktionen, diese erlauben mir nichts anderes als eine positive ganze Zahl irgendwo zu verarbeiten bzw auszugeben. Deshalb macht es mir momentan noch Schwierigkeiten dieser ganzen IK Geschichte nachzukommen.)

@ barbar: thx, denke aber für diesen textbasierenden Editor bin ich noch zu früh dran, aber werde mir das mal für die Zukunft merken und erstemal planmässig mehr oder weniger weiter machen.


mfg

nomad
21.09.2008, 06:34
hi
@hexaplorer,
fein, dann ists OOK
gruss nomad

squelver
23.09.2008, 20:26
Die Servos kommen mir bekannt vor \:D/

Finde den Bot schon wegen dem tollen Kontrast ganz dolle ;)

Ich hoffe, dass du dein Ziel erreichst :)

HeXPloreR
24.09.2008, 08:44
Hi zusammen,

so ich habe nun soweit alle Servos Ausgerichtet so das sie in "der richtigen Richtung" die Daten liefern sollten. Nur leider ist das Programm immer noch nicht fertig, weil für jedes Bein bzw Servo ein Programmteil geschrieben werden muß.
Ich würde der Einfachheit lieber mit dem MotioEditor arbeiten, aber da der dann ja die vorgegeben abgespeicherten Posen benutzt geht es nicht. Dynamische Schritte sind mit dem "ME" somit nicht möglich.

@copius: Du mußt jetzt nur noch sagen das du zwei drei AX-12 übrig hast und ich würde dich fragen ob Du die wohl noch brauchst...???


mfg

barbar
24.09.2008, 09:02
... aber da der dann ja die vorgegeben abgespeicherten Posen benutzt geht es nicht. Dynamische Schritte sind mit dem "ME" somit nicht möglich

Moin!

Hilfreich, weil z.B. weniger rechenintensiv, ist manchmal eine gute Mischung zwischen gespeicherten und gerechneten Bewegungen oder Zuständen.

Grobes Beispiel: Bein auf gespeicherte Position heben, von dort auf gerechnete Position vorbewegen, von dort auf gespeicherte Position senken und z.B. auf gerechnete Position zurückbewegen.

MfG!

squelver
24.09.2008, 09:41
...@copius: Du musst jetzt nur noch sagen das du zwei drei AX-12 übrig hast und ich würde dich fragen ob Du die wohl noch brauchst...???...

Hallo :)
Nein leider habe ich keine. Ich mache derzeit n Praktikum am DFKI in Bremen, dort habe ich welche gesehen, daher kamen mir die bekannt vor ;)

HeXPloreR
24.09.2008, 11:53
hi,

@ barbar, stimmt man könnte das in etwa so machen. Wobei ich bis jetzt immer noch das problem sehe das ja jeder angeschlossen Servo in der MotionPage erfasst werden muß, soweit ich das probiert habe, geht es nicht nur bestimmte anzuschliessen, die Seite zu speichern und dann im anschluß alle an den Bus zu hängen und die Seiten abzurufen...dann gibt es Fehlermeldungen ohne ende - soweit ich das jedenfalls probiert habe.

Das Problem dabei ist einfach das ja ein Fuß nicht immer direkt auf der Höhe der anderen aufsetzt, bei leichten Unebenheiten, die MotionPage aber alle Servos ( 18 ) auf die gespeicherte Position stellen will, die es ja geben muß nach meinen Erkenntnissen. Dadurch entfällt es vollständig. Nach meinen Überlegungen funktioniert es mit einem Bein das man es mischt, aber ich werde das nochmal direkt so ausprobieren - es sollten sich aber dann genannte Probleme einstellen.
Das senken und nach vorne würde ich dann dynamisch gestallten und das heben und nach hinten könnte statisch ( MotionPages) sein. Dadurch würde sich dann eine Schrittfolge ergeben.
Ich überlege auch ob es machbar ist, jeweils Variablen für die Position (3 Servos) des vorherigen Beines für das Nächste zu setzten. Damit könnte dann ein "Loch/Berg" einmal von ersten Bein erkannt ( das Bein soll dann eine Ausweichposition suchen und finden, oder der Bot sich drehen) , und von den anderen direkt um/übergangen werden.

@ copius: schade...naja, könnte auch ein Grund sein das man sie kennt...wäre ja zu schön gewesen \:D/


mfg

EDIT:
Nochmal ein kurzes Video; so nebenbei noch probiert:
http://www.myvideo.de/watch/5190826/Bioloid_Scorpionschwanz

...
http://www.myvideo.de/watch/5203533/Bioloid_EVA_stand_up

HeXPloreR
10.10.2008, 20:40
Hallo zusammen,

hier mein erstes lauf Video von meinem Hexa :)

Der Bewegungsablauf wird noch durch hinterlegte MotionPages gesteuert. Er läuft gerade aus und kann auch rückwärts bis ein Hinderniss, zb Wand Tischkante welches mit dem Sensor vorne (oder hinten ;) ) erkannt wird ihn stoppt. In dem Video ist "aus Sicherheitsgründen" nur eine kante angedeutet ... habe da dann einfach mal das ende des programms gesetzt, um endlich mal was vorzeigen zu können. Kommt bald mehr...

An einer Drehung arbeite ich noch, weil ganz so einfach ist es mit dieser Form nicht auf der Stelle zu drehen...


mfg

http://www.myvideo.de/watch/5254352/Bioloid_EVA_laeuft


Irgendwann werde ich auch so einen "Hexa" bauen der Vierbeiner und Humanoide in einem ist ;) ...zu sehen hier ----> http://de.youtube.com/watch?v=0m_cCP1wn94&feature=related total genial!!!

HeXPloreR
14.10.2008, 19:53
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=402225#402225


...Schrittsteuerung wie folgt geregelt:
... inverser Kinematik kombiniert...mittlerweile so optimiert, das ein Atmega128 alle 18 Servos....

...vergleicht der Bot 50 Mal pro Sekunde die Endposition der Beine mit einer optimalen Standposition des Bots in Ruhelage und berechnet, wie weit die einzelnen Beine von dieser optimalen Position entfernt sind. Nach entfernungsbezogener Sortierung ergibt sich eine Prioritätsliste, welche Beine am vordringlichsten Bewegt werden müßten und welche Beine keines Schrittes bedürfen.

Nun wird diese Liste abgearbeitet, vorbei zwei Faktoren ausschlaggebend sind:
Schrittmodi: es kann frei gewählt und sogar während des Laufens umgestellt werden, wieviele Beine gleichzeitig einen Schritt machen dürfen. Die erlaubte Anzahl geht von 1 bis 3. Dadurch, das der Controller die Schritte selber auslöst, ist er auch stets über die Anzahl der Beine informiert, die grade einen Schritt machen.
Ist die Anzahl der schreitenden Beine gleich der Anzahl der Beine, die gleichzeitig einen Schritt machen dürfen, so braucht die Liste nicht weiter angearbeitet zu werden, denn es dürfen sowieso keine Schritte mehr gemacht werden.

Das zweite wichtige Faktum ist die Tot-Liste - eine Liste, in der vermerkt ist, welche Beinkombinationen grundsätzlich verboten sind. So ist es z.B. nicht gestattet, das die beiden vorderen Beine gleichzeitig in der Luft sind. Ebenso ist es nicht gestattet, das z.B. das Bein vorne Links und das Bein mittig links gleichzeitig einen Schritt machen, u.s.w.

Ist das Bein, welches nun bewegt werden müßte dadurch blockiert, das seine Beinnummer zusammen mit der Beinnummer eines schreitenden Beins in dieser Totliste steht, so wird dieses Bein nicht bewegt und das Bein mit der nächstniedrigeren Priorität wird "begutachtet".

Es ist sehr interessant zu sehen, wie gut diese Methode funktioniert. Geht der Bot enge Kurven, so verharren die dem Drehmittelpunkt nahen Beine fast Schrittlos, während sich die äußeren Beine öfter Bewegen. Ebenso führt diese Methode bei 3 gleichzeitig gestatteten Schritten zur bekannten 3/3 Geh-Mehode, ohne das diese explizit vorgegeben ist.

Ein weiterer netter Nebeneffekt dieser Methode ist, das der Bot, wenn er anhält, alle Beine der Reihe nach in die Standposition bringt. Er verharrt also nicht mitten im Schritt oder in einer ungünstigen Standposition, von der aus er vielleicht schlecht in eine andere Richtung gehen kann.

Ich hoffe...

Gruß MeckPommER

P.S.: ...

P.P.S.: ausversehen hatte ich auch mal 4 gleichzeitig bewegte Beine erlaubt. Der Bot bewegte trotzdem stets nur maximal 3 Beine, da eine Bewegung des 4. Beines automatisch durch die Tot-Liste abgefangen wurde.


hallo

...also ich überlege ernsthaft in die "C-Programmierwelt" aufzubrechen, wenn ich sowas interessantes lese. Inverse Kinematik zu programmieren gehört auch zu meinen Zielen. Weiß zwar nicht "in was" da programmiert wurde, aber das sollte in "C" auch funktionieren.
Ich werde also erstmal weiter diesen Weg gehen das ich EVA das per BCP (BehaviorControlProgramer) und MotionEditor was ich momentan von ihr möchte beibringe: vorwärts, rückwärts, drehen, nicht vom Tisch fallen, Kraftmessung, Temperatur-Kontrolle, "Suizid-Alarm-Shutdown" (SAS).
In das Programm muß eine Akkuabfrage integriert werden.
Ebenso eine Sicherheitsabfrage für die Position der Servos-bei Störungen spinnt da schon mal einer rum und fährt überhall hin nur nicht wohin er sollte. Die Kraft dabei ist nicht gerade unerheblich, und er muß sofort manuell abgeschaltet werden um Schäden zu vermeiden. Da bei Störungen der Ausgabewert auf 1023 geht könnte man damit so eine Abfrage realisieren, allerdings mit dem schönen Aufwand jeden DXL einzelnt abfragen zu müssen. Besser wäre hier eine Funktion die allgemein eine Aktion auslöst wenn irgendein Servo einen der artigen Wert aufweist. Da habe ich aber bis jetzt im BCP nichts weiter gefunden. Sonst bleibt nur noch mit der Kraft allgemein runtergehen, aber ob das den gewünschten Erfolg hat bleibt fraglich bis der Fall eintritt.

Werde wahrscheinlich das I/O-Board für Bioloid bestellen, und mal schauen was damit geht. Ich hoffe das ich das dann erstmal mit dem BCP betreiben und zusätzliche Sensoren ansteuern kann. Leider vermute ich daß das nichts wird....also "C" muß her ;)

(2 x) 3er LiPo's werden bestellt, auslesen der Netzteilspannung gibt nen Wert von 14V (Wert 140) ohne Ladebetrieb aus. 3LiPo-Zellen sollten ihren Dienst gut tun. Vielleicht zwei in parallel für längere Power??

Ich bräuchte mal eine Rückmeldung wie lange bei Euch so ein Bot/Servo in etwa läuft bis er zu warm wird?
Und wie lange er mit einer frischen Akkuladung (9,6V 2300mAh NiMH) etwa läuft?
Bei mir wird ein Servos ca. 70°C heiß, und läuft so ca. 20min durch.

Wenn sonst jemand mal nen guten Tipp oder ne Idee hat immer ruhig her damit, vielleicht ist was für mich dabei [-o<

@ barbar: hoffe hab dich nicht verschreckt...habs leider noch nicht wieder weiter probiert.


mfg

http://www.myvideo.de/watch/5254352/Bioloid_EVA_laeuft

HeXPloreR
28.10.2008, 17:18
hallo zusammen,

@ barbar, hier mal ein Link zu einer Arbeit...falls noch nicht gelesen:
http://www.ub.uni-konstanz.de/opus-hsbwgt/volltexte/2007/34/pdf/Diplomarbeit.pdf
...interessant sollte das Kapitel 2.5 ( Seite 16-18 ) sein. Vielleicht ist ja was brauchbares bei.

Mich zu mindestens bestärkt es darin auf "C" zu wechseln und später lernende Roboter zu bauen.


mfg

HeXPloreR
02.11.2008, 19:15
Hallo zusammen,

ich habe nun also das Programm für die Kraftabfrage des linken vorderen Oberschenkelservo und des vorderen rechten Schulterservo fertig. Damit ist für das linke vordere Bein eine Abgrunderkennung und für das Rechte eine Hindernisserkennung auf Kontakt realisiert ( Address 36 = aktuelle Position + (AND) Address 40 = momentanes Kraftmoment ).
Allerdings muß ich nochmal die hinteren Schulterservo umdrehen da dort keine Kraftauswertung für den Vorwärtslauf benögt wird, richte ich sie für den Rückwärtslauf in Laufrichtung neu aus um sie dann zu nutzen.
Die Bewegungen bleibt vorerst statisch über MotionPages.

Alle Temperaturwerte der AX-12's werden erfasst und ab >70°C wird abgeschaltet um Fehlfunktionen/Kollisionen zu vermeiden (Address 43 = interne Temperatur °C ).

In diesem Stadium des (Test-)Programms lasse ich mir noch zur Kontrolle (temperatur und kontakt) die Werte der Servos die zum abschalten geführt haben ausgeben (Adress 3 = ID ). Da dadurch aber das Programm langsamer wird, werden diese Funktionen später teilweise abgeschaltet oder entfernt sein.
Das BCP-Programm hat momentan 180 Zeilen.


mfg

HeXPloreR
12.11.2008, 19:27
Hallo zusammen,

ich baue nun wieder mal um...auf vier Beine.
Damit wird der Gang zwar langsamer aber ich habe wieder 6 Servos für andere schöne Dinge über \:D/
Leider habe ich kein neues Video vom aktuellem Bauzustand gemacht. So what...

Für die Füße habe ich mir nun "Kugeln" überlegt die ich aus den Doe-Roller von CD oder sebamed, samt dem Halter heraus borge, die haben einen Durchmesser von 25,4 mm... werden jetzt modifiziert und dann an Frameteile angeklebt. Zum ggf notwendigen feststellen der Kugel ist eine zusätzliche Schraube eingeplant. Bei fortschreitender Abnutzung kann man die Kugel dann drehen und wieder feststellen. Fotos folgen.

Ich probiere also immer noch etwas rum...wie gesagt, mir geht es primär erstmal nur um Machbarkeit verschiedener Dinge.
Nachdem nun die Kraftabschaltung funktioniert, werde ich mich dem "CW - CCW -Margin/-Slope" widmen...verschiedene Testprogramme schreiben um die Funktionen besser zu verstehen und nutzen zu können.


mfg

barbar
13.11.2008, 14:49
Moin!

Verschreckt? Nee! Habe lediglich grässlich wenig Zeit ...

Deshalb in aller Kürze:

Prima, dass das mit der "force sensitivity" geklappt hat.

Die Diplomarbeit kannte ich zwar schon länger, habe sie aufgrund Deiner Erwähnung nocheinmal inhaliert.

Deine Erfahrung mit dem I/O-Board interessieren mich, solltest Du es bestellen. Du meinst doch das von Jon Hylands entwickelte und bei ihm bzw. Trossenrobotics erhältliche Teil oder gibt es noch ein anderes?

Und schon wieder wech ... Tschöh!

HeXPloreR
13.11.2008, 16:25
Hi barbar,

puhh ich dachte schon.
thx...sind echt klasse die Servos.

Ich bin noch etwas unentschlossen habe wegen dem I/O Board irgendwie noch nicht den richtigen Durchblick. Ich glaube es war bei Trossenrobotics, das für den Bioloid... sollte eigentlich ganz normal genau wie ein DXL (ID 120 oder so ) ansprechbar sein...da ist ja nur die ID und Adresse wichtig, manuell eingeben und gut...aber sicher bin ich mir eben. Und wie von dort die Daten für z. B."ein Taster gedrückt" übergeben werden ist mir noch unklar.
Ich werde es bestellen, aber wohl erst nach Weihnachten, um ende Januar rum weil die haben z.B. beim noDNA die Preise anscheinend kürzlich um ca 10% erhöht...gucken wa ma.

Schaue mich gerade nach einem guten C-Prorgrammierbuch um.

Ein guter Nebeneffekt das ich nun auf Vierbeiner wechsel ist das ich nicht so viel Programm für die einzelnen Servos zum laufen schreiben muß, denn ich werde bald von den MotionPages abrücken. Sind mir zu statisch, ich brauche "flexible" Beine die mir auch ne Ausweichposition zum auftreten suchen können...ich möchte das EV-A bald über breite Stege krabbeln kann...ähnlich Europaletten oder so was.


also barbar...weiterhin viel Erfolg -...allen Mitlesenden natürlich auch

mfg
\:D/

HeXPloreR
18.11.2008, 20:23
hallo zusammen,

ich habe nun das BioloidUsersGuide in deutsch bei noDNA runtergeladen...na wie schön das mir das erst jetzt aufgefallen ist ](*,) ..hätte mir damit den einen oder anderen Versuchsaufbau ersparen können...aber so hat man wenigstens etwas praxis bekommen \:D/ und Programmschnipsel zusammen getragen.

...ein neues Bein entworfen: 6DOF, für spezielle Bewegungen. Gewichtsprobleme sind damit vorprogrammiert, und um eine genauere Berechnung komme ich wohl nicht herum. Da mir für vier Beine dieser Art noch 5 Servos fehlen, muß ich entweder noch welche auftreiben oder wieder abspecken. Reduzieren möchte ich nur ungern oder wenn die Belastungen zu groß für einen Servo wären.

ein etwas unscharfes Foto hab ich mal gemacht...da sieht man auch schon den "Prototpen vom Kugelfuß"


mfg

PS: als "Gast" kann man die Bilder nicht sehen!!

EDIT 19.11. - 21:25: ich hatte weiter oben geschrieben dass das Auslesen der Netzbetriebsspannung einen Wert von 140 ausgibt, das wären somit 14V gewesen, ich habe das nun kurz mal durchgemessen und es sind tatsächlich nur 12,2 ohne Ladebetrieb...wie denn das?? --->ich prüfe das also gelegentlich nochmal.

HeXPloreR
11.12.2008, 20:27
Hi,

..."EV-Alpha" update...multimorphing ( 24DOF)




mfg

Furioso
29.12.2008, 22:06
Hi Hexaplorer

Hab gerade mit interesse deinen Beitrag gelesen. Ich arbeite zurzeit ebenfalls an einem Hexapod mit den Dynamixel AX-12 Servors (Allerdings das Frame ist Eigenbau und das ganze wird mit einem AVR32 gesteuert)
Zurzeit ist die IK implementiert und er macht die ersten Bewegungsabläufe.

Die Servoinformationen werden zurzeit noch nicht verarbeitet. Später sollen aber ebenfalls die Parameter Load und Servoposition mitverarbeitet werden. (Vorallem die Servoposition, da beim Heben eines Beines die anderen Beine durch die Zusätzliche Last die Höhe nicht exakt halten können. Ich hoffe durch die Position, dass ich die Servos mit den Infos korrekt repositionieren kann)

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

Gruss
Ivo

HeXPloreR
29.12.2008, 22:48
Hi Furioso,

der ist ja echt genial!!! Super arbeit hast Du da geleistet!!!
Ich glaube der eine oder andere wird sich sicherlich dafür interessieren,#include Ich(.h), wie du die DXL's ansteuerst.

*...mund auf hab....mal langsam wieder zu mach...* [-o<

- Ist noch alles original an den Servos ( außer das du je einen
aufnahmenkranz teilweise entfernt hast ) ? neue Kabel gebastelt?
- In" C", oder sogar in Basic programmiert?!
- Warum hast du nicht den CM-5 (128er) benutzt?
...Du bist schon so lange angemeldet hier...ich hoffe Du besuchst unser Forum nicht nur im Dezember???

Das mit dem repositionieren wird schon klappen!!..Wer schon so weit ist, der schaft den letzten klacks dann auch noch. =D>
Bitte nicht aufgeben!!!! Daumen drück.....weiter so.

Tipp: Da müssen unbedingt Gummis oder ahnliches an die Füße, sonst is dein Laminat balt echt "abgegrabbelt"

Ich habe den Umbau meines Multimorphs fertig.
Die Dinger werden nun aber so schnell heiß...obwohl ich die Beine des "Humanoiden" schon verstärkt habe fängt genau einer von denen an zu blinken -----> Temperatur zu hoch.

Werde mir das mal genauer ansehen die Tage, vielleicht kann man die erlaubte MaxTemp etwas erhöhen...

Schlechte Fotos haben wir hier:

mfg

Furioso
29.12.2008, 23:17
Hi Hexplorer

Die Servos sind alle original (auch der Aufnahmekranz ist noch drauf).
Allerdings muss ich noch nächstens die Coxa-Servos bearbeiten, da die Aufnahmen für die Muttern am Chassis streifen.

Das Programm läuft in C. Ich habe kein CM-5 board eingesetzt, da ich die Servos einzeln gekauft habe und nicht als Bioloid Bausatz.
Ausserdem konnte ich nicht genau abschätzen, ob ein Atmel 8-bit uC mit den Berechnungen der IK zurechtkommt, da es doch einige Trigonometrische Berechnungen sind, welche nötig sind (und ich mich nicht schon nach der ersten Berechnung mit Optimieren beschäftigen wollte)
Aus diesem Grund hab ich mich für den AVR32 entschieden.

Zurzeit werden die Berechnungen 50 mal pro Sekunde durchgeführt und habe noch genügend Reserven (noch ohne Optimierung)

Bezüglich deinen Temperaturproblemen:
Hast du mal mit 9V probiert? Meine Servos laufen zurzeit mit 9V und habe absolut keine Temperaturproblem.

Ist die Cam auf dem Arm eine normale Web-Cam? Oder wird diese direkt über den uC ausgewertet?


PS: Die Gummis sind schon bestellt :-)

Gruss
Ivo

HeXPloreR
29.12.2008, 23:48
Hi,

da hab ich mich wohl zu schnell verguckt ...sind anscheinend tatsächlich noch dran!!
...hmm, ich muß mich wohl nochmal genauer mit meinem Atmega128 beschäftigen. Der AVR32 sagt mir bis jetzt nichts...ich schaue mal gelegentlich was das für einer ist.

Das sieht alles echt klasse aus!!!

Das Temperaturproblem kommt wohl auch zusätzlich daher das ich die Servos immer schön am Limit betreibe bedingt durch mein derzeitiges Gewicht von geschätzt 2,3kg. Muß wohl endlich mal LiPos bestellen...und messen ob das nur der DC-Motor ist der da so warm wird oder die Schaltung drin mir zuviel "verfeuert"

Die Kamera ist eine 2,4Ghz Farbkamera mit Nachtsicht...die sendet nur auf ein Emfängerbildschirm und wenn gewünscht in die Garfikkarte (Video/Audio).
Da wird noch nichts weiter mit gemacht. Wenn es denn überhaupt weiter funktionieren kann. Lese dazu noch.

Idee zur Wegmessung:
Durch Aufteilung der Motionpage für das geradeaus laufen in vier einzelne Pages die nacheinander programseitig durchlaufen werden mit Variablenabfrage, zur Bestimmung des zurück
gelegten
Weges im 1/4 takt bei angenommenen 4cm pro ganzen takt:
1.Page = +1; 2.Page = +1; 3.Page = +1; 4.Page = +1;
wäre dann:
0 (Schrittzähler) = 0 cm
0+1 (1/4) = 1
1+1 (2/4) = 2
2+1 (3/4) = 3
3+1 (4/4) = 4 (beschreibt den durchlauf 1x,die Pages werden durch jeweils +1 auf die variable "schrittzähler" aufaddiert. Der zähler wird ausgegeben und weiterverwendet...

4+1 (1/4) = 5
5+1 (2/4) = 6 cm
....
Allein bei einem Abruch eines Teilschrittes wäre es zusätzlich hilfreich die Servopositionen zu erfassen um den genaueren zurückgelegten Weg zu erhalten. Aber ich denke 1cm reicht mir da vorerst aus...also der Weg des letzen erfolgreich abgesetzen Beins/Teilschritt.

Das könnte schon ganz gut klappen, durch die starre Vorgabe der Bewegung entfällt natürlich das umrechnen von Servopositionen des Beines um tatsächliche Schrittlänge zu erhalten ( unberücksichtigt bleibt der Schlupf).
Drehungen würden auf der Hochachse ausgeführt, und fallen daher nicht unbedingt in die Wegberechnung ein. Um nun einen Drehwinkel zu bekommen könnte man nach einem ähnlichen Prinzip vorgehen.


mfg

By the way: http://de.wordpress.com/tag/kampfroboter/

HeXPloreR
17.02.2009, 19:48
Hi @ all,

der oben gezeigte Aufbau ist wegen der doch eher ungeeigneter beinkonstruktion verworfen. Da ich nicht wieder zurück auf einen "normalen kleinen" Hexa umbauen möchte, halte ich weiter an der idee fest einen Bot zu bauen der sowohl auf "zwei" beinen (paare) sowie auf vier bzw sechs beinen ( vier aus den beiden beinpaaren + zwei einfache kleine die noch nicht vorhanden sind ;) ) laufen soll.

Nun warum zwei beinpaare beim humanoiden laufen?
- ich möchte dadurch eine bessere Gewichtsverteilung auf mehrere Servos erreichen und ein zu schnelles erwärmen entgegenwirken. Da die Hauptbeine nach aussen schwenkbar angebraucht sind wurde auch hier mit doppelter auslegung der Servos gearbeitet. Dazu später die zwei kleine Beine um den vorteil des Hexapodengangs (3/3) nach dem morphen wieder zu bekommen aber ohne das gewicht noch weiter extrem zu steigern. Wünschenswert ist ein fliessender übergang von "Hexa > Human > Hexa". Mehr als 3kg sollten am ende nicht auf einem Doppelbein lasten.

Nur wie üblich fehlen mir wieder mal Frameteile zum weiter bauen...kleine alubleche werde ich in nächster zeit herstellen um diese zur stabilisierung der beine zu verwenden, allerdings die richtig wichtigen für die fußmechanik sind für mich nicht machbar....daher: bestellen ---> dann gehts da erst weiter.

Nebenbei arbeite ich weiter an dem programm wobei die statischen Bewegungen (M.E.) vorerst aussen vor bleiben da es wenig sinn macht diese für den bis jetzt halbfertigen aufbau anzulegen.
Damit eine übersteuerung des programms reallisiert werden kann möchte ich eine variablen abfrage programmieren die die eingaben ( vor, zurück, drehen, usw) über den IR-Sensor des zweiten CM-5 entgegennimmt.
Das soll die (test)vorstufe zum drahtlosen übersteuern werden.
Natürlich alles immer noch mit dem bewährten BCP ;)



EDIT:
Nach *wiederbewußtmachen* meiner Ziele (danke an den Arbeitskollegen, und dem Konto check) ist mir doch mal aufgefallen das ich euphorisch immer schöner schnelle und breiter wollte...nun auch ich muß mich danach richten was ich kann und was nicht, und was ich machen möchte. Nun habe ich beschlossen das ein Hexa der sich aufrichten kann um vorallem auf ebenen Flächen aufrecht laufen können sollte, überhaupt kein bischen in meinen Plan passt.
Die idee find ich zwar immer noch klasse, aber wird wegen Umfang der Teile und finanziellen Mittel vorerst in die Schublade degradiert.
Aber ich denke auch das es nicht nötig ist nochmehr Hardware zuerwerben die nicht unbedingt dem Ziel dient.
Primär ist mein augenmerk momentan auf C programmierung und realisierung eines "LaserZielSystem" gerichtet.

mfg

HeXPloreR
29.03.2009, 12:25
Hi @ all,

durch die Wegorganisierung eines zweiten Bioloid Comp. Kit, freundlicherweise abgegeben by fabo ist es mir nun möglich den auf dem oben zu sehenden Aufbau weiter zu vervollständigen. Das bedeutet für mich ich kann daran Überlegungen reallisieren und erstmal auf Machbarkeit prüfen... ohne gleichzeitig meine kleinen Hexapod "EVa" wieder komplett zerlegen zu müssen, der wird nun ebenfalls zusätzlich mit einigen Frames weiterbestückt.


Anregungen, Fragen, Kritik ---> :idea: :-k

mfg

HeXPloreR
17.05.2009, 21:47
Der immer noch aktuelle Bauzustand der Bioloid- EVA

Und nun auch mal wieder ein kurzes Video:
http://www.myvideo.de/watch/6439651/neue_EVA

8-[

daniel.weber
18.05.2009, 14:09
Hallo HeXPloreR,

interessantes Projekt. Ich habe mir auch gerade mal die sehr interessante Diplomarbeit durchgelesen bzw. ich habe sie überfolgen. Leider habe ich die verwendeten Algorithmen nicht ganz verstanden aber dennoch ist die Arbeit sehr lesenswert.

Hast du vor deinem Bot auch auf diese Art das Laufen beizubringen? Würde mich interessieren, ob jemand auf diesem Gebiet schon positive Erfahrungen gemacht und Ergebnisse vorweisen kann (Videos?).

Wäre ja mal interessant zu sehen wie ein Roboter das Laufen selber lernt :)

HeXPloreR
18.05.2009, 17:50
Hallo @ all

@ daniel.weber

tatsächlich ist es sehr interessant zu lesen, aber ich denke nicht das ich versuchen werden meiner EVA eine derartige Lernstruktur auf Grund von Wahrscheinlichkeitsberechnungen beizubringen. Und wofür auch, was lernt er wen er das linke Bein setzen kann?? ...eben, nur das es geht. Was wäre wenn er aber statt dessen das rechte Bein setzen würde, und das auch geht??
Nun ist es so das es ihm selbst überlassen sein sollte welches er setzen "möchte", denn beides führt in dem Fall zum Erfolg. Die Wahrscheinlichkeit würde also sagen links gehts weiter, und läuft ebenso gegen eine Wand oder einen Abgrund.

Aber das kann auch eine Programmierung leisten, die bestimmt welches Bein sich bewegen soll, denn der Erfolg des Beinsetzens hat, meiner Meinung nach nichts mit Wahrscheinlichkeit zu tun, eher mit einer tatsächlichen realen Situation. Das Problem ist meiner Meinung nach die Erfassung und Verrechnung von bestimmten Umgebungswerten die zusammen mit der Bewegung erst eine "eigenständige" Fortbewegung erlauben.
Das Einzige was ich mir gut damit und mit neuronalen Netzwerken vorstellen kann, ist so etwas wie Sollzustände einhalten ( z. B. Körperhöhe bei jedem Schritt halten ---> lernen welche Beine dazu gebraucht werden, welche nicht - die können bewegt werden....)

Ich werde meinem Roboter das laufen so beibringen dass ich ihm sage in welche Richtung sich seine Koordinaten verschieben sollen, bzw er sie selber errechnet um Hindernisse zu umgehen. Das bedeutet er läuft einfach mal los, trifft frontal links auf ein Hinderniss ( breites Tischbein ) nun soll er feststellen das er rechts dran vorbei sollte da dieser weg kürzer ist ( natürlich sind dafür Sensoren erforderlich) ... da er aber eigentlich noch kein Ziel hat ist es egal wie rum er es umgeht, wichtig ist nur das er es tut. Nur wenn er ein Ziel gegeben hat soll er wieder darauf zu halten...ansonsten ist es egal.
...dieses "egal" würde ich ggf zum Raum erforschen benutzen und eine Reliefkarte erzeugen. Diese Karte soll Auskunft über gewisse Dinge wie "kann ich drauf laufen, kann ich nicht, ich kann (war schon mal da) aber von hier aus nicht, usw"...danach soll er dann seinen Weg finden, bzw das Ziel anlaufen.
Brauche ich dazu KI? - ich denke das eine besondere Form von KI oder auch eines KNN dafür noch nicht benötigt wird.
Inverse Kinematik + "ein Körpergefüh"l per Accelerator und Kompass sollten mich diesem Ziel schon näher bringen.

Das vorläufige Endziel soll hierbei sein EVA auf meinem Tisch laufen zu lassen, ohne das sie das Ziel erreichen kann weil er nicht runter kann. Nachdem er den Tisch "abgemessen" hat, sollte er mir mitteilen das die Aufgabe nicht gelöst wurde. Aber da bin ich noch sehr weit von weg...


Es gibt sicher allgemeine Ergebnisse zu den verschiedenen Lernmethoden, aber hab grad auch keinen Link zur Hand.

Leider weiß ich auch nicht ob mit diesem beschriebenen Ansatz schon wirklich etwas erreicht wurde. ...fallls vielleicht jemand noch was dazu weiß....


mfg

http://www.myvideo.de/watch/6439651/neue_EVA

daniel.weber
18.05.2009, 18:02
nun gut da wirst du recht haben, man kann sein Ziel auf relativ einfachen Wege erreichen oder über den Kilimandscharo gehen. Beides führt wie du sagst zum Ziel.

Ich fand den Gedanken nur sehr nett, dass mal der Roboter die Arbeit übernimmt und sich langsam ans Laufen herrantastet. Dass man das auch einfacher durch eine feste Programierung erreichen kann, ist klar.

Die Sache mit der Kartenerstellung finde ich auch sehr interessant (es gibt einfach zu viele interessante Dinge *g*). Ich hatte da mal vor einen kleinen Rad Robo zu bauen, der mithilfe von US und IR eine Karte von einem unbekannten Gebiet erstellt, diese Karte auf den PC sendet und ich ihm dann sagen kann, durch klick auf die Karte, wo er hinfährt. Außerdem möchte ich ihm feste Routen geben, die er dann abfährt. Vielleicht wäre das auch eine Idee für dich.

Ich habe mal gegoogelt und einiges zu dem Thema lernender Roboter gefunden, allerdings gibt es nicht wirklich komplexe Roboter. Bis her habe ich nur einfache "Einbeinkriecher" gefunden und das ist nicht wirklich spektakulär.

HeXPloreR
18.05.2009, 18:19
Genau das sind ja die Anfänge, diese Kriechdinger....die messen das sie sich bewegen, und probieren verschiedene Kombinationen um diese Bewegung an ihr bauartbedingtes ( Servosstellgeschwindigkeiten, Geometrische Daten des bots...) Maximum zu bringen.
Sag dem Kriechding es soll fünf cm - oder was auch immer für ein Maß - da und da hin laufen, so wird es das tun wenn es kann...und immer besser bzw schneller werden. Sag ihm er darf nur so und so hoch dabei sein so wird er das einhalten, doch ob er sich dann noch bewegen kann....
Du siehst eine Menge Faktoren könnne und müssen dabei zusammen kommen.

ja die Idee mit der Karte auf den PC senden sollte schon sein, damit man auch aktiv eingreiffen und Ziele setzen kann. Eine Route sehe ich nicht vor, wäre aber optional machbar. Aber im Grunde ist es nichts weiter als ein Weg in mehrere Teile gestückelt ( A--> b -->c -->D )....ob er denn nun Absichtlich über "Umwege" gehen muß oder direkt versucht von A --> D ist egal...es sei denn dort wäre etwas zu erledigen.


mfg

HeXPloreR
18.05.2009, 18:58
So
...und nun noch etwas in Eigener Sache:

AX-12 - CW (clock wise = Uhrzeiger Sinn) / CCW ( counter clock wise = gegen Uhrzeiger Sinn) Margin:
Gibt an um welchen Wert der angefahren Sollwert des Servos toleriert werden soll. Toleranzen sind schon was tolles, nur Frage ich mich wozu soll das gut sein. Wenn ich sage fahr die Position an, und er mir unterwegs wegen gegebener Toleranz zur "Goal Position" stehen bleibt bzw ab dieser Position keine Torque mehr aufgewendet wird...macht irgendwie nur Sinn wenn man die Gewichtskraft z.B. einen Armes ausnutzen muß oder will.

Wesentlich mehr Sinn macht die Funktion CW / CCW Slope:
Diese senkt die Verfahrgeschwindigkeit/-kraft in einer Rampe bis zur Goal Position ab bzw hebt sie an, was sanfte und materialschonende Bewegungen ermöglicht.

Nun ist es mir noch nicht gelungen eine Bewegungsseite die mit dem Motion Editor erzeugt wurde, in der Bewegung abzubrechen ... jedenfalls nicht ohne die Kraft abzuschalten. Den Status der Bewegungsseite kann man abfragen - 1 = bewegt sich noch, 0 = ist beendet; ebenso kann man die Bewegung einzelner Servos in ähnlicher Weise auslesen.

Einen von dreien CM-5 hab ich nun schon zerstört ( vermutlich beim operieren "am offenen Herzen" mit dem Meißel abgerutscht ) jedenfalls zeigt er mir nichts mehr an...mal schauen ob und wann ich die teile entlöte...

Es ist mir gelungen meinen CM-5 mitt dem schon compilierten C-Beispielprogramm (.hex) zu flaschen...aber das Beispielprogramm, welches auch uncompiliert vorliegt, selbst zu compilieren schlägt regelmässig fehl. Nachlesen im englischen Robosavy Forum ergibt mehrere mögliche (bekannte) Fehler in der makefile usw...


mfg 8-[


Neue Infos zum Bioloid, vielleicht findet hier der eine oder andere etwas nützliches:
http://www.dualpob.com/docs/html/files.html

Sven04
10.09.2009, 16:54
Hi,

ich habe gelesen, das jemand die AX-12+ auch mit einem AVR32 angesteuert hat und finde die Idee eigentlich super, da auch noch genug Resourcen da sind, um IK zu implementieren. Nun wollte ich mal wissen, mit welcher Baudrate die Servos vom AVR32 aus angesteuert werden und ob es auch noch detailiertere Beschreibungen zum Aufbau der Hardware und der Software gibt?

Gruß,
Sven

HeXPloreR
10.09.2009, 18:11
Hi,

ja das wäre sicherlich interessant.
Furioso hat es in Deinem Thread geschreiben.

Ich fürchte leider ich weiß überhaupt noch nichts über die Ansteuerung mit fremden Kontrollern. Ich habe mich damit auch noch nicht tiefergehend auseinander gesetzt.


mfg

Sven04
10.09.2009, 23:08
In diesem Zusammenhang würde ich http://www.ic-board.de/product_info.php?info=p87_ICnova-ADB1000-StarterKit.html dieses Board einsetzen, da ich so eine Entwicklungsplattform habe und später das Modul einfach vom Board abstecken kann und in den Roboter einstecken kann.


Gruß,
SVen

HeXPloreR
24.09.2009, 20:24
...hier noch ein Link zur Steuerung eines AX-12 http://forums.trossenrobotics.com/tutorials/how-to-diy-128/controlling-ax-12-servos-3275/

vielleicht ist was brauchbares dabei...hab es aber auch erstmal nur kurz überflogen ;)


mfg

Kurzes Biped-Laufvideo:
http://www.myvideo.de/watch/6974188/Bioloid_erste_Schritte

Sven04
11.12.2009, 23:11
Hi HeXPloreR,

wie gehts mit deinem Projekt voran?

Gruß,
Sven

HeXPloreR
14.12.2009, 16:51
Hey Sven,

also momentan steht die "EVa" still. Ich komme nicht recht dazu meinen Biped fertig zu bauen und Poses zu programmieren. Daran wollte ich eigentlich ne Idee testen, weil der nich so viele Beine hat.
Am Controller hab ich auch noch nichts in "C" gemacht.

Schon Neuigkeiten wegen der Ansteuerung eines AX-12?


mfg

HeXPloreR
11.01.2010, 18:03
Hallo,

hier einmal ein paar nützliche Info's für Robotis Bioloid Zubehör:

http://robotis.dyndns.org/techsupport/en/

Wer sich für Bioloid's interessiert sollte hier mal rein schauen.


mfg

HeXPloreR
11.11.2011, 08:43
Hallo @ All,

lange lange habe ich nichts mehr zu meiner EVA geschrieben...zu viel privater Stress hat mich ziemlich davon abgehalten. Aber nun habe ich mich mal zwei wochen wieder damit auseinander gesetzt.

Ich habe jetzt angefangen die Dynamixels umzuprogrammieren - was das "automatische Antwort Packet" und die minimalen und maximalen Drehwinkel betrifft.

Unter anderem ist ein Ergebnis momentan ein funktionierendes WINAVR und erzeugen von hex-Dateien für den Bioloid CM-5 in C. Damit werden drei Dynamixels im Testaufbau betrieben.

Ein Prototyp eine Haxapoden Beines habe ich aufgebaut und damit die ersten Werte für die min/max Drehwinkel ermittelt.

Der nächste Schritt soll jetzt sein die min/max Schrittbreite und -Schrittweite zu bestimmen.
Danach soll die Berechnung folgen damit sich die Fußspitze auf einer Linie entlang bewegt.


MfG
HeXPloreR