PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mein Asuro kann balancieren!



waste
20.12.2005, 20:08
Hallo Asurofreunde!

Ich habe meinen Asuro zum Balancieren gebracht [stolzdieBrustschwelle]. Angeregt durch diesen Thread (https://www.roboternetz.de/phpBB2/viewtopic.php?t=6791), bin ich auf diese Idee gekommen. Es war nicht ganz einfach, da der Asuro eigentlich nicht dafür gebaut ist, aber ein simpler Versuch (https://www.roboternetz.de/phpBB2/viewtopic.php?p=128967#128967)mit der IR-Hinderniserkennung hat mich positiv überrascht, so dass ich es dann richtig versuchte.

Zur Messung des Winkels wird der Liniensensor verwendet. Im Gegensatz zum Linienfolger wird beim Balancieren nicht die Differenz zw. linkem und rechtem Sensor ausgewertet, sondern der Sensor fungiert hier als Abstandssensor und ich addiere beide Sensorwerte, um auch einen höheren Wert zu erhalten. Da in der aufrechten Position die Sensoren einen viel größeren Abstand zum Boden haben, ist das Signal des Sensors relativ klein. Um ein besseres Signal zu erhalten, habe ich deshalb die Front-LED durch eine hellere LED ersetzt. Zusätzlich habe ich den Akku höher gelegt damit die Nase nicht zu hoch kommt und die Sensoren zu weit vom Boden weg sind. Das Höhersetzen des Akkus hat auch noch den Vorteil, dass der Schwerpunkt weiter oben ist, was das Balancieren erleichtert. Außerdem musste ich noch die Versorgung des Liniensensors zusätzlich mit 220µF (parallel zu C5) abblocken, damit sich die Störungen der Motorsteuerung nicht mehr so schlimm auswirken. Mit diesen Änderungen hat es dann geklappt, mein Asuro konnte balancieren.

Die Regelung ist ziemlich kompliziert geworden. Ein PD-Regler stabilisiert den Neigungswinkel. Zusätzlich wird noch mit einem P-Regler die Geschwindigkeit und mit einem I-Regler der Offset des Abstandssensor geregelt, denn der Abstandssensor reagiert auch auf Farbe, Reflektionsfaktor und Umgebungslicht, was die Sache nicht ganz so einfach machte. Eine weitere Erklärung ist auch hier (https://www.roboternetz.de/phpBB2/viewtopic.php?p=139311#139311)und folgenden Beiträgen zu sehen.

Der Code und ein gezipptes Paket incl. Headerdateien und Hex-File ist angehängt.

Ein Kurzvideo ist hier zu sehen: https://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=274

Ein längeres Video ist im GMX MediaCenter hinterlegt, da sieht man noch, wie sich der Asuro sogar selbständig aufrichtet: http://service.gmx.net/mc/z0kENGSIZu5ohC8uqlEAxROifcu5Mf
Hinweis: Der Link für den Gastzugang zum GMX MediaCenter ist bis zum 19.1.2006 gültig. Ihr müsst dort auf "GMX MediaCenter starten" klicken, dann öffnet sich ein Fenster. Im Fenster könnt ihr dann das Video "BalanceAkt.mov" runter laden oder direkt starten. Zum Download müssen PopUps erlaubt sein.

Viel Erfolg beim selber probieren.
Waste

/************************************************** *****************************
* Description: Asuro balanciert
*
* Der Asuro balanciert auf den Hinterrädern.
* Der Liniensensor wird zur Winkelmessung verwendet.
* Damit der Asuro balancieren kann, wurden folgende Umbauten vorgenommen:
* Der Akkupack wurde höher gelegt, damit beim Balancieren die Liniensensoren
* nicht zu weit vom Untergrund entfernt sind.
* Die Spannungsversorgung für den Liniensensor musste zusätzlich abgeblockt werden,
* ein 220µF Elko wurde parallel zu C5 gelötet.
* Für eine höhere Empfindlichkeit wurde eine hellere LED (D11) eingebaut.
*
* Autor: Waste 1.12.05
************************************************** ***************************/
#include "asuro.h"
#include <stdlib.h>

int main(void)
{
int phi, phialt, y, yd, speed, ukorr, drest;
int x, x1, x2, x3, x4, don, doff, v0;
float v, u, w;
unsigned char dir;
unsigned int lineData[2];

Init();
phialt = 0;
u=0; v=0, v0=0;
x2=x3=x4=0;
drest=0;
w=40;
MotorDir(RWD,RWD); // beschleunigt kurz rückwärts
MotorSpeed(255,255); // um den Asuro aufrichten
Msleep(80); // zu können
while(1)
{
FrontLED(OFF);
LineData(lineData); // Messung mit LED OFF
doff = (lineData[0] + lineData[1]); // zur Kompensation des Umgebungslicht
FrontLED(ON);
LineData(lineData); // Messung mit LED ON
don = (lineData[0] + lineData[1]);
x1 = don - doff; // Istwert
x = (x1+x2+x3+x4)/2; // Filterung
phi = w - 14800/(x+100); // Linearisierung und Vergleich
x4=x3; x3=x2; x2=x1;
yd = 500*(phi-phialt); // D-Anteil berechnen und mit
yd += drest; // nicht berücksichtigtem Rest addieren
if (yd > 350) drest = yd - 350; // merke Rest
else if (yd < -350) drest = yd + 350;
else drest = 0;
y = 40*phi + yd; // Ausgang PD-Regler (Winkel)
v = 0.987*v + 0.00189*u; // simuliert Antrieb (Geschwindigkeit)
ukorr = 20*v + v0; // P-Regler Geschwindigkeit
if (ukorr > 300) ukorr = 300; // Begrenzung P-Regler
if (ukorr < -300) ukorr = -300;
u = y + ukorr; // Berechnung Stellgröße
if (u < 0) {dir = RWD;}
else {dir = FWD;}
speed = abs(u)/2 + 80; // 80 kompensiert Reibung
if (speed > 255) speed = 255;
MotorDir(dir,dir);
MotorSpeed(speed,speed); // Ausgabe PWM
w = w + v*0.001; // Integralregler für Winkeloffset
if (w > 80) w = 80; // Begrenzung
if (w < 20) w = 20;
phialt = phi;
if (u > 350) u = 350; // Begrenzung entsprechend PWM
if (u < -350) u = -350;
}
return 0;
}

super_castle
20.12.2005, 20:31
Meiner kann Tango tanzen...und die Wärmflasche auffüllen.

"Zum Download müssen PopUps erlaubt sein."

Bis du bl..., da handelt man sich eine Erkältung ein.

Castle

waste
20.12.2005, 20:38
Hallo Castle,

Tango tanzen ist auch nicht schlecht. Aber dazu gehört doch eine Partnerin, eine Asura? Gibt es da ein Bild, von der Asura? Würde ich gerne sehen.

Gruß Waste

Sommer
20.12.2005, 20:48
Hi,

mein voller RESPEKT super gemacht!
Da ich selber weiß wie schwer gute Regler zu programmieren sind
weiß ich das da einiges an Gehirnschmalz drinn steckt!

Weiter so...

Frohe Weihnachten und einen guten Rutsch!

Bye Ulli

Sommer
20.12.2005, 20:56
Hi,

schau dir den mal an so könnt man Asuro auch modifizieren :-)

http://www.parallax.com/html_pages/resources/custapps/app_bway.asp


Bye Ulli

waste
20.12.2005, 21:23
Hallo Ulli

Interessant, ist sogar die gleiche Art des Sensors.

Wünsche ebenfalls frohe Weihnachten und einen guten Rutsch ins neue Jahr.

Waste

stochri
20.12.2005, 21:53
Hallo waste,
jetzt funktionier bei mir die Balance auch. Das Problem war nicht die lib. Nachdem ich mir Dein Video noch mal genauer angeschaut habe, ist mir der große Akkupack aufgefallen. Der ist natürlich um einiges schwerer als der für die AAA Zellen. Daraufhin habe ich die großen AA Zellen montiert. Dann ging's einigermaßen. Dann habe ich noch ein wenig an der LED rumgebogen, zum Glück habe ich die mit etwas Abstand eingelötet ( wobei ich leider gleich die Durchkontaktierung weggebruzelt habe ).
Aber Jetzt kann er auch länger balancieren.

Demnächst werde ich mir mal Scilab usw. installieren. Dann würde ich gerne mal Dein Simulationsfile ausprobieren, wenn Du Lust hast, das zu posten.

Hier habe ich noch das Video von meinem Asuro hinterlegt:
http://www.mitglied.lycos.de/amoltchris/chAsuroBalance2.mpg

Gruss,
stochri

waste
21.12.2005, 17:52
Hallo stochri und alle die sich noch in die Tiefen der Regelungstechnik vorwagen wollen.
Ich habe die Simulationsdatei „Pendel4.cos“ angehängt. Zur Simulation muss Scilab/Scicos auf dem Rechner installiert sein, es steht hier (http://www.scilab.org)zum Download zur Verfügung. Nach der Installation reicht ein Doppelklick auf die entpackte Datei „pendel4.cos“ um Scicos zu starten und das Blockschaltbild (https://www.roboternetz.de/phpBB2/download.php?id=5082)anzuzeigen.

Vermutlich ist es für einen Außenstehenden nicht ganz so einfach, sich in die Simulation einzuarbeiten, noch dazu wenn das Programm für einen neu ist. Deshalb hier eine kleine Beschreibung für die ersten Gehversuche. Das Blockschaltbild zeigt auf der rechten Seite die Regelstrecke mit dem Antrieb und dem invertierten Pendel. Im Antriebsblock gibt es Leitungen, die mit x’’, x’ und x bezeichnet sind. Das sind die Signale:
x’’: Beschleunigung
x’: Geschwindigkeit
x: Position
Entsprechend gibt es im Pendelblock die Signale:
phi’’: Winkelbeschleunigung
phi’: Winkelgeschwindigkeit
phi: Winkel
Eine Auswahl der Signale (Position, Geschwindigkeit, Winkel) geht auf die Anzeige (Mscope). Die Uhr darüber ist der Taktgeber für das Scope.

In dem Ersatzschaltbild der Regelstrecke wurde einiges vereinfacht, damit es nicht zu kompliziert wird. So wurde auf die Nachbildung der Reibung sowohl im Antrieb als auch im Pendel verzichtet. Die Reibung des Antriebs ist nur insoweit berücksichtigt, indem die Ansteuerspannung auf 3,5 Volt, anstatt 5V begrenzt wird. Die 1,5V Differenz entspricht dem Wert zur Überwindung der Reibung. Im Code wird dafür zur Kompensation auf die PWM ein Offset entsprechend den 1,5V addiert. Der Antrieb selbst wird als PT1-Glied mit dem Übertragungsmaß k und der Zeitkonstante T simuliert. Eine weitere Vereinfachung ist die Wirkung des Antriebs auf das Pendel. In Wirklichkeit geht das mit dem Cosinus ein. Da der Asuro aber nur bis ca. 13 Grad Neigung ausgleichen kann und der Cosinus von kleinen Werten annähernd 1 ist, habe ich darauf verzichtet.

Die Variablen k, T, g und l können über den Menüpunkt ‚Edit – Context’ geändert werden. Die Bedeutung ist:
k = Übertragungsmaß des Antriebs
T = Zeitkonstante des Antriebs
g = Erdbeschleunigung
l = Länge des Pendels von Schwerpunkt zu Drehachse

Auf dem linken Teil des Blockschaltbilds sind die Regler. Links unten eine PID-Struktur, wobei der I-Anteil zu 0 gesetzt ist, also einen PD-Regler ausübt. Dieser Regler stabilisiert den Winkel. Die Parameter KP, KI und KD können durch einen Mausklick auf den entsprechenden Verstärkerblock geändert werden. Links oben ist ein weiterer Regler, der die Geschwindigkeit regelt und einen möglichen Offset des Abstandssensors ausgleicht. Dieser Teil des Reglers ist für sich alleine nicht funktionsfähig, er regelt nur in Kombination mit dem anderen Regler richtig.

Eine Simulation wird über das Menü ‚Simulate – Run’ gestartet. Danach erscheinen 2 Fenster mit den Ergebnissen. Das Fenster ‚ScilabGraphic1’ zeigt die Kurven Position (schwarz), Geschwindigkeit (grün) und Winkel (rot). Die Skalierung ist in den Grundeinheiten, also Position in m, Geschwindigkeit in m/s und Winkel in rad. Man sieht, dass der Winkel bei 0.2 rad startet und dann ausgeregelt wird. Den Anfangszustand des Winkel kann man im Blockschaltbild durch einen Mausklick auf den letzten Integratorblock (unter phi0) im Pendelteil einstellen. Es öffnet sich ein Fenster, dort unter ‚Initial Condition’ einen neuen Wert eingeben. Das Einschwingen des Winkels zeigt nach 2sec einen Ausschlag, dieser wird durch eine simulierte Störung verursacht. Für die ersten Gehversuche in der Simulation, würde ich vorschlagen die Störung vorerst wegzulassen. Die Störung kann mit dem Block unter Stoerung ausgeschaltet werden, dort den ‚Final value’ auf 0 setzen. Das 2. Grafikfenster ‚ ScilabGraphic2’ zeigt 2 Stellgrößen. Einmal die vom Winkelregler und eine weitere, die das endgültige Ansteuersignal für den Motor zeigt.

Der Block S/H (Sample and Hold) simuliert die Abtastverzögerung. Um diese zu ändern, einfach auf die Uhr darüber klicken und eine neue Taktrate unter ‚Period’ eingeben. Damit kann die Auswirkung einer längeren Abtastzeit untersucht werden.

Ich denke das reicht erst mal, um damit spielen zu können. Mein Vorschlag: KPv, KIOffset und die Störung auf 0 setzen und nur mit dem PID-Regler versuchen das Pendel für längere Zeit zu stabilisieren. Dabei beobachten, was die Position und die Geschwindigkeit macht.

Viel Spaß dabei.
Waste

Simsinator
29.12.2005, 18:48
Boah, seid ihr gut im programmieren =D>
Ich schaffe es ja gerade mal, dass sich die Räder bewegen.
Könnt ihr eure Programme nicht mal posten, damit ich auch meine Freude dran hab? [-o<

stochri
29.12.2005, 19:31
Hallo Simsinator
Du kannst Dir die überarbeiteten ASURO-Libs

http://sourceforge.net/project/showfiles.php?group_id=155217

runterladen. Dort sind auch ein paar neuere Beispielprogramme drin. Ansonsten hilft suchen hier im Forum, es gibt nämlich schon einige Posts.

Gruss,
stochri

Simsinator
30.12.2005, 08:48
Danke, stochri.
Dann werde ich mal gucken was du mir da so nagedreht hast :cheesy:

darwin.nuernberg
02.01.2006, 20:10
Ich habs auch nachgebaut und

ES FUNTIONIERT TATSÄCHLICH

Allerdings habe ich folgende Änderungen vorgenommen:

1. Die LED D11 duch eine hellere mit 2000 mcd ersetzt (Conrad 184373)

2. Den Vorwiderstand der LED R9 durch einen 150 Ohm ersetzt (anpassung für optimale Versorgung der LED)

3. Mit Styroporresten und Isolierband einen kleinen Block gebaut um die Batterien und somit den Schwerpunkt höher zu bekommen.
Das ganze mit Heißkleber am Asuro befestigt

4. Ein paar größere Beilegscheiben (mit Kabelbinder) höhenverstellbar
hinter den Bot montiert (um den Kipppunkt einstellen zu können)

5. Den Fototransistoren (T9, T10) mit schwarzem Isolierband "Scheuklappen" verpasst (kein passender Schrumpfschlauch verfügbar) um das Streulicht der D11 und störendes Umgebungslicht abzublocken.

6. Natürlich den vorgeschlagen Ladeelko auch eingebaut.

Ein Video und Fotos folgen natürlich auch noch.

Bisher längste Balance Zeit bis zum aufteten des Regelproblemes etwa 3 Minuten.

Echt Geil das Teil.

waste
02.01.2006, 22:18
Gratuliere!

Freut mich, dass es geklappt hat.

Waste

Manf
02.01.2006, 22:37
Ja, ich gratuliere auch, wirklich toll.
Ich bin sehr an einem Bild interessiert, in welchem Winkel der Asuro im Mittel steht und wie das mit der Batterie aussieht.
Manfred

Manf
02.01.2006, 22:39
Ja, ich gratuliere auch, wirklich toll.
Ich bin sehr an einem Bild interessiert, in welchem Winkel der Asuro im Mittel steht und wie das mit der Batterie aussieht.
Manfred

darwin.nuernberg
03.01.2006, 20:31
Ich bin sehr an einem Bild interessiert, in welchem Winkel der Asuro im Mittel steht und wie das mit der Batterie aussieht.
Manfred

Bitteschön
habe dere gleich drei zur Verfügung. Das Video ist obwohl von ziemlich mieser Qualität etwas zu groß geraten (ca. 6,3MB für 38 Sek.).


Hier der Liniensensor:
Die Fototransistoren wurden mit schwarzem Isolierband gegen Streulicht abgeschirmt (Scheuklappen)
und leicht schräg justiert (gemeinsamer Focus auf die Projektionsfläche der LED.
Die LED welche gegen eine hellere mit 2000mcd und entsprechendem Vorwiderstand ersetzt wurde.
https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=796



Hier der Accupack mit Ausgleichgewicht (nochmals optimiert)
Der höhergelegte Accu/Batterie Pack (auf einem mit Isolierband umwickelten Styroporblock) mit verstellbarem Ausgleichsgewicht.
(Ein paar Beilegscheiben auf zwei zusammengeklebten McDonalds Rührstäbchen ;-) hält prima)
Das hellgraue ist kein "Glibber" sondern Schmelzkleber.
https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=797



Und hier in Aktion einganzer Kerl dank Atmel (oder so)

https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=799



Das video gibts übe kurz oder lang auch noch (ist eh nix anderes wie die bereits verfügbaren)


Achso Ja der Ehrlichkeit halber:
Man muss schon etwas tüfteln, bis man den Asuro in einer passenden Lage hat (beim Einschalten), aber dann machts Uihhh.
Kann auch daran liegen dass ich den PinPong-Ball nicht dran hab (den hatte ich abmontiert).


@Manf: Hast Du eigentlich mein Ätzgerät jetzt auch nachgebaut?

Weis eigentlich jemand wo man die passenden Taster her bekommt?
leide ist mir einer der Burschen beim Umbau Hopps gegangen :-(

Andree-HB
03.01.2006, 20:37
Mensch, Waste....die Videos vom Asuro erinnern mich ganz stark an den Hund vom Nachbarn ! ;-)

Ein bisschen Fell drüber, RN-Speak mit geeignetem Gebell eingebaut und los gehts - Katzen jagen ! :-)

stochri
03.01.2006, 20:44
Man muss schon etwas tüfteln, bis man den Asuro in einer passenden Lage hat
War bei mir auch so, hat schon ein wenig gedauert, bis es funktioniert hat. Aber ich habe den Verdacht, die Sensorkennlinie könnte dabei eine große Rolle spielen. Für die Regelung müsste ja die Steigung der Kennlinie im Gleichgewichtspunkt entscheidend sein.
Vielleicht wäre es gut, wenn man sich ein kleines Programm machen würde, mit dem man die Steigung im Gleichgewichtspukt ausmisst.

Gruss,
stochri

Manf
03.01.2006, 21:01
Bitteschön
habe dere gleich drei zur Verfügung.
Die Fotos sind perfekt und bringen die Information, sehr schön. Das relativ große Gewicht erfordert nur einen kleinen Winkel zum Anheben. Schafft der Asuro das aus dem Stand oder wird er im Gleichgewicht gestartet?


@Manf: Hast Du eigentlich mein Ätzgerät jetzt auch nachgebaut?Ich bin ständig kurz davor. Ich habe vor kurzem eine schöne kleine preiswerte Küvette (Angeboten als Vase aus Glasplatten in Silikonklebetechnik) unterwegs in einem Geschäft gefunden, mitgenommen und zu Hause die Scherben aus dem Koffer gräumt.
Ich bleibe dran.
Manfred

darwin.nuernberg
03.01.2006, 22:17
Das relativ große Gewicht erfordert nur einen kleinen Winkel zum Anheben. Schafft der Asuro das aus dem Stand oder wird er im Gleichgewicht gestartet?
Manfred

Je nach Untergrund und dessen Reflexionsverhalten.
Auf der Buchenimitation halte ich ihn fast waagerecht bis etwas leicht nach oben gekippt (nicht viel). Aberr immer mit Kopflastigkeit.

Kommt auch verdammt auf das Umgebungslicht und die Restkapazität der Accus/Batterie an.

Auf weißem Pappier habe ich die größten Probleme (ohne den Source zu ändern, bin eher ein BASCOMler könnte aber auch in C (wenn ich wollte) aber Bascom nimmt einem etwas das denken ab)


PS: Das Video könnte heute noch kommen (der Upload ist so laaaaaaaaaahm)

Werde hierfür aber nicht nochmal einen extra Beitrag erstellen, sondern den Linkk in meinem letzten Beitrag hineineditieren.

waste
03.01.2006, 23:02
Der Sensor ist von so vielen Faktoren abhängig, das macht das Nachbauen schwierig. Ich habe eine weiße Nichia-LED mit 11000mcd eingebaut, weil ich keine helle rote bzw. IR-LED zur Hand hatte. Nachdem es funktioniert hat, habe ich auch keine anderen mehr getestet, ob die vielleicht noch besser wären.

Bei anderen Verhältnissen (LED, Untergrund usw.) muss man das Programm anpassen, damit er gleich von Anfang an steht. Dazu verschiedene Anfangswerte bei der Variable w probieren.

@Andree-HB
Ja, mein Asuro wird ärgerlich wenn man ihn tratzt (neckt). Da kann es schon vorkommen, dass er nach einem schnappt. :cheesy:

Gruß Waste

Dennis_j
14.01.2006, 16:21
ich habe jetzt eine 10.000 mcd LED eingebaut. normal ist die ja so hell, dass ich den Vorwiederstand nicht umbauen muss.

Kann mir dann nur jemand sagen wie ich die Variable w wohl modifizieren müsste...

und noch ein Problem habe ich, meiner fährt die ganze Zeit rückwerts beim balancieren wie kriege ich das Problem den in den Griff...

Dennis

Dennis_j
14.01.2006, 20:14
Hallo..

noch eine Frage, welchen Ladeelko muss man zum Parallelschalten des ASURO zum Balancieren benutzen....

Dennis

waste
14.01.2006, 22:27
Hallo Dennis!


die Versorgung des Liniensensors zusätzlich mit 220µF (parallel zu C5) abblocken,
also 220µF parallel zu C5

Mit einer 10.000 mcd LED sollte es auch ohne Vorwiderstand ändern funktionieren. Ich hab den Widerstand auch so gelassen.

Fährt dein Asuro beim Balancieren rückwärts oder auf allen dreien? Wenn er schon balanciert aber nicht still steht, dann mit der Variable w probieren. w in 5% Schritten vergrößern oder verkleinern bis es besser wird.

Gruß Waste

darwin.nuernberg
15.01.2006, 19:15
Also auf welchem Untergrund lässt Du deinen Asuro starten?
Ich habe mit sehr hellen (Weißen) Untergrund massive Probleme.
Probiers mal auf einer etwas dunklerer Unterseite, welche nicht so stark reflektiert.

Zu Deiner LED da hast du wohl gedacht viel hilft viel?
2000mcd und 10000mcd sind wohl doch eine größerer Unterschied.
Die könnte dann doch etwas zu stark sein. Machmal den Vorwiderstand ein bisschen größer.

Zur Variable W: ausprobieren...

PS: mcd heisst milli Candela (Candela abgeleitet von der Kerze (die mit dem Docht zum anzünden ohne Schalter)) :-b


@manf:
Mein Asuro hat jetzt eine neue TT Halbkugel und startet aus den Stand in die Balance und das unerwartet zuverlässig, wenn der Untergrund passst.

Manf
15.01.2006, 19:44
@manf:
Mein Asuro hat jetzt eine neue TT Halbkugel und startet aus den Stand in die Balance und das unerwartet zuverlässig, wenn der Untergrund passst.Ich bin immer wieder begeistert.
Als der Riesen Thread zum Balancieren https://www.roboternetz.de/phpBB2/viewtopic.php?t=6791 vor einem Jahr gestartet wurde habe ich es kaum gegelaubt, dass dann gleich mehrere einen balancierenden Roboter zu Hause haben werden.

Das Rezept dafür geht wohl mit ASURO und Waste und denen die zu jung sind, um zu wissen was nicht geht. O:)
Manfred

Dennis_j
15.01.2006, 20:07
Lasse den auf nen Holztisch starten, weil ich sonst keine passende Fläche gefunden habe und auf Fließen läuft der nicht so gut.....

Werde ihn morgen noch so weit modifizieren, dass ich eine

- 2000 weiße LED einbaue
- Vorwiderstand R9 durch 150 Ohm ersetze
- 220 Ladeelko paraell zu C5 schalte
- das Programm so umschreiben das ich w erhöhe oder verringere

und wenn der dann immer noch nicht richtig läuft weiß ich auch nicht mehr weiter...

darwin.nuernberg
15.01.2006, 20:29
Nicht so schnell.

Erst mal das eine, dann das andere.

Wie alt bist Du eigentlich?
Ich meinen nur wegen Deinem Tatendrang.

Ändere nicht zu viel auf einmal,
sonst weist Du ja nicht, welche Änderung was ggebessert oder verschlechtert hat.

So blind rumstöpseln bringt nur Frust und keinen Spass.

Erst mal eines dann wenn es was bringt (egal ob besser oder schlechter) weisst Du das hier eine Möglichkeit besteht und kannst nachbessern.

Lass doch die LED mal drin
und baue z.B. einen Trimmer (1k) anstelle der Vorwiderstandes rein
dann kannst Du die Leuchtstärke einstellen.

Den Elko sowieso.

Aber am Prog erst mal nicht rumfingern.

Klaro?

Dennis_j
15.01.2006, 21:24
sonst habe ich schon viel mit dem Asuro geschaft das z.B mit dem Ultrschall sensoren oder auf der Linie fahren aber mit dem balancieren habe ich echt Probleme...

Hatte den soweit schon umgebaut das einen andere LED drin war (10000 weiß) und den Akku höher gesetzt und diese mit Ringscheiben verstärkt das das ungefähr im gleichgewicht steht...

Nur so lief der höchstens 5 sek. in balance, hatte fast nen ganzen Tag daran rumgebastelt das der Asuro im Gleichgewicht ist, nur der Kippt immer um...

Darum fahre ich jetzt erst mal morgen nach Conrad und versuche die Teile zu bekommen, die du zum Balancieren benutzt hast, weil ich dann auf jeden Fall schon mal weiß, dass dein Umbau geklappt hat und dieser mit den Umbau wohl laufen wird...

Ich bin 19 und Studiere Programmiersprachen, nur da liegt auch mein Problem. Da ich noch am Anfang bin habe ich das Fach Elektrik noch nicht und versuche mich an Hand des Asuros weiterzubilden.

Dennis

stochri
15.01.2006, 22:02
Hallo Dennis_j,
bei mir war das größte Problem die Gewichtsverteilung. Man braucht ein paar Versuche, um den richtigen Aufbau zu finden. Vielleicht hilft es auch, das ganze in einem dunkleren Raum auszuprbieren, damit es keine Probleme mit Fremdlicht gibt.

Gruss,
stochri

waste
15.01.2006, 23:26
Ja, nicht so ungeduldig!

Lass vorerst die 10000mcd LED drin und warte bis du den 220µF Elko bekommst. Wenn der Asuro jetzt schon 5 Sekunden balancieren kann, dann fehlt es nicht mehr weit.

Auf jeden Fall direktes Licht vermeiden, also nicht bei direktem Sonnenlicht oder direkt unter einer Lampe ausprobieren.

Das klappt schon noch.

Gruß Waste

Dennis_j
16.01.2006, 07:45
ok... schalte den dann nachher paralell und dann gucke ich weiter.... muss man die LED vllt auch noch etwas biegen das wenn er balanciert gerade auf den Tisch schein oder kann man den so lassen....

Dennis

waste
16.01.2006, 10:13
muss man die LED vllt auch noch etwas biegen das wenn er balanciert gerade auf den Tisch schein oder kann man den so lassen....
Dennis
Kann man machen, muss aber nicht sein. Wenn, dann aber Fototransistor und LED. Die Fototransistoren kann man so biegen, bei der LED muss man nachlöten um sie schräg zu stellen.

Waste

darwin.nuernberg
17.01.2006, 17:04
Entschuldigung Herr Dennis,
da habe ich mich ja absolut getäuscht,
ich dachte da sitzt so ein 9 Jähriger Grünschnabel,
der alles von jetzt auf gleich mit biegen und brechen machen will.
Ich entschuldige mich in aller Form für diese Unterstellung.
Ich hoffe Du bist mir nicht böse deshalb.


Zurück zum Asuro,
ich habe mal die Tarrierung meines Asuro ausgemessen.

Punkt an dem mein Asuro übergewicht zur Hecklage bekommt liegt bei 14,7mm,
gemessen von der Oberkante der runden aussparung (Taster) zum Bodenpunkt.
(Mein Ausgleichsgewicht ist im Gegensatz zu dem vom Asuro nicht hinten sondern Vorne :-& )



Kann man machen, muss aber nicht sein. Wenn, dann aber Fototransistor und LED. Die Fototransistoren kann man so biegen, bei der LED muss man nachlöten um sie schräg zu stellen.
Waste

Vorausgesetzt man hat Die LED und Fotoransistoren wie in der Anleitung beschrieben eingenaut und nicht auf die Platine anliegend montiert. :shock:

Dennis_j
17.01.2006, 20:18
Hallo Darwin...

entschuldigung angenommen, aber bin auch nicht Nachtragend...

Und dann wollte ich mich hier im Forum ganz herzlich bei darwin.nuernberg und bei Waste bedanken, die mich so beim Bau meines Balancierenen ASURO's unterstützt haben...

Vielen Dank auch an die Anderen hier im Forum...

Mein ASURO läuft jetzt nach ein paar Umbaumaßnahmen einwandfrei (fast 2 Minuten in Balance), aber dafür musste ich das Programm noch soweit verändern, dass ich die Variable w auf 35 setzten musste und MotorSpeed auf (250/250)... sonst kam der nicht richtig hoch...

Dennis

waste
17.01.2006, 20:53
Na also, hat ja doch noch geklappt. Gratuliere!

Wenn der Asuro noch nicht richtig hoch kommt, dann die Zeit etwas verlängern, die er am Anfang rückwärts fährt, oder den Schwerpunkt noch etwas höher setzen.

Gruß Waste

mich-beck
12.04.2006, 07:57
@Waste
habe mir deine Simulation angeschaut, verstehe aber die Darstellung des Antriebes und des Pendels nicht so richtig. Kannst du mal versuchen mir das "für Dumme" zu erklären. Hatte zwar schon ein Semester Regelungstechnik, aber ich versteh eben nicht, wie du auf dieses Modell kommst.
Ansonsten Respekt für das Programm, starke Leistung.
Hab es auch schon aufgespielt, und hat funktioniert.

waste
12.04.2006, 19:10
Hallo mich-beck,

das Modell des Antriebs ist eine übliche Darstellung als PT1-Glied (Verzögerungsglied 1. Ordnung). Die Modellierung ist gültig, wenn man die Induktivität des Motors und die Reibung vernachlässigen kann. Die Bewegungsgleichung lautet:
x''=(k/T)*U -(1/T)*x'
Die Umsetzung dieser Differentialgleichung ist in dem Simulationsmodell zu sehen.
Begriffserklärung:
x = Wegstrecke
x' = Geschwindigkeit (Ableitung von x)
x'' = Beschleunigung (Ableitung von x')
U = Eingangsgröße z.B. Spannung
k = Übertragungsmaß
T = Zeitkonstante
Die Konstanten k und T müssen gemessen oder berechnet werden.

https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=920

Die Bewegungsgleichung eines hängenden Pendels ist:
phi'' = -g/l * sin(phi)
Wie man sich vielleicht noch aus dem Physikunterricht erinnern kann, geht die Masse des Pendels nicht in die Bewegungsgleichung ein. Für ein stehendes Pendel braucht man nur das Vorzeichen zu tauschen, weil sin(phi+180°) = -sin(phi). Die Differentialgleichung für das stehende Pendel phi'' = g/l * sin(phi) wurde direkt in dem Simulationsmodell umgesetzt.
Begriffserklärung:
phi = Winkel
phi' = Winkelgeschwindigkeit (Ableitung von phi)
phi'' = Winkelbeschleunigung (Ableitung von phi')
g = Erdbeschleunigung
l = Länge des Pendels von Schwerpunkt zu Drehachse

Nun braucht man nur noch die Verbindung vom Antrieb zum Pendel. Das geht über die Umrechnung der Beschleunigung des Antriebs auf die Winkelbeschleunigung des Pendels.
Beschleunigung = Radius * Winkelbeschleunigung
Mit der Länge des Pendels als Radius ergibt das:
phi'' = 1/l * x''
Ganz korrekt müsste man hier noch mit dem Cosinus bewerten, aber da der Asuro sowieso nur kleine Winkel ausregeln kann und der Cosinus von kleinen Winkeln gleich 1 ist, habe ich darauf verzichtet.

Waste

mich-beck
13.04.2006, 07:40
Hallo waste

jetzt wird die Sache langsam klarer, aber wie würdest du den Cosinus noch mit betrachten? In der Dgl steht doch nur der Sinus? Wird die Dgl gelöst ergibt sich zwar ein Cosinus, aber ich habe keine Ahnung, wie ich das in der Simulation unterbringen sollte?
Entschuldige diese vielleicht dummen Fragen, aber ich hatte erst ein Semester Regelungstechnik, und das ging über Laplace nicht weit hinaus.

waste
13.04.2006, 20:37
Es geht um die Kopplung Antrieb - Pendel. Steht das Pendel senkrecht, so wirkt die Beschleunigung voll auf das Pendel. Hat das Pendel aber einen Winkel von 90 Grad (waagrecht), dann hat eine Beschleunigung keine Auswirkung. Deshalb ist korrekterweise im Zweig von x'' nach phi'' noch der cos zu berücksichtigen, wie im folgenden Bild eingetragen.

https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=923

Waste

ExtreamCoder
14.04.2006, 11:19
Mein Asuro kann fliegen *ggg*

waste
14.04.2006, 13:27
Mein Asuro kann fliegen *ggg*
Na na na! Willst du etwa in die Fußstapfen von pepisoft alias super_castle treten? Der hat hier aber keinen guten Ruf. Überleg dir das nochmal!

Waste

mich-beck
14.04.2006, 21:08
Jetzt hab ichs geschnallt, ich danke dir recht herzlich.Quasi wenn der asuro waagrecht steht und nach vorn beschleunigt wirkt sich das nur auf die Wnkelbeschleuinigung aus. befindet er sich aber breits in einem Winkel zur waagrechten wirkt die beschleuingung ja viel stärker auf die Winkelbeschleunigung. Da der Winkel in dem der asuro balanciert aber ziehmlich klein ist (ca 20°), wäre das ja der cos(70°), welcher ca 0,34 ergibt. Kann man das denn einfach vernachlässigen?
Die Beschleunigung geht doch in m/s² ein, schätz ich mal. Die müsste doch dann relativ groß sein, damit man die 0,34 vernachlässigen kann. Hast du die Beschleunigung des Asuro mal bestimmt? Ausserdem wird der Cosinus doch eigentlich sowieso nicht größer als "1". Das heißt doch man müsste den Cosinus beim asuro immer vernachlässigen können, oder? Weil 0,34 oder eins, liegt ja in der selben "Gewichtsklasse sag ich mal.

waste
14.04.2006, 22:59
Da der Winkel in dem der asuro balanciert aber ziehmlich klein ist (ca 20°), wäre das ja der cos(70°), welcher ca 0,34 ergibt. Kann man das denn einfach vernachlässigen?
Der Winkel der Asuroplatine hat damit nichts zu tun. Es zählt nur der Winkel des Schwerpunkts über dem Drehpunkt (Rädern) und der ist im ausbalanciertem Zustand 0 Grad. Eine horizontale Kraft unten an den Rädern (Beschleunigung) kann den Asuro nun kippen. Die Kraft wirkt voll (cos(0°) = 1) als Drehmoment auf den Schwerpunkt. Wäre der Schwerpunkt waagerecht zum Angriffspunkt der Kraft (was beim Asuro nicht geht, weil er vorher schon aufliegt), dann könnte man beschleunigen was man will, es würde kein Drehmoment auf den Schwerpunkt wirken (cos(90°) = 0). Ein waagerecht liegendes Pendel kann man auch nicht durch waagerechte Beschleunigung aufrichten.

Einen cos(70°) = 0.34 könnte man nicht vernachlässigen!
Der Asuro kann aber nur etwa 13° ausregeln. Der cos(13°) = 0.97, das kann man vernachlässigen.

Waste

mich-beck
15.04.2006, 12:17
Da sag ich nur, wer lesen kann ist klar im Vorteil. Die Sache mit dem Schwerpunkt macht die Sache klarer, ausserdem wollte ich in meiner Verwirrtheit den Cosinus addieren und nicht multiplizieren. Dann ist klar das 0.97 oder 1 keinen großen Unterschied macht.

Ich werde wohl zu diesem Thema noch öfter auf dich zurückkommen.
Wenn ich die Regelung erstmal völlig verstanden und nachvollzogen hab musst du mir mal noch erklären, wie du das ganze dann in C umgesetzt hast.

Danke nochmal für die Hilfe.
So Leute wie du machen so ein Forum zu einer super Sache.
Dickes Lob

waste
15.04.2006, 21:35
Ich weiß, die Thematik ist nicht ganz einfach, deshalb helfe ich auch gerne.

Kennst du schon den Regelungstechnik Artikel im RN-Wissen Bereich? Da ist die Umsetzung in C-Code gezeigt.

Waste

mich-beck
16.04.2006, 12:55
also den artikel kenn ich eigentlich, aber das da die umsetzung gezeigt ist , habe ich wohl übersehen.werde ich mir nochmal anschauen.
danke für den tip

_tim
05.08.2006, 11:11
Hahaha,

unserer hat's jetzt auch geschafft...
http://193.196.117.23/projekte/SS06-Balanceakt/data/balancing_robot_asuro.rm

Liebe Grüße,
Tim & Jochen[/b]

Manf
05.08.2006, 11:22
unserer hat's jetzt auch geschafft...
Dann erzähle doch noch ein bisschen dazu, was für ein Gewicht und was für ein Sensor wird denn eingesetzt?
Manfred

_tim
05.08.2006, 18:07
Hey Manf,
(cooler Spitzname)

wir haben den Sharp GP2D120 als Sensor genommen.
Auf dem Video sieht man ja, dass der Schwerpunkt mit Hilfe eines Aluminiumrohrs und oben drauf noch ein Klötzchen angehoben wurde. So war es möglich mit der langsamen Abtastzeit von 20msec des Sensors zu arbeiten. Für etwas ausführlichere Informationen kannst du dir die Seite von unserer FH angucken:
http://193.196.117.23/projekte/SS06-Balanceakt/

Viele Grüße, Tim

waste
05.08.2006, 21:44
unserer hat's jetzt auch geschafft...
Gratulation! Sieht gut aus!

Gruß Waste

Manf
05.08.2006, 22:11
Das ist ja eine sehr schöne Ausarbeitung, und auch noch technisch erfolgreich, ich gratuliere zum Erfolg.

Mit den Sharp PSD Sensoren wurden ja schon früh die ersten Versuche unternommen, einen ASURO auf zwei Rädern zu stabilisieren, wenn auch dann nicht alle ganz zu bewerten waren.
https://www.roboternetz.de/phpBB2/viewtopic.php?p=60064#60064

Manfred


https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=410

_tim
06.08.2006, 11:08
Danke für die Blumen.

Für die FH mussten wir das ja alles schön Ausarbeiten.
Eine Präsentation gibt es dazu auch noch.
(Das gab ja immerhin Noten)

Gruß Tim

P.S. Schönes WE und allen, die es sich verdient haben einen schönen Urlaub!!

ogni42
06.08.2006, 12:00
Ich kann mich Manf nur anschließen. Neben der Realisierung gefällt mir insbesondere die saubere Formulierung der Anforderungen. Sowas sieht man im realen Leben leider viel zu selten.

ehenkes
19.05.2007, 00:33
Ich habe oben angefügte HEX-Datei ausprobiert. ASURO versucht nur rückwärts zu fahren wie ein Irrer.

recycle
19.05.2007, 04:03
Ich habe oben angefügte HEX-Datei ausprobiert. ASURO versucht nur rückwärts zu fahren wie ein Irrer.

Ich weiss nicht welche HEX-Datei du ausprobiert hast und bin auch zu faul den ganzen Thread durchzulesen.
Wenn dein Asuro rückwärts fährt versucht er vielleicht vorne hoch zu kommen und schafft es nicht.
Könnte es sein, dass derjenige dessen HEX-Datei du ausprobiert hast, bei seinem Asuro irgendwie die Gewichtsverteilung geändert hat?

Ich meine mal gelesen zu haben, dass die Leute die ihrem Asuro das Balancieren beigebracht haben die Akkus verlagert haben damit er vorne hoch kommt.

Könnte mir auch vorstellen, dass dein Asuro rückwärts fährt, weil er andere Werte von den Sensoren bekommt als im Programm vorgesehen.
Auch da kann ich mich nur schwach erinnern, ich glaube aber, dass damals als die ersten Leute anfingen dem Asuro das Balancieren beizubringen auch Änderungen an den Sensoren im Gespräch waren.

ehenkes
19.05.2007, 09:28
Vielleicht ist mein ASURO ein Weibchen und kann "vorne nicht hoch kommen". ;-)

darwin.nuernberg
19.05.2007, 10:44
Wenn du was gelesen haben solltest dann vermitlich genau in diesem Thread! (Gleich auf der ersten Seite dieses Threads)

Mit den Folgenden Änderungen am Asuro habe ich meinen "FIT" gemacht:https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=144824#144824

Hier sind die Bilder welche die Gewichtsverlagerung zeigen:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=145074#145074

Haggis
03.05.2010, 19:29
ich habe mal noch eine frage zu dem eigentlichen von waste programmierten programm. kann mich jemand von euch bitte unterstützen? pn an mich sofern mit dem programm vertraut.
ich bin für jede hilfe dankbar
mit freundlichen grüßen haggis

heinzchr
18.10.2011, 15:28
Hallo Zusammen,

auch wenn der thread schon länger inaktiv ist, hätte ich da eine spezielle Frage zum Umbau:

Ich hab den Asuro zusammengebaut vorgesetzt bekommen und kann nichtmehr verifizieren wo die Leitungen langlaufen. Im Schaltpln ist klar ersichtlich wie ich den 220µF Elko zum blocken einsetzen muss, jedoch kann ich das auf der Platine nicht erkennen. Wo kommt die Anode von vorne aus gesehen hin? Rechts oder links?

Mit freundlichen Grüßen!

Manf
19.10.2011, 18:10
http://www.arexx.com/downloads/asuro/asuro_manual_en.pdf


Ich hoffe es ist im Plan auf Seite 17 Bild 4.2 erkennbar. C1 und C8 haben 220µF.

heinzchr
19.10.2011, 22:11
Hallo Manf,

danke für die Antwort.

Mein kleiner Freund ist schon fleißig am regeln. Hab auch schon mit dem WInkel in alle Richungen rumgespielt. Das einzige was noch nicht gemacht ist, ist der Kondensator der C5 Brücken soll. Diese Änderung sollte wegen den starken Lastwechseln am Motor vorgenommen werden.
Auf der von dir erwähnten Zeichnung ist nicht erkennbar wo Anode und wo Kathode hingehören. Der Standartkondensator an C5 ist ein Wechselstromkondensator...

Gruß

Manf
20.10.2011, 06:57
http://www.asurowiki.de/pmwiki/uploads/Main/platine_oben.jpg

Ich denke ich weiß jetzt was Du meinst. Hier auf dem Bild ist zu erkennen dass C5 in der gleichen Richtung wie C1 gepolt ist.

heinzchr
24.10.2011, 20:53
Genau das hab ich gemeint. Vielen Dank. Hab das allerdings schon in beide Richtungen ausprobiert und jedesmal regelt der Asuro nichtmehr sondern fährt nurnoch rückwärts. Ich hab nen 220µF Elko. Wieso fliegt der mir da ausm Regelkreis?

Ich versuch aber jetzt nochmal nach der Beschreibung einzulöten und die Winkel durchzuspielen...

heinzchr
24.10.2011, 21:20
20365

Der Schwerpunkt liegt schon recht Zentral und der Elko ist auch richtig eingebaut aber da kommt bei keiner Winkeleinstellung was sinnvolles bei raus.
Werde morgen mal mit Schrumpfschlauch versuchen Scheuklappen aufzusetzen und hoffe das es besser wird.

Kann mir das nicht erklären

Den Elkotyp hab ich übrigens verbaut:

http://www.google.de/products/catalog?hl=de&q=220%C2%B5F+Elko+25V&gs_upl=88l901l2l1155l2l3l0l0l0l0l173l318l0.2l2l0&bav=on.2,or.r_gc.r_pw.,cf.osb&biw=1280&bih=651&um=1&ie=UTF-8&tbm=shop&cid=12978082697718547394&sa=X&ei=fcelTqSBIM-QswbFnKnbAg&ved=0CFMQ8wIwBA

Also um das nochmal deutlich zu machen: Mit dem Elko ist das Ergebnis schlechter (fährt nur rückwärts) als ohne. Da kann doch was nicht ganz Richtig sein. Wo mach ich denn den Fehler?

EDIT:
Hab jetzt auch die Scheuklappen aus Finelinerstiftdeckeln (passen Prima drauf) gebaut. Ergebnis ist unverändert. Ratlos....

Falls noch jemand einen Rat hätte wäre ich extremst dankbar ;)