A big list of all the FRC team software releases from recent years!
Want to add something about your code, or don't like how your team's work shows up? Send a pull request!
Also, note that it's not entirely clear that adding your code to this list is sufficient to count as a code release. You are recommended to create a Chief Delphi thread and then add your team's code to this list.
- LabVIEW
- C++/WPILib
- C++/Command-Based
- Java/WPILib
- Java/Command-Based
- Java/CCRE
- Python
If you have any questions about what we have done let me know.
Chief Delphi | Robot Code on Dropbox | Dashboard Code on Dropbox
- Java simulator - Unobtrusive "simulator" that can be used with any teams java code. It sounds like we took a similar approach to what team 254 did
- Custom SmartDashboard widgets - Custom widgets to show robot state, motion profiling state, and our autonomous editor
- Autonomous Scripting - Command based autonomous scripts. Stored as text files on the robot, can be edited from the SmartDashboard
- Motion Profiling - I had my students hand roll a simple version for straight paths. We also took team 254's spline library as is.
In developing our software this year, we tried to have a more structured design process. We made a design notebook for our entire robot which will be released at a later date, including class diagrams and sequence diagram. We used the Agile methodology to develop our software, which worked quite well with the structure of a FIRST season and our constantly changing requirements
Chief Delphi | [Robot Code on GitHub] (https://github.com/ArcticWarriors/snobot2015) | PDF
This year’s software includes new features such as a test harness and simulator code to run the program on a computer, web-based graphing tools, constants editor, and autonomous selection, blocking autonomous routines, and a controller that calculates and follows a trapezoidal motion profile, on the fly.
Chief Delphi | Robot Code on GitHub | Simulated robot hardware on GitHub | Simulator on GitHub | GitHub
As our robot code approaches its zenith, I wanted to share it with the Chief Delphi community for people to learn from, possibly to get suggestions, and to show the world how the Simple Machines works. Nice and simple; our code is like our machines. Features: autonomous recorder and playback, mecanum driving, pneumatic elevator, and a cool dashboard.
Chief Delphi | Robot Code on Dropbox
This includes a library for using CAN Talons in LabVIEW with limited memory overhead, a scripted autonomous structure and text editor with a customizable programming language, and our version of Smart Dashboard which uses UDP instead of Network Tables. It also contains our offseason RGB lights code.
We experimented with Feed Forward and Motion Profiling in the fall. With some tuning, I was able to get our 2015 bot and a kitbot to go any distance I wanted without encoders (within an inch or two). I am still working on the integration with Feedback to make it more accurate and the latest code will be available on Github. This project may not be able to be opened until Kickoff because older versions of LabVIEW do not support projects built under Beta.
Chief Delphi | Robot Code on team website | Robot Code from Beta 2015 | Team Website | GitHub
I don't really have an interesting descriptive label like most of the others.
Highlights:
- ADXRS453 gyro implementation in python
- Intakes have current monitoring to prevent jamming and increase intake speed.
- Fully automated stacking
- Motion profiling implementation in python
- Gui to keep track of stacking sequence written in python.
- Cheesy Drive implementation in python
Chief Delphi | Robot Code on GitHub
Included is our LabVIEW Swerve Drive and Arm control, our dashboard, and the vision code we used this year on our on board Jetson TK1 to detect the green bins during auton. We will be releasing a few whitepapers in the following month(s) about the systems our robot used this year.
Chief Delphi | Robot Code on GitHub | Dashboard Code on GitHub | Vision Code on GitHub | Vision Whitepaper on Chief Delphi
- Most of the stuff we modify year-to-year is written in C++ and Python
- We use Python to design our controllers and generate raw matrices for our state feedback controllers that can be used with the C++ code directly. Another thread diving into our control system code and theory is available here
- We recently switched from an older build system based mainly on GYP files to Bazel, which is the publicly-available version of Google's build system
- All robots included in this snapshot (2014 competition robot (Mammoth), 2014 3rd robot (Butterknife), 2015 competition robot (Subzero), and 2015 third robot (Robonauts?)) are up-to-date for the RoboRIO and other 2015 FIRST control system components
Chief Delphi | Robot Code on team website | General software info on team website | CAD on Chief Delphi | Team Website
2015 was a learning and testing year for the Thunderbots, so you'll see a lot of test codes and not a lot of organization. This season we'll see more organization.
Chief Delphi | Robot Code on GitHub | GitHub
Code for the new 2015 FIRST Robotics Competition RecycleRush.
You may notice two weird things. The first is the array and method at the top of the OI. These are used to add a dead-zone into the controller, making them less sensitive. The second would be the SimultaneousOp CommandGroups in the IntakeArms and CanManipulator Commands folders. These are used so that we can both drive the rollers/arms, and the elevator/arms simultaneously. We could have had a command for this, but by using a command group we can also use the separate commands outside of it.
Chief Delphi | Robot Code on GitHub
We ran our robot software department on a code-review setup: everything got developed in a separate branch, pull-requested, and code-reviewed before merge. You can see the log of this on the project page. 107 pull requests! This ended up working really well for us - it allowed us to edit each other's code to be higher quality in a way that gave everyone rapid feedback and allowed team members to become much better programmers over the course of the season.
(Also, for reference, our code uses the Common Chicken Runtime Engine, our dataflow-based robot code framework, which should explain some of the nonstandard coding.)
One other thing that helped: multi-layered autonomous modes. Some of our modes would pick up totes. To do this, they would start the pseudo-autonomous mode for autoloading (which was also used by the drivers), which would, in turn, also start the pseudo-autonomous mode for automatically controlling the elevator stacking sequence (also available to the drivers separately.)
Chief Delphi | Robot Code on GitHub | GitHub
This year we used the new AndyMark Swerve Drives.
Chief Delphi | Robot Code on GitHub
As promised here is team 1756 Argos robot code. We did not clean it up so it is a little messy but if anyone has any questions please feel free to ask.
Chief Delphi | Robot Code on Chief Delphi
2015's code features code to connect to an arduino over ethernet, PID with feed forward, and more.
Robot Code on GitHub | Ardunio Code on GitHub | GitHub
This year was exciting for the programming team. New control techniques such as PID were explored, and new Talon SRX speed controllers made programming and wiring easier. Our team believes heavily in the WPILib programming model of Subsystems and Commands. All of our code follows this Command Based model.
Chief Delphi | Robot Code on GitHub
This year we added a better way of examining match data by putting match data onto a file that we can look on after a match. We also experimented heavily with PID and added some functionality in the library to compliment it in the future. Lastly we tried to find a better way to manage the smartdashboard but it is currently incomplete and will most likely be finished in the of season. Other than that there were a few minor tweaks and additions.
Chief Delphi | Robot Code on GitHub
The most interesting parts are the Swerve Drive folder, and the AppleScript folder. AppleScript is a scripting language that is used to rapidly develop autonomous code, and is then executed by an interpreter in LabVIEW. The script is stored on the driver station computer, and is sent to the robot over network tables whenever an update is made.
Chief Delphi | Robot Code on GitHub | Swerve Drive Powerpoint on Google Drive
- Flexible drive system that makes it easy to implement different drive systems. The mecanum code features support for gyros and wheel encoders, but not everything is fully tested.
- ParameterCommand - allows Commands to have parameters that can be set from the SmartDashboard.
- State machines to control other robot subsystems.
- Semi-functional driver for the ITG3200 gyro (we didn't use it).
- Slider - a simple slider control, something that is missing from the built in widgets.
- ParameterCommand - widget that displays the parameters from a ParameterCommand on the robot
- WheelController - Used in conjunction with our drive code to display throttle, current and other values from our motors.
- VideoServer - allows for streaming of any OpenCV image over http as an mjpg. It could probably use some improvement, but it works okay. It was ported from a (non-FRC) C++ version I wrote earlier, which I released here, in case anyone wants to see it.
Chief Delphi | Robot Code on GitHub | SmartDashboard Extensions on GitHub | Vision Processor on GitHub | GitHub
As one of our seniors put it, "Wow this is some cool code for you!" I couldn't have put it more eloquently.
Chief Delphi | Robot Code on GitHub
This was definitely our most complex robot to date. Comments and questions welcome.
Chief Delphi | Robot Code on GitHub | GitHub
A couple things we would like to call out are the 3 tote autonomous sequence and our fully autonomous stacker. We attribute much of our success to our automated sequences that allowed the drivers to focus on playing the game at a higher level.
Chief Delphi | Robot Code on GitHub
Our Sequencer Factory class enabled us to rapidly create and modify auto sequences, which could also be used in teleop.
Chief Delphi | Robot Code on GitHub
Of note in this code is our autonomous play infrastructure which is described in the attached document. In summary, the infrastructure uses parameterized commands to develop autonomous plays. Once the basic commands are created, no further modifications to robot code are needed. An external labview application runs on a separate laptop or the driver station laptop. This application connects to the robot and reads the available commands. You then build plays using the commands and adding values for the parameters. Commands can be run sequentially or indicated to be run concurrently. Each play is a separate file stored on the robot which can then be selected from a pulldown menu in the DS. Plays can be rapidly modified and rerun (like on a practice field) because no code deployment is needed.
Chief Delphi | Document on Chief Delphi | Robot Code on Chief Delphi | Dashboard Code on Chief Delphi
Hello! I am a member of Storm Team 2729. I am making our 2015 season's code available to the public.
Chief Delphi | Robot Code on GitHub | Arduino LED Code on GitHub | Vision Code on GitHub | GitHub
I have decided to post our robot code on cd. Our robot has 4 encoders with an H omni wheel drive. We have a elevator on the front and a pneumatic claw and elevator on the rear.
Chief Delphi | Robot Code on GitHub | Website
There are several good examples of combining state machines with the Command-Based Robot framework.
Chief Delphi | Robot Code on GitHub
If you have any questions about any of our code, feel free to ask. Apologies for the messyness of the source, our branches are kinda screwy right now, but WIP_secret_weapon is our main code branch.
Chief Delphi | Robot Code on GitHub
Typical FRC code, just as WPI likes it. There are a few neat features that we added at competitions to meet our needs:
The 2015 code has a feature where it will not report that the code has "started" until we see that the smart dashboard has connected - which picks our autonomous mode. We accomplish this by extending IterativeRobot.class (ours is IterativeRobotCustom) and not executing the line that tells the FMS the code has started (FRC.ObserveUserProgramStarting()) until we receive a user's click on a smart dashboard item.
Also, the 2015 code will crash the code (throws an exception) if the driver's joystick calibrates improperly. When this happens, the LED strip on the driver console lights up bright red and the user needs to restart the code and recalibrate the stick (unplug and plug back in, hit F1). This code also has an implementation of the PulsedLight LIDAR-lite module, and changes the colors of the driver station LEDs according to the distance, which helps us line up at the human feeder station.
Chief Delphi | Robot Code on GitHub | GitHub
Most of the code is pretty typical FRC code (complete with warts). There are a few unusual things in there, though, that other teams may find useful:
- event logging.
- data logging.
- UDP transmission of JSON encoded data to an onboard co-processor.
- UDP reception of JSON encoded data from an onboard co-processor.
- adding third party jars to the build.
Chief Delphi | Robot Code on GitHub | White paper
This is the repository for the Bit Buckets FRC Team 4183 2015 build season source code.
This is the first year we used Python as the primary programming of the robot. The code is pretty basic for our lifter, but the code provides a decent template for future teams to try Python. We had a good experience with it because of the support of the developers of RobotPy.
Chief Delphi | Robot Code on GitHub
Our robot has a mecanum drive train, an elevator, a telescoping arm, and a pneumatic claw. This is its code.
Chief Delphi | Robot Code on GitHub
- No old code yet, except a port of last years robot code from Java (not available) to LabVIEW.
- The projects directory has some design stuff (schematic, firmware, and LabVIEW code) about the control board that's being developed to make it easier to add a custom operator interface for the robot.
- We're participating in the Robot In 3 Days project. The code for that project will be available in 2016/Ri3d.
Chief Delphi | Robot Code on GitHub | Team Website
Code for 2015 robot