RCFS provides a collection of interactive examples and source codes to study learning and optimization techniques in robotics. It is currently maintained by Dr Sylvain Calinon at the Idiap Research Institute.

Contributors: Sylvain Calinon, Philip Abbet, Jérémy Maceiras, Hakan Girgin

RCFS is licensed under the MIT License.

For the 3D examples, some files are based on the corresponding ones found in the Rocksi project, licensed under the MIT License, and are identified as such in their header.

For the 3D examples, the Franka Emika robot model files are licensed by Franka Emika GmbH under the Apache 2.0 License.

What does RCFS contain?

RCFS can be used to study and test learning and optimization techniques in robotics through simple 2D examples.

It is composed of three parts:

  • Interactive examples to be run directly on webpages, either by using code snippets that can be modified, or by changing parameters with the mouse (changing the location of the objects to be picked by the robot, perturbing the robot with the mouse pointer, adjusting the control parameters with a set of sliders, etc.).
  • Source codes provided in a variety of programming languages, including Python, Matlab (with full compatibility with GNU Octave), C++ and Julia.
  • An accompanying PDF containing the corresponding descriptions of the algorithms.

The technology used for the web-based interactive examples and exercises is built upon PyScript, which exploits the same core components as Jupyter Notebooks, but providing more customized functionalities and a modern integration to websites.

How to use RCFS for teaching?

RCFS can be used for teaching by explicitly mentioning the origin of the codes/examples, by including as a link:

https://rcfs.ch/

or as bibtex reference:

@techreport{Calinon23rcfs,
	author="Calinon, S.",
	title="Learning and Optimization in Robotics, Lecture notes",
	institution="Idiap Research Institute",
	year="2023"
}

The interactive examples can potentially be integrated in three manners in robotics courses:

  • During lectures, as interactive examples that can be directly run by using the mouse cursor or in the form of live coding that can be fluently integrated within the course, without additional clutter since only very few lines of codes are displayed for each topic (only the lines of interest are displayed for each interactive example).
  • During labs, in the form of step-by-step exercises that the students can freely use during the labs or after the labs to better understand the learning and optimization algorithms that are taught during the lectures. In particular, this also allows them to observe and assess their potential limitations by direct interaction (by trying to push the models and algorithms to their limits by changing the configurations of the involved objects, by virtually pushing the robot with the mouse cursor to introduce perturbations, or by changing the optimization parameters through sliders).
  • For individual online learning, by having access to the interactive examples and exercises as standard accessible webpages that do not require any installation or any specific hardware/software.

Why standalone source codes?

RCFS also provides more traditional source code examples in various programming languages, where each example is a standalone program to facilitate the modification and re-use of the codes. The examples use homogeneous variable names between examples and between programming languages, facilitating the passage between one example to another, and also between one language to another. While the majority of users will leverage the Python examples, the effort of replicating the same codes in other languages aim to provide users who would not be more familiar with other languages to focus on the algorithmic part of the programming, instead of focusing on coding/syntax details. The choice of providing only simple graphics rendering and of concentrating on planar robots follows a similar principle, by providing minimal codes that focus on the essential algorithmic aspects to understand learning and optimization techniques in robotics.

By providing standalone examples, RCFS allow users to more easily master the whole algorithmic pipeline. They can see with basic examples how the topics that they learned can be put in practice with short codes that can be run independently. This approach is aimed to be complementary to the code snippets in the interactive web-based examples of RCFS that focus on very specific parts of the algorithms.

Why not providing notebooks?

The use of notebooks is nowadays highly popular for teaching. When used correctly, this format has undeniable advantages. However, when providing students with material to study robotics, we believe it is also important to prepare them to the next steps that will require them to move outside notebook environments when considering real robots applications. In this view, the short standalone codes in RCFS can help at facilitating this transition. In the provided codes, the focus on the graphics rendering aspects is minimal. In the web-based examples, since this part is hidden, the examples are created to be visually more appealing and technically more impressive.

RCFS logo

The RCFS logo image can be generated from a linux command prompt (see this shell script). You need these three fonts installed on your system before running the script: Courier (public domain), Roboto (Apache 2.0 license) and Permanent Marker (Apache 2.0 license).