[Documentation] [TitleIndex] [WordIndex

Only released in EOL distros:  

Tutorials on Articulated Objects

  1. Learning Kinematic Models for Articulated Objects using a Webcam

    This tutorial is a step-by-step guide that instructs users how to learn kinematic models of articulated objects only by using a webcam and a laptop.

  2. Getting started with Articulation Models

    This tutorial guides you step-by-step through the available tools for fitting, selecting and displaying kinematic trajectories of articulated objects. We will start with preparing a text file containing a kinematic trajectory. We will use an existing script to publish this trajectory, and use the existing model fitting and selection node to estimate a suitable model. We will then visualize this model in RVIZ.

  3. Using the Articulation Models (Python)

    In this tutorial, you will create a simple python script that calls ROS services for model fitting and selection. The script will output the estimated model class (like rotational, prismatic, etc.) and the estimated model parameters (like radius of rotation, etc.).

  4. Using the Articulation Model Library (C++)

    This tutorial demonstrates how to use the articulation model library directly in your programs. This is more efficient than sending ROS messages or ROS services. In this tutorial, a short program is presented that creates an artificial trajectory of an object rotating around a hinge, and then uses the model fitting library to recover the rotational center and radius. Further, the sampled trajectory and the fitted model are publishes as a ROS message for visualization in RVIZ.

  5. Learning Kinematic Models from End-Effector Trajectories

    This tutorial demonstrates the process of model fitting and model selection to real data recorded by a mobile manipulation robot operating various doors and drawers.



This node receives trajectories of all parts of a kinematic object in form of articulation_msgs/ArticulatedObjectMsg messages. For every pair of object parts, it fits the motion between these two parts to all known model classes, and selects the the kinematic structure that maximizes the BIC (Bayesian Information Criterion). The node publishes the result again in form of a articulation_msgs/ArticulatedObjectMsg message, now containing additionally the individual link models.


track (articulation_msgs/ArticulatedObjectSrv)


~sigma_position (float, default: 0.01) ~sigma_orientation (float, default: 4*PI (=ignore orientation)) ~filter_models (string, default: "rigid prismatic rotational")


More Information

More information (including videos, papers, presentations) can be found on the homepage of Jürgen Sturm.

Report a Bug

If you run into any problems, please feel free to contact Juergen Sturm <juergen.sturm@in.tum.de>.

2020-04-04 12:30