0,0 → 1,286 |
0. Allemeine Hinweise |
Bevor Mission Cockpit verwendet werden kann müssen einige Vorbereitungen gewissenhaft durchgeführt werden. |
Das kann einige Zeit in Anspruch nehmen. Nehmt euch die Zeit oder lasst es gleich bleiben ;-) |
Aber glaubt mir, der Zeitaufwand ist es wert! |
|
Also bitte die folgenden Punkte unbedingt durchlesen, verstehen und gewissenhaft umsetzen! |
|
Beachte die Regeln für den Betrieb von ferngesteuerten Flugmodellen! |
|
|
1. Update von früheren Programm-Versionen |
Einstellungen werden in der Datei mkcockpit.xml gespeichert. |
Mit neueren Programmversionen sind neue Konfigurationseinträge dazugekommen, für die es |
momentan keine Default-Einstellungen gibt, die aber vom Programm unbedingt benötigt werden. |
Deswegen muss eine vorhandene mkcockpit.xml mit der bei der jeweiligen Programmversion beiliegenden |
mkcockpit.xml manuell gemerged werden. Das kann mit einem beliebigen Editor erfolgen, |
komfortabel geht es mit WinMerge (www.winmerge.org). |
|
|
2. Perl Interpreter |
Mission Cockpit ist in der Scriptsprache Perl/Tk programmiert. |
|
Zur Ausführung des Programms wird Perl Version 5.10.0 benoetigt. |
Mit Version 5.8. hat das Packet "thread::Queue" nicht richtig funktioniert. |
|
Mission Cockpit ist nicht als EXE-File verfuegbar. |
|
Den Perl Interpreter fuer Windows bekommt man z.B. hier: http://www.activestate.com/activeperl |
|
Mission Cockpit benoetigt folgende Perl-Packete: |
Tk |
Tk::Balloon |
Tk::Dialog |
Tk::Notebook; |
Math::Trig |
XML::Simple # http://search.cpan.org/dist/XML-Simple-2.18 |
Geo::Ellipsoid # http://search.cpan.org/dist/Geo-Ellipsoid-1.12 |
threads # http://search.cpan.org/~jdhedden/threads-1.72 |
threads::shared # http://search.cpan.org/~jdhedden/threads-shared-1.28 |
Thread::Queue # http://search.cpan.org/dist/Thread-Queue-2.11 |
Time::HiRes # http://search.cpan.org/~jhi/Time-HiRes-1.9719 |
Win32::SerialPort # http://search.cpan.org/dist/Win32-SerialPort |
|
Die Packete liegen, bis auf Tk, in der Mission Cockpit Umgebung im Verzeichnis "perl" |
Sie werden verwendet, falls sie im standard Perl-Verzeichnis nicht existieren. |
Die Packete kann man sich alternativ auch aus dem CPAN beschaffen. |
Tk kann man mit dem Perl-Packet-Manager PPM.EXE installieren, z.B. "ppm install Tk" |
|
|
3. Unterstuetzte Betriebssysteme |
Das Programm wurde unter Windows Vista und Windows XP entwickelt. |
|
Bis auf das verwendete Packet "Win32::SerialPort" sollte das Mission Cockpit auch unter Linux funktionieren. |
Fuer Linux gibt es das Packet "Device::Serialport" mit der gleichen Schnittstelle. |
mkcomm.pl und track.pl sind fuer "Device::Serialport" vorbereitet, sollte theoretisch |
auch unter Linux laufen. Ausprobiert habe ich das allerdings nicht!! |
|
|
4. Programmstart |
mkcockpit.pl bzw. perl mkcockpit.pl |
|
|
5. Voraussetzung Flight-Ctr und Navi-Ctrl |
Entwickelt wurde mit FC 0.73d und NC 0.15c |
|
NC-Versionen kleiner als 0.15c funktionieren nicht, wegen der ständig inkompatiblen Änderungen |
des Debug- und Navidata-Datensatzes der NC. |
|
|
6. Karte fuer das Flugfeld definieren |
Die Karte fuer das Flugfeld muss als GIF-Datei vorliegen. Sie kann eine beliebige Größe haben. |
Die Karten werden im Verzeichnis "map" abgelegt. |
Die Karte kann eine beliebige Ausrichtung haben. Norden muss nicht oben sein. |
Als Quelle eignet sich z.B. ein Screenschot von Google Earth. |
|
In map/map.pl koennen ein oder mehrere Karten definiert werden. |
Die Auswahl der gewuenschten Karte erfolgt im Konfigurations-Dialog, Reiter "Karte" |
Fuer jede Karte wird in map.pl eine Sektion angelegt, z.B.: |
|
Hemhofen => { |
'Name' => "Hemhofen", |
'Size_X' => '800', |
'Size_Y' => '600', |
'File' => 'hemhofen-800.gif', |
|
'P1_x' => '66', # calibration P1, P2 |
'P1_y' => '62', |
'P2_x' => '778', |
'P2_y' => '488', |
'P1_Lat' => '49.685333', |
'P1_Lon' => '10.950134', |
'P2_Lat' => '49.682949', |
'P2_Lon' => '10.944580', |
|
'Offset_x' => 5, # Optional Pixel offset MK to right |
'Offset_y' => 10, # Optional pixel offset MK to top |
|
'Border' => [ 555, 430, # airfield border |
516, 555, |
258, 555, |
100, 300, |
580, 260, |
530, 94, |
627, 130, |
735, 300, |
680, 400, |
757, 470, |
720, 515, |
575, 420, |
], |
}, |
|
Unbedingt auf die richtige Syntax achten (Kommata, geschweifte Klammern, eckige Klammern), |
sonst gibt es Syntax-Fehler beim Programmstart. |
|
'Border' ist ein Polygon, der als Flugfeldbegrenzung auf der Karte angezeigt wird. |
Die Koordinaten sind Pixel-Koordinaten bezogen auf das GIF-Hintergrundbild. |
Der Ursprung 0/0 ist links oben. |
Der Border-Polygon kann auch komplett weggelassen werden. |
Später möchte ich noch eine Logik programmieren, die das Setzen der Wegpunkte nur innerhalb |
des Polygons erlaubt. |
|
|
7. Kalibirieren der Karte |
Die Karte muss gewissenhaft kalibiriert werden! |
Dazu werden bei der zu kalibrierenden Karte in "map/map.pl" fuer zwei |
markante Punkte P1, P2 die Pixel-Koordinaten und die dazugehoerigen GPS-Koordinaten eingetragen. |
P1 und P2 sollten moeglichst weit auseinader liegen, z.B. P1 links oben und P2 rechts unten. |
Man kann zunaechst beliebige Werte eintragen und dann das Programm starten. |
Die Pixel-Koordinaten werden in der Statuszeile angezeigt, wenn man mit der linken Maustaste auf |
die Karte klickt. Die entsprechnden GPS-Koordinaten kann man z.B. im Google Earth ermitteln. |
|
Mit 'Offset_x' und 'Offset_y' kann man die Kalibrierung korrigieren, d.h. den MK auf der |
Karte pixelweise verschieben. |
|
Anmerkung: |
Da ist scheinbar ein kleiner Bug in der Kalibrierung. Der Punkt P1 muss oberhalb und links von P2 liegen. |
|
|
8. Daten-Link zum MK |
Das Programm benoetigt unbedingt einen stabilen Daten-Link zum Debug-Port der Navi-Ctrl. |
Das WI.232 Modul hat sich bei mir auch bei grosser Entfernung (250 m) als zuverlaessig erwiesen. |
Kommuniziert wird ausschliesslich mit der Navi-Ctrl. |
Es werden OSD- und Debug-Datensatz von der NC, Target- und Waypoint-Datensatz zur NC verwendet. |
|
|
9. Konfiguration |
Die Konfiguration wird in mkcockpit.xml gespeichert. |
Konfigurieren kann man im Mission Cockpit, Menu "Datei -> Einstellungen". |
ALternativ kann man die XML-Datei auch direkt editieren. |
Bei Konfiguration im Mission Cockpit ist zu beachten, dass die meisten Einstellungen erst bei |
Programm-Neustart wirksam werden! |
|
Um einen guten Kontrast zwischen der Karte und den auf die Karte gezeichneten Objekte zu erhalten |
kann es erforderlich sein, die Farbe der Objekte umzudefinieren. |
Die Farben koennen im Konfigurations-Dialog eingestellt werden. Gueltige Werte sind: |
- Namen, z.B. red, green, blue, ... |
- RGB Hex-Werte, z.B. #ff0000 (= rot) |
|
|
10. Waypoint-Fliegen - Klassische Art von der NC gesteuert |
Waypoints werden per rechter Maustaste gesetzt und sofort an den MK uebertragen. |
Waypoints kann man per Drag/Drop mit der linken Maustaste verschieben. Die Waypoint-Verbindungslinien |
werden dann rot angezeigt. Das bedeutet, dass die angezeigten Wegpunkte nicht mehr mit den bereits zum |
MK uebertragenen Wegpunkten uebereistimmen. Die Waypoints muessen dann per rechtem Maustaste-Menue |
"Alle Wegpunkte erneut senden" an den MK uebertragen werden. |
|
Der MK beginnt die Waypoints abzufliegen, wenn per RC-Fernsteuerung der "Coming Home" Modus aktiviert wird. |
Nach dem letzten Wegpunkt fliegt der MK automatisch zur Home-Position zurueck. |
|
Die Navi-Ctrl kann max. 20 Wegpunkte aufnehmen. |
|
Das Wegpunkt-Fliegen kann unterbrochen werden, indem per RC von "Coming Home" auf "Position Hold" |
geschaltet wird. Wenn dann wieder auf Coming Home" geschaltet wird faengt der MK wieder von vorne mit |
dem ersten Waypoint an. |
|
|
11. Waypoint Player - Die innovative Art vom Mission Cockpit gesteuert |
Das klassische vom NC gesteuerte Waypoint-Fliegen ist relativ unflexibel und wird relativ schnell langweilig. |
Deswegen habe ich einen vom Mission Cockpit gesteuerten Waypoint-Player implementiert. |
Der Waypoint-Player sendet ständig Target-Datensätze an den MK, ähnlich wie beim Follow-Me oder Follow-Bär. |
Damit hat man wesentlich mehr Möglichkeiten: |
- Beliebig viele Waypoints |
- Die Steuerung des Wp-Players erfolgt wie bei einem CD-Player: |
> Starten des Waypoint-Players |
Key: Leertaste |
|| Pause - Der MK bleibt an der momentanen Position stehen. Mit ">" kann der WP-Flug fortgesetzt werden |
Key: Leertaste |
>> Anfliegen des nächsten Wegpunktes |
Key: n |
<< Anfliegen des vorherigen Wegpunktes |
Key: p |
|<< Anfliegen des ersten Wegpunktes |
Key: f |
>>| Anfliegen des letzten Wegpunktes |
Key: l |
Home Anfliegen der Home-Position |
Key: h |
Stop Beenden des Waypoint-Players. Der klassische Waypoint-Modus wird wieder aktiviert. |
Key: s |
|
Die Steuerung erfolgt entweder mit: |
- Maus und die am unteren Bildschirmrand eingeblendeten Symbole |
- Tastatur - Tastenbelegung siehe oben |
- Einer programmierbaren PC-Fernbedienung, die Tastatureingaben simuliert. |
Ich verwende z.B. eine X10-Fernbedienung, die oft Medion-PCs zur Steuerung des MediaCenter beiliegt, |
in Verbindung mit EventGhost (www.eventghost.org). |
|
Zum Fliegen mit dem Waypoint-Player muss sich der MK im "Coming Home"-Modus befinden, so |
wie auch beim normalen WP-Fliegen, und zusätzlich mit ">" gestartet werden. |
Der Waypoint-Player arbeitet, wenn in der Modus-Anzeige "Play" oder "Pause" angezeigt wird. |
|
Der Waypoint-Player kann bereits im PH-Modus mit ">" gestartet werden. |
Nach Umschalten auf CH fängt der Waypoint-Player an die Zielkoordinaten zu senden und abzufliegen. |
|
Da der Waypoint-Player immer nur den nächsten Waypoint an den MK überträgt kann die Waypoint-Liste noch |
geändert werden oder neue Waypoints hinzugefügt werden, während der MK bereits die Liste abfliegt. |
Eine erneute Übertragung der WP-Liste an den MK wie beim "normalen" WP-Fliegen ist nicht erforderlich. |
|
Ärgerlich ist, dass der MK bei Empfang eines Target-Datensatzes kurz piept. Da die Target-Datensätze |
2x pro Sekunde übertragen werden ist das sehr nervig. Ich habe deswegen den Piepser mit einem Stück |
Klebeband abgeklebt. Er ist dadurch im Flug zwar nicht mehr zu höhren, aber eigentlich braucht man |
das auch nicht, weil die relevanten Daten im Mission Cockpit angezeigt werden. |
|
Da der MK im Waypoint-Player Modus die Zielkoordinaten ständig neu gesendet bekommt ist eine stabile |
Datenübertragung umso wichtiger! Falls der Daten-Link doch einmal versagen sollte kehrt der MK nach 60 sec |
Holdtime automatiosch zur Home-Position zurück. |
|
Der Waypoint-Player verwendet die gleichen Waypoint-Listen wie beim normalen WP-Fliegen. |
|
|
12. Wegpunkte von Datei Laden/Speichern |
Wegpunkte können als XML-Datei gespeichert und wieder geladen werden. |
Die x/y Pixelkoordinaten werden nun relativ bezogen auf die Größe des Bildes als Fließkommazahlen im |
Bereich 0..1 gespeichert. Damit ist es möglich, eine Waypoint-Liste auch auf einer größeren oder kleineren |
Karte zu laden. |
Beim Laden werden die GPS-Koordinaten für die aktuelle Karte aus den x/y Pixelkoordinaten neu berechnet. |
Somit kann man die für eine Karte erstellten Wegpunkte auch auf einer anderen Karte laden, ohne die |
GPS-Koordinaten der Wegpunkte anpassen zu müssen. |
|
|
13. Follow "Bär" |
Das "Bärchen" kann per Drag/Drop mit der linken Maustaste auf der Karte rumgeschoben werden. |
Der MK fliegt hinterher, wenn er per RC in den "Coming-Home" Modus geschaltet ist. |
Solange der Bär verschoben wird, wird ein mal pro Sekunde ein Target-Datensatz zum MK geschickt. |
|
|
14. Tracking Antenne |
Im Mission Cockpit ist die Ansteuerung fuer eine horizontale 180 Grad Antennennachfuehrung implementiert. |
Damit kann z.B. die Richtantenne einer Video-Uebertragungsstecke nachgefuehrt werden. |
|
Dazu wird benoetigt: |
- Pololu Mikro-Servoboard, z.B. http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=65&products_id=118 |
Das Board wird an eine serielle Schnittstelle am PC angeschlossen. |
- Ein Servo, welches mechanisch einen 180 Grad Drehwinkel zulaesst, z.B. MPX Polo Digi 4 / Hitec HS85 oder aehnlich. |
Das Servo wird ausserhalb der ueblichen Impulslängen angesteuert, um den 180 Grad Drehwinkel zu erreichen. |
|
Momentan ist lediglich eine horizontale Nachfuehrung implementiert. |
|
Die Tracking-Antenne wird im Konfgurations-Dialog, Reiter "Tracking Antenne", aktiviert: (Yes/No). |
Bei aktivierter Tracking-Antenne wird links unten ein Richtungsanzeiger der Antenne eingeblendet. |
|
Mission Cockpit benötigt die GPS-Koordinaten und Kompass-Richtung fuer die Mittelstellung der Antenne. |
Dazu stellt man den MK vor die Antenne, der MK zeigt dabei in die gleiche Richtung wie die Antenne. |
|
Beim Start der MK-Motore werden die GPS- und Kompass-Daten vom MK als Koordinaten der Groundstation übernommen. |
|
15. Hinweise zum Waypoint Fliegen |
Der MK muss im Free-Modus einwandfrei fliegen. Bei wenig Wind und eingeschaltetem Höhensensor darf |
der MK nur ganz wenig abdriften. |
|
Der MK muss im Free-Modus sicher beherrscht werden, bevor man sich ans WP-Fliegen wagt. |
Der MK fliegt zwar (fast) von selber, aber in brenzligen Situationen muss man sicher eingreifen können und den |
MK evtl. auch aus großen Entfernungen sicher zurückholen können. |
|
Meine Erfahrung zeigt, dass 6 Satelliten für einen stabilen PositionHold oder Waypoint-Flug nicht ausreichen. |
Es sollten schon 8 oder mehr Satelliten empfangen werden. |
|
|
16. Mikrokopter Forum |
http://forum.mikrokopter.de/topic-8404.html |
Feedback könnt ihr gerne ins Form schreiben. |
|
|
Viel Spass mit dem Mission Cockpit |
Rainer |