Subversion Repositories Projects

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
550 rain-er 1
0. Allemeine Hinweise
2
Bevor Mission Cockpit verwendet werden kann müssen einige Vorbereitungen gewissenhaft durchgeführt werden.
3
Das kann einige Zeit in Anspruch nehmen. Nehmt euch die Zeit oder lasst es gleich bleiben ;-)
4
Aber glaubt mir, der Zeitaufwand ist es wert!
5
 
6
Also bitte die folgenden Punkte unbedingt durchlesen, verstehen und gewissenhaft umsetzen!
7
 
8
Beachte die Regeln für den Betrieb von ferngesteuerten Flugmodellen!
9
 
10
 
11
1. Update von früheren Programm-Versionen
12
Einstellungen werden in der Datei mkcockpit.xml gespeichert.
13
Mit neueren Programmversionen sind neue Konfigurationseinträge dazugekommen, für die es
14
momentan keine Default-Einstellungen gibt, die aber vom Programm unbedingt benötigt werden.
15
Deswegen muss eine vorhandene mkcockpit.xml mit der bei der jeweiligen Programmversion beiliegenden
16
mkcockpit.xml manuell gemerged werden. Das kann mit einem beliebigen Editor erfolgen,
17
komfortabel geht es mit WinMerge (www.winmerge.org).
18
 
19
 
20
2. Perl Interpreter
21
Mission Cockpit ist in der Scriptsprache Perl/Tk programmiert.
22
 
23
Zur Ausführung des Programms wird Perl Version 5.10.0 benoetigt.
24
 
25
Mission Cockpit ist nicht als EXE-File verfuegbar.
26
 
27
Den Perl Interpreter fuer Windows bekommt man z.B. hier: http://www.activestate.com/activeperl
28
 
29
Mission Cockpit benoetigt folgende Perl-Packete:
30
	Tk
31
	Tk::Balloon
32
	Tk::Dialog
33
        Tk::Notebook;
34
	Math::Trig
35
	XML::Simple        # http://search.cpan.org/dist/XML-Simple-2.18
36
	Geo::Ellipsoid     # http://search.cpan.org/dist/Geo-Ellipsoid-1.12
37
	threads            # http://search.cpan.org/~jdhedden/threads-1.72
38
	threads::shared    # http://search.cpan.org/~jdhedden/threads-shared-1.28
39
	Thread::Queue      # http://search.cpan.org/dist/Thread-Queue-2.11
40
	Time::HiRes        # http://search.cpan.org/~jhi/Time-HiRes-1.9719
41
	Win32::SerialPort  # http://search.cpan.org/dist/Win32-SerialPort
42
 
43
Die Packete liegen, bis auf Tk, betriebsbereit in der Mission Cockpit Umgebung im Verzeichnis "perl"
44
Sie werden verwendet, falls sie im standard Perl-Verzeichnis nicht existieren.
45
Die Packete kann man sich alternativ auch aus dem CPAN beschaffen.
46
Tk kann man mit dem Perl-Packet-Manager PPM.EXE installieren, z.B. "ppm install Tk"
47
 
48
3. Unterstuetzte Betriebssysteme
49
Das Programm wurde unter Windows Vista und Windows XP entwickelt.
50
 
51
Bis auf das verwendete Packet "Win32::SerialPort" sollte das Mission Cockpit auch unter Linux funktionieren.
52
Fuer Linux gibt es das Packet "Device::Serialport" mit der gleichen Schnittstelle.
53
mkcomm.pl und track.pl sind fuer "Device::Serialport" vorbereitet, sollte theoretisch
54
auch unter Linux laufen. Ausprobiert habe ich das allerdings nicht!!
55
 
56
 
57
4. Programmstart
58
mkcockpit.pl   bzw.  perl mkcockpit.pl
59
 
60
 
61
5. Voraussetzung Flight-Ctr und Navi-Ctrl
62
Entwickelt wurde mit FC 0.73d und NC 0.15c
63
 
64
NC-Versionen kleiner als 0.15c funktionieren nicht, wegen der ständig inkompatiblen Änderungen
65
des Debug- und Navidata-Datensatzes der NC.
66
 
67
 
68
6. Karte fuer das Flugfeld definieren
69
Die Karte fuer das Flugfeld muss als JPEG, PNG oder GIF-Datei vorliegen.
70
Sie kann eine beliebige Größe haben.
71
Die Karten werden im Verzeichnis "map" abgelegt.
72
Die Karte kann eine beliebige Ausrichtung haben. Norden muss nicht oben sein.
73
Als Quelle eignet sich z.B. ein Screenschot von Google Earth.
74
 
