About half of our teams use RobotC as it is a great language to learn on and it is relatively easy to teach. Furthermore, we have classroom licenses to work on at school and it is relatively easy to write and upload to our robots. However, there are countless problems with RobotC and we sought to fix those this year.
PROS is a lightweight and fast alternative operating system for the VEX Cortex Microcontroller. It features multitasking, low-level control, and Wiring compatible functions to harness the full power of the Cortex. Pros cut our development time in half offers so much more freedom for our programmers. First of all, Pros is free! Any programmer can download the software and compile the code. Pros is also one of the RobotC alternatives that will compile and download to the robot on any operating system. This is crucial for our team because many of our programmers run linux or mac. The IDE that ships with Pros is also a massive upgrade from the RobotC IDE. It is built off of the Eclipse IDE and it adds Pros specific tools for compiling and uploading the code. Pros even added an option to retrieve the code off of a cortex. Finally, the Pros language is overall a friendlier and more understandable language. Even though RobotC claims to be a great programming language for beginners, Pros has been quickly picked up by many of our programmers and we see it being easier to teach in the future.
Git helps organize our code by keeping track of sets of changes in the code. Instead of saving a file with a different date each meeting, we can review and commit every major change we make. Here is an example: Bernie is programming and he just finished switching all the motor ports in the code. Usually he would just save the code and no one would have any idea what he changed. Now, with git, he follows a different method. First he can check the status of all his files. He checks over all of changes he made and makes sure they are final. Then he writes a small description about what he changed. Once finished, he commits all of those changes and the process is complete. Then, if he wants, he can push that code to our online repository.
Github is an online resource for all of our teams’ code repositories. Normally, git repositories would only exist local on your hard drive or on a usb stick. However, Github brings the power of the internet to Git. WIth Github, Pinkerton Robotics has a main competition template and each teams host their own copy or fork of the template. Each programmer can then clone that repository onto their computer and work on it from anywhere using the same process Bernie used above. But when they are finished, they can push the commits they have made back up to the online repository where other programmers on the team can get their new code. This allows multiple programmers to work side-by-side without getting in each other's way. Furthermore, all of our changes are online and we can easily display our changes in chronological order. Finally, since all of our repositories are publically available, any other team from around the world can view and use our code according to the Mozilla Public License v2.0. So far, we’ve had a team from New Zealand fork our template.
Doxygen is the final step in our documentation. Although all programmers must follow code commenting standards laid out by the leaders of the robotics club, comments are sometimes very overwhelming to beginner programmers and even hard to read for veteran robotc users. Therefore, we decided that an easier to read documentation solution was needed. We wanted a something as close to JavaDoc and Doxygen was a highly recommend alternative for other programming languages. We hooked up doxygen to run every tuesday and thursday to keep the documentation as up to date as possible. Finally, all the html output from doxygen is pushed to pinkertonrobotics.github.io so that anyone can have instant access to it.