[ros-users] FIXED Groovy issue: genlisp generating multiple ASDF references for the same action using catkin

Dirk Thomas dthomas at osrfoundation.org
Wed Jun 5 21:19:47 UTC 2013


The fixed proposed in the last email is not addressing the initial problem but only the symptom.
The issue is also not specific to actions but can also happen for messages.

I have committed a fix to genmsg  - for further information please see https://github.com/ros/genmsg/pull/27
genmsg will be released with that patch soon (likely tomorrow), after that it will take the usual period to propagate to shadow-fixed and public.

- Dirk


On 05.06.2013 06:49, Jan Winkler wrote:
> Hey,
>
> the issue was related to search path appearing multiple times when looking for .msg-files to process.
> The fix is to be found here: https://github.com/fairlight1337/genlisp/commit/891f74f18b2a3b62fc314742e7225faaab29be13
>
> Opened a pull request for the original repo.
>
> Best,
> Jan
>
> On 06/05/2013 02:58 PM, Georg Bartels wrote:
>> 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
>>> ros-users at code.ros.org
>>> https://code.ros.org/mailman/listinfo/ros-users
>>
>>
>>
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>
> --
> Dipl. Ing. Jan Winkler
> Technologie-Zentrum Informatik und Informationstechnik
> Raum 1.56
> Am Fallturm 1 (TAB Gebaeude)
> Universitaet Bremen
> 28359 Bremen, Deutschland
>
> E-Mail:winkler at cs.uni-bremen.de
> Tel: +49 (0)421-218-64019
> Fax: +49 (0)421-218-64047
>
>
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>




More information about the ros-users mailing list