Create an SRDL model of your robot


This page describes the 'catkinized' version of KnowRob that uses the catkin buildsystem and the pure Java-based rosjava. The documentation for the older version, which was based on the rosbuild buildsystem and rosjava_jni, can be found here.


The Semantic Robot Description Language (SRDL) is a logical language for describing robot hardware, software and capabilities. More information on the usage of SRDL for modeling a robot, for answering queries about its hardware configuration and for checking requirements of actions on robot components can be found on this page.

Several SRDL models for popular robots (e.g. PR2, Baxter, TUM-Rosie, Amigo) are already contained in the mod_srdl package in the KnowRob stack. In order to facilitate the creation of an SRDL model for a new robot, there is a converter by A. Perzylo and P. Freyer that can read an URDF robot model and convert the kinematic structure to SRDL. This converter currently uses the following information from the URDF files:

  • Kinematic structure including coordinate transformations
  • Planning groups defined for the move_arm stack, which semantically group links to e.g. arms or hands
  • Properties of sensors originally described for the Gazebo simulator (e.g. camera resolution, range of a laser scanner)

The converter currently has the following limitations:

  • Some properties are not converted (e.g. mesh origin, joint axis)
  • The pose matrices are asserted as static, i.e. they do not use KnowRob's spatio-temporal pose representation

Usage

The URDF2SRDL program is part of the knowrob_srdl package in KnowRob. You can call the converter with arguments such as

$ rosrun knowrob_srdl URDF2SRDL
  -u ./urdf/pr2.urdf 
  -s PR2.owl 
  -i http://ias.cs.tum.edu/kb/PR2.owl# 
  -c move_base,move_arm 
  -g ./urdf/pr2_planning_description.yaml

The converter supports the following command-line arguments:

  • -h, –help show a help text
  • -u, –urdf URDF file to read and work with
  • -s, –srdl target SRDL file
  • -i, –uri URI to use for SRDL description
  • -c, –caps list of static SRDL capabilities to be asserted for the robot