-         

Ergebnis 1 bis 7 von 7

Thema: Kompass zur exakten Ausrichung Mathe-Problem

  1. #1
    Unregistriert
    Gast

    Böse Kompass zur exakten Ausrichung Mathe-Problem

    Anzeige

    Hallo an Alle,

    ich habe da ein Problem dass mich jetz schon den kompletten Abend gekostet hat und ich bekomme es einfach nicht hin.

    Erst mal zur Erklärung:
    Ich habe eine elekt. Kompass der mir nach einer Berechnung die Abweichung zu meiner Startausrichtung im Bereich von +/- 180° liefert. D.h. wenn ich ihn um 30 Grad nach rechts drehe, bekomme ich (logischerweise) zurück, dass er um +30 gedreht ist. Soweit so gut.
    Ich will das ganze jetzt nutzen um mich exakt zu drehen. (Der Roboter hat Ketten und dreht somit ziemlich ungenau.)
    Ich gebe vor, dass er sich um 90° drehen soll. Wenn er die 90° nicht exakt erreicht hat, wird nachkorrigiert, bis er richtig steht. Ich gebe also einen "Zielwinkel" vor (Relative Ausrichtung zum Startwinkel), auf den er sich ausrichten soll.

    Das Problem:
    Den "Fehler-Winkel", der nachkorrigiert werden muss, kann ich problemlos berechnen, aber bei der Drehrichtung bekomme ich Probleme.
    Ich wollte es erst irgendwie kurz und schnell lösen, da ich nicht erwartet hatte, dass mir das ganze solche Probleme bereitet. Nachdem das nicht funktioniert hat, habe ich versucht, jeden möglichen Fall durch "if's" abzudecken. Da es verdammt viele verschiedene Möglichkeiten gibt, die man berücksichtigen muss (unterscheidl. Vorzeichen der Winkel,...) , komme ich dauernd durcheinander und habe jetzt aufgegeben
    Wird vielleicht klarer, wenn man es aufzeichnet. (Richtung in die der Roboter zeigt, Ziel-Richtung und daraus resultierende Drehrichtung). Auf dem Blatt sieht es relativ einfach aus, aber ich bekomme es einfach nicht in mein Programm übertragen.

    Wäre toll, wenn mir jemand helfen könnte !

    Mit freundlichen Grüßen,
    Andreas R.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Mcgrizzly123
    Registriert seit
    15.06.2012
    Beiträge
    142
    Hi

    nur als Idee wie wäre es wenn man die Rohdaten vom Kompass -180 bis +180 umrechnet, dass man 0 bis 360 Grad erhält. Damit müsste sich der Rest schon vereinfachen lassen.
    | Mfg |
    | McGrizzly123 |

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von White_Fox
    Registriert seit
    04.10.2011
    Beiträge
    957
    Nachdem das nicht funktioniert hat, habe ich versucht, jeden möglichen Fall durch "if's" abzudecken.
    Ohne dein Programm im Einzelnen zu kennen (Ist das C oder was höheres?) würde ich spontan behaupten, dass eine Switch-Abfrage den ganzen Code sehr viel übersichtlicher gestalten würde. Und die Konvertierung von -/+180 nach 0-360 (einfach nur 180 draufaddieren bzw. bei Überlauf wieder 360 subtrahieren) könnte das Ganze tatsächlich erheblich vereinfachen.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Hi,

    ich würde einfach eine kleine Abfrage reinmachen, ob abs(Soll-Ist) < 180 oder nicht. Je nachdem musst du dann nur noch in die eine oder andere Richtung drehen.
    Oder stelle ich mir dein Problem gerade zu einfach vor?

    Gruß
    Chris

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.245
    http://www.roboternetz.de/community/...chtsrum-kürzer Da hatte ich das gleiche Problem.
    Ich habs inzwischen in Griff.
    Zuerst muss die Kursabweichung zwischen Soll und Ist berechnet werden:

    kursAbweichung=(winkelSoll-winkelIst)%360;
    if(kursAbweichung<0)
    {kursAbweichung +=360;}

    und dann teilt man es auf:
    if(kursAbweichung<=180) // müssen wir rechtsrum
    if (kursAbweichung>180) //nach links lenken

    funktioniert einwandfrei.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  6. #6
    Unregistriert
    Gast

    Kompass zur exakten Ausrichung Mathe-Problem

    Vielen Dank für eure Antworten !

    Der Kompass liefert mir eigentlich 0-360° ich habs selber in +/- 180 umgerechnet. Kam mir einfacher vor. Da hab ich mich wohl getäuscht.

    Ich werde den code-schnipsel mal testen.
    Irgendwie habe ich glaube ich auch noch Probleme mit dem Kompass (CMPS10). Der spinnt manchmal.

    Vielen Dank nochmal ! Endlich mal ein Forum, das wirklich weiterhilft

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.245
    Wenn ein magnetischer 3achs-Sensor ist (ich benutze den HMC5883l), muss der kalibriert werden!
    Sonst funktioniert er nur mehr oder weniger- und nur bei grösserem Abstand zu Eisen oder Magnetfeldern überhaupt brauchbar.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

Ähnliche Themen

  1. Problem mit Mega644p und Kompass HMC5883
    Von lord-maricek im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 26.09.2011, 10:42
  2. I2C - Problem Kompass-Sensor CMPS03 und C-Control UNIT M2.0
    Von Luftikus im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 20.07.2011, 19:07
  3. IR/US-Baken zur exakten Indoor-Positionsbestimung
    Von Felix G im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 7
    Letzter Beitrag: 13.08.2009, 22:16
  4. Kompass - Problem
    Von Javik im Forum Sensoren / Sensorik
    Antworten: 11
    Letzter Beitrag: 09.02.2005, 15:03
  5. Problem mit Kompass CMPS03
    Von Phönix im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 5
    Letzter Beitrag: 07.11.2004, 19:03

Benutzer, die dieses Thema gelesen haben: 1

Berechtigungen

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