75
Im Verzeichnis "map" können mehrere Karten-Definitionen als XML-Dateien abgelegt werden.
76
Eine XML-Datei kann eine oder mehrere Karten-Definitionen enthalten.
77
Die Auswahl der gewuenschten Karte erfolgt im Konfigurations-Dialog, Reiter "Karte"
78
 
79
Die XML-Datei muss momentan manuell angelegt und editiert werden.
80
Eine XML-Datei hat folgenden Aufbau:
81
 
82
<mkcockpit-Maps>
83
  <Hemhofen
84
      Name="Hemhofen"
85
      Size_X="800"
86
      Size_Y="600"
87
      File="hemhofen-800.png"
88
 
89
      P1_x="66"
90
      P1_y="62"
91
      P2_x="778"
92
      P2_y="488"
93
      P1_Lat="49.685333"
94
      P1_Lon="10.250134"
95
      P2_Lat="49.882949"
96
      P2_Lon="10.344580"
97
 
98
      Home_Lat="48.683734"
99
      Home_Lon="11.945960"
100
 
101
      Offset_x="5"
102
      Offset_y="5"
103
 
104
      Track_Lat="48.685333"
105
      Track_Lon="11.950134"
106
      Track_Alt="512"
107
      Track_Bearing="10"
108
 
109
      Border="555, 430,
110
              516, 555,
111
              258, 555,
112
              100, 300,
113
              580, 260,
114
              530, 94,
115
              627, 130,
116
              735, 300,
117
              680, 400,
118
              757, 470,
119
              720, 515,
120
              575, 420,"
121
      />
122
</mkcockpit-Maps>
123
 
124
 
125
Die XML-Datei muss dem gängigen XML-Syntax entsprechen.
126
Folgende Werte sind optional und können entfallen:
127
 
128
  Home_Lat, Home_Lon:
129
  Home-Position für den Player. Wenn nicht angegeben wird die Home-Position vom MK verwendet.
130
 
131
  Offset_x, Offset_y:
132
  Für kleine Korrekturen der Kalibrierung. Die auf der Kart dargestellten Objekte wden um die
133
  Anzahl der angegeben Pixel verschoben.
134
 
135
  Track_Lat, Track_Lon, Track_Alt, Track_Bearing:
136
  Position und Blickrichtung der Tracking-Antenne, falls abweichend vom MK-Startpunkt
137
 
138
  Border:
139
  Polygon der Flugfeldbegrenzung
140
  Die Koordinaten sind Pixel-Koordinaten bezogen auf das Hintergrundbild.
141
  Der Ursprung 0/0 ist links oben.
142
 
143
 
144
7. Kalibirieren der Karte
145
Die Karte muss gewissenhaft kalibiriert werden!
146
Dazu werden bei der zu kalibrierenden Karte in in der entsprechenden XML-Datei im "map"-Verzeichnis
147
fuer zwei markante Punkte P1, P2 die Pixel-Koordinaten und die dazugehoerigen GPS-Koordinaten eingetragen.
148
P1 und P2 sollten moeglichst weit auseinader liegen, z.B. P1 links oben und P2 rechts unten.
149
Man kann zunaechst beliebige Werte eintragen und dann das Programm starten.
150
Die Pixel-Koordinaten werden in der Statuszeile angezeigt, wenn man mit der linken Maustaste auf
151
die Karte klickt. Die entsprechnden GPS-Koordinaten kann man z.B. im Google Earth ermitteln.
152
 
153
Anmerkung:
154
Da ist scheinbar ein kleiner Bug in der Kalibrierung. Der Punkt P1 muss oberhalb und links von P2 liegen.
155
 
156
 
157
8. Daten-Link zum MK
158
Das Programm benoetigt unbedingt einen stabilen Daten-Link zum Debug-Port der Navi-Ctrl.
159
Das WI.232 Modul hat sich bei mir auch bei grosser Entfernung (250 m) als zuverlaessig erwiesen.
160
Kommuniziert wird ausschliesslich mit der Navi-Ctrl.
161
Es werden OSD- und Debug-Datensatz von der NC, Target- und Waypoint-Datensatz zur NC verwendet.
162
 
163
 
