<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi,<br>
    <br>
    part of this seems indeed similar to what we are working on in the
    RoboEarth project. The project aims at establishing a web-based
    knowledge base through which robots can exchange information about
    actions, objects and environments (diff. kinds of maps) among each
    other, similar to  Wikipedia for humans.<br>
    <br>
    As part of this effort, we have worked on formal semantic
    representations for this kind of information [1]. The "action
    recipes" are encoded in OWL, an XML-based formal language used in
    the Semantic Web. They can describe actions, their properties (e.g.
    objectActedOn, fromLocation,...), their arrangement in a task
    (sequences, partial orderings, FSM-like structures), as well as
    relations to objects or spatial concepts (points, trajectories). <br>
    <br>
    Since the recipes are described in the same language as object
    models and environment maps, it is possible to link these kinds of
    information, for example to parameterize an action with the spatial
    layout described in a semantic environment map.<br>
    <br>
    So if there will be an effort to define such a format, we'd be happy
    to share our experiences and contribute to its definition.<br>
    <br>
    best,<br>
    Moritz<br>
    <br>
    <br>
    [1] Moritz Tenorth, Alexander Clifford Perzylo, Reinhard Lafrenz,
    Michael Beetz, "The RoboEarth language: Representing and Exchanging
    Knowledge about Actions, Objects, and Environments", <i>In IEEE
      International Conference on Robotics and Automation (ICRA)</i>,
    St. Paul, MN, USA, 2012.<br>
    <br>
    <div class="moz-cite-prefix">On 04/12/2013 10:28 PM, <a class="moz-txt-link-abbreviated" href="mailto:rdean@gdrs.com">rdean@gdrs.com</a>
      wrote:<br>
    </div>
    <blockquote
