Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Skygauge

Using .csv files in Plotjuggler

  • Essentially a primitive telemetry dashboard/clever workflow to create one

  • I talked with one of my friends who does telemetry stuff for work (for a drone, pretty cool)

  • “we use plotjuggler with csv telemetry files”

    • essentially: Throw csv files (spreadsheet with raw values) at graphing program (plotjuggler). program go whirr. program displays graphs/data visualizations

    • csv file = “comma separated values” file

...

  • How their drone telemetry works on a technical level:

    • Data comes in in byte arrays that a multi-process program parses and hands off to a different program.

    • That program converts the byte arrays of cbor format into csv or spreadsheets.

    • Then a third program takes all the telemetry related csv files and makes a big csv with all the data.

    • Then that big file is loaded in the plotting application

    • This may not exactly be how our telemetry works. The technical details don’t really matter though tbh

  • Basically raw data gets processed a few times into a massive spreadsheet (millions of cells), each cell with a single data entry

    • All the user can really see is the .csv file

  • This file is enormous, and functionally useless to the user. They can’t get any useful insights out of that

    • However, firmware has mentioned that they would like an option to see that raw data as a tab on the telemetry dashboard

Plot JugglerPlotjuggler

  • The .csv spreadsheets are then imported into Plot JugglerPlotjuggler

  • Open-source, so we can poke around if we wanted to (smile)

  • You can create plot setups, so they have a bunch of setups that load once the data itself is imported/loaded in

    • “we have setups for position, velocity, and accel that have targets and actual

    • Then ones for each of the 4 propeller block with the values for the servos and rotor rpms

    • then a page with PID tunings”

    • along with many many other plot setups

  • Each graph below is a “plot setup” that you can just feed data into

...

  • the data loaded in goes in that left panel and you can drag it in, make new plots on the right, and make different tabs of plots (see top for tabs)

  • friend seemed pretty happy with plotjuggler: didn’t have any complaints/pain points with it

  • does require lots of upfront configuration

    • Our telemetry dashboard should just be ready to go, no configuration required (verify this assumption in user interviews)

    • We will also require other visualizations like battery pack architecture

  • Features he liked

    • can drag to resize plots

    • can make timestamps line up

    • change colour of each line

    • apply filters

    • turn data/lines visible/invisible

    • automatically populates data files into the appropriate plot set ups (just keep file names the same)

    • otherwise, you drag and drop data into the plot setup

      • intuitive

      • dragging is bad for trackpad use – this team is in an office and have a computer mouse. Firmware will likely not have this luxury when debugging the car in the middle of some desert

      • dragging bad for mobility/accessibility

      • good to offer an alternative to drag and drop (ie right click → list of plots displayed in dropdown → select from list)

    • can split up an individual plot into two plots, and lay them out either horizontally or vertically

...

Customer/Operator Dashboard

  • These are some photos of the telemetry dashboard used by the customers/operators (as opposed to the development team) – this is for a totally different user and application

  • https://www.youtube.com/watch?v=gt8sCxkrzjg timestamps are 0:45 to 1:00 if you want to see it in action

  • Bottom image is the screen for the “Inspect” tab. The top image I have no idea which tab it’s on.

    • The lack of indication as to which tab/display mode you’re on is confusing (and bad UX)

    • Also note the white on yellow on the (buttons? indicators?) at the very top – contrast is too low

      • Good to use figma plugin contrast checkers like Stark

      • Yes they’re aimed at accessibility, but good contrast benefits everyone, especially if you’re a firmware member looking at the display in bright sunlight

  • If the top things are indicators (red = error, green = good, yellow = double check), that could be a cool way to show system status at a glance, and allow firmware to check systems status quickly

...