164
9. Konfiguration
165
Die Konfiguration wird in mkcockpit.xml gespeichert.
166
Konfigurieren kann man im Mission Cockpit, Menu "Datei -> Einstellungen".
167
ALternativ kann man die XML-Datei auch direkt editieren.
168
Bei Konfiguration im Mission Cockpit ist zu beachten, dass die meisten Einstellungen erst bei
169
Programm-Neustart wirksam werden!
170
 
171
Um einen guten Kontrast zwischen der Karte und den auf die Karte gezeichneten Objekte zu erhalten
172
kann es erforderlich sein, die Farbe der Objekte umzudefinieren.
173
Die Farben koennen im Konfigurations-Dialog eingestellt werden. Gueltige Werte sind:
174
- Namen, z.B. red, green, blue, ...
175
- RGB Hex-Werte, z.B. #ff0000  (= rot)
176
 
177
 
178
10. Waypoint-Fliegen - Klassische Art von der NC gesteuert
179
Waypoints werden per rechter Maustaste gesetzt und sofort an den MK uebertragen.
180
Waypoints kann man per Drag/Drop mit der linken Maustaste verschieben. Die Waypoint-Verbindungslinien
181
werden dann rot angezeigt. Das bedeutet, dass die angezeigten Wegpunkte nicht mehr mit den bereits zum
182
MK uebertragenen Wegpunkten uebereistimmen. Die Waypoints muessen dann per rechtem Maustaste-Menue
183
"Alle Wegpunkte erneut senden" an den MK uebertragen werden.
184
 
185
Der MK beginnt die Waypoints abzufliegen, wenn per RC-Fernsteuerung der "Coming Home" Modus aktiviert wird.
186
Nach dem letzten Wegpunkt fliegt der MK automatisch zur Home-Position zurueck.
187
 
188
Die Navi-Ctrl kann max. 20 Wegpunkte aufnehmen.
189
 
190
Das Wegpunkt-Fliegen kann unterbrochen werden, indem per RC von "Coming Home" auf "Position Hold"
191
geschaltet wird. Wenn dann wieder auf Coming Home" geschaltet wird faengt der MK wieder von vorne mit
192
dem ersten Waypoint an.
193
 
194
 
195
11. Waypoint Player - Die innovative Art vom Mission Cockpit gesteuert
196
Das klassische vom NC gesteuerte Waypoint-Fliegen ist relativ unflexibel und wird relativ schnell langweilig.
197
Deswegen habe ich einen vom Mission Cockpit gesteuerten Waypoint-Player implementiert.
198
Der Waypoint-Player sendet ständig Target-Datensätze an den MK, ähnlich wie beim Follow-Me oder Follow-Bär.
199
Damit hat man wesentlich mehr Möglichkeiten:
200
- Beliebig viele Waypoints
201
- Die Steuerung  des Wp-Players erfolgt wie bei einem CD-Player:
202
     >    Starten des Waypoint-Players
203
          Key: Leertaste
204
     ||   Pause - Der MK bleibt an der momentanen Position stehen. Mit ">" kann der WP-Flug fortgesetzt werden
205
          Key: Leertaste
206
     >>   Anfliegen des nächsten Wegpunktes
207
          Key: n
208
     <<   Anfliegen des vorherigen Wegpunktes
209
          Key: p
210
     |<<  Anfliegen des ersten Wegpunktes
211
          Key: f
212
     >>|  Anfliegen des letzten Wegpunktes
213
          Key: l
214
     Home Anfliegen der Home-Position
215
          Key: h
216
     Stop Beenden des Waypoint-Players. Der klassische Waypoint-Modus wird wieder aktiviert.
217
          Key: s
218
 
219
  Die Steuerung erfolgt entweder mit:
220
  - Maus und die am unteren Bildschirmrand eingeblendeten Symbole
221
  - Tastatur - Tastenbelegung siehe oben
222
  - Einer programmierbaren PC-Fernbedienung, die Tastatureingaben simuliert.
223
    Ich verwende z.B. eine X10-Fernbedienung, die oft Medion-PCs zur Steuerung des MediaCenter beiliegt,
224
    in Verbindung mit EventGhost (www.eventghost.org).
225
  - Vista Sprachsteuerung kann Tastaureingaben simulieren.
226
 
227
Zum Fliegen mit dem Waypoint-Player muss sich der MK im "Coming Home"-Modus befinden, so
228
wie auch beim normalen WP-Fliegen, und zusätzlich mit  ">" gestartet werden.
229
Der Waypoint-Player arbeitet, wenn in der Modus-Anzeige "Play" oder "Pause" angezeigt wird.
230
 
