Hi *,
I've been poking at adding graphing to altosui recently, here's where
I'm at. (Patches to follow in separate mails, hopefully)
First, here's what the graphs I've come up with so far look like [0].
I haven't converted the GPS ones from Gnuplot to Java yet. The
attached overall_summary.png is the most interesting of them,
probably.
[0] http://azure.humbug.org.au/~aj/tmp/tmflights/2010-08-21-serial-224-flight-0…
I've added a basic interactive graph into altosui via the File menu
(File, Graph Data, choose a CSV file, voila a new window). Once you've
got the graph on screen you can zoom (left click, drag down and to the
right), pan (ctrl-click), and right click to get a standard context
menu that lets you save, print, etc. The only data that comes up for
this at the moment is the attacked "overall summary"
altitude/speed/acceleration plot.
For non-interactive use, you can currently also invoke:
java -cp /usr/share/java/\* -Djava.library.path=/usr/lib/altos
altosui.AltosGraphUI ./telemetry.csv
where "./telemetry.csv" is a previously exported CSV file. This
generates PNGs of all the graphs in the current directory.
You can also invoke:
java -cp /usr/share/java/\* -Djava.library.path=/usr/lib/altos
altosui.AltosGraphUI ./telemetry.csv 3
to get an interactive version of the fourth graph (overall
acceleration) if you want. There are 18 graphs currently setup.
Note that running:
altosui /home/aj/AltOS/2010-08-21-serial-224-flight-004.eeprom
will export 2010-08-21-serial-224-flight-004.csv without starting up the GUI.
As far as implementation goes, I've:
- setup AltosDataPoint to be a simple class that represents a data
tuple from a CSV file without needing to do any calculation. It would
probably make sense to merge this with AltosRecord.
- used Iterable<AltosDataPoint> to iterate over the CSV file.
AltosCSVReader implements that. It'd probably be good if it and
AltosTelemetryReader and AltosEepromReader converged in how they deal
with that somehow.
- setup AltosGraph as a superclass for all the graphs we might do
- setup AltosGraphTime as the class for graphs where the x-axis is
time since launch in seconds (which is all of them currently)
- tried to come up with a Java-ish way of defining graphs. I ended up with:
(new AltosGraphTime("Overall Summary"))
.addElement(e_boost)
.addElement(e_drogue)
.addElement(e_main)
.addElement(e_landed)
.addElement(height)
.addElement(speed)
.addElement(acceleration) );
- made axes automatically get added when elements need them
- made the display window AltosGraphUI
- added a CSV chooser dialog in AltosGraphDataChooser
I think that'll mostly work alright, probably after some tweaking.
I haven't done anything about providing a GUI for changing which bits
of data are included in the graph. I'm not quite sure what this should
look like: it could potentially be widgets beneath the graph, or a
separate dialog box of things to tweak accessible via the right-click
context menu, eg. Or something else. I'm not really sure what people
want to change -- personally, at the moment I like pressing a button
and having all the graphs generated so I can see them on the web.
I'm hoping that when this is integrated we'll be able to send flight
data to Bdale and have the graphs appear on the altusmetrum site
somewhere so I don't have to come up with my own permanent url for
them. :)
The other graphs I'd like to do are:
- ground location as per GPS
- acceleration due to drag against speed
- estimated force applied during burn (taking into account spent
motor mass and drag)
Doing some smoothing would also be useful, and presumably necessary
for any drag calculations.
Cheers,
aj
--
Anthony Towns <aj(a)erisian.com.au>
I have the TeleMetrum Kit from Apogee Components. I have a Windows XP
computer. I kept checking the web site for the Windows Package. After a
few days, I downloaded it. Had a little trouble installing Java, but
finally had a clean install. Got Hyperterminal on the desktop and working.
I have found the command instructions in Hyperterminal and can change radio
channels, test the Main and Drogue by firing remotely using RF. I can
reboot the altimeter when turned veritcal in the idle mode and then it will
start transmitting and the gps get locked on in a matter of seconds. I can
use ao-view to see the information and hear the voice. The problems I need
help with are how to remotely check continuity of the charges using RF. I
don't know how to configure the TeleMetrum when idle mode to check
pyro-match continuity . I also do not understand how to download the post
flight data using the RF link and store it on the computer. Also haven't
used the tools? to make charts of performance of the flight.
Any instructions and further help would be useful. Thanks very much.
Don Houston