<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi Jan,<br>
      <br>
      I can confirm the issue: When building your provided package
      action_test_catkin with catkin_make the resulting lisp-structures
      for the two actions show up twice in the auto-generated asd-file.
      As another test, I added another two test actions. Then every
      action defined ended up four times in the auto-generated asd-file.
      <br>
      <br>
      So, it seems with n action definitions a) genlisp gets called n
      times for all action-related messages or b) genlisp gets called
      with a list of messages to build where this list contains the
      action-related messages n times.<br>
      <br>
      Just for reference, I'm running groovy on oneiric 64 bit.<br>
      <br>
      Cheers,<br>
      Georg.<br>
      <br>
      <br>
      On 06/05/2013 12:43 PM, Jan Winkler wrote:<br>
    </div>
    <blockquote cite="mid:51AF166B.90507@cs.uni-bremen.de" type="cite">Hey
      guys,
      <br>
      <br>
      we just realized a problematic issue when generating action
      message using the catkin message generation mechanism.
      <br>
      <br>
      When catkin_make'ing a package that includes actions, the
      corresponding messages (`.msg`-files) containing the Request,
      Result, and Feedback structures are referenced multiple times in
      the resulting `.asd`-Lisp file for that package.
      <br>
      <br>
      This practically breaks loading the message definitions into
      roslisp, making the message types unusable this way.
      <br>
      <br>
      The issue arises once you define more than one action in a
      package. If only one action is defined, it does not come up. When
      defining more than one `.action`-file (say, n files) and putting
      them into your CMakeLists.txt file, the block in the `.asd`-file
      for that action gets written n times.
      <br>
      <br>
      Just for clarification, if a message is defined more than once in
      the `.asd`-file by the same name (which is the case here), it is
      unloadable by ASDF (and therefore, roslisp!).
      <br>
      <br>
      The issue does not arise when configuring the package as a
      rosbuild package (i.e. all `.asd`-files get generated just fine).
      <br>
      <br>
      The consequence of this issue is, that every package built using
      catkin has this problem. Actually, the _officially_released_
      packages include this error.
      <br>
      I'm on Quantal (12.10), using ros-groovy. A good example is the
      `moveit_msgs` package. If you look into the file
      `/opt/ros/groovy/share/common-lisp/ros/moveit_msgs/msg/moveit_msgs-msg.asd`,
      you will most probably find, for example, the "PickupResult" file
      being referenced several times (three times, that is).
      <br>
      The MoveIt! messages (and any other released catkin package
      messages including a number of actions > 1) are therefore not
      usable in ANY roslisp code in groovy.
      <br>
      <br>
      I attached a sample setup once configured as a rosbuild package
      and once as a catkin package. The resulting .asd files for both
      cases as well as their diff are attached as well (speak `diff
      action_test_catkin-msg.asd action_test_rosbuild-msg.asd`). As you
      can see, there is an additional block describing the Test.action
      and Test2.action messages, hence breaking the load process of the
      ASDF system.
      <br>
      <br>
      We added two individual messages `MessageTest.msg` and
      `MessageTest2.msg`. These get generated only once in every case.
      <br>
      <br>
      Correcting the file by hand makes the ASDF system load and work
      just fine.
      <br>
      A wild guess would be that genlisp is doing something wrong when
      enumerating the things it has to write into the `.asd`-file.
      <br>
      <br>
      Can anyone confirm this issue?
      <br>
      <br>
      <br>
      Best regards,
      <br>
      Jan
      <br>
      <br>
      <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>
  </body>
</html>