231
Der Waypoint-Player kann bereits im PH-Modus mit ">" gestartet werden.
232
Nach Umschalten auf CH fängt der Waypoint-Player an die Zielkoordinaten zu senden und abzufliegen.
233
 
234
Da der Waypoint-Player immer nur den nächsten Waypoint an den MK überträgt kann die Waypoint-Liste noch
235
geändert werden oder neue Waypoints hinzugefügt werden, während der MK bereits die Liste abfliegt.
236
Eine erneute Übertragung der WP-Liste an den MK wie beim "normalen" WP-Fliegen ist nicht erforderlich.
237
 
238
Ärgerlich ist, dass der MK bei Empfang eines Target-Datensatzes kurz piept. Da die Target-Datensätze
239
2x pro Sekunde übertragen werden ist das sehr nervig. Ich habe deswegen den Piepser mit einem Stück
240
Klebeband abgeklebt. Er ist dadurch im Flug zwar nicht mehr zu höhren, aber eigentlich braucht man
241
das auch nicht, weil die relevanten Daten im Mission Cockpit angezeigt werden.
242
 
243
Da der MK im Waypoint-Player Modus die Zielkoordinaten ständig neu gesendet bekommt ist eine stabile
244
Datenübertragung umso wichtiger! Falls der Daten-Link doch einmal versagen sollte kehrt der MK nach 60 sec
245
Holdtime automatiosch zur Home-Position zurück.
246
 
247
Der Waypoint-Player verwendet die gleichen Waypoint-Listen wie beim normalen WP-Fliegen.
248
 
249
12. Modi des Players
250
Die Taste "R" (Random) schaltet folgende Modi durch:
251
- Play WPT: Die Waypoints werden der Reihe nach abgeflogen
252
- Rand WPT: Die Wegpunkte werden nach dem Zufallsprinzip abgeflogen
253
- Rand MAP: Es wird nach dem Zufallsprinzip auf der Karte ein beliebiger Punkt gesucht und angeflogen
254
  Dabei werden 10% des Karten-Randes nicht angeflogen.
255
 
256
Die Tasten "W" oder "K" schalten zwischen dem eventgesteuertem WPT-Mode und dem zeitgesteuerten KML-Mode um.
257
 
258
Im Pause-Mode kann man den MK mit den Cursor-Tasten meterweise verschieben.
259
Damit ist "Präzisions-Einparken" gut machbar.
260
 
261
Die Taste "A" schaltet den Aufnahme-Modus ein oder aus.
262
Damit kann man die Flugbahn des MK in beliebigen Modi aufzeichnen und dann im KML-Player-Modus wieder abspielen.
263
 
264
13. Flugfeldbegrenzung
265
In der Karten-Definition kann man eine Flugfeldbegrenzrun (Border) definieren.
266
Der Player wird nur die Ziele anfliegen, die ohne Überquerung der Flugfeldbegrenzung erreichbar sind.
267
Bei starkem Wid kann es jedoch passieren, dass der MK abgetrieben wird und trotzdem das Flugfeld verlässt.
268
 
269
 
270
14. Wegpunkte von Datei Laden/Speichern
271
Wegpunkte können als XML-Datei gespeichert und wieder geladen werden.
272
Die x/y Pixelkoordinaten werden nun relativ bezogen auf die Größe des Bildes als Fließkommazahlen im
273
Bereich 0..1 gespeichert. Damit ist es möglich, eine Waypoint-Liste auch auf einer größeren oder kleineren
274
Karte zu laden.
275
Beim Laden werden die GPS-Koordinaten für die aktuelle Karte aus den x/y Pixelkoordinaten neu berechnet.
276
Somit kann man die für eine Karte erstellten Wegpunkte auch auf einer anderen Karte laden, ohne die
277
GPS-Koordinaten der Wegpunkte anpassen zu müssen.
278
 
279
15. KML Datei laden und abspielen.
280
Es kann eine KML-Datei geladen werden, die der MK dann zeitgesteuert abfliegt.
281
Im KML-File ist normalerweise keine Zeitbasis gespeichert. Die Punkte der KML-Datei werden mit dem
282
in der "Logging"-Konfiguration eingetragenen Intervall abgespielt.
283
 
