libARMANI: Autonomous Robot Manipulation Simulator (until 2012)

libARMANI is an Autonomous Robot MANIpulation simulator written in C++.

A physically simulated robot stands in front of a table and manipulates blocks, balls and boxes of different sizes -- good old blocks world for (almost) real! libARMANI uses realistic robotic kinematics, plath planning methods and a 3D rigid-body dynamics simulator (ODE) that enables a realistic behavior of the manipulated objects.

libARMANI is based mainly on software by Marc Toussaint.

I used the robot manipulation simulator implemented in libARMANI extensively in my PhD thesis and in the following paper:

Tobias Lang, Marc Toussaint
Planning with Noisy Probabilistic Relational Rules
Journal of Artificial Intelligence Research, 2010, Vol. 39, p. 1-49
PDF    Bibtex

libARMANI can be used as an experimental testbed for relational reinforcement learning. For this purpose, it provides an interface to libPRADA.


Version 1.0 (June 2012): libARMANI.tgz
(There are older versions.)

You'll find a guide in the zip package. I'd be very happy to hear about your experiences, problems, complaints, desires etc. when using libARMANI!

Simulator movies

The following movies illustrate libARMANI and its physics engine (ODE). Note that thus far the robot is equipped with a magic finger to grasp and move objects and open and close boxes.

Random actions
The robot perform random actions which are then used to learn a rule-based world model.
Get the Flash Player to see this player.
Desktop clearance task
The task of the robot is to clear up the desktop, i.e., to stack objects of the same color into piles. In this video, the robot plans with PRADA using relevance grounding. Get the Flash Player to see this player.