- LiFePO4 Speicher Test         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 34

Thema: Roboter verbessern

  1. #11
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    40
    Beiträge
    398
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Danke fÚr eure hilfe.
    Ich werde das erst mal am computer mit zwei selbstgebauten radencodern versuchen. wenn das klapt versuche ich es dann mal am roboter.

    ich habe aber noch ein par fragen:

    1. du teils das komplette spielfeld in kleine portionen a 5x5cm.Habe
    ich das richtig verstaden? das wÚrde mich glaube cih schon
    weiterbringen.
    2. ein radencoder weis doch nur ob sich ein rad dreht, aber nicht ob
    nach vorne oder hinten?
    3. brauceh ich einen sharp sensor?
    ich dacht, dass cih mit zwei normalen ir sensoren, einen rechts den anderen links, gucke ob da eine linie ist. (die Sensoren gucken auf den boden). was macht ein sharp ir? das selbe, oder kann der nach vorne "gucken" (wie eine kamera?).
    kann der also zum beispiel sehen das da eine schwarze linie von links kommt und eine kurve macht die nach vorne geht, und das das spielfeld links frei ist, usw.?

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.03.2005
    Ort
    Villach
    Alter
    33
    Beiträge
    995
    ich gib dir einen Tip, wie du die Servos schneller machst:

    Einfach 10V statt 5V zur versorung nehmen. Dann sind sie mit CD-reifen Urschnell. Zuschnell. Voriges jahr machte ich das so bei der Robotchallenge.

    Die Servos (Graupner Stanadartservos kugelgelagert. hab sie noch von meinen modellfliegern daheim gehabt) drehen aber nach einer zeit unterschiedlich schnell leider. Deshalb würd ich mit radencoder das ganze ausgleichen versuchen sonst hast ein problem und kannst nicht mehr so gut navigieren. Für mich hats auf jeden fall für den 1.platz gereicht. war auch der schnellste im labyrinth. videos auf www.robotchallenge.at

    Du kannst 2 radencoder je rad so platzieren, dass sie die richtung auch ausgeben können. google hilft dir dabei.

    sharp würd ich empfehlen. ist einfach das beste was ich bis jetzt hatte.

    was ist die homepage deines wettbewerbes?

  3. #13
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    Ja ich teile die ganze welt in 5x5 cm. Später möchte ich dann noch eben einfügen also in 5 cm Höhe und in 10 cm und 15 cm höhe. den es gibt ja hindernisse die man über fahren kann.

    sicher weiß der Rad encoder nicht in welche richtung das rad sich dreht obwohl es auch welche gibt die das können. aber du weiß es doch den du schickts ja den strom drauf oder nicht ?

    Die Scharps die ich meine sind enfernungs mess Sensoren auf IR basis das nutz dir aber nur was um andere Roboter zu erkennen und / oder wenn das Labyrint wände hat. aber so wie ich dich verstanden habe hat euer labyrint keine wände.

    der gedanke ist folgender wenn der Sharp nach vorne 30 cm misst dann kann man auch diese felder sofort grün markieren und das in die Karte eintragen. Aber wie gesagt das nützt nur was wenn du wände hast an denen du dich oritieren kannst.

    Das Problem bei diesem Verfahren ist halt nur der Speicher den man braucht. und den Speed bei der Suche durchs Array das ist bei mir halt nicht so ein problem habe einen ganzen PC dabei.

    Auch auf eine fehler bei den System will ich dich auf merksam machen.
    Das ganze taugt nix mehr wenn ein rad mal durch gedreht hat warum auch immer.

    Gruß
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  4. #14
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    40
    Beiträge
    398
    ICh habe mir die Antworten mal ausgedruckt und in ruhe durchgelesen.

    eine sache verstehe ich doch nicht. numerfive, ich kann deinem code doch nicht ganz folgen,
    aber die idee mit dem spielfeld teilen gefällt mir.


    POS[MAX_Spielfeld][2]
    POS [wert][0] und POS [wert][1]


    wiso nicht einfach POS[breite/5][lÄnge/5]
    POS [x][y]
    wenn die position 0.0 frei (f) ist, dann POS [0][0] = 'f' oder
    mit einer Zahl--> POS [0][0] = 1
    usw.


    ich würde gerne wissen ob das so auch geht, oder ob die andere art besser ist.

    um schon mal anzufangen will ich erstmal versuchen, dass sich der roboter auf einer matrize
    bewegt.das heisst, wie du schon sagtest, fängt er bei den koordinaten 0,0 an.

    Wie kann ich messen in welche richtung er fährt und wo er gerade ist?

    wenn beide räder gleich schnell drehen, fährt er als nÄchstes entweder auf 0,1 oder auf 0,-1
    sobald das encoder rad x umdrehungen gezählt (je nach reifengrösse) hat weis ich, dass ich schon 5cm gefahren bin und so
    im nächsten kästchen bin.

    Wie kann ich aber eine seitliche bewegung messen. Also das recht rad dreht schneller als das linke. dadurch würde der bot
    nach links fahren. wie messe ich jetzt ob der von 0,1 auf -1,1 oder -1, 2 gefahren ist?
    ich glaube ich muss dann mal googlen

    bevor ich das mit der kartenzeichnung in angriff nehme, will cih erstmal nur zeichnen wo der
    roboter gerade lang gefahren ist. dann wird der rest glaube ich auch einfacher.

    ach ja, und noch etwas, der roboter ist ja grÖsser als 5cm. seine Sensoren werden immer auf zwei verschiedenen feldern
    stehen. ist das ein problem bei der berechnung?

    richtig numberfive, wände gibt es nicht, es sind nur markierungen am boden

    das spielfeld ist ungefáht 2x2m meinst du, dass da der speicher reicht bei 5x5cm?

    hier der link zur internetseite:
    http://www.dcomg.upv.es/~chernan/gandibot/

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    Anbei mal eine Vorab ansicht des Textes andem ich zur Zeit arbeite vielleicht kann ich den mit deiner Hilfe Kompletieren.

    Vortext:

    Die Idee zu einem Kartenmodell im Roboter

    Die Welt wird zu einem Schachbrett und wir teilen sie in Quadrate auf.
    Die Größe der Quadrate ist eigentlich egal, aber sie ist ein Kompromiß zwischen Speicherbedarf und Genauigkeit. Je kleiner, desto genauer, aber desto mehr Speicher wird benötigt. Hier spielt die Robotergröße und der verwendete Controller und/oder PC eine Rolle.

    In meiner Berechnung und den Beispielen gehe ich von 5 cm Quadraten aus.
    Die von mir in C programmierten Berechnungen/Darstellungen sind so zu verstehen:

    Spielfeld 2 x 2m = 40 x 40 Quadrate = 1600 Werte.

    Die Zahl 40 paßt in 1 Byte (0 bis 255 oder alternativ definiert –127 bis +127)
    Also reicht das für jeden Punkt auf der Karte selbst wenn der Roboter sehr ungünstig aufgestellt wird.

    Beispiel:

    Bild hier  

    Wie man in dem oberen Bild sieht, ist die Koordinate immer vom Startpunkt des Roboters abhängig. Daraus ergeben sich folgende Vorgaben:

    Die Speicherstruktur muß so groß sein, das die Zahlenwerte sowohl in den positiven, wie auch in den negativen Bereich des Arrays passen. Warum? Wir wissen ja nicht, wo der Roboter startet.

    Problem: Da wir nicht wissen wo wir sind, können wir das Array nicht füllen, wenn wir es wie ein Koordinaten-System anlegen. In einer Array-Karte [40][40] finden wir den Punkt ja nicht.
    Also definieren wir die Karte anders:
    Karte[1600][2]
    Jetzt können wir die Karte von jedem Punkt ausgehend füllen.
    Der Nachteil ist aber, das der Speicherbedarf so eben mal auf das doppelte ansteigt: satte 3200 Byte für die Karte[1600][2], im Gegensatz zu den 1600 Byte bei der Karte[40][40]

    Noch ein Nachteil unserer definition der Karte uns Fehlt die Information über den Punkt. Wir können nur durch das suchen die Aussage treffen das wir schon mal dort waren.

    Also müßte die Karte[1600][3] definiert werden, um dieselbe Leistungsfähigkeit zu erhalten. Das wären aber dann schon 4800 Bytes = 4,7 Kbytes.

    Aus diesem Dilemma weiß ich zur Zeit auch keinen Ausweg.


    Ich finde ein paar Zeilen Code sagen mehr als tausend Worte:

    Code:
    int g_nLastEntry = 0;
    BYTE g_Karte[1600][3];
    
    
    bool WritePos(BYTE X,BYTE Y)
    {
    	for(int pos=0;pos< g_nLastEntry;pos++)
    	{
    		if((X = g_Karte[pos][0]) &&(Y = g_Karte[pos][1]))
    		{
    			return true;
    		}
    	}
    	g_Karte[g_nLastEntry][0] = X;
    	g_Karte[g_nLastEntry][1] = Y;
    	g_Karte[g_nLastEntry][2] = 1;
    	return false;
    }
    
    main()
    {
    	//Fahren
    	//Poserrechen
    	if(WritePos)
    	{
    		//Hier waren wir schon mal
    	}
    }

    Wie kommen wir auf X und Y:

    Wir wissen die Drehrichtung des Rades (vorwärts/rückwärts) und welches Rad wie viele Schritte macht (mit Steppern oder mit Rad-Decodern).

    Ist in der Zeit (t) die Anzahl der Tick's (Rad-Decoderimpulse oder Schritte des Steppers)
    gleich, bewegt der Roboter sich geradeaus. Wenn die Anzahl der Tick's, die 5 cm entsprechen erreicht sind, rechnen wir X+1 oder X-1 jenachdem ob vorwärts oder rückwärts gefahren wird.

    Beispiel:
    Ein Rad mit dem Durchmesser von 5 cm hat einen Umfang von 15,70 cm. Bei einem Rad-Decoder mit der Teilung 256 entspricht das dann 0,061 cm pro Tick. Dann sollten 82 Tick's ca. 5 cm sein.
    Wir brauchen also ein Rad welches den Takt angibt, entweder das Linke oder das Rechte. Je nach Lust und Laune.

    Jetzt wird es kompliziert: Die Kurve:

    Bild hier  

    Wir gehen von einem Rad-Abstand von 15 cm aus.
    Wenn ein Rad steht, ergibt das einen Kreisumfang (Wendekreis) von 94 cm.
    Wenn die Räder sich gegenläufig drehen (Drehpunkt liegt dann zwischen den Rädern), haben wir einen Kreisumfang von 47 cm.

    Fall 1: Ein Rad steht

    Nur das rechte Rad dreht sich um 30 Tick's nach vorne. Das entspricht einer Bewegung auf dem großen Kreis um 1,83 cm.
    Also:
    Länge Kreisbogen : b = pi* d *(Alpha/360) gesucht wird Alpha
    b = 1,83 cm
    d= 94 cm
    Alpha = ?

    b*360
    -------- = Alpha
    d*pi

    Richtig ?

    *Ende*

    Verstehst du das ?
    Das mit der Kurve zu berechen wird nichte ienfach aber ich hoffe das ich es trotzdem irgendwann erklären kann und ich mich nicht ganz täusche
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  6. #16
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.03.2005
    Ort
    Villach
    Alter
    33
    Beiträge
    995
    Die kreisbogenformel und Alpha stimmen. aber ich muss dich loben. ist eine gute idee das kartenmodell.

  7. #17
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    40
    Beiträge
    398

    gefunden

    Ich habe da im Internet noch ein PDF gefunden, auf dem das mit den koordinaten erklärt wird.
    wenn ihr wollt schreibe cih die formeln dieses wochenende mal ab und poste die.

    dort berechneten sie die position so:
    es wird gemessen in welchem winkel der roboter zum spielfeld steht.
    danach misst man um wie viel grad sich der roboter gedreht hat, und welche strecke er zurückgelegt hat. so ensteht dann der neue punkt.

    die karte in der grÓsse zu erstellen, ist das fúr nen normalesn pic zu gross?
    ich glaube fúr den wettbewerb von diesem jahr werde ich etwas anderes machen, aber das mit der karte, und die idee das in kästien zu teilen, das will ich am computer machen. ein halt etwas grösserer roboter. der vorteil ist halt, dass er viel speicherplatz hat.

  8. #18
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    40
    Beiträge
    398

    pdf

    Das pdf was ich gefunden habe, mÜsste man sich ganz durchlesen, es nützt glaube ich nicht viel, wenn ich nur einen Teil abschreibe.
    googled mal nach einer Datei die Dms.pdf heisst.
    oder nach dynamik mobiler systeme. Es handelt sich um einen interressanten text über dieses tema, mit formeln und bildern.

    Als, die karte in kleine felder zu teilen ist gut, aber wenn du gerade fährst, einfach x+1 zu rechnen, ist am anfang gut, aber wenn der roboter schon etwas gefahren ist, und auch öffter die richtung gewechselt hat, wird das immer ungenauer.
    es ist etwas anderes ob du ganz gerade über ein feld fÁhrst, oder schräg (der weg wird lÄnger).

    ich habe mal dein bild kopiert um zu zeigen was ich meine...

    in dem pdf wird erklÄrt, wie man das richtig macht.
    als erstes werden koordinaten vom spielfeld gemacht und danach weitere koordinaten um zu wissen wie der roboter zum spielfeld steht...

    ich glaube so kann man fehler und ungenauigkeit vermeiden
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken felder.gif  

  9. #19
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    Deswegen ja die gedanken mit der Kurve und klar ist natürlich auch das die Diagonale größer ist als die 5 cm. deswegen muss man ja auch die winkel änderung berücksichtigen.

    Mein Versuch und die Gedanken beziehen sich immer darauf das man eben halt nicht die Möglichkeit hat von aussen zu gucken. was vielleicht im Wettbewerb zwar geht aber nicht im "normalen" leben.

    Satz vom letzten wettbewerb "meinst du deine Freudin findet es doll wenn man über all in der wohnung cameras auf gestellt sind ?".

    Gruß
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  10. #20
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    40
    Beiträge
    398
    *g* der Spruch mit der Freundin war gut

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test