From PaparazziUAV
Revision as of 05:57, 24 January 2013 by Flixr (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Real Time Plotter

The plotter (in sw/logalizer/) is a facility to plot real time data broadcasted on the Paparazzi network bus. Main features:

  • Drag&Drop from the messages window of any field
  • Multi-curves, constant curves
  • Configurable update delay and memory size
  • Basic scaling mechanism

First Try

Launch a simulation with a messages window (for example the Versatile Sim session provided as an example) from the Paparazzi Center or launch manually a messages window with

sw/ground_segment/tmtc/messages -c ground

from a shell. Launch the plotter with (or configure it in your session)


From the messages window, select the field pos_x in the NAVIGATION message and drop it on the Plotter. Do the same with pos_y, you should get something similar to

Plotter pos_x pos_y

Delete the pos_y curve by selecting it in the Curves menu and drop the desired_x from the DESIRED message:

Plotter pos_x pos_y

It is also possible to draw curves with different scales in the same window. Delete both curves and Reset (or open a new plotter from the File menu) and drop desired_altitude from the DESIRED message. Enter 0.01 (to convert cm into m) in the Scale entry box and drop alt from GPS message. Change the desired altitude from the GCS (+30m) to observe the behaviour of the altitude controller:

Plotter pos_x pos_y

An offset can be added to the scaling. For example a scale value of "1.8+32" translates degrees Celsius into degrees Fahrenheit.

If available, the alt_unit_coef attribute of the message (see DevGuide/Communications) is used to scale and translate the values.

Running plots are listed in the Curves menu from which it is possible to:

  • Delete the curve;
  • Enable the Discrete behaviour where no interpolation is shown between actual data points;
  • Monitor the average and the standard deviation of the plotted values.


The -c option allows to start the plotter with some given curves. The desired curve is specified with a colon separated string: sender:class:message:field (where sender is the id of the author of the message, for example the id of an aircraft). For example

sw/logalizer/plotter -c 7:telemetry:BAT:voltage

A scale factor can also be specified (separated with one more colon):

sw/logalizer/plotter -c *:telemetry:GPS:alt:0.01 -c *:telemetry:DESIRED:desired_altitude

Combined with the -n option which opens a new window, you can fill your screen with curves (here to monitor the altitude, pitch and roll control):

sw/logalizer/plotter -c *:telemetry:GPS:alt:0.01 -c *:telemetry:DESIRED:altitude
                      -n -c *:telemetry:ATTITUDE:theta:57.3 -c *:telemetry:DESIRED:pitch:57.3
                      -n -c *:telemetry:ATTITUDE:phi:57.3 -c *:telemetry:DESIRED:roll:57.3

Options -t and -g give the opportunity to label the window (the last one if option -n is used) with a title and specify a geometry (à la X):

sw/logalizer/plotter -c *:telemetry:GPS:alt:0.01 -c *:telemetry:DESIRED:altitude -t altitude -g 800x200+0+0
                      -n -c *:telemetry:ATTITUDE:theta:57.3 -c *:telemetry:DESIRED:pitch:57.3 -t theta -g 400x200+0+200
                      -n -c *:telemetry:ATTITUDE:phi:57.3 -c *:telemetry:DESIRED:roll:57.3 -t phi -g 400x200+400+200

Options -m and -u allows to change the default memory size (100) and update time (0.5s).


The display update can be Suspended while the data are still stored: no disctoninuity on a Restart. The data update can also be Stoped while the display is active (e.g. resizable). These features are available from the File menu or via keyboard accelerators.

More Tuning

A constant curve can be added by entering a float value in the Constant box.

The update time can be set with the slider; it should be smaller than the period of the faster data you want to plot.

The number of points of each curve can be set from 10 to 1000.

After disabling the auto scale mode, minimum and maximum displayed values can be manually set.