Subversion Repositories FlightCtrl

Rev

Rev 182 | Go to most recent revision | Blame | Last modification | View Log | RSS feed

*********************************************************************
GPS Implementierung von Peter Muehlenbrock ("Salvo") fürMikrokopter/FlightCrtl
Stand 29.9.2007
Verwendung der SW ohne Gewaehr. Siehe auch die Lizenzbedingungen in den Files gps.c, math.c
*********************************************************************

Hardware-Voraussetzungen: 
Kalibrierter Kompass vom Typ CMPS03, waagrecht eingebaut
GPS Modul vom Typ ublox, Die Meldungungen "NAV_STATUS", "NAV_POSUTM" und "NAV_VELED"
mussen mit 4 HZ Updaterate aktiviert sein. Anschluss an RX Port der FlightCRtl.

Software-Voraussetzungen:
in fc.h müsen die Neutralwerte ACC_X_NEUTRAL und ACC_Y_NEUTRAL
eingetragen werden. Hierzu den Kopter waagrecht ausrichten (Wasserwaage) und mit dem Mikrokoptertool 
die Neutralwerte ermitteln. 
In timer0.h muess die Ausrichtung des Kompasses bezogen auf die Nordachse des Kopters 
eingetragen sein. KOMPASS_OFFSET legt diesen Wert fest. 

Hexfiles:
Ich habe bewußt keinen Hexfile generiert, da die Neutralwerte spezifisch je Kopter sind. 
Die SW muß also individuell compiliert werden und der Hexfile in die FlightCrtl eingebaut werden.
Der Lohn für die Muehe ist eine sehr driftarme Fluglageregelung sowie eine von der Startausrichtung 
unabhängige waagrechte Lage in der Luft.
Alle Einstellungen beziehen sich auf AVR Studio von Atmel und den WIN_AVR Compiler.

Parametrierung:
Der GPS Hold Regler ist ein PID Regler, der ueber die UserParameter1(P), 2(I) und D(3) gesteuert wird.
UserParameter1 beschreibt den P-Anteil, UserParameter2 den I-Anteil und UserParameter3 den D-Anteil.
Hier kann und muss gespielt werden. Wenn alle 0 sind, ist der Regler deaktiviert.
Standardwerte sind 8 für den P-Anteil, 1 für den I-Anteil und 18 für den D-Anteil.

Voraussetzungen für GPS_Hold:
Neben den genannten HW und SW Voraussetzungen muß beim Kalibrieren das GPS MOdul bereits Positionsdaten liefern.
Nur dann wird die Home Position abgespeichert und nur dann wird GPS_Hold aktiviert.
Kenntlich gemacht wird dies durch einen etwas längeren Piepser nach dem Kalibrieren.
Das GPS Aktiv Flag im Setting muss aktiviert sein. Eine Ausrichtung des Kopters nach Nord etc. ist nicht erforderlich.

Aktivierung GPS_Hold im Flug: 
Wenn alle genannten Voraussetzungen erfüllt sind, wird GPS Hold im Flug automatisch aktiviert, sobald der Nick und Roll Stick
fürca. 500msec in Neutrallage sind. Weicht einer der Sticks davon ab (Parameter GPS_STICK_HOLDOFF) oder liefert das GPS Modul keine
gueltigen Daten mehr wird GPS_Hold sofort deaktiviert.
Damit kann jederzeit die manuelle Kontrolle wieder übernommen werden.

GPS_Hold regelt nur horizontale Abweichungen, keine Hoehe.  
Der Magnetkompass wird nur in waagrechter Lage dazu benutzt einen internen aus dem Giergyro ermittelten "Ersatz"kompasswert 
nach zu kalibrieren. Daher funktioniert die Bstimmung der Kopterausrichtung in jeder Lebenslage, sofern nur ab und zu 
der Magnetkompass in die waagrechte Lage kommt.
Ein 3D Kompass ist damit überflüssig.

Bekannte Maengel:
Leichte Schwingneigung, bei längerer Neigung weicht der Ersatzkompass ab.
PID Regler muss noch besser parametriert werden.