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.
The robot characterization toolsuite currently supports chracterization for:
- Drivetrains
- Arms
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.
The following is required to use the data_logger.py/data_analyzer.py 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, and statsmodels
On Windows the command to install pynetworktables, matplotlib, scipy, and statsmodels is as follows:
py -3 -m pip install pynetworktables matplotlib scipy statsmodels
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 robot program, see the WPILIb screensteps documentation for installing the necessary software on your computer.
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:
- Fork this git repository to your github account
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push -u origin my-new-feature
) - Create new Pull Request on github
All code in this repository is available under the Apache v2 license.
Dustin Spicuzza (dustin@virtualroadside.com)
Eli Barnett (emichaelbarnett@gmail.com)