Difference between revisions of "GCS Configuration"

From PaparazziUAV
Jump to navigation Jump to search
m (→‎Video plugin: Made some grammatical changes near the ending. changed the last line to direct people to the discussion if all else fails)
 
(33 intermediate revisions by 13 users not shown)
Line 1: Line 1:
== Control Panel ==
<categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>GCS</categorytree>
The control panel is launched with the following command:
__TOC__
  <tt>./sw/supervision/paparazzi.pl</tt>
 
== Paparazzi Center ==
The paparazzi center is launched with the following command:
  <tt>./sw/supervision/paparazzicenter</tt>
and is used to launch individual portions of the GCS (''Programs'') or the entire GCS (''Sessions'') with the modem and map settings defined in <tt><b>/conf/control_panel.xml</b></tt>
and is used to launch individual portions of the GCS (''Programs'') or the entire GCS (''Sessions'') with the modem and map settings defined in <tt><b>/conf/control_panel.xml</b></tt>


===Configuration Options===
===Configuration Options===


Here are the diffrent Configuration Options for launching the GCS. They are a bit crude since they are simply pasted here from the code.
Here all the commandline parameter to set specific option(s) while launching the GCS. To use these edit the file conf/control_panel.xml in the line that says <program name="GCS" command="sw/ground_segment/cockpit/gcs"> add the options, for example: <br>
"-b", Arg.String (fun x -> ivy_bus := x), "Bus\tDefault is 127.255.255.25:2010";<br>
<program name="GCS" command="sw/ground_segment/cockpit/gcs -fullscreen"><br>
"-maximize", Arg.Set maximize, "Maximize window";<br>
 
"-fullscreen", Arg.Set fullscreen, "Fullscreen window";<br>
'''-auto_ortho''', IGN tiles path
"-ref", Arg.Set_string geo_ref, "Geographic ref (default '')";<br
'''-b''', <ivy bus> Default is 127.255.255.255:2010
"-zoom", Arg.Set_float zoom, "Initial zoom";<br>
'''-center''', Initial map center (e.g. 'WGS84 43.605 1.443')
"-center", Arg.Set_string center, "Initial map center";<br>
'''-center_ac''', Centers the map on any new A/C
"-center_ac", Arg.Set auto_center_new_ac, "Centers the map on any new A/C";<br>
'''-edit''', Flight plan editor
"-track_size", Arg.Set_int Live.track_size, (sprintf "Default track length (%d)" !Live.track_size);<br>
'''-fullscreen''', Fullscreen window
"-plugin", Arg.Set_string plugin_window, "External X application (launched with the id of the plugin window as argument)";<br>
'''-maps_fill''', Automatically start loading background maps
"-mplayer", Arg.Set_string mplayer, "Launch mplayer with the given argument as X plugin";<br>
  '''-maps_zoom''', Background maps zoomlevel (default: 18, max: 22)
