- 12V Akku mit 280 Ah bauen         
Seite 18 von 25 ErsteErste ... 81617181920 ... LetzteLetzte
Ergebnis 171 bis 180 von 246

Thema: Autonom in kleinen Dosen: R2_D03 + Nachfolger R3D01

  1. #171
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.687
    Anzeige

    E-Bike
    Meine ADC waren nicht von der Schweinepest befallen und laufen (wieder). Dafür kribbelte es mich, mal ein Döschen nicht nur rumrollern zu lassen. Ein kleines Teilprojekt gab mir neuen Antrieb und nun balanciert das MiniD0 - zumindest als Erlkönig und (noch?) nicht wirklich perfekt.

    Es gibt sogar ein Video (aufs Bild klicken, dann meldet sich YouTube):

    ................Bild hier  
    Geändert von oberallgeier (17.10.2016 um 19:01 Uhr) Grund: Neuer Bildserver
    Ciao sagt der JoeamBerg

  2. #172
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.07.2006
    Ort
    Puchheim
    Alter
    76
    Beiträge
    455
    Hi oberallgeier,

    das sieht doch echt super aus !

    Glückwunsch !


    Gruss
    mausi_mick

  3. #173
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.687
    Danke mausi_mick.

    Nun muss ich noch tiefer in die Regelungstechnik (baaaahhhhh - schauderhaft), damit ich den scheußlichen Ausleger wegbekomme und das Fahrverhalten weniger spastisch wird.
    Ciao sagt der JoeamBerg

  4. #174
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo oberallgeier,

    mach noch nen Haken dran, und dann auf zum angeln .

    Da hast du dir aber eine echte Sauerei ausgedacht. (Sieht ja noch viel mehr nach Schweinepest aus.)

    Wenn man das Video mal wieder 30- bis 42-mal ansieht, kann man erahnen, dass die Schwenkhöhe vom Sensor so um "Dosenhöhe durch 2,5" ist.
    Das ist nicht allzu viel. Somit ist natürlich auch der Messbereich vom Sensor extrem klein und die Abweichungen vom Sollwert ja noch nur die Hälfte.

    Liefert der Sensor in dem Abstandsbereich überhaupt 'glaubwürdige' Daten?
    Es kann ja sein, dass du dich gar nicht auf die Regelung (da stimme ich deinem "baaaahhhhh - schauderhaft" voll zu), sondern eher auf die Datenerfassung konzentrieren musst.

    Ansonsten bleibt auch mir die Spucke weg und ich stimme mausi_mick voll zu. Ratten-, bzw. um beim Thema zu bleiben: Saustark!

    Gruß Sternthaler
    Lieber Asuro programieren als arbeiten gehen.

  5. #175
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.687
    Zitat Zitat von Sternthaler
    ... Haken dran, ... zum angeln ...
    Da hast du dir aber eine echte Sauerei ausgedacht...
    Schade, dass ich Dich verpasst hatte. Was glaubst DU denn, was man sich hier, hinter allen bekannten Wäldern, den ganzen Tag ausdenkt? Das ist hier schlimmer als in unseren Kanzleien und Ministerien (kommt NICHT von mini - aber eben auch nicht von ministere). Aber mit Angeln hab ich es nicht so.

    Zitat Zitat von Sternthaler
    ... Somit ist natürlich auch der Messbereich vom Sensor extrem klein und die Abweichungen vom Sollwert ja noch nur die Hälfte ...
    Der GP2D120 hat aktuell einen Messabstand zwischen 54 und 83 mm, entsprechend rund 550 bis 350 digit. Anm.: Diagramme OHNE Motorbetrieb !

    ................Bild hier  

    Mit dem Ausleger habe ich so eine Art ("Evolventen-" *gggg*) Sinus, der ja um die Null Grad recht linear verläuft. Das hilft schon viel. Später, wenn ich das auf dem MiniD0 realisieren sollte, wird nach meiner Methode "Blindenstock" gemessen. Der Abstand ist dann rund 99 mm bis 110 mm und ich werde mit etwa 50 bis 60 digit auskommen müssen (genau - die Regelung muss mit der Hälfte leben). Geht wieder ein bisschen ans Limit. Dabei habe ich mich auf diese Eichkurve bezogen. Die selbstständige Kalibrierung war beim MiniD0 notwendig geworden, weil ich keine Spannungsregelung habe und bei meinen Fahrten ein deutliches Fading nach ein paar Minuten feststellbar ist . . . . Zur Vermeidung von Rundungsfehlern und natürlich mit Blick auf die Zeit verwende ich die digits gleich als Regelungsgrundlage und rechne nicht erst nach Längeneinheiten um.
    Nachtrag, spät abends: Die Messungen oben sind Einzelwerte ohne Durchschnittsbildung, Messzylus unter 60 ms. Damit hole ich fast alle (neuen) ADC-Werte des Sharp ab (ADATE = 1, ADCPrescaler = clock/12. Die Anfahrdellen bei einigen Kurven sind Nachschwinger nach dem Kippvorgang zwischen den beiden Extremwertmessungen - danach wurde die Wartezeit nach dem Kippen verlängert. Nach dem Kippen wird auch der neue Wert kontrolliert - manchmal schwingtkippt das Ding nämlich zurück.

    Zitat Zitat von Sternthaler
    ... Liefert der Sensor in dem Abstandsbereich überhaupt 'glaubwürdige' Daten ...
    Ist ja fies, dass Du mir solche Fehler zutraust - ich schreibe vermutlich immer noch zu viel über all den Blödsinn, den ich mache und all die Sackgassen in die ich blind renne. Aber guck Dir doch das Bild und die Eichkurve im Link an: im aktuellen Bereich ist die Steigung des Sharp schön: viele Messwerte bei wenig Weg. Im Bereich um die 100 mm ist das immer noch ganz ok, erst über 150 mm wird der Messwert für die hier diskutierte Regelung wenig Wert sein. Die Datenerfassung ist schon ein Problem: der Sharp liefert neue Messwerte leider nur im Abstand von 40 ms, das ist für die Zeitkonstante des "Dosen-" Pendels etwas langsam. Aber wers nicht probiert, hat ja schon verloren.

    Zitat Zitat von Sternthaler
    ... Ansonsten bleibt auch mir die Spucke weg ...
    Dagegen hilft bestimmt ein zügiger Zug aus einer vertrauenswürdigen Flasche. Prost!
    Geändert von oberallgeier (17.10.2016 um 19:09 Uhr) Grund: Neuer Bildserver
    Ciao sagt der JoeamBerg

  6. #176
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo zusammen,

    laßt euch bloß nicht von den "Evolventen" beeindrucken .
    Wahrscheinlich sind nun bei diesem 'Schwenkgewicht' die Getriebe-Zahnräder in den Antriebsservos so ausgefahren, dass dortige Abschabungen zu solchen Effekten führt. (Huuaaa, was für ein Unsinn kommt denn nun )


    Zitat Zitat von oberallgeier
    Aber wers nicht probiert, hat ja schon verloren.
    Da muss ich dir uneingeschränkt Recht geben.

    Zitat Zitat von oberallgeier
    ... ein zügiger Zug aus einer vertrauenswürdigen Flasche. Prost!
    Die Flasche war wie immer groß. Deshalb erst jetzt eine dumme Antwort. Muss ja bei klarem Verstand geschrieben werden.

    Zitat Zitat von oberallgeier
    Ist ja fies, ....
    ... ja, Ja, JA ... Bist du was anderes von mir gewohnt?
    Da ICH den "Messwert-Thread" von dir nicht gesehen, oder vergessen hatte, sollte das aber nicht heißen, dass DU das nicht schon lange erledigt hattes.
    Nun bist du aber trotzdem, oder gerade deshalb, der Angeschmierte, da du dich nun doch um "baaaahhhhh - schauderhaft" kümmern musst .


    Frohes Schaffen wünscht
    Sternthaler
    Lieber Asuro programieren als arbeiten gehen.

  7. #177
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.687
    Hallo Zuseher,

    Zitat Zitat von Sternthaler
    ... Wahrscheinlich ... Getriebe-Zahnräder in den Antriebsservos so ausgefahren ...
    Das spastische Fahrverhalten hatte schon diesen Verdacht geweckt. Nach den ersten Balanceakten waren bei Normalfahrt, einfacher Vor- und Rückwärtsfahrt mit Kurven, deutliche Schwingungen zu sehen, die zuerst auf Verschleiss im Getriebe und erst nach näherer Kontrolle auf Fehlanpassung des Reglers deuteten.

    Zitat Zitat von Sternthaler
    ... bist du aber trotzdem, oder gerade deshalb, der Angeschmierte ...
    Stimmt. Hobbies sind wie Urlaub "auf der Arbeit" - alles was zu tun ist, bleibt liegen, wenn Du es nicht selbst machst.

    Genauere Tests zeigten eine Fehlanpassung der Regelung. Daher wurden die Regelparameter geändert. Trotzdem blieben Störungen, die teilweise eher zufällig auftraten. Sie zeigten sich vor Allem beim Übergang von gewissen Manövern - beispielsweise bei einfacher Geradeausfahrt nach einem schnellen Turn. Hier half keine Anpassung der Regelungsparameter - und diese Arbeiten waren nicht nur unergiebig, sondern auch zäh und langandauernd (habs halt nicht gerafft was da los war).

    Zusätzliche Codeanpassungen hatten auch diese Störungen behoben. Dabei werden vor markant geänderten Fahranweisungen sämtliche Werte, die von der Regelung benutzt werden (letze Drehzahl u.ä.), auf Null initialisiert, die neue Teilfahrt bedeutet also immer ein Einschwingen des Reglers in seine Normalfunktion. Offensichtlich hatten vorhergehende Fahrweisen den Regler (bei der notwendigen Anpassung) so verstellt, dass er bei der neuen Fahrweise überreagierte.

    ................Bild hier  
    ................Die Testfahrt auf YouTube

    Die Testfahrt mit diesen Änderungen ist im Rahmen der apparativen Möglichkeiten recht ordentlich. Dabei wird das MiniD0 mit aktivierter Regelung, aber sonst nur mithilfe der Odometrie gefahren. Wieso "im Rahmen der apparative Möglichkeiten"? Die Getriebe hatte ich von der originalen Übersetzung ca. 768:1 auf ca. 90:1 umgebaut. Dabei habe ich mittlerweile beinhahe 1 mm Fahrweg pro "Tick" bzw. halber Motorumdrehung - beim R2D03/Dottie sind das eher 0,1 mm ! Das bedeutet beim MiniD0 bei einer engen Kurve schon eine Richtungsänderung um fast ein Grad mehr oder weniger . . . . . Ich finde, dass es trotzdem gelungen ist.
    Geändert von oberallgeier (17.10.2016 um 19:11 Uhr) Grund: Neuer Bilderserver
    Ciao sagt der JoeamBerg

  8. #178
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.687
    AUFRUF
    an die Regelungsexperten.

    Mit diesem Code bemühe ich mich, die beiden Motoren meines MiniD0 gleichmässig auf die geforderte Geschwindigkeit einzuregeln.
    Code:
    // =================================================================================
    // ===  HAUPTProgramm ==============================================================
    // Initialisierungen, LED1 kurzblinken als Signal für Programmstart,
    .....
      Kp12         =    2;  // Regelfaktor P-Anteil !!! Divisor ### war 5 (=1/5), dann 4
      Kp34         =    2;  // Regelfaktor P-Anteil !!! Divisor
      Ki12=Ki34    =   30;  // Regelfaktor I-Anteil !!! Divisor
      Kd12=Kd34    =    4;  // Regelfaktor D-Anteil !!! Divisor
    .....                          
    // =====  Ende des main =====
    // ================================================================================
    
    
    // =================================================================================
    // ===  Regelungsroutine für Motor 34  =============================================
    // Die gemessene Zeitdifferenz Iz_diff1 zwischen zwei Encoderinterrupts
    //   wird zur Regelung verwendet
                                      
      void rgl_mo_34(void)          // Regelung für Motor 34
    {                                 
                                      
      if (sspeed34 <= 15)           // Soll überhaupt gefahren werden?
      {                               
        OCR0A = 0;                  // Unter x mm/s soll nicht gefahren werden
        return;
      }                            
      tupsi34      = Iz_diff1;              // Übernahme Iz-Wert in Regelung
      ndrz34       = sspeed34;                
                                              
      ix34         = 8300 / tupsi34;        // => Ist-Geschwindigkeit in mm/s
      ie_mot34     = ndrz34 - ix34;         // Vergleich => Regelabweichung
                                              
      if (tupsi34 > 500) {tupsi34 = 500;}   // 22apr09-0847 Begrenze auf 500 statt 250
                                              
      isum34      += ie_mot34;                 
      if  (isum34  < -1000) { isum34  = -1000;}
      if  (isum34  >  1000) { isum34  =  1000;}
                                      
      iyp34        = ie_mot34 / Kp34;       // P-Anteil berechnen; Kptheor = 0,25 !!
      iyi34        = isum34 / Ki34;         // I-Anteil berechnen
      iyd34        = (ie_mot34 - ie_alt34) / Kd34;         // D-Anteil berechnen
                                       
      iy34         = iyp34 + iyi34 + iyd34;	// Gesamtkorrektur berechnet
                                      
      ie_alt12     = ie_mot12;
                                    
      if ( iy34    <   0 )   { iy34   =    0;}
      if ( iy34    > 255 )   { iy34   =  255;}
                                        
      OCR0A = iy34;                 // Ansteuerung der PWM direkt statt "setPWMxxx"
    //  PORTC ^=  (1<<PC4);           // "war-hier-Signal": LED auf PC4 toggeln
                                        
      return;                          
    }               
    /* ============================================================================== */
    Das obige Video zeigt, dass mit meiner Odometrie und dieser Regelung die Fahrt recht genau sein kann. Es gibt natürlich auch andere Videos - maximale Abweichung nach Rückkehr des MiniD0 rund 3 cm - nach etwa insgesamt 80 cm Fahrtstrecke (ohne Turn gerechnet), mit vier und 1/4 Vollkreisen, der 180°- und der 90°-Kurve. Sprich: die Reproduzierbarkeit der Fahrten ist unbefriedigend. Die Abweichungen haben wohl mehrere Gründe:

    1) Ungleiches Anfahren aus dem Stillstand. Als Abhilfe habe ich jedesmal beim Anfahren die PWM für einen Zyklus auf 250 gestellt . . .
    2) Mir fehlt natürlich die Kopplung der Antriebe bzw. eine Art Software-Differential, mit dem ich Nachhinken oder Vorlauf eines Antriebs in die Regelung bzw. die Vorgaben des anderen Antriebs übertragen kann. Dies könnte ja im schlimmsten Fall zu unkontrollierbaren Schwingungen führen.

    Frage: Wie mache ich so eine softwareseitige Verbindung der jeweiligen Abweichungen der beiden Antriebe - mit der die Fahrstrecken z.B. alle fünf bis 20 mm (hier also etwa fünf bis 20 Regelzyklen oder mehr) aufeinander abgestimmt werden können?
    Ciao sagt der JoeamBerg

  9. #179
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    ................
    ................Die Testfahrt auf YouTube
    Hallo Joe,

    schönes Ergebnis, fliessende Bewegungen. Leider bin ich mit der Regelungstechnik gar nicht vertraut. So bin in ich hier nur ein interessierter Zuseher.

    grüsse,
    Hannes

  10. #180
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.687
    Zitat Zitat von vohopri
    ... schönes Ergebnis, fliessende Bewegungen ...
    Danke Hannes für das Lob. Leider ist der Bewegungsablauf nicht so schön wie ich es will, insbes. die Reproduzierbarkeit krankt, siehe obigen Beitrag von mir.

    Also habe ich dies und jenes versucht - und bin drauf gekommen, dass ich trotz mancher theoretisch basierten Einstellung eher blind am Regler herumschraube. Ergo: simultane Aufnahme verschiedener Reglerdaten (das hätte mir gleich einfallen müssen). Praktischerweise passt ein mega328 in mein MiniD0 - auch wenn seine Datenkapazität immer noch mässig ist: ein Feld mit 100 wordbreiten Daten belegt schon 10% seiner Kapazität. Immerhin konnte ich etliche Werte aufnehmen. Dargestellt ist hier eine der ersten Messungen mit Werten, die in der ISR für den Encoder des rechten Motors erfasst wurden.
    Izeit_1 . . . . Bordzeit mit 50µs-Auflösung
    iy12 . . . . . . PWM-Stellwert für rechten Motor (= mot12 nach L293-Lesart). Regelung etwa 100/s
    lncges . . . . Encodertics-Gesamtstand zum Beobachtungszeitpunkt
    mdiff0 . . . . Encodertic-Abstand zum Beobachtungszeitpunkt mit 50µs-Auflösung (reziproke Geschwindigkeit)
    andere Werte

    ................Bild hier  

    Nun ist deutlich zu sehen, wie die Reglerwerte schwingen. Dass die Daten nur offline verfügbar sind, ist ein geringes Übel. Weitere Messungen werden folgen - natürlich auch für den zweiten Motor und auf anderen Wegstrecken. Ich hoffe, dass ich am Ende dieser Analysen der Frage nach dem elektronischen Differential bzw. nach (m)einer Differentialsperre näher kommen werde.

    Einige Dinge sind schon jetzt gut erklärbar. So zeigt beispielsweise die Wendetangente im frühen Verlauf von lncges das Kippen des nach vorne geneigten MiniD0 auf den hinteren Gleitpad an . . . *gggg* und die Gegenläufigkeit der Schwingungen von iy12 und mdiff0 ist ja nicht allzu schwer zu verstehen. Mal sehen, wie es weiter geht (auch wenn meist das schöne Wetter zu Kletter- und anderen Touren einlädt - und es gibt auch andere Dinge zu tun).
    Geändert von oberallgeier (17.10.2016 um 19:13 Uhr) Grund: Neuer Bilderserver
    Ciao sagt der JoeamBerg

Seite 18 von 25 ErsteErste ... 81617181920 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen