Latest Release

The current version of CPSGrader is 0.1 (released Nov 2014). The download consists of a single 40 MB zip archive.

Download CPSGrader

The only requirement to build the CPSGrader library is a modern C++ compiler.

Development Version

An access to the development version of CPSGrader is available upon request to the developpers. Please contact us.


CPSGrader comes with a virtual lab that allows students to test programmed robots using the Gazebo simulator running on the Robot Operating System (ROS). Different test environments can be created using the scenario specification language Scenic and different runtime monitors for evaluating and debugging the solutions can be defined in MTL using the pyMTL tool and the discrete signals library. More on how to install and execute the simulator and monitors can be found on the Getting Started page.

Access to the VM image of the virtual lab:

VM Image



Building the CPSGrader library from sources is currently based on Makefiles and the only requirement is a modern C++ compiler.

CPSGrader download comes with CyberSim -- a robotics simulator based on NI LabView Robotics which was used in the MOOC EECS149.1x on edX. Using CyberSim only requires a computer (or Virtual Machine) running Windows OS.

Folder Organization

Uncompressing the archive should create the following folders and files:

-                Instruction on installation and getting started.
- STLDriver/                CPSGrader main source code and library 
- Simulators/               Folders with various simulators or simulator interfaces for CPSGrader
- Simulators/CPSFileGrader  A simple program using CPSGrader library with trace files  
- Simulators/EECS149lab     Simulator (CyberSim) and material used for EECS149 on-campus and MOOC offerings 

Compiling the CPSGrader library

Go into STLDriver and type make. This will create STLDriver/lib/libcpsgrader.a (or a bunch of error messages, in which case you'd be well advised to contact us).

Testing the CPSGrader library

  1. Go into Simulators/CPSFileGrader
  2. Type make. This will create a binary called CPSFileGrader (or a bunch of errors etc).
  3. Test first with ./CPSFileGrader simple_test.stl
  4. If you don't see a bunch of errors (in which case, you'd be well advised to etc), try the more involved ./CPSFileGrader grading_nav_hill.stl. Note that if everything went well, this will create a file named test_log.txt. Compare this with traces/0001/test_log.txt. If the results are consistent, CPSGrader is working as intended.

If you run into any issues during installation, please contact us and we will respond as soon as possible.