First Robotics Challenge Projects

This page describes how to install and use the FRCSim robotics simulator. The experience with the simulator was gained during the First Robotics Challenge FRC competitions in 2016 - 2017 seasons. The preparation to the competitions took place at James Madisson High School.


  1. Simulating Autonomous Drive
  2. FRCSim Overview
  3. Ubuntu Installation
  4. FRCSim Installation
  5. Running FRCSim

FRCSim Overview

The FRCSim robotics simulator enables one to simulate a robot on a PC running Linux. Using the simulator one can test a robot control code developed in C++ or Java in a virtual environment. Both autonomous or manual controls can be tested. For that purpose FRCSim provides a plugin for Eclipse which creates interfaces between Eclipse, Robotbuilder, and Gazebo simulator. The plugin is based on WPI libraries. Both Eclipse and RobotBuilder are included into FRCSim installation.

Below are some snapshots illustrating the FRCSim robot simulations.

Team 620 Robot in FRC 2016 Competition
FRC 2016 Field
FRC 2015 Field
FRCSim tutorial robot performing autonomous actions.

Installing FRCSim

First you need to install Linux. In particular, Ubuntu Linux was tested with FRCSim and can be installed on a PC, a laptop, or even an external hard-drive.

If the installation is done on an internal drive, it can be configured as a dual boot which preserves the original operating system. In this case one should have around 20GB of space on the internal drive free for Ubuntu installation.

If the installation was done onto an external drive then in order to boot from the external drive one should open the BIOS boot options menu, usually by hitting F9 or ESC after the power button was pressed, and select the external drive as a boot device. One can also set a default boot device to the external drive. In this case the computer will always boot from an external drive if it is connected and has a bootable partition on it.

Below are the installation instruction for installing FRCSim on Ubuntu 14.04. This version of Ubuntu provides the easiest installation of FRCSim with this script.

Installation Instructions

  1. Download Ubuntu 14.04 and save it onto a DVD or USB drive.
  2. Install Ubuntu in one of the options suggested above, i.e. internal or external drive. Some hints:
  3. Follow the instructions provided in this link.

For other versions of Linux you may follow this link. For more information on FRCSim go to this link and for a more general information on the FRC Control System go to wpilib.screenstepslive.com/s/4485.

Rrunning FRCSim

Good tutorials to follow are the one on GearsBot and PackGoat. Also, you may use a well functioning robot prototype model: Ekips. This can be downloaded from this link.

Programming Hints

  1. When implementing GearsBot, PackGoat, or Ekips, you may need to fix a small bug in the code as explained here and in this video. These are also excellent sources to learn Eclipse debugging.
  2. Even after implementing the fix above you may find the autonomous mode not working. We found that this is because some commands never return the completion status, since the sensors that should detect that completion are not implemented into the model. One fix for that would be to specify a timeout for each command which relies on the sensor input for completion status.
  3. You may find that when GearsBot tries to pick up the red can it slips out of its claw. This is weird since the friction factors of can's surface seem to be set up correctly. One way to avoid this is to pick up a different object, such as a cube of the right size.
  4. If for some reason you want to avoid using the CommandGroup class and use a simple Command class, you can use this example of an autonomous command for GearsBot which is of a Command class. It executes a set of commands to grab an object and put it on the box. Each command is executed with a pre-defined time delay which is set inside the pause() function defined inside the Auto class. To use the class, import the Auto.java file as a class into the GearsBot projecet and use it instead of the Autonomous class.