TRS: An Open-source Recipe for Teaching/Learning Robotics with a Simulator.
:: setup a laptop in 5 minutes, write a control, navigation, vision or manipulation program in 100 lines of code


Tutorials and workshops related to TRS are regularly organized:

Upcoming Events

Past Events

TRS was presented at the following events:


TRS is an open-source recipe for organizing a master-level robotics project. It relies on a cross-platform robot development and simulation environment that can be installed in five minutes and that allows students to write control, navigation, vision or manipulation algorithms in a hundred lines of MATLAB or Python code. TRS contains a project structure (documentation, objectives, milestones), and the software skeleton for running the project (simulator models, MATLAB code examples, install instructions). It is freely available and extendable.

Because working with hardware is time-consuming, many Master-level and PhD-level robotics courses leave hardware issues aside, to give the students time to study theoretical concepts and information-processing algorithms. Unfortunately, hardware-free courses often come with no hands-on exercises, which impedes learning. Here, we consider one solution to this problem: allowing students to gain practical experience in a simulated environment. Open-source simulators have existed for a long time, but their limited ease-of-use made them impractical for teaching. Ease of use is crucial in teaching: The software must be robust, multi-platform, and its installation has to be trivial. V-REP, the simulator on which TRS is based, can be installed on Linux, OSX and Windows simply by uncompressing zip archive.


V-REP simulation of a youBot.

Software development is another major challenge in robot development. TRS is based on the Robotics Toolbox for MATLAB (RTB), a library of robot-oriented software building blocks. Its MATLAB implementation makes it accessible to branches of engineering where fluency in C++ is not expected.

TRS is an environment, based on V-REP and RTB, that allows students to control a robot from MATLAB. The environment consists of a set of MATLAB scripts, and a V-REP file modeling a mobile robot and a building floor. Running a single MATLAB command establishes a connection between MATLAB and V-REP. The user is then able to recover sensor data (images, scans, odometry), process those data, and send commands to the robot's actuators. The robot's sensors and actuators are accessed via MATLAB functions:

vrep.simxSetJointTargetVelocity(id, wheel1, 10);

An understanding of the simulator itself is not required, as all the programming is done through the MATLAB interface.

The behavior of the youBot shown in this video is coded in MATLAB in 500 lines of code. The youBot explores and maps its environment, and it detects and marks rounded baskets. The code runs in quasi-realtime on a standard laptop. Download this video in MP4/H.264 or WebM/VP8, or view it on Youtube.

What You Get

TRS provides a recipe for organizing a Master-level robotics project. The project consists in using a mobile robot to pickup groceries from a table and move them to different baskets distributed across a house. The project involves control, navigation, mapping, vision and manipulation. The recipe is composed of:

  • a page that explains how to setup a laptop to work on the project
  • a page that presents the project definition: objectives, milestones, a description of the robot and the documentation of the MATLAB functions that access the robot's sensors and actuators
  • a MATLAB script that illustrates access the robot's sensors and actuators
  • a V-REP model of a building floor, and a few MATLAB scripts that make programming easier

How to Use

TRS is intended primarily for teachers, but students are welcome to use it for personal projects.

The TRS recipe is freely distributed via a GitHub repository ( The code and the V-REP models are in the master branch), and the doc is in the gh-pages branch. The page that you are reading now is generated by the GitHub Pages service from the gh-pages branch — in other words, everything you see on this website can be obtained by cloning the whole TRS repository. By cloning the repository, you can quickly adapt both the code and the web doc to your own likings.

All of the TRS material (code and documentation) is published under open licenses. The code is published under GPL, and the documentation (the pages published on this website) are CC. These licenses allow anyone to copy, improve, and hopefully contribute back, to provide robotics students with an excellent learning experience.


TRS was created by Renaud Detry for a course taught at the University of Liège, with lots of help from Coppelia Robotics, Peter Corke, and Thibaut Cuvelier (videos and copy editing).

Valid HTML5 and CSS
© Renaud Detry 2014
This work is licensed under a Creative Commons Attribution 4.0 International License.