- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 38

Thema: Roboterbasis mit Mecanum Wheels

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Das ist jetzt erstmal alles nur simuliert?
    Also ich hab auf jeden Fall einen ordentlichen D-Anteil drin, da dieser die Schwingneigung gut unterdrückt. Wenn man den P- und I-Anteil hochschraubt, neigt der Regler nämlich stärker zum Schwingen, der D-Anteil dämpft das dann wieder etwas, daher finde ich den eigentlich ganz sinnvoll.
    Womit sendest du eigentlich deine Sollwerte an den Regler, kannst du das auch über Matlab machen oder lädst du da dann nachher nur die Messwerte rein zum rechnen und darstellen?
    AI - Artificial Idiocy

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Hi,

    Das ist jetzt erstmal alles nur simuliert?
    Also ich hab auf jeden Fall einen ordentlichen D-Anteil drin, da dieser die Schwingneigung gut unterdrückt. Wenn man den P- und I-Anteil hochschraubt, neigt der Regler nämlich stärker zum Schwingen, der D-Anteil dämpft das dann wieder etwas, daher finde ich den eigentlich ganz sinnvoll.
    Genau, das ist eine reine Simulation. Und da war der Vorteil, den der D-Anteil für die Regelgüte dann noch gebracht hat, wirklich minimal (beurteilt nach dem Summenfehler über alles). Falls Du Matlab hast, kannst Du mit dem Code auch rumspielen, dann siehst Du es. Kann auch vielleicht noch ein Bild dazu nachliefern. Wie groß der Unterschied zur Realität dann ist, weiß ich natürlich nicht. Das finde ich aber sehr spannend und freue mich insofern darauf, das jetzt auch auf der Motorelektronik zu implementieren. Ich habe leider gerade wenig Zeit, ich hoffe dass ich zwischendurch mal dazu komme. Ich habe auch noch das Problem, dass mein Sensorsignal ziemlich stark rauscht, ich muss da also noch auf eine gute Art filtern, ohne das System insgesamt deutlich träger zu machen.

    Womit sendest du eigentlich deine Sollwerte an den Regler, kannst du das auch über Matlab machen oder lädst du da dann nachher nur die Messwerte rein zum rechnen und darstellen?
    Im Moment ist das noch ganz stumpf gemacht, für die Kennlinien hab ich die Sollwerte hart in den Programmcode geschrieben. Es spricht ja aber grundsätzlich nichts dagegen, die über RS232 zu senden. Später möchte ich da ja I2C verwenden.

    Gruß
    Malte

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Hab da wirklich gerade nochmal ein wenig mit herumgespielt und an den Reglerparametern gedreht. Hab auch mal einen Anti-Windup für den Integratoranteil wie bei mir eingebaut. Mir ist auch aufgefallen, warum du keinen D-Anteil brauchst: du hast deinen Regler auf Drehzahlebene aufgebaut, ich hingegen auf Positionsebene. Jedenfalls hab ich jetzt folgende Parameter verwendet:
    Kp=50
    Ki=3
    Kd=1

    Der Regler funktioniert jetzt schön zackig und ohne Überschwinger

    Klicke auf die Grafik für eine größere Ansicht

Name:	malthy1_zps5a0c709a.png
Hits:	9
Größe:	5,3 KB
ID:	29867 Klicke auf die Grafik für eine größere Ansicht

