Archive for the ‘FIRST’ tag

Competing for the Future: Developing a Life-Long Interest in STEM, Part II

without comments


Well designed competitions engage students in a range of activities, address academically challenging concepts, and teach important 21st century skills. But, these benefits don’t have to be limited to organized competitions. You can also get all of the benefits of a competition, right in your classroom!

Last week, Part I of our Competing for the Future blog talked about using virtual competitions, like our VEX Nothing But Net and VEX IQ Bank Shot Robot Virtual World Competitions, as a way for your team to compete virtually. This week, we explore how you can use virtual competitions in your classroom to provide a unique and challenging learning experience for all students!

RVW's VEX Nothing But Net

RVW’s VEX Nothing But Net

Step 1: Choose your competition type (simulation or fantasy)

The first step is to choose the type of competition you’d like to use in your classroom. Do you want to use a simulated competition, like the ones that they use in FIRST or the RECF competitions, do you want your competition to take place in a fantasy environment (underwater, outer space, on an island), or do you want to create your own competition?

Are you using LEGO or VEX?

LEGO and VEX are the two most widely used robotics competition platforms and there are great reasons to use both. The Robot Virtual Worlds team has a large selection of LEGO and VEX competitions for you to choose from:

RVW's LEGO Urban Challenge

RVW’s LEGO Urban Challenge

You can download each of these games from the Robot Virtual Worlds Download Center.

Palm Island Game

Palm Island Game

Another option is to use one of the Robot Virtual Worlds fantasy worlds. These worlds are more playful and have specific goals built into them. You can choose from:

  • Palm Island – Designed to teach and reinforce introductory and intermediate programming concepts involving sensor based robot movements.
  • Operation Reset – Programmers are assigned to recharge all of the Communication Towers in the colony of Alpha Base H99, a robotic crystal mining colony near the galactic center of the Milky Way.
  • Ruins of Atlantis – Designed to teach and reinforce introductory programming concepts such as path planning and encoder based movements.
Level Builder

Level Builder

Or, you can create your own competition using the Robot Virtual Worlds Level Builder and Model Importer. With an easy-to-use, drag-and-drop interface, the Level Builder makes it as easy to create a virtual challenge as it is to create a physical challenge out of classroom materials. The Level Builder provides a 12’x12′ square field on which to design your competition. It also provides several objects – from cans and boxes to line tracking tiles – that you can use to design challenging, unique, and fun competitions!

Model Importer

Model Importer

The Robot Virtual Worlds Level Builder also comes with a Model Importer that allows you to create and import your own 3D models! With the model importer, you can also modify objects to make them an unmovable object, a perilous obstacle, or a necessary checkpoint.

Step 2: Determine the rules of your competition

Regardless of whether you create your own competition or use an existing Robot Virtual World, the rules and structure of your competition will allow you to customize the experience for your class, or even for individual students. (This can also be something you discuss with your students and determine together.)

Here are a few things to consider:

  • When will the competition start?
  • Is this an individual competition, or can students work in teams?
  • What type of documentation do you want students to turn in?
    • Does the code need to be commented?
    • Do the programmers need to show pseudocode?
    • Do the programmers need to explain their use of variables and functions?
  • When does the competition end?
  • What does it take to win the competition?

Step 3: Get Ready

Once the rules are set, there are just a few more things to take care of before the competition starts:

  1. Start by installing Robot Virtual Worlds on all students’ machines. Visit our Download Center to get the latest version.
  2. If you’re using one of our Robot Virtual Worlds, such as Palm Island, Ruins of Atlantis, or Operation Reset, make sure you’ve installed that on the students’ machines as well. Visit our Download Center for the latest version of each Robot Virtual World.
  3. Make sure all students understand the competition rules
  4. Get ready to rumble and have fun! 

Need a Few Ideas for Using a Competition in Your Classroom?

With the ability to use an existing Robot Virtual World or create your own challenges, the options for in-class competitions are endless. Here are a few competition ideas if you need a little help deciding what to do:

  • Create a competition using the Palm Island Robot Virtual World by assigning points to the completion of certain tasks.
  • Create a competition that requires students to use a loop and the light/color sensor in a line tracking competition where students need to program their robots to follow a line as fast as possible. Here’s a Teachers POV blog post about the benefits of using this type of competition in your classroom, whether it’s with physical or virtual robots.
  • Robo-Slalom! Use the use the Robot Virtual Worlds Level Builder and Model Importer to create a slalom course that students must complete by programming a robot that can move along the outside of each flag. The robot’s path must prevent it from touching any flag, and allow it to cross the finish line as fast as possible.
  • You can also use a game like VEX IQ Beltway to create an in-class competition.
  • Here’s a Teacher POV blog post about how one teacher created a competition that challenged students to apply the basics of ROBOTC programming while also asking them to come up with unique strategies to try to score as many points as possible in a 2 minute game.

Written by LeeAnn Baronett

October 22nd, 2015 at 6:00 am

Student POV: Droids Robotics

without comments

DroidsIn our newest edition of Student POV, we have Sanjay and Arvind Seshan, who are members of the robotics team, Not the Droids You Are Looking For (Droids Robotics) from Pittsburgh, PA, USA. They are actively involved in robotics all year around, whether competing themselves or teaching others. They constantly share some great pictures on their Twitter page of their team and outreach programs, so we’ve asked them to share some of their experiences in robotics …

Droids 01Our first exposure to robotics was in 2010 when we decided to visit a FIRST LEGO League tournament at the National Robotics Engineering Center (NREC). We were excited by what we saw and, the next summer, we purchased an NXT LEGO Mindstorms kit and learnt to program using Carnegie Mellon Robotics Academy’s NXT Video Trainer.