"-utm", Arg.Unit (fun () -> projection:=G.UTM),"Switch to UTM local projection";<br>
'''-ign''', IGN tiles path
"-mercator", Arg.Unit (fun () -> projection:=G.Mercator),"Switch to (Google Maps) Mercator projection, default";<br>
'''-lambertIIe''', Switch to LambertIIe projection
"-no_google_http", Arg.Set Gm.no_http, "Switch off Google Maps downloading";<br>
'''-layout''', <XML layout specification> GUI layout. Default: horizontal.xml
"-lambertIIe", Arg.Unit (fun () -> projection:=G.LambertIIe),"Switch to LambertIIe projection";<br>
'''-m''', Map XML description file
"-ign", Arg.String (fun s -> ign:=true; IGN.data_path := s), "IGN tiles path";<br>
'''-maximize''', Maximize window
"-ortho", Arg.Set_string get_bdortho, "IGN tiles path";<br>
'''-mercator''', Switch to (Google Maps) Mercator projection, default
"-edit", Arg.Unit (fun () -> edit := true; layout_file := "editor.xml"), "Flight plan editor";<br>
'''-mplayer''', Launch mplayer with the given argument as X plugin
"-layout", Arg.Set_string layout_file, (sprintf "<XML layout specification> GUI layout. Default: %s" !layout_file);<br>
'''-no_alarm''', Disables alarm page
"-no_alarm", Arg.Set no_alarm, "Disables alarm page";<br>
'''-no_confirm_kill''', Disable the additional kill conformation dialog
"-auto_ortho", Arg.Set auto_ortho, "IGN tiles path";<br>
'''-maps_no_http''', Switch off downloading of maps, always use cached maps
"-google_fill", Arg.Set GM.auto, "Google maps auto fill";<br>
'''-ortho''', IGN tiles path
"-speech", Arg.Set Speech.active, "Active vocal messages";<br>
'''-osm''', Use OpenStreetMap database (default is Google)
"-particules", Arg.Set display_particules, "Display particules";<br>
'''-ms''', Use Microsoft maps database (default is Google)
"-wid", Arg.String (fun s -> wid := Some (Int32.of_string s)), "<window id> Id of an existing window to be attached to";<br>
'''-particules''', Display particules
"-m", Arg.String (fun x -> map_files := x :: !map_files), "Map description file(SRTM)"]<br>
'''-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 ===
=== Video plugin ===
Line 38: Line 50:
Use the following line in your <tt>/conf/control_panel.xml</tt> to enable the video window.
Use the following line in your <tt>/conf/control_panel.xml</tt> to enable the video window.
  <tt>path_to_ground_segment/cockpit/gcs -mplayer rtsp://localhost:7070/video</tt>
  <tt>path_to_ground_segment/cockpit/gcs -mplayer rtsp://localhost:7070/video</tt>
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:
<source lang="xml">
<program name="GCS" command="sw/ground_segment/cockpit/gcs -layout horizontal.xml">
</source>
Then edit it so it looks like this:
<source lang="xml">
<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'">
  <arg flag="-b" variable="ivy_bus"/>
</program>
</source>
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.
If You forget to set the arg parameter, then GCS will not meet through window handlers with mplayer and the video will not appear! This time you see an mplayer <defunct> on the process list.
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/".
Open the file and add or uncomment the line below (in "horizontal.xml" the plugin widget is there but commented out):
<source lang="xml">
<widget NAME="plugin" SIZE="300"/>
</source>
Now the file should look like this:
<source lang="xml">
<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>
</source>
All the above works fine in Ubuntu 10.04 LTS. It should work fine on different versions of Ubuntu too. If it does not, look for solution in other wiki pages and the PaparazziUAV documentations. If all else fails discuss your issue in the [https://gitter.im/paparazzi/discuss PaparazziUAV Gitter discussion].


== Layout ==
== Layout ==
The layout of the different components (map, strips, ...) of the gcs is configurable through a ''style'' XML file located in <tt>conf/gcs/</tt>. The specification is done via a combination of rows and columns. The default layout is given in the <tt>horizontal.xml</tt> file:
The layout of the different components (map, strips, ...) of the gcs is configurable through a ''style'' XML file located in <tt>conf/gcs/</tt>. The specification is done via a combination of rows and columns. The default layout is given in the <tt>horizontal.xml</tt> file:
<tt><!DOCTYPE layout SYSTEM "layout.dtd">
 
<source lang="xml">  
<!DOCTYPE layout SYSTEM "layout.dtd">
  <layout width="1024" height="768">
  <layout width="1024" height="768">
  <rows>
  <rows>
Line 54: Line 128:
   </columns>
   </columns>
  </rows>
  </rows>
  </layout></tt>
  </layout>
</source>


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


This second example (<tt>left_col.xml</tt>) sets the map and the notebook on the right and the other frames in a left column:
This second example (<tt>left_col.xml</tt>) sets the map and the notebook on the right and the other frames in a left column:
<tt><!DOCTYPE layout SYSTEM "layout.dtd">
 
<source lang="xml">  
<!DOCTYPE layout SYSTEM "layout.dtd">
  <layout width="1024" height="768">
  <layout width="1024" height="768">
  <columns>
  <columns>
Line 79: Line 156:
   </rows>
   </rows>
  </columns>
  </columns>
  </layout></tt>
  </layout>
</source>


This layout file is chosen with the <tt>-layout</tt> option:
This layout file is chosen with the <tt>-layout</tt> option:
  <tt>path_to_ground_segment/cockpit/gcs -layout left_col.xml</tt>
  <tt>path_to_ground_segment/cockpit/gcs -layout left_col.xml</tt>
[[Category:GCS]] [[Category:User_Documentation]]

Latest revision as of 11:25, 31 March 2017

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. To use these edit the file conf/control_panel.xml in the line that says <program name="GCS" command="sw/ground_segment/cockpit/gcs"> add the options, for example:
<program name="GCS" command="sw/ground_segment/cockpit/gcs -fullscreen">

-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
-no_confirm_kill, Disable the additional kill conformation dialog
-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'">
  <arg flag="-b" variable="ivy_bus"/>
</program>

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. If You forget to set the arg parameter, then GCS will not meet through window handlers with mplayer and the video will not appear! This time you see an mplayer <defunct> on the process list.

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/". Open the file and add or uncomment the line below (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 works fine in Ubuntu 10.04 LTS. It should work fine on different versions of Ubuntu too. If it does not, look for solution in other wiki pages and the PaparazziUAV documentations. If all else fails discuss your issue in the PaparazziUAV Gitter discussion.

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