Home / Programming / ROBOTC / ROBOTC 3.0 is Here! (and that’s not all!)

ROBOTC 3.0 is Here! (and that’s not all!)

After what seems like a dog’s age, a new release of ROBOTC has been, well, released (as is often the case with releases). Here’s what I know so far.

Many platforms, one program

Virtual World TableThey’ve done a major overhaul of the internal workings of the ROBOTC program and compiler, you no longer need to install multiple versions for each platform you want to program for. Enabling a new platform is as simple as installing and activating the appropriate license. This is a great advantage for educational institutions as there is now no need to keep several pieces of software up to date but just one.

There is still support for the Mindstorms NXT, VEX Cortex and PIC. Support for Arduino will be added at a later date. I have played with an early Arduino version of ROBOTC several months ago and wrote about it here: [LINK] and here: [LINK]

If you don’t have a robot, never fear! You can now use Robot Virtual Worlds, a completely 3D environment where you can run your simulated robot through a number of obstacles on virtual table tops. There are many different tables to pick from and many more to come.  Just take a look at some  of these awesome looking ones: [LINK].  Now all the kids in the classroom can have their own robot and you’ll never lose another LEGO piece or break a sensor again. The virtual battery packs on these robots also don’t run flat, at least I would hope not.

You can now also chose to run your program on an emulated NXT.  That’s pretty handy if you don’t have a brick handy but you want to try out your program anyway.  Naturally you can’t emulate everything but it’s still very useful.

Making things easier

As mentioned in a previous post, the folks at the Robotics Academy have been working hard on making ROBOTC more accessible to beginners.  They have a new API called “Natural Language” which allows you to program your robot with very simple sequential commands, much like an NXT-G program. Below you can see an example of such a Natural Language program.

task main()
{
  robotType(rembot);  // We are using the REMBOT.

  forward(50);        // Move forward at speed 50.
  wait(2.0);          // Wait 2.0 seconds.
  stop();             // Stop the robot.
  wait();             // Wait for 1.0 seconds.

  backward(50);       // Move backward at speed 50.
  wait(2.0);          // Wait 2.0 seconds.
  stop();             // Stop the robot.
  wait();             // Wait for 1.0 seconds.
}

 

Sensor and Motor Configuration DialogThe sensor and motor configuration dialog has had a total revamp to make selecting the correct sensor easier.  You can also make it preconfigure the motors and sensors for a standard robot, so you don’t need to fiddle with these settings yourself.  This is a robot that is also used in the official ROBOTC curriculum.  There is also a standard robot configuration for the one you drive around in the Robot Virtual World for the NXT (and presumably also for VEX).  This avoids misconfigured motors and sensors but it won’t stop you from connecting the sensors to the wrong port of course! Now the teacher can focus on teaching instead of debugging.

It’s this type of feature that makes the time between building, programming and actually having a moving robot shorter and allows you to focus on the fun stuff: completing the programming challenge.

Many of the previously cryptic compiler errors have been overhauled and made more informative.  After all, what’s the use of issuing error if nobody can understand what it means, right?

New Language Features

The key to World Domination: The NXTBeeThe developers also added a number of new functions and features to ROBOTC to make it even more powerful than it was before.

ROBOTC finally has semaphores, so you can now protect your critical pieces of code to make them truly atomic.  Just be mindful of deadlocks and resource starvation issues. They have added many new string functions and you can now convert your strings to integers and floats using atoi() and atof().  If you ever needed to move large chunks of data inside an array, you can now use memmove(), which behaves just like its C counterpart.

Other Miscellaneous Improvements

Awesomeness on a Stick!Besides all the above enhancements and additions, there are a number of other very cool new features. In the editor you can now comment and uncomment blocks of code with a press of a button or, better yet, a keyboard shortcut (CTRL-Q).  You can also instantly reformat your file to make it look uniform (it’s the little magic wand button next to the comment button).  This is especially useful when working on a project with a number of people.  ROBOTC will also warn you if a file was changed on the disk while you were working on it, rather than just overwriting it.  I am sure the FTC teams will find these new features very useful.

The documentation has had a good thorough update and has been rewritten where necessary.

New License Model

As much as we’d like it to, all of these wonderful enhancements and features don’t come for free.  Up until now, ROBOTC has always given free updates if you had a license.  This proved a little bit unsustainable and they have reworked the license model.  It’s a little complex but it basically boils down to two main license types with several bundle and bulk options for each type.

Annual License – 365 Day license that starts the day the first license is installed on a computer; you are eligible for all software upgrades for the 365 day term of your license.

Perpetual License – The software does not expire and you are eligible for all software upgrades for the life of that version of the software.

If you have a ROBOTC 2.x license, you’ll be happy to learn that they have license upgrades at a reduced price.  You can still continue to use your 2.x license for your 2.x software but if you want to start using ROBOTC 3.x, you will need to purchase either an upgrade or a new license.  You can find out more detailed information about all the various licenses, bundles and discounts on the license pages:

If you bought a ROBOTC license this year, you can upgrade your license for free.  If you have bought a license for ROBOTC 2.x in the past, an upgrade to 3.x will set you back a mere $30. This is the price for a single license, of course.

Still to come

There are some very exiting features in the works that will be added to ROBOTC 3.x in the coming months:

Support for the Arduino platform

  • Multi-Robot Tools and libraries to allow your robots to communicate via XBee. If you ever fancied starting Armageddon with your robotic NXT or VEX Cortex swarm, nothing stands between you and world domination anymore.
  • VEX I2C Sensors and Integrated Motor Encoder support

Complete list of changes

The fairly complete list of changes can be found here: [LINK].  It’s a very big list and you’ll see why I didn’t add them all to this article.  Please note that this list is not an official list, it’s one compiled by me from documents sent to me and posts on the forums.

Conclusion

While they increased license costs may seem like a bit of a hurdle for some, I really think that the new version of ROBOTC is well worth the money.  So many improvements have been made and there seems to be something new in there for everyone.

Most importantly, all the drivers in my suite.  Version 2.1 can be found bundled with ROBOTC 3.x  in the samples for NXT folder. Of course, you can always find the latest version of the suite here: [LINK].

You can download the latest version of ROBOTC 3.x right here: [LINK].  It’s the NXT page, but remember that there’s only one single program now, so this one will work for VEX Cortex and PIC, as well as the Robot Virtual World.

But wait…

The give-away is over, the lucky winners have been drawn.  Check if your name is on the list here: [LINK].

That’s not all! I have 75 ROBOTC 3.0 annual single-seat licenses for the Mindstorms NXT platform to give away!  Just sent an email with your name to xander_at_botbench.com (replace the _at_ with @) with the subject “ROBOTC LICENSE GIVE-AWAY”.  Only one license per person, don’t be greedy.  On Tuesday 20 September I will compile a list of all the people who have sent me a mail and I will draw 75 random names from it.  I will publish the names (not email addresses) of the lucky winners on my blog and you will receive your license in the mail in the days following (it takes a lot of work to type 75 emails!).  I promise I will try not to subscribe your email addresses to any spam lists and will only sell them to the highest bidder, offers can be sent to…nah just kidding.

About Xander

Xander Soldaat is a Software Engineer and former Infrastructure Architect. He loves building and programming robots. He recently had the opportunity to turn his robotics hobby into his profession and has started working for Robomatter, the makers of ROBOTC and Robot Virtual Words.