Skip to main content

A matplotlib based plotter for FRC logs and networktables

Project description

Overview

The lime-plotter application plots data collected from robots in the First Robotics Competitions and plots them to the screen or to a PNG file. It can read data from CSV based log files, or via a networktables server (IE, from a robot over its wireless network).

Usage

Installation

Install any needed modules and the lime-plotter itself:

pip3 install --user --upgrade frc1678-lime-plotter

Things to plot are specified either via complex command line arguments with the -p switch, or via easier-to-read-and-write YAML configuration files (see the example below).

Reading from logs

lime-plotter.py can be run with a -L switch to load CSV files from a file, multiple files, or a directory. EG calling it as:

lime-plotter.py -L DIR

Will load all the files it can from the DIR directory. Table names will be assumed from the CSV file names.

Reading from FRC network tables

To read from a network table, use the -N switch to specify the network address to connect to, and optionally a -T switch to specify a default table to read from.

lime-plotter.py -N 10.0.0.1 -t nettable

Listing available tables / columns

This works for both NetworkTables and CSV logs:

lime-plotter.py -N 10.0.0.1 -l

Example configuration

The following are YAML file configuration examples.

Example single graph

The following example configuration file specifies a single plot called position and plots two overlayed graphs from the robot's drivetrain_status table:

plots:
  position:
    - x: estimated_x_position
      y: estimated_y_position
      xmax: 7
      xmin: -7
      ymax: 7
      ymin: -7
      table: drivetrain_status
      fixedAspect: True
      title: X/Y Test
    - x: profiled_x_goal
      y: profiled_y_goal
      table: drivetrain_status
      last: 100

Saving this to xy.yml and running lime-plotter.py to load logs from a 'log' directory as follows:

lime-plotter.py -L log -y xy.yml -o xytest.png

Might produce the following graph:

X/Y Test Graph

Example multiple graphs

To display multiple plots, configuration files can contain multiple named entries:

plots:
  velocity:
    - y: linear_velocity
    - y: angular_velocity
      title: Velocity
  elevator:
    - y: elevator_height
      title: elevator Height

And run with

lime-plotter.py -L log -y multiple.yml -o multiple.yng

Will produce a graph similar to the following:

Multiple Graphs

Including an svg image (such as a field map)

Can be done with a 'data_source' entry inside a plot:

plots:
  - data_source: svg
    file: 2020map.svg
    y: bogus
    x: bogus
    xmax: 54.0833333333 # scale svg to these dimensions
    ymax: 26.5833333333
    alpha: .5

Animation

When plotting from networktables or with the -a switch applied, a window will open that will animate the data flowing over time (live in the case of networktables). You can use the -f switch to change the frame rate (when graphing CSV files, it'll draw faster with higher values -- the default is 20; when drawing from network tables it'll use this value as the polling frequency, and should be set to the same number of milliseconds that the robot is using to update tables).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

frc1678-lime-plotter-0.5.3.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

frc1678_lime_plotter-0.5.3-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file frc1678-lime-plotter-0.5.3.tar.gz.

File metadata

  • Download URL: frc1678-lime-plotter-0.5.3.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.2 pkginfo/1.4.2 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.5

File hashes

Hashes for frc1678-lime-plotter-0.5.3.tar.gz
Algorithm Hash digest
SHA256 18aaec811164a21c8ffd6e361adaa7acb5da06b364f02a52cac15e205c0c9bd8
MD5 529445433f746093f06b713d8b23cc56
BLAKE2b-256 506728d5cffc9ff4fa0d35c1b224928757a6728910ca696dda819314563a61fe

See more details on using hashes here.

File details

Details for the file frc1678_lime_plotter-0.5.3-py3-none-any.whl.

File metadata

  • Download URL: frc1678_lime_plotter-0.5.3-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.2 pkginfo/1.4.2 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.5

File hashes

Hashes for frc1678_lime_plotter-0.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e08e5654418aa08b7cf05754796f4cd7066913830e81c903d7cd7bcaf377937f
MD5 227913d8f68d77175467263fbc24c24f
BLAKE2b-256 1961e4474568dc75886ce58f93c1d58b0b26dda61fe59fe1dc551de82a758e4c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page