Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:create_srdl_model [2013/06/28 12:45] – created admindoc:create_srdl_model [2014/11/27 17:10] (current) admin
Line 1: Line 1:
 ====== Create an SRDL model of your robot ====== ====== Create an SRDL model of your robot ======
 +~~NOTOC~~
  
-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 [[doc/modeling_tasks_and_actions|action descriptions]] against the robot model to identify missing components or capabilities.+\\ 
 +^ This page describes the 'catkinized' version of KnowRob that uses the [[http://wiki.ros.org/catkin/|catkin buildsystem]] and the pure Java-based [[http://wiki.ros.org/rosjava|rosjava]]. The documentation for the older version, which was based on the rosbuild buildsystem and rosjava_jni, can be found [[/doc/create_srdl_model?rev=1401968327|here]].
 +\\
  
-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 that can read an [[http://www.ros.org/wiki/urdf|URDF robot model]] and convert the kinematic structure to SRDL. This converter currently uses the following information from the URDF files:+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 [[/doc/srdl2_tutorial|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 [[http://www.ros.org/wiki/urdf|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    * Kinematic structure including coordinate transformations 
   * Planning groups defined for the move_arm stack, which semantically group links to e.g. arms or hands   * 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)   * 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 [[doc/object_pose_representation|spatio-temporal pose representation]]
 +
  
 ===== Usage ===== ===== 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
  
-bin/urdf_to_owl -u ./urdf/amigo.urdf -s amigo.owl -i http://ias.cs.tum.edu/kb/amigo.owl# -c move_base,move_arm,GraspingCapability -g ./urdf/amigo_planning_description_simple.yaml