Difference between revisions of "GCS Configuration"

From PaparazziUAV
Jump to navigation Jump to search
Line 9: Line 9:
===Configuration Options===
===Configuration Options===


Here are the different Configuration Options for launching the GCS. They are a bit crude since they are simply pasted here from the code but give a good overview.<br>
Here all the commandline parameter to set specific option(s) while launching the GCS. <br>
  "-auto_ortho", Arg.Set auto_ortho, "IGN tiles path";
 
  "-b", Arg.String (fun x -> ivy_bus := x),(sprintf "<ivy bus> Default is %s" !ivy_bus);
'''-auto_ortho''', IGN tiles path
  "-center", Arg.Set_string center, "Initial map center (e.g. 'WGS84 43.605 1.443')";
'''-b''', <ivy bus> Default is 127.255.255.255:2010
  "-center_ac", Arg.Set auto_center_new_ac, "Centers the map on any new A/C";
'''-center''', Initial map center (e.g. 'WGS84 43.605 1.443')
  "-edit", Arg.Unit (fun () -> edit := true; layout_file := "editor.xml"), "Flight plan editor";
'''-center_ac''', Centers the map on any new A/C
  "-fullscreen", Arg.Set fullscreen, "Fullscreen window";
'''-edit''', Flight plan editor
  "-maps_fill", Arg.Set GM.auto, "maps auto fill";
'''-fullscreen''', Fullscreen window
  "-ign", Arg.String (fun s -> ign:=true; IGN.data_path := s), "IGN tiles path";
'''-maps_fill''', Automatically start loading background maps
  "-lambertIIe", Arg.Unit (fun () -> projection:=G.LambertIIe),"Switch to LambertIIe projection";
'''-maps_zoom''', Background maps zoomlevel (default: 18, max: 22)
  "-layout", Arg.Set_string layout_file, (sprintf "<XML layout specification> GUI layout. Default: %s" !layout_file);
'''-ign''', IGN tiles path
  "-m", Arg.String (fun x -> map_files := x :: !map_files), "Map XML description file";
'''-lambertIIe''', Switch to LambertIIe projection
  "-maximize", Arg.Set maximize, "Maximize window";
'''-layout''', <XML layout specification> GUI layout. Default: horizontal.xml
  "-mercator", Arg.Unit (fun () -> projection:=G.Mercator),"Switch to (Google Maps) Mercator projection, default";
'''-m''', Map XML description file
  "-mplayer", Arg.Set_string mplayer, "Launch mplayer with the given argument as X plugin";
'''-maximize''', Maximize window
  "-no_alarm", Arg.Set no_alarm, "Disables alarm page";
'''-mercator''', Switch to (Google Maps) Mercator projection, default
  "-maps_no_http", Arg.Unit (fun () -> Gm.set_policy Gm.NoHttp), "Switch off Maps downloading - only cache!";
'''-mplayer''', Launch mplayer with the given argument as X plugin
  "-ortho", Arg.Set_string get_bdortho, "IGN tiles path";
'''-no_alarm''', Disables alarm page
  "-osm", Arg.Unit (fun () -> Gm.set_maps_source Gm.OSM), "Use OpenStreetMap database (default is Google)";
'''-maps_no_http''', Switch off downloading of maps, always use cached maps
  "-ms", Arg.Unit (fun () -> Gm.set_maps_source Gm.MS), "Use Microsoft maps database (default is Google)";
'''-ortho''', IGN tiles path
  "-particules", Arg.Set display_particules, "Display particules";
'''-osm''', Use OpenStreetMap database (default is Google)
  "-plugin", Arg.Set_string  plugin_window, "External X application (launched with the id of the plugin window as argument)";
'''-ms''', Use Microsoft maps database (default is Google)
  "-ref", Arg.Set_string geo_ref, "Geographic ref (e.g. 'WGS84 43.605 1.443')";
'''-particules''', Display particules
  "-[[speech]]", Arg.Set Speech.active, "Enable vocal messages";
