Skip to content
Tools to help FRC teams measure the physical parameters of their robot
Python Java C++
Branch: master
Clone or download
Latest commit 8f242fb Sep 17, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.

Robot Characterization Toolsuite

This is a toolsuite for characterization of FRC robot mechanisms. The characterization tools consist of a python application that runs on the user's PC, and matching robot code that runs on the user's robot. The PC application will send control signals to the robot over network tables, while the robot sends data back to the application. The application then processes the data and determines characterization parameters for the user's robot mechanism, as well as producing diagnostic plots. Data can be saved (in JSON format) for future use, if desired.

Included Characterization Tools

The robot characterization toolsuite currently supports chracterization for:

  • Drivetrains
  • Arms
  • Elevators

Feature requests for additional characterization tools are welcome. Also note that many mechanisms can be characterized by simply adapting the existing code in this library.

Instructions for using the individual tools can be found in their respective project directories. The procedures are highly-similar for all of the tools.

Prerequisites (PC)

The following is required to use the scripts for all of the characterization tools included in this repository:

  • Install Python 3.6 on your data gathering computer that will be connected to the robot's network
  • Once finished, install pynetworktables, matplotlib, scipy, frccontrol, and statsmodels

On Windows the command to install pynetworktables, matplotlib, scipy, frccontrol and statsmodels is as follows:

py -3 -m pip install pynetworktables matplotlib scipy frccontrol statsmodels

Prerequisites (Robot)

If using a Python robot program, see the RobotPy installation documentation to install software needed to deploy robot code, and how to install RobotPy on your robot.

If using a Java or C++ robot program, see the WPILIb screensteps documentation for installing the necessary software on your computer.

Contributing new changes

This is intended to be a project that all members of the FIRST community can quickly and easily contribute to. If you find a bug, or have an idea that you think others can use:

  1. Fork this git repository to your github account
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push -u origin my-new-feature)
  5. Create new Pull Request on github


All code in this repository is available under the Apache v2 license.


Dustin Spicuzza (

Eli Barnett (

You can’t perform that action at this time.