How to watch flight information¶
Sphinx offers several ways to observe data while (or after) a simulation is running. Depending on your needs, you may wish to monitor the drone behavior at runtime, with or without HMI, you may also need to investigate a problem more thoroughly with post-mortem flight data.
Here are the available methods:
- runtime observation via a web HMI (sphinx dashboard)
- runtime observation via command line tool (tlm-data-logger)
- post-mortem analysis with recorded data files (.tlmb files)
Activating true data logging¶
To make sphinx provide and record data while simulation is running, you just
need to launch it with the option
$ sphinx --datalog my.world my.drone
The web interface is the most handy way to observe flight data. It is the same web page as the one used to control drone’s internals. See Tuning of drone internals at runtime - interfaces.
To open it, run the following command:
This command opens the address @http://localhost:<port>@. The HTTP port being generally 9002. Note that this port may be different from 9002 in the following cases:
- multiple instances of sphinx are running in parallel on the host
- the user explicitly set the http port in the command line, using
So if you cannot see the web dashboard, check Sphinx’s shell output. You should see a line like the one below indicating the URI to connect.
[Msg] WEB DASHBOARD IS ACCESSIBLE at http://localhost:9002
As shown in the video below, you may need to drag and drop one or several plot
widgets at the desired location. Then, select the data variable you want to
observe by clicking on the button
customize. You can filter variables by
typing text or a regular expression in the text field. Several variables can be
plotted on the same graph. The X axis represents the time expressed in seconds.
The graphs are interactive: you can mouse over to highlight individual values. You can click and drag to zoom (Ctrl-click to zoom in different components simultaneously). Double-clicking will zoom you back out (Ctrl-double-click to zoom back out in different components simultaneously). Shift-drag will pan.
To visualize the drone location and orientation on a map, make sure sphinx is
launched with option
--datalog, then drag and drop a map widget on your
Note that the map widget will not show a path for drones without GPS like the minidrones (Airborne, Mambo and Swing).
tlm-data-logger is a command line tool that receives flight data and displays it in the shell output. To show simulation’s true flight information:
$ tlm-data-logger inet:127.0.0.1:9060
You should see something like that:
Connected section 'omniscient_anafi4k': + relativeAngularAcceleration.x + relativeAngularAcceleration.y + relativeAngularAcceleration.z + relativeAngularVelocity.x + relativeAngularVelocity.y + relativeAngularVelocity.z + relativeLinearAcceleration.x + relativeLinearAcceleration.y + relativeLinearAcceleration.z + relativeLinearVelocity.x + relativeLinearVelocity.y + relativeLinearVelocity.z + worldAttitude.x + worldAttitude.y + worldAttitude.z + worldLinearVelocity.x + worldLinearVelocity.y + worldLinearVelocity.z + worldPosition.x + worldPosition.y + worldPosition.z + worldPressure + worldTemperature omniscient_anafi4k.timestamp: 4.098000 omniscient_anafi4k.relativeAngularAcceleration.x: -0.000000 omniscient_anafi4k.relativeAngularAcceleration.y: -0.000000 omniscient_anafi4k.relativeAngularAcceleration.z: -0.000001 omniscient_anafi4k.relativeAngularVelocity.x: 0.000338 omniscient_anafi4k.relativeAngularVelocity.y: -0.054018 omniscient_anafi4k.relativeAngularVelocity.z: -0.000001 omniscient_anafi4k.relativeLinearAcceleration.x: -0.000000 omniscient_anafi4k.relativeLinearAcceleration.y: 0.000000 omniscient_anafi4k.relativeLinearAcceleration.z: -0.000000 omniscient_anafi4k.relativeLinearVelocity.x: -0.002743 omniscient_anafi4k.relativeLinearVelocity.y: -0.000016 omniscient_anafi4k.relativeLinearVelocity.z: -0.049045 omniscient_anafi4k.worldAttitude.x: 0.000005 omniscient_anafi4k.worldAttitude.y: -0.000861 omniscient_anafi4k.worldAttitude.z: 0.000000 omniscient_anafi4k.worldLinearVelocity.x: -0.002701 <...>
As the throughput may be very high, you can easily filter the desired variable using classical shell commands. For example:
$ tlm-data-logger inet:127.0.0.1:9060 | grep worldPosition + worldPosition.x + worldPosition.y + worldPosition.z omniscient_anafi4k.worldPosition.x: -0.000043 omniscient_anafi4k.worldPosition.y: -0.000000 omniscient_anafi4k.worldPosition.z: 0.049241 omniscient_anafi4k.worldPosition.x: -0.000043 omniscient_anafi4k.worldPosition.y: -0.000000 omniscient_anafi4k.worldPosition.z: 0.049241
Sphinx is also capable of recording the same data in files, so they can be inspected later off-line.
By default, the file containing true data is located here:
~/.parrot-sphinx/telemetrylogs/log-11345.tlmb. If you did not use HMI port
11345, be sure to replace “11345” with your port number. Note that in the same
folder, you may see other files like
log-11345.tlmb.1. These are the earlier
recordings, which belongs to a history whose size is limited.
To read a .tlmb file, several tools are at your disposal in Parrot Telemetry’s public github repository.