Name:	malthy2_zps2d1b7109.png
Hits:	7
Größe:	6,4 KB
ID:	29868

    Hier nochmal der ganze Code:
    Code:
    clear all;
    close all;
    clc;
    
    if 0
        % sprünge
        soll = [zeros(1, 100) ...
                ones(1, 200)*20 ...
                zeros(1, 100) ...
                ones(1, 200)*-40 ...
                zeros(1, 100) ...
                ones(1, 200)*60 ...
                zeros(1, 100) ...
                ones(1, 200)*80 ...
                zeros(1, 100)];
    else
        % rampen
        soll = [-80:2:80 ...
                -80:1:80 ...
                -80:0.5:80 ...
                -80:0.25:80];
    end
    
    % streckeneigenschaften
    v = 0.38;
    T1 = 13;
    
    % PID parameter
    Kp = 50;
    Ki = 3;
    Kd = 1;
    Ta = 1; % entspr. 2.048 ms
    
    % init
    u=0;
    y = 0;
    eSum = 0;
    eOld = 0;
    yOld = 0;
    
    for i = 1:length(soll)
        w = soll(i);
        
        %% PID
        e = w - y;
        if abs(u)<208       %Anti-Windup, Integrator abschalten wenn Ausgang in Begrenzung
            eSum = eSum + e;
        end
        P = Kp*e;
        I = Ki * Ta * eSum;
        D = Kd/Ta*(e - eOld);
        u = P+I+D;
        eOld = e;
        u(u>208) = 208; % max. stellwert
        u(u<-208) = -208;
    
        
        %% PT1 strecke
        y = yOld + 1/T1 * (v * u - yOld);
        yOld = y;
        
        %% doku
        y_(i) = y;
        u_(i) = u;
        w_(i) = w;
        e_(i) = e;
        P_(i) = P;
        I_(i) = I;
        D_(i) = D;
    
    end
    
    % darstellung
    disp(['Summenfehler: ' num2str(eSum)])
    
    subplot(2, 1, 1)
    plot(soll, 'LineWidth', 2)
    hold on
    plot(y_, 'r', 'LineWidth', 2)
    set(gca, 'XLim', [0 length(y_)])
    xlabel('Zeit [Ticks]')
    ylabel('Drehzahl')
    legend('soll', 'ist')
    
    subplot(2, 1, 2)
    plot(P_, 'LineWidth', 2)
    hold on
    plot(I_, 'g', 'LineWidth', 2)
    plot(u_, 'r', 'LineWidth', 2)
    set(gca, 'XLim', [0 length(y_)])
    xlabel('Zeit [Ticks]')
    ylabel('Wert')
    legend('P', 'I', 'Stellwert')
    AI - Artificial Idiocy

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Hey,

    Mir ist auch aufgefallen, warum du keinen D-Anteil brauchst: du hast deinen Regler auf Drehzahlebene aufgebaut, ich hingegen auf Positionsebene.
    Achso, sorry, haben wir da die ganze Zeit aneinander vorbeigeredet? Mir geht es erstmal nur um eine Drehzahlregelung, ist ja nur als Antrieb für die Räder gedacht. Eine Positionsregelung könnte man draufsetzen, ich würde die aber auf einer Drehzahlregelung aufbauen.

    Gruß
    Malte

  5. #5
    Erstmal: Sehr cooles Projekt.

    Mit welcher Regelfrequenz möchtest du denn arbeiten?
    Bin gerade nämlich auf der Suche nach Sensoren für mein Projekt. Ich will einen ähnlichen Bot als Studienarbeit bauen, allerdings möglichst viel mit dem 3D Drucker arbeiten. Also werden die Räder gedruckt und mit Kugellager gelagert. Da das ganze Gebilde möglichst günstig und schnell reproduzierbar sein soll, werde ich beim Antrieb auf RC-Motor setzen und ihn untersetzen (muss erstmal evaluieren, ob mein 3D Drucker auch hinreichend genau und steif drucken kann). Deine Idee mit der separaten Regelelektronik für jedes Rad klingt sehr verlockend, habe mir das auch überlegt, allerdings will ich nicht nur die Drehzahl regeln, sondern auch die Drehung ( mittels Gyro ) um den Schlupf zu kompensieren.


    MfG,
    C_M

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Hi!

    Erstmal: Sehr cooles Projekt.
    Danke sehr!

    Mit welcher Regelfrequenz möchtest du denn arbeiten?
    Die ISR mit dem Regler wird alle 2.048 ms aufgerufen (ergibt sich aus dem 8 MHz Takt mit 64er Teiler für den 8 Bit Timer Overflow). Das sind also etwa 488 Hz Zyklusfrequenz. Ich filtere das Signal von dem Drehgeber aber nochmal deutlich, der Regler könnte durchaus auch langsamer laufen.

    [...] allerdings will ich nicht nur die Drehzahl regeln, sondern auch die Drehung ( mittels Gyro ) um den Schlupf zu kompensieren.
    Ich habe auf der Hauptplatine - die layoutet ist, die ich aber noch nicht habe herstellen lassen - ein MPU6050 Modul als IMU vorgesehen, damit könnte man evnt "Widersprüche" zwischen der Ansteuerung der Räder und der tatsächlichen Bewegung des Vehikels ermitteln, ob das praktisch funktionieren wird (und mit welcher Genauigkeit) weiß ich nicht.

    Ich kann hier bald nochmal ein paar Infos nachlegen, die Drehzahlregelung läuft jetzt einigermaßen, ich bin gerade dabei, die Platinen für die anderen Antriebe zu bestücken.

    Gruß
    Malte

  7. #7
    Moderator Robotik Einstein Avatar von HannoHupmann
    Registriert seit
    19.11.2005
    Ort
    München
    Alter
    42
    Beiträge
    4.534
    Blog-Einträge
    1
    Eine Frage, da ich selber plane einen Roboter auf Mecanum Rädern zu bauen: Wie laut sind dieser Räder auf Laminat?
    Auf den Videos die ich bisher gesehen habe, waren die hartplastik Räder systembedingt sehr laut. Gibt es diese auch mit einer Gummierung?

Ähnliche Themen

  1. 4WD Mecanum-Roboter
    Von HoboRobo im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 14
    Letzter Beitrag: 03.09.2013, 20:45
  2. Suche Händler für Mecanum Räder
    Von Franz112 im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 20
    Letzter Beitrag: 11.06.2013, 20:56
  3. Mecanum Rad oder Omniwheel? Ein Vergleich
    Von TheClerk im Forum Mechanik
    Antworten: 4
    Letzter Beitrag: 20.06.2011, 11:52
  4. Antworten: 6
    Letzter Beitrag: 08.06.2007, 16:57
  5. Pulling Test - Wheels, Tyres and Traction
    Von Vogon im Forum Mechanik
    Antworten: 4
    Letzter Beitrag: 08.02.2006, 18:34

Berechtigungen

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

Solar Speicher und Akkus Tests