Subversion Repositories FlightCtrl

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
662 salvo 1
*********************************************************************
2
GPS Implementierung von Peter Muehlenbrock ("Salvo") für Mikrokopter/FlightCrtl
698 salvo 3
Stand 9.2.2008
662 salvo 4
Verwendung der SW ohne Gewaehr. Siehe auch die Lizenzbedingungen in File Licensce_LPGL.txt und Licensce_GPL.txt
5
Die Version basiert auf Holgers V00.67g.
6
*********************************************************************
7
Hardware-Voraussetzungen:
8
Kalibrierter Kompass vom Typ CMPS03, waagrecht eingebaut
9
GPS Modul vom Typ ublox, Die Meldungungen "NAV_STATUS", "NAV_POSUTM" und "NAV_VELNED"
10
mussen mit 4 HZ Updaterate aktiviert sein. Alle Meldungen im NMEA Format muessen deaktivert sein.
11
Anschluss an RX Port der FlightCRtl. Baudrate ist 57600 wie beim Kopter Tool.
12
 
13
Software-Voraussetzungen:
14
In timer0.h muss die Ausrichtung des Kompasses bezogen auf die Nordachse des Kopters
15
eingetragen sein. Wenn KOMPASS_OFFSET > 0 wird dieser Wert genommen
16
Wenn KOMPASS_OFFSET = 0 ist wird der UserParameter4 verwendet (=hexfile). Da die Userparameter nur ein Byte lang sind werden
17
Offsets von 0...358 Grad durch einen Wert von 0...179 dargestellt.
18
 
19
Betriebs-Voraussetzungen:
20
Damit der Kompass sauber funktioniert, muss die waagrechte Lage (Gashebel Vollanschlag und Gier rechts)
21
im Eeprom abgespeichert worden sein.
22
 
23
Parametrierung:
24
Der GPS Hold Regler ist ein PID Regler, der ueber die UserParameter1(P), 2(I) und D(3) gesteuert wird.
25
UserParameter1 beschreibt den P(roportional)-Anteil, UserParameter2 den I(ntegral)-Anteil und UserParameter3 den D(ifferential)-Anteil.
26
Hier kann und muss gespielt werden.Alle Parameter koennen direkt im Mikrokoptertool in den Settings eingestellt werden.
27
 
28
Der P-Anteil wirkt einer Lageänderung entgegen. Je größer er ist, desto geringer die Regelabweichung, desto höher aber auch die Schwingneigung.
29
Der D-Anteil wirkt einer Geschwindigkeitsänderung entgegen und dient zur Reduzierung von Schwingungen, darf aber auch nicht zu gross sein.
670 salvo 30
Der I-Anteil dient nur dazu die Lageabweichung auf Null zu bringen.
662 salvo 31
P und D Anteil mussen gut aufeinander abgestimmt sein, damit die Einschwingzeit klein bei gleichzeitig geringer Schwingneigung ist.
698 salvo 32
Standarddwerte für P,I,D sind 60,8,100.
662 salvo 33
Wenn alle 0 sind, ist der Regler deaktiviert.
34
 
35
Voraussetzungen für GPS_Hold:
36
Neben den genannten HW und SW Voraussetzungen muß beim Kalibrieren das GPS MOdul bereits Positionsdaten liefern.
37
Nur dann wird die Home Position abgespeichert und nur dann wird GPS_Hold aktiviert.
671 salvo 38
Kenntlich gemacht wird dies durch einen etwas längeren Piepser nach dem Kalibrieren. Die Rote Led auf der FlightCrtl blitzt bei jedem Empfang eines kompletten
39
und korrekten Meldungsset ( "NAV_STATUS", "NAV_POSUTM" und "NAV_VELNED").
698 salvo 40
Folgende Möglichkeiten zur Aktivierung von GPS Hold gibt es:
41
Das GPS Aktiv Flag im Setting ist aktiviert
42
ODER
43
das GPS Aktiv Flag im Setting ist nicht aktiviert UND UserParameter5 hat einen Wert > 75 und < 170.
662 salvo 44
Eine Ausrichtung des Kopters nach Nord etc. ist nicht erforderlich.
45
 
46
Aktivierung GPS_Hold im Flug:
47
Wenn alle genannten Voraussetzungen erfüllt sind, wird GPS Hold im Flug automatisch aktiviert, sobald der Nick und Roll Stick
48
für ca. 500msec in Neutrallage sind. Weicht einer der Sticks davon ab (Parameter GPS_STICK_HOLDOFF) oder liefert das GPS Modul oder fällt der
49
Kompass aus wird GPS_Hold sofort deaktiviert.
50
Damit kann jederzeit die manuelle Kontrolle wieder übernommen werden.
51
 
52
GPS_Hold regelt nur horizontale Abweichungen, keine Hoehe.
53
Der Magnetkompass wird nur in waagrechter Lage dazu benutzt einen internen aus dem Giergyro ermittelten "Ersatz"kompasswert
54
nach zu kalibrieren. Daher funktioniert die Bstimmung der Kopterausrichtung in jeder Lebenslage, sofern nur ab und zu
55
der Magnetkompass in die waagrechte Lage kommt. Da der Giergyro per Kompass automatisch offsetkorrigiert wird, ist er spätestens nach
56
einigen wenigen Minuten auch bei Temperatursprüngen ausreichend stabil.
57
Ein 3D Kompass ist damit überflüssig.
58
Die GPS Regelung benötigt zwar pro Durchlauf eine erhebliche Rechenzeit. Da sie aber nur einmal je neuem Meldungsblock vom
59
GPS Modul (also alle 250ms) aufgerufen wird, wird die Gesamtbelastung der CPU nur minimal erhöht.
60
Ein externes Naviboard ist daher nicht notwendig.
61
 
62
GPS Rücksturz zur Basis (GPS Home) Funktion
63
Voraussetzungen wie bei GPS Hold.
698 salvo 64
Folgende Möglichkeiten zur Aktivierung von GPS Home gibt es:
65
Das GPS Aktiv Flag im Setting ist aktiviert UND  der Hoehenreglerschalter ("Parameter_MaxHoehe") hat einen Wert > 170
66
ODER
67
das GPS Aktiv Flag im Setting ist nicht aktiviert UND UserParameter5 hat einen Wert >170.
662 salvo 68
 
698 salvo 69
Holgers Code habe ich so abgeändert daß der Höhenregler mit "Parameter_MaxHoehe" >=50 aktiviert wird.
70
 
71
 
662 salvo 72
Weitere Änderungen:
73
-Bei Unterschreiten der eingestellten Warnschwelle für UBAT ertönt zunächst wie gewohnt der Piepser. Geht die Spannung weiter
74
runter wird zwangsweise die Gaseinstellung langsam reduziert um den Kopter zum Landen zu bringen.
75
 
76
-Der Ausgang PC6 kann benutzt werden um einen Externen Multiplexer zu schalten. Dieser schaltet entweder die GPS Daten
77
(Wenn Motoren eingeschaltet sind)  oder den Ausgang des Bluetoothmoduls (wenn Motoren ausgeschaltet sind)  auf den RX
78
Eingang der FlightCrtl. Damit kann eine zweite UART Schnittstelle bzw. die manuelle Umschaltung entfallen
79
 
80
-Bei vorhandenem Kompass wird eine automatische Kompensation der Giergyrodrift durchgeführt.
81
 
82
 
83
 
84
 
85
 
86
 
87
 
88
 
89
 
90
 
91
 
92
 
93
 
94
 
95