This is an old revision of the document!

Create an SRDL model of your robot

The Semantic Robot Description Language (SRDL) is a logical language for describing robot hardware, software and capabilities. It is part of the KnowRob knowledge processing system and integrated into the KnowRob ontology. The inference mechanisms operating on the SRDL robot models allow to match action descriptions against the robot model to identify missing components or capabilities.

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


The urdf_to_owl program is part of the mod_srdl package in KnowRob, i.e. you need to rosmake this package first. Then you can call the converter like

  -u ./urdf/pr2.urdf 
  -s PR2.owl 
  -c move_base,move_arm 
  -g ./urdf/pr2_planning_description.yaml

The converter supports the following command-line arguments:

  • -h, –help show this description
  • -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