cite="mid:0F1E3F33416D2E4CB66EEA1ED002E134306C092B@GDRS-EXCHANGE10.gdrs.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      <meta name="Generator" content="Microsoft Word 14 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:green;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1965378224;
        mso-list-type:hybrid;
        mso-list-template-ids:691819458 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span style="font-size:12.0pt;color:green">You
            may want to check out what RoboEarth has already done, I
            remember from an ICRA presentation that they were sharing
            task descriptions between different robots.  This may or may
            not cover your area of interest, or may have a core lexicon
            you could extend. <o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:12.0pt;color:green"><o:p> </o:p></span></p>
        <div>
          <div style="border:none;border-top:solid #B5C4DF
            1.0pt;padding:3.0pt 0in 0in 0in">
            <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">
                <a class="moz-txt-link-abbreviated" href="mailto:ros-users-bounces@code.ros.org">ros-users-bounces@code.ros.org</a>
                [<a class="moz-txt-link-freetext" href="mailto:ros-users-bounces@code.ros.org">mailto:ros-users-bounces@code.ros.org</a>]
                <b>On Behalf Of </b>Edwards, Shaun M.<br>
                <b>Sent:</b> Friday, April 12, 2013 10:40 AM<br>
                <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
                <b>Subject:</b> [ros-users] Robot Task Description
                Format - Potential REP<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">All,<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Recently we have had several projects that
          have required us to follow a predetermined path (i.e. a set of
          waypoints that are determined offline)  To achieve this we
          have used csv or yaml files (with joint points and Cartesian
          positions) or in some cases just hardcoded the path in the
          source file.  I have searched through ROS and asked questions
          on ROS answers, but there doesn’t seem to be anything built
          into ROS to support this functionality in a generic way.  To
          illustrate the need, here are several use cases:<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="font-family:Symbol"><span style="mso-list:Ignore">·<span
                style="font:7.0pt "Times New Roman"">        
              </span></span></span><!--[endif]-->3D model/data to robot
          path – Several applications require a robot path be defined
          using a 3D model.  For these applications, we often use a CAD
          system (or 3D models in general) to define the Cartesian robot
          path.  Example applications include, robotic painting,
          grinding, deburring, mold trimming, inspection, etc…  The
          Cartesian path is then turned into a robot joint path at
          runtime.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="font-family:Symbol"><span style="mso-list:Ignore">·<span
                style="font:7.0pt "Times New Roman"">        
              </span></span></span><!--[endif]-->Robot path teaching –
          Not all applications require intelligent path planning.  There
          are some applications that can be solved (at least partially)
          by teaching a robot a desired path (i.e. a set of waypoints to
          execute repeatedly).  New robots, such as Baxter, illustrate
          this capability by allowing a human operator to move an arm
          and record waypoints.  Note, this is not as easy as simply
          recording joint positions.  For some applications, you may
          want to record Cartesian positions or specify that a path
          segment between waypoints be executed using a linear
          trajectory.  Because of these requirements, the recorded
          path/trajectory is more than a joint trajectory.<o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="font-family:Symbol"><span style="mso-list:Ignore">·<span
                style="font:7.0pt "Times New Roman"">        
              </span></span></span><!--[endif]-->High level scripting –
          Several robot tasks, such as static pick and place, include
          lots of scripted motion and process data.  Move to A, open
          gripper, Move to B, close gripper.  In a typical ROS approach,
          positions are stored in yaml files and motion order and
          process data is captured in code.  Any change in the logic or
          order of operations requires a code change and rebuild.  A
          task description format could capture this information
          generically in a single place and allow on the fly
          configuration of nodes that execute the motion.  Note, that in
          this use case, IO operations (i.e. open gripper) are also
          required.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">These use cases lead me to believe that a
          Robot Task Description Format (RTDF), similar to a URDF would
          be useful.  I have put together a minimal example here [1],
          but would like to expand upon it to meet all the requirements
          of the use cases above and others.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I would like to gage the community interest
          in the need for such a file format.  If the interest is great
          enough then I will move forward with creating an official REP.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Thanks for your consideration,<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><span style="color:#1F497D">Shaun Edwards<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D">Senior Research
            Engineer<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D">Manufacturing
            System Department<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D"><a
              moz-do-not-send="true" href="http://robotics.swri.org">http://robotics.swri.org</a><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D"><a
              moz-do-not-send="true"
              href="http://rosindustrial.swri.org/">http://rosindustrial.swri.org/</a><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D"><a
              moz-do-not-send="true" href="http://ros.swri.org/">http://ros.swri.org</a><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D"><a
              moz-do-not-send="true"
              href="https://groups.google.com/group/swri-ros-pkg-dev/boxsubscribe">Join
              the ROS-Industrial Developers List</a><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D">Southwest
            Research Institute<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D">210-522-3277<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D">[1] </span><a
            moz-do-not-send="true"
href="https://github.com/mtconnect/ros_bridge/blob/master/mtconnect_example/mtconnect_cnc_robot_example/config/m16ib20/task_description.xml">https://github.com/mtconnect/ros_bridge/blob/master/mtconnect_example/mtconnect_cnc_robot_example/config/m16ib20/task_description.xml</a><span
            style="color:#1F497D"><o:p></o:p></span></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
      <p><b><font color="red">------------------------------------------------------</font></b></p>
      <p><font color="darkblue">This is an e-mail from General Dynamics
          Robotic Systems. It is for the intended recipient only and may
          contain confidential and privileged information. No one else
          may read, print, store, copy, forward or act in reliance on it
          or its attachments. If you are not the intended recipient,
          please return this message to the sender and delete the
          message and any attachments from your computer. Your
          cooperation is appreciated.</font><br>
      </p>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
ros-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a>
<a class="moz-txt-link-freetext" href="https://code.ros.org/mailman/listinfo/ros-users">https://code.ros.org/mailman/listinfo/ros-users</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Dr. Moritz Tenorth     | <a class="moz-txt-link-abbreviated" href="mailto:tenorth@cs.uni-bremen.de">tenorth@cs.uni-bremen.de</a>
Universität Bremen     | Am Fallturm 1
29359 Bremen           | Germany
Tel: +49 421 218-64016 | ai.uni-bremen.de/team/moritz_tenorth</pre>
  </body>
</html>