Re: [ros-users] Groovy issue: genlisp generating multiple AS…

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
Delete this message
Reply to this message
Author: User discussions
Date:  
To: ros-users
New-Topics: Re: [ros-users] FIXED Groovy issue: genlisp generating multiple ASDF references for the same action using catkin
Subject: Re: [ros-users] Groovy issue: genlisp generating multiple ASDF references for the same action using catkin
Hi Jan,

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.

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.

Just for reference, I'm running groovy on oneiric 64 bit.

Cheers,
Georg.


On 06/05/2013 12:43 PM, Jan Winkler wrote:
> Hey guys,
>
> we just realized a problematic issue when generating action message
> using the catkin message generation mechanism.
>
> 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.
>
> This practically breaks loading the message definitions into roslisp,
> making the message types unusable this way.
>
> 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.
>
> 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!).
>
> The issue does not arise when configuring the package as a rosbuild
> package (i.e. all `.asd`-files get generated just fine).
>
> The consequence of this issue is, that every package built using
> catkin has this problem. Actually, the _officially_released_ packages
> include this error.
> 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).
> 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.
>
> 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.
>
> We added two individual messages `MessageTest.msg` and
> `MessageTest2.msg`. These get generated only once in every case.
>
> Correcting the file by hand makes the ASDF system load and work just
> fine.
> A wild guess would be that genlisp is doing something wrong when
> enumerating the things it has to write into the `.asd`-file.
>
> Can anyone confirm this issue?
>
>
> Best regards,
> Jan
>
>
>
> _______________________________________________
> ros-users mailing list
>
> https://code.ros.org/mailman/listinfo/ros-users