Welcome to the ArmarX tutorials!

ArmarX offers several tutorials to get started and familiar with ArmarX. They are written in a detailed step-by-step manner, so that you can get started with them without knowing anything about ArmarX.

Below is a curated list of tutorials you can follow one after another. Moreover, the different packages of ArmarX provide additional tutorials covering their specific aspects:

See also
If a topic is not covered by tutorials yet, you can have a look at

General tips for doing the tutorials:

  • Really do the things in the tutorials yourself and see what the results look like. Not only is this more fun, you will also get a better feeling for them and memorize them better.
  • This extends to code: Try to actually type code yourself in the IDE (e.g. QtCreator) instead of copy-pasting it from the tutorial. This might feel cumbersome, but this way, you see how the IDE behaves and supports (or does not support) you when writing code, which makes you ready for your own project later on. Also, you memorize the code and workflow better the more often you do it, so you're better going to start right away!
  • Sometimes, a code box looks like this:


    In this case, the $ indicates that this line is the command you should run (excluding the $). The lines below are an example for the result of the command.

Getting Started

  1. Install ArmarX
  2. Explore ArmarX (I): Start the ARMAR-III Simulation
  3. Explore ArmarX (II): Interact with the ARMAR-III Simulation

Beginner Level

Components, Ice and the Distributed System

  1. Create a "Hello World!" Component in ArmarX (C++)
  2. Understand Distributed Systems
  3. Remote Procedure Calls (RPC): Server-Client Communication
  4. Topics: Publisher-Subscriber Communication

More tutorials are provided by ArmarXCore.

Basic Tools

  1. ArViz Tutorial
    • For now, see ArVizExample (an example component for how to use ArViz)
  2. Remote Gui Tutorial
    • For now, see RemoteGuiExample2 (an example component for how to implement a RemoteGui)
  3. Logging of output and data
  4. Tutorial: Creating a new Gui Widget for ArmarX

The Memory System

  1. Write a Memory Server and Client (C++)


  1. Create and Run a Basic Statechart
  2. Basic Tutorial: Counting with Statecharts (An Introduction to the Statechart Editor)
  3. Intermediate Tutorial: A waving robot
  4. Advanced Tutorial: Pick And Place

Intermediate Level

  1. Moving the robot's hand along a predefined trajectory

Advanced Level

Work in progress.