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@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@code.ros.org
>>>> https://code.ros.org/mailman/listinfo/ros-users
>>>
>>>
>>>
>>> _______________________________________________
>>> ros-users mailing list
>>> ros-users@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@cs.uni-bremen.de
>> Tel: +49 (0)421-218-64019
>> Fax: +49 (0)421-218-64047
>>
>>
>>
>> _______________________________________________
>> ros-users mailing list
>> ros-users@code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>
> _______________________________________________
> ros-users mailing list
> ros-users@code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>