'''-plugin''', External X application (launched with the id of the plugin window as argument)
  "-[[Maps#SRTM_Data|srtm]]", Arg.Set srtm, "Enable SRTM elevation display";
'''-ref ''',Geographic ref (e.g. 'WGS84 43.605 1.443')
  "-track_size", Arg.Set_int Live.track_size, (sprintf "Default track length (%d)" !Live.track_size);
'''-speech''', Enable vocal messages
  "-utm", Arg.Unit (fun () -> projection:=G.UTM),"Switch to UTM local projection";
'''-srtm''', Enable SRTM elevation display
  "-wid", Arg.String (fun s -> wid := Some (Int32.of_string s)), "<window id> Id of an existing window to be attached to";
'''-track_size''', Default track length (500)
  "-maps_zoom" specify max map zoom level - default tp 18, max 22.* Lower resolution are displayed behind higher resolution.  
'''-utm''', Switch to UTM local projection
  "-zoom", Arg.Set_float zoom, "Initial zoom";
'''-wid''', <window id> Id of an existing window to be attached to
  "-auto_hide_fp", Arg.Unit (fun () -> Live.auto_hide_fp true; hide_fp := true), "Automatically hide flight plans of unselected aircraft";
  '''-zoom''', Initial zoom
'''-auto_hide_fp''', Automatically hide flight plans of unselected aircraft
'''-help''', Display a list of options


=== Video plugin ===
=== Video plugin ===

Revision as of 12:16, 25 July 2013

Paparazzi Center

The paparazzi center is launched with the following command:

./sw/supervision/paparazzicenter

and is used to launch individual portions of the GCS (Programs) or the entire GCS (Sessions) with the modem and map settings defined in /conf/control_panel.xml

Configuration Options

Here all the commandline parameter to set specific option(s) while launching the GCS.

-auto_ortho, IGN tiles path
-b, <ivy bus> Default is 127.255.255.255:2010
-center, Initial map center (e.g. 'WGS84 43.605 1.443')
-center_ac, Centers the map on any new A/C
-edit, Flight plan editor
-fullscreen, Fullscreen window
-maps_fill, Automatically start loading background maps
-maps_zoom, Background maps zoomlevel (default: 18, max: 22)
-ign, IGN tiles path
-lambertIIe, Switch to LambertIIe projection
-layout, <XML layout specification> GUI layout. Default: horizontal.xml
-m, Map XML description file
-maximize, Maximize window
-mercator, Switch to (Google Maps) Mercator projection, default
-mplayer, Launch mplayer with the given argument as X plugin
-no_alarm, Disables alarm page
-maps_no_http, Switch off downloading of maps, always use cached maps
-ortho, IGN tiles path
-osm, Use OpenStreetMap database (default is Google)
-ms, Use Microsoft maps database (default is Google)
-particules, Display particules
-plugin, External X application (launched with the id of the plugin window as argument)
-ref ,Geographic ref (e.g. 'WGS84 43.605 1.443')
-speech, Enable vocal messages
-srtm, Enable SRTM elevation display
-track_size, Default track length (500)
-utm, Switch to UTM local projection
-wid, <window id> Id of an existing window to be attached to
-zoom, Initial zoom
-auto_hide_fp, Automatically hide flight plans of unselected aircraft
-help, Display a list of options

Video plugin

The -mplayer option of GCS allows to the user to display a video stream in a window of the GCS. The video window can also be exchanged with the map by clicking anywhere inside the frame. Use the following line in your /conf/control_panel.xml to enable the video window.

path_to_ground_segment/cockpit/gcs -mplayer rtsp://localhost:7070/video

A useful example follows: If you have an Avermedia DVB-T usb tuner like the Aver-Tv Hybrid Volar HX (Avermedia finally released Ubuntu Linux drivers) then in order to use the usb tuner as video input to the GCS you have to complete the following steps:

First download and install the drivers and check that the Usb tuner works well by opening a console window and typing:

