The CCRE is Team 1540's powerful open-source robot code framework, primarily for FIRST Robotics Competition robots.
Java Racket Shell
Permalink
Failed to load latest commit information.
CommonChickenRuntimeEngine Reformat CCRE May 7, 2016
DeploymentEngine Reformat CCRE May 7, 2016
Emulator Fix #178: Provide consistent derivatives in Emulator Apr 4, 2016
PoultryInspector Improve Javadoc in preparation for 3.4.0 May 7, 2016
SampleRobot Reformat CCRE May 7, 2016
TemplateRobot Fix a number of minor javadoc warnings Mar 4, 2016
TimelineInspector Add TimelineInspector JAR export Apr 1, 2016
ci Apply name change of Colby Skeggs -> Cel Skeggs Feb 13, 2016
docsrc Apply name change of Colby Skeggs -> Cel Skeggs Feb 13, 2016
roboRIO Fix #180: Add safe alternative to talonSimpleCAN Apr 2, 2016
.gitignore Make TimelineInspector name consistent Apr 1, 2016
.travis.yml Switch travis from trusty-based to container-based Feb 27, 2016
BSD_License_for_WPILib_code.txt Clarified BSD license use. May 23, 2015
CCRE_Formatter_Profile.xml Addressed formatting and clarity issues. Sep 19, 2015
COPYING Fixed build files messed up by licenses. Sep 26, 2013
COPYING.LESSER Fixed build files messed up by licenses. Sep 26, 2013
README.md Apply name change of Colby Skeggs -> Cel Skeggs Feb 13, 2016
check-headers-valid.sh Ignore the large name change commit Feb 13, 2016
check-headers.sh Fixed commit header checking and made the ramping parameter optional. Sep 1, 2015
header-dates-ignore.txt Reformat CCRE May 7, 2016
update-documentation.sh Fix documentation automation Mar 4, 2016
update-javadoc-site.sh Update script for updating javadoc to regenerate it Jan 5, 2016
version.properties Update version for additional development. May 7, 2016

README.md

The Common Chicken Runtime Engine

The CCRE solves the problem of writing elegant and maintainable robot software by using a dataflow model and taking care of the infrastructure for your project so that you can focus on the important parts of your code.

Here's an example of a robot piloted with Tank Drive:

Drive.arcade(FRC.joystick1,
             FRC.talon(1, FRC.MOTOR_FORWARD),
             FRC.talon(2, FRC.MOTOR_REVERSE));

Or, something more interesting: an example of a shifting drive train:

BooleanOutput shifter = FRC.solenoid(2);
shifter.setFalseWhen(FRC.startTele);
shifter.setTrueWhen(FRC.joystick1.onPress(3));
shifter.setFalseWhen(FRC.joystick1.onPress(1));

Features

  • Dataflow-based programming
  • Modern framework for FRC robot code
  • An emulator to test robot code without a robot
  • A high-quality publish-subscribe networking system
  • Robust error handling
  • No dependency on WPILib plugins

Documentation and Quickstart Guide

Please read our documentation and quickstart guide!

Contribute

Support

If you are having issues, please let us know. You can reach the primary developer at: robotics [at] celskeggs [dot] com

License

The project is licensed under the LGPL, which means that you can freely use it as a dependency of your project without affecting the license that you use for your project. This is approximate: you should review the terms of the license, which can be found in COPYING and COPYING.LESSER.

Since this project is publicly available, you can use it for FRC robot software legally under the rules (as of 2015), as long as, if you make any changes before Kickoff, you make your changes available publicly. That's because of the FRC rules, not the license. The license does mean that if you release changes to this framework itself publicly, you pretty much have to also make those changes available under the LGPL.