GRTFramework v5

Well hello again!

A brief, but potentially useful shameless plug:
For programming in Java in this year’s competition, you should check out the GRTFramework:

http://code.google.com/p/grtframework/

Why?
It’s free.
It provides asynchronous, event-driven API’s for all robot hardware.
It supports an MVC-like abstraction and encapsulation system for clean, elegant code.
It’s easy to learn use, with loads of documentation and active support.
It has a simulation/emulation environment for time away from the 'bot.
It’s been in use on multiple robots for over 1.5 years, with lots of utilities to make development easier (network API, file logging, switchable modules).

and…because you wish your Main looked like this:

http://code.google.com/p/grt192/source/browse/trunk/SanDiegoBot/src/edu/wpi/first/wpilibj/templates/MainRobot.java

(team 192, 2010)

Tasty morsel of what development looks like:

http://code.google.com/p/grtframework/wiki/GRTFrameworkApplicationFlow

Examples of where its been used in various bots

http://code.google.com/p/grt192/

Enjoy!

The GRTFramework looks really interesting. Can the code actually be run/debugged without the cRIO being physically present via IP address?

We have a problem with limited class time. Presently we cannot debug code outside of class time because the code must be ‘deployed’ to the cRIO.

James Habersat
mentor, Team 614
Alexandria, VA

Has it been tested on the 2011 system yet?

@lineskier: yes its running on a robot built in the last 4 days, using the 2011 SDK and hardware. Robot has all the normal things (4CIM drive by jaguars, line followers, camera, accelerometer + gyro, encoders etc).

@jhabersat: the way the “emulation” works is by taking the code that you write on top of the framework, and simply not making calls/importing WPIlibJ (which is what the hardware is dependent on). Instead, these hardware bindings are made to the EDemoBoard part of the Sun SPOT hardware platform, which has a hardware emulator called “Solarium”. Obviously there’s no physics simulation, but it does allow you to run your code in some capacity without the actual robot. Get the silly runtime errors out and such.