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

Jan Winkler winkler at cs.uni-bremen.de
Wed Jun 5 21:31:48 UTC 2013


Dirk,

great, thanks. We weren't aware that messages were affected as well (didn't happen to us). Anyway, thanks for fixing it.

Jan

On 05.06.2013, at 23:19, Dirk Thomas <dthomas at osrfoundation.org> wrote:

> 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
> 
> _______________________________________________
> 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