284
16. Start Szenario
285
Im Einstellungs-Dialog kann man im Reiter "Start Szenario" Voreinstellungen für den Player angeben.
286
Damit kann der Player automatisch sofort nach dem Start des Programms in einen bestimmten Modus
287
geschaltet werden und eine Waypoint- und/oder KML Datei geladen werden.
288
 
289
17. Follow "Bär"
290
Das "Bärchen" kann per Drag/Drop mit der linken Maustaste auf der Karte rumgeschoben werden.
291
Der MK fliegt hinterher, wenn er per RC in den "Coming-Home" Modus geschaltet ist.
292
Solange der Bär verschoben wird, wird ein mal pro Sekunde ein Target-Datensatz zum MK geschickt.
293
 
294
 
295
18. Tracking Antenne
296
Im Mission Cockpit ist die Ansteuerung fuer eine Antennen-Nachfuehrung implementiert.
297
Damit kann z.B. die Richtantenne einer Video-Uebertragungsstecke nachgefuehrt werden.
298
 
299
Dazu wird benoetigt:
300
- Pololu Mikro-Servoboard, z.B. http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=65&products_id=118
301
  Das Board wird an eine serielle Schnittstelle am PC angeschlossen.
302
- Ein oder zwei Servos, welche mechanisch einen 180 Grad Drehwinkel zulaesst
303
  Das Servo wird ausserhalb der ueblichen Impulslängen angesteuert, um den 180 Grad Drehwinkel zu erreichen.
304
 
305
Es ist eine Pan- und Tilt Nachführung implementiert.
306
 
307
Die Tracking-Antenne wird im Konfgurations-Dialog, Reiter "Tracking Antenne", aktiviert: (Yes/No).
308
Bei aktivierter Tracking-Antenne wird links unten ein Richtungsanzeiger der Antenne eingeblendet.
309
 
310
Mission Cockpit benötigt die GPS-Koordinaten und Kompass-Richtung fuer die Mittelstellung der Antenne.
311
Dazu stellt man den MK vor die Antenne, der MK zeigt dabei in die gleiche Richtung wie die Antenne.
312
Beim Start der MK-Motore werden die GPS- und Kompass-Daten vom MK als Koordinaten der Groundstation übernommen.
313
Falls der Standort der Anatenne vom Startpunkt des MK abweicht können diese Werte auch optional in der
314
Karten-Definition hinterlegt werden.
315
Die Antenne kann auch nach "hinten" sehen. Das Pan- und Tilt-Serve "flippen" dabei um 180 Grad.
316
 
317
19. Sprachausgabe
318
Im Mission Cockpit ist eine Text To Speech (TTS) Sprachausgabe implementiert.
319
Dazu muss das Programm eSpeak installiert werden. http://espeak.sourceforge.net
320
 
321
Falls die Sprachausgabe auf die Nerven geht kann sie mit der Taste "M" (Mute) aus/ein geschaltet werden.
322
ES werden regelmässig Flugzeit, Spannung, Höhe und Anzahl empfangener Satelliten ausgegeben.
323
Wichtige Events (Akku-Warnung, Verlassen Flugfeld, Empfangsprobleme usw.) werden priorisiert angesagt.
324
 
325
20. System-Meldungen
326
Wichtige System-Meldungen werden in einer gelben "Sprechblase" direkt am MK-Symbol abgezeigt.
327
Man muss also nicht ständig die OSD-Anzeigen kontrollieren und interpretieren.
328
 
329
21. Hinweise zum Waypoint Fliegen
330
Der MK muss im Free-Modus einwandfrei fliegen. Bei wenig Wind und eingeschaltetem Höhensensor darf
331
der MK nur ganz wenig abdriften.
332
 
333
Der MK muss im Free-Modus sicher beherrscht werden, bevor man sich ans WP-Fliegen wagt.
334
Der MK fliegt zwar (fast) von selber, aber in brenzligen Situationen muss man sicher eingreifen können und den
335
MK evtl. auch aus großen Entfernungen sicher zurückholen können.
336
 
337
Meine Erfahrung zeigt, dass 6 Satelliten für einen stabilen PositionHold oder Waypoint-Flug nicht ausreichen.
338
Es sollten schon 8 oder mehr Satelliten empfangen werden.
339
 
340
22. Mikrokopter Forum
341
http://forum.mikrokopter.de/topic-8404.html
342
Feedback könnt ihr gerne ins Form schreiben.
343
 
344
 
345
Viel Spass mit dem Mission Cockpit
346
Rainer