-         

Ergebnis 1 bis 8 von 8

Thema: Nibobee: Der PID-Regler ist noch nicht implementiert

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    03.04.2010
    Ort
    Delmenhorst
    Beiträge
    18

    Nibobee: Der PID-Regler ist noch nicht implementiert

    Anzeige

    Der Hersteller der Nibobee, Nicai Systems, hat noch keinen PID-Regler für die Nibobee fertig (Stand 04/2010).

    Meine Frage: Kann ich den Quellcode eines bestehenden PID-Reglers von einem anderen Roboter, z.B. eines Asuro, kopieren und evtl. für die Nibobee anpassen?

    Erklärung zum PID-Regler in der Wiki: http://www.rn-wissen.de/index.php/Re...nik#PID-Regler

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554

    Re: Nibobee: Der PID-Regler ist noch nicht implementiert

    Hi hanno,

    willkommen im Forum.
    Zitat Zitat von hanno72
    ... Nicai Systems hat noch keinen PID-Regler für die Nibobee fertig (Stand 04/2010) ...
    Ja - und ich bin auch noch immer nicht dran gegangen.

    ABER für meinen MiniD0 - ein kleiner Zweiräder - habe ich dieses Problem einigermassen gut gelöst. Allerdings will und werde ich irgendwann noch die letzten Prozentpunkte der Reglergüte raustüfteln. Danach werd ich sicher firm genug sein, um an die Biene zu gehen.

    Dein Link zur Regelungstechnik ist natürlich DAS Gebetbuch für unsere kleinen Maschinchen. Genau danach hatte ich auch gearbeitet. Zur Praxis hätte ich noch ein paar Beispiele für Dich, die zeigen, wie ich die Vorschriften aus dem Wiki-Kochbuch realisiert hatte und wie mein PID-Regler in C aussieht (ich bin ein total schlechter C-Programmierer). Einmal die Aufnahme der Sprungantwort und deren Auswertung. Einige Feinheiten zur Reglerabstimmung hatte ich hier und im nachfolgenden Posting beschrieben. Diese Feinheiten hatten mich erstmal bewogen das Thema beiseite zu stellen (... Nase voll ... brauchte Abwechslung ...). Natürlich sind die Links nur Anhaltspunkte MEINER Erfahrungen - im entsprechenden Thread habe ich teilweise Varianten dazu beschrieben die u.U. auch bessere Ergebnisse liefern. Und andere Threads zum Thema gibts wie Sand am Meer.

    Nun ist der Nibobee genauso ein trägheitsbehafteter Zweiräder wie mein MiniD0 mit zwei getrennten Motoren. Beim asuro ist die Regelung etwas anders - da wird eine gemeinsame Stellgrösse für beide Motoren errechnet und die Abweichung der beiden Motoren drauf"gepopelt" - ein recht pfiffige Lösung, die ich aber nicht verfolgt hatte. Vielleicht ist Dir das eine Hilfe und Anleitung ! ?

    Zitat Zitat von hanno72
    ... Meine Frage: Kann ich den Quellcode eines bestehenden PID-Reglers von einem anderen Roboter, z.B. eines Asuro, kopieren und evtl. für die Nibobee anpassen ...
    Sicher, natürlich. Aber ich würde eher sagen: Im Prinzip ja. Denn die Hauptarbeit liegt ja darin, die Regelungsparameter zu bestimmen, einen geeigneten Satz Regelungsgrössen - Variablen, Konstanten, Abtastraten und Regelungsfrequenzen - auszuarbeiten und das Ganze zu implementieren - ist Dir ja bestimmt schon alles klar. Da ist das bisschen Codeschreiben weniger Arbeit als past and copy und einen Code ändern, den man nicht selbst geschrieben hat - denke ich. Und viele Codes haben für mein Gefühl viel zu wenig Kommentare . . . . .

    Viel Erfolg - und schreib, wenns irgendwo klemmt.
    Ciao sagt der JoeamBerg

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    03.04.2010
    Ort
    Delmenhorst
    Beiträge
    18
    Ich muss feststellen, dass ein Regler doch einiges an Vorkenntnissen erfordert. Das habe ich mir leichter vorgestellt. Aber ich lasse es langsam angehen. Über sanftes Anfahren per PID-Regler habe ich mir vorher nicht viele Gedanken gemacht. Dazu gehört doch ziemlich viel Gehirnschmalz.

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    Zitat Zitat von hanno72
    ... muss feststellen, dass ein Regler doch einiges an Vorkenntnissen erfordert. Das habe ich mir leichter vorgestellt ...
    Das ging mir genauso, ich wollte da ewig nicht dran. Aber irgendwann ging ich da drüber und nach ein paar langwierigen Stunden war ich durch. Aber das war noch bei weitem nicht ok. Nach einigen Erfahrungen mit der angewandten Regelungstechnik musste ich deutlich nachbessern. So schien es auch mehreren hier im Forum zu gehen. Also - nur Mut, Du schaffst es schon! Vielleicht ist das hier eine kleine Hilfe für den Anfang - weil halt leider oft vergessen wird, sich sein System richtig vorzustellen.

    ................
    ................Handsizze zur Klärung "was Sache ist".
    Ciao sagt der JoeamBerg

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    03.04.2010
    Ort
    Delmenhorst
    Beiträge
    18
    Der genannte Thread kann mir bei PID-Regler weiterhelfen. Ich beschränke mich aber vorerst auf einen schnöden P-Regler, der offenbar ein doofes Verhalten hat, unter dem ich mir aber noch etwas vorstellen kann. Analog zum oberallgeier gedenke ich, meine Istwerte mit tupsi und Sollwerte mit stupsi zu benennen und hoffe, dass diese Bezeichnungen Geschichte in der Ingenieurswissenschaft schreiben werden.
    stupsi12 - Soll Timer Units Per Sensor Interrupt 12
    Vielleicht verstehe ich auch irgendwann mal den PID-Regler aus der alternativen Lib von bantyy und tu den in meine Nibobee (Thread: http://www.roboternetz.de/phpBB2/viewtopic.php?t=53980)

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    03.04.2010
    Ort
    Delmenhorst
    Beiträge
    18

    Was heißt eigentlich "nicht implementiert"?

    Guten Morgen,

    Ich habe gerade erkannt, dass die Sourcen für den PID-Regler ja sogar schon in der Nibobeelib drin sind! *tomatenvondenaugenentfern* (/include/nibobee/motpid.h und /lib/nibobee_pid.a)

    Wenn ich die niblibobee_pid.a in meine AVRStudio-Libraries aufnehme und einen #include dafür in mein Programm schreibe, ist auch alles gut.

    Testweise habe ich dann mal die Methode motpid_stop(0) aufgerufen, aber AVRStudio meldet einen fehlenden Verweis:

    [motpid.c: (.text.__vector_8+0x4c): undefined reference to `clock_inc_irq'

    Diese Methode steht in clock.c. Bloß leider gibt es im lib-Verzeichnis keine nibobee_clock.a oder Ähnliches. Hat jemand vielleicht den PID-Regler schon mal eingebunden und kann mir helfen?

    Danke vorab.

    Gruß
    Hanno

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    03.04.2010
    Ort
    Delmenhorst
    Beiträge
    18
    Sechs Monate später...
    Ich habe dieses Problem immer noch. Hat denn noch nie jemand den PID-Regler für die NiboBee verwendet? Ich wundere mich über den Fehler, weil es eine Original-Nibo-Bibliothek ist.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    03.04.2010
    Ort
    Delmenhorst
    Beiträge
    18
    Gelöst

    Jedem, der ähnliche Probleme hat, sei gesagt, dass die Reihenfolge der Includes <> ziemlich wichtig ist. Auch lohnt sich ein Blick im AVRStudio auf Project->Configuration Options->Libraries

    So ging es dann:

    Code:
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <util/delay.h>
    #include <stdio.h>
    #include <nibobee/delay.h>
    #include <nibobee/iodefs.h>
    #include <nibobee/i2cmaster.h>
    #include <nibobee/usart.h>
    #include <nibobee/motpwm.h>
    #include <nibobee/motpid.h>
    #include <nibobee/analog.h>
    #include <nibobee/odometry.h>
    #include <nibobee/led.h>
    #include <nibobee/sens.h>
    #include <nibobee/line.h>
    #include <nibobee/bgx1.h>
    #include <string.h>

Berechtigungen

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