We haven’t stopped since! In 2011, we started our own neighborhood-based robotics team with eight other friends. We have participated in FIRST LEGO League as well as VEX IQ contests since then. You can read more about us on our team website (

Benefits of Robotics:

Droids 02Participating in robotics has taught us several programming languages, as well as general computer science skills and presentation skills. We now code in NXT-G, EV3-G, ROBOTC, Python and HTML as a direct result of robotics. We are comfortable interviewing experts as well as being interviewed about our work.

We use these skills outside of robotics contests to create webpages, and make online tools and programming tutorials. We even developed a robot in Minecraft that uses Python code to complete tasks. One sDroids 03ummer, we participated in a 24-hour coding contest called Code Extreme. For that event, we created a bicycle renting system using a Raspberry Pi and an RFID reader.

Robotics has taken us to some interesting places: the inside of a Smart House for seniors, under the hood of an airplane engine, and even to a sulfur dioxide sensor manufacturing plant. These field trips have shown us many different STEM careers we might choose from.

Spreading our love for robotics:

We do many robotics outreach activities all year round. We have been invited to teach other students at the Carnegie Science Center and four local libraries in the Pittsburgh area. At these events, we try to introduce students to LEGO Mindstorms, VEX IQ, EV3-G, and ROBOTC. Kids are naturally attracted to robots, and our hands-on workshops have been very popular. In September 2014, we expanded this outreach beyond Pittsburgh by teaching students around the world to program robots using our own lessons and website (

Challenges of Robotics:

The biggest challenge in robotics is probably robot reliability – getting your robot to “behave” as you intend again and again. It takes both software and hardware solutions in combination to improve reliability. To add to this problem, contest environments are often very different from practice environments. Kids who don’t have access to good programming lessons like the ones provided by ROBOTC, CS2N, Carnegie Mellon Robotics Academy’s EV3 Trainer, and often feel frustrated.

Droids 04The challenges in robotics are not problems you cannot solve. They are part of what makes robotics interesting for us. They teach us to come up with different techniques as solutions. They also teach us patience and perseverance!

Overall, robotics has given us opportunities and skills that we might not have discovered otherwise. The greatest opportunity from robotics is finding out what all a robot can do! People some times think that a child’s robot “can only do so much”. We have found that it can lead to learning a lot of advanced programming techniques.

Robotics has opened up a world of possibilities for us. We especially like sharing these possibilities with other people we meet at our workshops and demos.

You can find more information about their team here: and on their programming lessons here:

Written by Cara Friez

March 24th, 2015 at 6:45 am

ROBOTC for LEGO MINDSTORMS Updates 4.30 and 3.65 Available Today!

with 2 comments

The ROBOTC Development Team is excited to announce not one, not two, but three updates this week! Yes, earlier in the week we announced our 4.29 update, but we’ve taken care of a few more bugs along with a 3.65 update. These updates are for the LEGO MINDSTORMS (NXT and EV3) robotics systems and includes new features, functionality and a load of bug fixes. You can download them here! Read more below …

4.29 -> 4.30 Change Log

  • (EV3) LEGO NXT Sensors that are normally auto-ID’d no longer have their autoID flag disabled for that port.
  • (EV3) Fixed an issue with the EV3 remote screen may have caused a ROBOTC crash.
  • (ALL) Rebuilt firmware to version 10.30. All platforms will require a firmware update.
  • (ALL) Prevent Graphical files from asking to save if the “Save On Compile” flag is set to false.
  • (ALL) Update all standard models to have correct drive train setting.
  • (ALL) Fixed an issue where a “sprintf’ varArg list contains a string constant the compiler was generating incorrect code causing a firmware crash.
  • (ALL) Compiler Fix: ‘long’ pointer temporary variables were sometimes being allocated as type ‘signed’ instead of ‘unsigned’.
  • (ALL) Checking for “divide by zero” exception forgot to check in the “module” opcodes; it was only checking the “divide” opcodes. Fixed.
  • (ALL) Fixed issues where the first time the Debugger “Local Variables” window is painted with values (rather than blank) the address field displays “0xCDCDCDCD” rather than the offset.
  • (ALL) Graphical Interface now support “multiple selection” using Shift/Control keyboard modifiers (drag select coming soon!)
  • (ALL) Fix for DebugStream which was adding \r to the String as it was written to file.

3.64 -> 3.65 Change Log

  • (All) Fixed issue with licensing system when an unexpected error code (i.e. server is available but service is down) would cause ROBOTC to crash.
  • (All) Fixed issue with ‘Check for Update’ functionality where a hotel/school wifi login screen might cause a ROBOTC crash with unexpected XML parameters.
  • (All) Fixed issue with licensing system where a license could not be used on the same computer twice.

To read more about the updates from 4.29, visit our post from earlier this week. Happy Programming!

Written by Cara Friez

February 18th, 2015 at 9:30 am

Tons of Robot Virtual Worlds Updates Available Today!

with 2 comments

RVWThe Robot Virtual World team is happy to announce our latest updates are available for Ruins of Atlantis, Palm Island, and Operation Reset! We’ve included updated sample program to support all platform types (VEX CORTEX, VEX IQ, EV3, and NXT) within ROBOTC. You can also choose what type of sample program you would like to use from Graphical, Natural Language, or Standard.

Thanks again to everyone who has provided feedback! Please continue to do so at the Forums. Happy programming!




Written by Cara Friez

February 17th, 2015 at 8:10 am

ROBOTC for LEGO MINDSTORMS 4.29 Available Today!

without comments


The ROBOTC Development Team is excited to announce our latest update, ROBOTC 4.29! This update is for the LEGO MINDSTORMS (NXT and EV3) robotics systems and includes new features, functionality and a load of bug fixes.

This new build of ROBOTC for LEGO Mindstorms includes a number of new features for the EV3 platform, including USB Joystick Support, File I/O (reading and writing files on the EV3), and also Datalogging while using the EV3 platform. Take a look at the sample programs folder for examples on how to use all of the new features with ROBOTC and the EV3 platform!

Click here to download 4.29!

Important Setup Information for ROBOTC 4.29:


  • Simply update to the latest ROBOTC firmware from inside of ROBOTC.

LEGO EV3 Users:

  • All users will need to update the  LEGO EV3′s Kernel by connecting the EV3 and selecting “Robot Menu -> Download EV3 Linux Kernel” from inside of ROBOTC. The version number is the same to keep alignment with the EV3 Programming Software and LEGO’s releases, but the Kernel has bug fixes to increase sensor reliability.
  • After updating your EV3′s Linux Kernel, you’ll also need to update the ROBOTC firmware from inside of ROBOTC.

ROBOTC 4.28 BETA –> 4.29 Change Log:

  • (EV3) Add additional message traces when enumerating Casper devices — generate a message about each device that is found during enumeration.
  • (EV3) Hide “Poll LEGO Brick” from EV3 – not currently supported.
  • (EV3) EV3 motors now use correct motor speed/power functions, depending on the PID flag in the setup pragma/dialog.
  • (EV3) Added intrinsic (getMotorRPM()) to calculate the RPM of a motor, updated 10x per second
  • (EV3) Added intrinsic to sync two motors for an infinite amount of time (setMotorSync)
  • (EV3) modeNXTTemperature_F was incorrectly setting mode to sensorSONAR
  • (EV3) Example of how to use the getMotorRPM() function. Displays a cool RPM meter on the screen.
  • (EV3) convertPCFileNameToFileName_LINUX() uses getMaxFileNameSize() to retrieve max filename size.
  • (EV3) File names exceeding 31 chars are now truncated to prevent errors.
  • (EV3) Fixed the Friendly_IRBeacon.c program, some code was commented out, which shouldn’t have been
  • (EV3) Added a stall detection example which uses the getMotorRPM() function
  • (EV3) Convert legacy NXT I2C types into EV3 equivalents.
  • (EV3) Added “moveMotorTarget” to Graphical
  • (EV3/NXT) Driver Suite updated to the latest version in Git. Note that there’s an identical copy in both the NXT and EV3 folders
  • (NXT) Fixed issue in “Motors and Sensors Setup” the code that compared configuration against the various standard models was not working when “External Controllers” are used.
  • (ALL) “Test Communications Link” dialog was not properly storing/retrieving the registry value for the “Ping Type” variable.
  • (ALL) Debug stream fixed so that “Clear Debug Stream” clears the IDE’s Window at the proper location; previously it was possibly erasing the screen at a spot well after the actual “clear” function was called.
  • (ALL) Enhance Debug Stream handling to better support (1) Buffer overflow conditions and (2) proper visual appearance on IDE when “Clear Debug Stream” intrinsic is used.
  • (ALL) Adjustments so maximum size of messages transferred between IDE and emulator increased to 10K from 1K.
  • (ALL) Fix bug when maximum message size now exceeds maximum flash sector size.
  • (ALL) Joystick buttons had different enums for real and virtual robots. This affected the joy1Btn() command.
  • (ALL) Upissue Firmware Version to 10.29 / Upissue IDE Version to 4.29
  • (ALL) Contents of DebugStream window can now be saved through the menu
  • (ALL) Automatically select RVW package if one is not selected.
  • (ALL) Increase number of RVW Packages available to 40 potential options – allows for future level packs.
  • (ALL) DebugStream can now also be saved as a *.csv file
  • (ALL) DebugStream Window contents can now be saved to a file.
  • (ALL) User models (from Motors and Sensors setup) can now use relative filenames for user models.
  • (ALL) Fix crashing issue when CheckForUpdates get a malformed XML file (typically hotel login pages)
  • (ALL) Fix crash issue when Version XML file download is corrupted by school/hotel/conference “login” screens.
  • (ALL) Fix crash issue when licensing libraries return an unexpected return value – error message string formatting command was invalid causing a crash.
  • (ALL) Added pipe symbol to the LCD Printing Libraries fonts.
  • (ALL) Fixed backslash character in small font.
  • (ALL) Better parsing of “If” and dangling “else” clauses. Prevents a compiler crash when bad syntax in the “if” condition clause.
  • (ALL) Support in GUI for use of user-defined “motors and sensor configuration data files”.
  • (ALL) New “registry flag” to indicate whether user defined “configuration model” files are allowed.
  • (ALL) Previously breakpoints could not be defined in header files. This is now fixed.
  • (ALL) Benign. Enhance output in message trace window for “set breakpoint” message.
  • (ALL) Command line based activation / deactivation commands. Implemented but not fully tested yet – documentation to follow.

ROBOTC 4.27 -> 4.28 BETA Change Log:

  • (ALL) Updated Help System Documentation for new commands and features.
  • (ALL) Updated Firmware for 10.28 / 4.28 compatibility.
  • (ALL) Added a compiler error when ‘switch’ expression was illegal.
  • (ALL) Support for optional “int” keyword as in the declaration “short int” or “int short” in addition to “short”.
  • (ALL) Add USB Joystick control to Graphical (in loop blocks)
  • (EV3) Fixed user reported bug in Synchronized Motor Movements commands.
  • (EV3) Disabled setting sensor ports to typeNone/modeNone when initially configuring port. This prevented sensor ports from being reconfigured manually afterwards inside a program.
  • (EV3) Added Joystick support for EV3.
  • (EV3) Fixed BMP files not displaying properly on the EV3 screen.
  • (EV3) Added Datalogging for the EV3. It is file based and saves the data in a CSV format under prjs/rc-data/
  • (EV3) Added EV3 file operations for reading/writing to files. Commands are available for reading/writing all types and raw data. Files are saved in the standard ROBOTC projects folder and cannot be saved elsewhere for security/safety reasons.
  • (EV3) Fix EV3 issue of USB connected brick disconnected when COMM link is open and IDE cannot recover when USB link is reconnected.
  • (EV3) Changed ramp up/down parameters to 0 for EV3 motors, as per the LEGO programming environment. This is a feature ROBOTC was using but isn’t supported well by the EV3.
  • (EV3) Fixed issue where motor speed was not normalized to -100 to 100 when values exceeding the maximum were provided.
  • (EV3) Adjusted I2C read and write commands to use standard LEGO ioctl. The calls are non-blocking.
  • (EV3) setSensorTypeModeFromWithinOpcode is now used instead of calling for a separate type and mode change. This fixes the issue of bad sensor modes.
  • (EV3) EV3 Touch sensor can now have both bumps and touch value read, regardless of mode
  • (EV3) sensorReset() now calls appropriate reset function, depending on the connection type. If used on Gyro or Touch, the heading or bump count is reset, respectively.
  • (EV3/NXT) Fixed issue with ROBOTC ‘auto-updater’ when launching ROBOTC for LEGO based platforms.

Happy Programming!

Written by Cara Friez

February 11th, 2015 at 4:42 pm

RVW Virtual Brick Giveaway Contest

with one comment


Want to earn a free Robot Virtual Worlds – Virtual Brick license? BotBench has an awesome license giveaway going on now. Be one of the first 20 people to write a review about it on your website, blog or Tumblr, and you’ll receive a free license! Read more about it here!

Not sure what the Virtual Brick is? Check out our video …

Botbench also did a wonderful “First Look” blog on the Virtual Brick. Check it out here – Virtual Brick: A First Look – Making a Line Follower

Want to try out the Virtual Brick? You can download it here and when you do, you get a 10 day trial period.

Happy Programming!

Written by Cara Friez

February 3rd, 2015 at 9:18 am

Update: ROBOTC for FTC – Ask an Expert Webinar next Wednesday!

with one comment

FTCThis Wednesday, Tim Friez, ROBOTC Senior Software Engineer, will be joining FTC’s “Ask an Expert” webinar series to go over the basics of ROBOTC programming for FTC. This is a great opportunity to get an overview of the environment, learn from an expert and ask questions. The live webinar begins Wednesday, October 15 at 7:00 PM ET on YouTube! You can also find the video embedded below …

Robomatter Blog Ad LEGO

Written by Cara Friez

October 7th, 2014 at 8:00 am

FTC Cascade Effect Virtual World Available!

with 8 comments

Hot on the heels of the official game unveiling, the ROBOTC and Robot Virtual World team is proud to announce the availability of the new FTC Cascade Effect virtual world! Check out the rules for the new game here.

ftc game
Like past FTC Robot Virtual Worlds, the game elements, scoring, autonomous period, and tele-operated period are all simulated. We also provide three different robot models that can interact with this year’s game objects.

Conveyorbot is capable of picking up 4 balls at a time, and dropping them into the movable tube goals. The 4 balls can be any combination of the small golf balls or larger wiffle balls.


Scissorbot can pick up any of this year’s game objects: the larger wiffle balls, smaller golf balls, and the movable tube goals. It’s gripper can extend high into the air, allowing it to also drop the balls into any of the goals!


Gripperbot can also pick up all of this year’s game objects: the larger wiffle balls, smaller golf balls, and the movable tube goals. Its streamlined design and low center of gravity allow it to quickly score balls and move tubes across the playing field.


All robots this year have been upgraded with “ball guards” around their chassis and wheels, which will help them to traverse the field once it has been covered in balls. They can also be equipped with either a Gyro sensor for precise turns, even if the robot slips, or an IR Receiver for tracking the center goal! Click here to download some sample code we’ve written to help you get started with all of the robots.

sensors ir

Download and try out the game today. If you are using ROBOTC 4, make sure that your Platform Type is set to LEGO Mindstorms NXT, and that you have “External Motor/Servo Controllers” enabled.

We appreciate any feedback you have! Please feel free to share it at the forums. Also, be on the lookout for future updates on our blog. We will be releasing a game video, along with an update that includes additional features along with robot-to-game object interaction tweaks.

Sensor Section Available Now in our ROBOTC EV3 Curriculum!

without comments

Sensor SectionThe ROBOTC team is proud to announce the completion of the Sensing section of the Introduction to Programming EV3 Curriculum!

Check it out to learn how to use the EV3 Touch, Sonar, Gyro, and Color sensors with ROBOTC Graphical here! The curriculum is completely free to use, and more materials are always being added.

Check out two of the video tutorials below:



Written by Cara Friez

September 5th, 2014 at 3:34 pm

A Teacher’s POV: One Teacher’s Experience at our Training…

without comments

Anna Lynn Martino attended one of our Professional Development classes recently and wrote a wonderful blog about her experience. Check it out below …


Reblogged – “Robots Oh My!” from (link temporarily unavailable)


Last week I attended another teacher training at CMU’s Robotics Academy. My goals this year was to be more comfortable working with ROBOTC, which is the programming language that my FTC robotics team uses. Also, I am teaching/mentoring/moderating our robotics class in the fall. As a middle school with a programming class, I thought my students would be better served by teaching them robotC but also I thought it would be great to have them also prepped for the team if they are interested in becoming part of the team.

Above is a collage showing the ROBOTC graphical interface, some “regular” ROBOTC, and a Tetrix bot.

Again, it was a really great workshop and I learned a lot! It is crazy. I have been teaching Scratch and this summer I introduced kids to Python and some basic programming in Arduino and I was struggling with explaining variables and functions. I got the basics but I had a hard time explaining it because I do not have a Comp Sci background but this time, I totally understood how variables and functions operating within a programming language. Tim Friez, our instructor, was really amazing and his style of teaching was perfect. I think, that his style is what a lot of teachers are starting to go for – in the parlance of our field – student-driven/centered.

We also had a teacher, who works on curriculum development at the center, come in and give us tips and hints about teaching robotics. It was practical advice and just giving us tips on what to be aware of. Also, in order to have a class, there is a fair amount of start-up costs.

What you need:

  • The Robot kits (you might want different types)
  • Fields (for kids to do their challenges on)
  • license for the programming language
  • license for the curriculum
  • remote controls
  • wifi/bluetooth adapters
  • challenge elements (blocks, balls, cut pvc pipes, folders or books for walls
  • colored electrical tape
  • computers
  • expansion kits if you have advanced students (which you will probably have)

I also met some really amazing people and it was great hearing what their challenges are and how they dealt with them. Most of us were just “regular teachers” which also made the prospect of having a robotics class less daunting.

I am again super excited about it but I also realize that I need to recharge. I am taking the next few weeks to do that before orientation week. I worked all of June and July. I do not want to go back feeling like I did not have this time to process all that I did this summer and last year.

If anyone is thinking about teaching robotics, I would highly highly recommend the CMU Robotics Academy. They offer online and campus workshops in the summer. They are going to have webinar soon about EV3 and ROBOTC.

Follow them on Twitter @ROBOTC or subscribe to their blog


Thank you, Anna for the great blog post! To read more from here blog, visit her at (link temporarily unavailable)!

Written by Cara Friez

August 7th, 2014 at 7:00 am