...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
Moin!
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.erstmal im kleinen ins Bascom zu pressen?
Dem Bootloader auf der CM-5 (Mega12 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.Weißt du zufällig ob da auch andere Programmiersprachen drauf gehen außer "C"
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-l93kYwie ich die Kraftausgabe des Servos nutzen kann um damit den Kontakt zum Boden oder einem Hinderniss festzustellen
Jawohl, Dein Hexabot wird also stand heute bereits durch 19 MCUs gesteuert.hab grade gesehen, da ist ja nen AtMega8 in den Servos verbaut
.
Bild hier
Näheres dazu beispielsweise hier.
Weitermachen!
...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
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
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
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
Schreibfehler oder im ernst?Zitat von nomad
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
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
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
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
Lesezeichen