mplayer tv:// -tv driver=v4l2:width=320:height=240:norm=NTSC:input=1:device=/dev/video1:noaudio

Of course you must connect a video signal to the composite input first. Then close the console and remove the Usb tuner. Now it is time to configure the control_panel.xml file by editing the GCS command line. Locate the line in the "control_panel.xml" usually located in /Your Paparazzi directory/conf/ (mine is in "/paparazzi/conf/") that looks similar to the below line:

<program name="GCS" command="sw/ground_segment/cockpit/gcs -layout horizontal.xml">

Then edit it so it looks like this:

<program name="GCS" command="sw/ground_segment/cockpit/gcs -layout horizontal.xml -mplayer 'tv:// -tv driver=v4l2:width=320:height=240:norm=NTSC:input=1:device=/dev/video1:alsa:adevice=hw.2,0:amode=1:audiorate=48000:forceaudio:volume=100:immediatemode=0'">

The above line is one complete and uninterrupted line but it is just too long to show it in one line here. (There is a space after the"-tv" like this "-mplayer 'tv:// -tv driver=v4l2:...." but nowhere else after that). This will load the mplayer, select the composite video input of the tuner and enable the sound input. Please remember to change the "NTSC" with "PAL" if you do not use the NTSC video system (if your airborne camera is PAL for example). Read the mplayer documentation so you can tweak the resolution etc. later to suit your particular setup. The resolution above is set to 320x240 here but you can set it to 640x480 by replacing the numbers in the command line above.

Finally you have to add the plugin widget to your GCS layout configuration file. If you noticed the GCS command line in the "control_panel.xml" file, a part of it reads "-layout horizontal.xml" so our configuration file is the "horizontal.xml" which is located always in "/Your Paparazzi directory/conf/gcs/" (mine is in "/paparazzi/conf/gcs/"). Open the file and add or uncomment the below line (in "horizontal.xml" the plugin widget is there but commented out):

<widget NAME="plugin" SIZE="300"/>

Now the file should look like this:

<rows>
 <widget size="500" name="map2d"/>
 <columns>
  <rows size="375">
   <widget size="200" name="strips"/>
  </rows>
  <widget size="400" name="aircraft"/>
  <widget name="alarms"/>  
  <widget NAME="plugin" SIZE="300"/> 
 </columns>
</rows>

All the above work fine in Ubuntu 10.04 LTS but probably the same method should work fine on different versions too.

Layout

The layout of the different components (map, strips, ...) of the gcs is configurable through a style XML file located in conf/gcs/. The specification is done via a combination of rows and columns. The default layout is given in the horizontal.xml file:

<!DOCTYPE layout SYSTEM "layout.dtd">
<layout width="1024" height="768">
<rows>
 <widget size="500" name="map2d"/>
 <columns>
  <rows size="350">
   <widget size="120" name="strips"/>
   <widget name="alarms"/>
  </rows>
  <widget size="400" name="aircraft"/>
  <widget size="00" name="plugin"/>
 </columns>
</rows>
</layout>

Default size (1024x768) of the whole window is specified in the root of the tree. The window is then divided in two rows:

  • the map2d with a requested height of 500
  • a set of columns containing
    • a set of rows of width 350 divided into
      the strips frame of height 120
      the alarms frame
    • the notebook frame (aircraft) of width 400
    • the video plugin frame

This second example (left_col.xml) sets the map and the notebook on the right and the other frames in a left column:

<!DOCTYPE layout SYSTEM "layout.dtd">
<layout width="1024" height="768">
<columns>
  <rows size="360">
     <widget size="120" name="strips"/>
     <widget size="300" name="plugin"/>
     <widget name="alarms"/>
  </rows>
  <rows>
    <widget name="map2d"/>
    <widget name="aircraft"/>
  </rows>
</columns>
</layout>

This layout file is chosen with the -layout option:

path_to_ground_segment/cockpit/gcs -layout left_col.xml