[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 13:49:35 UTC 2013


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20130605/22f3f384/attachment-0004.html>


More information about the ros-users mailing list