Naming of generated ROS messages

In the ROS integration within oroGen, oroGen generates ROS messages for
oroGen-registered types (you also have the option of reusing an existing
ROS messages, but that's not the subject here).

The issue is how to name this message: ROS has no notion of namespace.
ROS messages are named package_name/MessageName and that's all.
Moreover, the package_name "namespace" really has to be a single package
(you can't generate messages in the blabla_msg from two different
packages). oroGen has a notion of namespace ... So.

The current scheme would be to transform the_namespace/of_a_type/Type into

typekit_name/TheNamespaceOfATypeType

the only sane alternative I personally see being

typekit_name/the_namespace_of_a_typeType

Any preference (if you do care) ?

Ruben Smits's picture

Naming of generated ROS messages

Hi Sylvain,

On Tue, Nov 20, 2012 at 11:48 AM, Sylvain Joyeux <sylvain [dot] joyeux [..] ...> wrote:
> In the ROS integration within oroGen, oroGen generates ROS messages for
> oroGen-registered types (you also have the option of reusing an existing
> ROS messages, but that's not the subject here).
>
> The issue is how to name this message: ROS has no notion of namespace.
> ROS messages are named package_name/MessageName and that's all.
> Moreover, the package_name "namespace" really has to be a single package
> (you can't generate messages in the blabla_msg from two different
> packages). oroGen has a notion of namespace ... So.
>
> The current scheme would be to transform the_namespace/of_a_type/Type into
>
> typekit_name/TheNamespaceOfATypeType

I would go for this one for the single reason of it being compliant
with the ROS naming convention.

> the only sane alternative I personally see being
>
> typekit_name/the_namespace_of_a_typeType
>
> Any preference (if you do care) ?

Ruben

> --
> Sylvain Joyeux (Dr.Ing.)
> Senior Researcher
>
> Space & Security Robotics
> Underwater Robotics
>
> !!! Achtung, neue Telefonnummer!!!
>
> Standort Bremen:
> DFKI GmbH
> Robotics Innovation Center
> Robert-Hooke-Straße 5
> 28359 Bremen, Germany
>
> Phone: +49 (0)421 178-454136
> Fax: +49 (0)421 218-454150
> E-Mail: robotik [..] ...
>
> Weitere Informationen: http://www.dfki.de/robotik
> -----------------------------------------------------------------------
> Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
> Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
> Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
> (Vorsitzender) Dr. Walter Olthoff
> Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
> Amtsgericht Kaiserslautern, HRB 2313
> Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
> USt-Id.Nr.: DE 148646973
> Steuernummer: 19/673/0060/3
> -----------------------------------------------------------------------
>
> --
> Orocos-Users mailing list
> Orocos-Users [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users

Naming of generated ROS messages

On 11/20/2012 11:48 AM, Sylvain Joyeux wrote:
> In the ROS integration within oroGen, oroGen generates ROS messages for
> oroGen-registered types (you also have the option of reusing an existing
> ROS messages, but that's not the subject here).
>
> The issue is how to name this message: ROS has no notion of namespace.
> ROS messages are named package_name/MessageName and that's all.
> Moreover, the package_name "namespace" really has to be a single package
> (you can't generate messages in the blabla_msg from two different
> packages). oroGen has a notion of namespace ... So.
Just out of curiosity: I didn't really get the problem with a message
in/from/refering-to two different packages. Could you give an example,
please?
>
> The current scheme would be to transform the_namespace/of_a_type/Type into
>
> typekit_name/TheNamespaceOfATypeType
>
> the only sane alternative I personally see being
>
> typekit_name/the_namespace_of_a_typeType
I think this alternative does not follow the naming conventions for ROS
messages:
http://www.ros.org/wiki/Naming
>
> Any preference (if you do care) ?
>
Georg.

Naming of generated ROS messages

On 11/20/2012 11:55 AM, Georg Bartels wrote:
> On 11/20/2012 11:48 AM, Sylvain Joyeux wrote:
>> In the ROS integration within oroGen, oroGen generates ROS messages for
>> oroGen-registered types (you also have the option of reusing an existing
>> ROS messages, but that's not the subject here).
>>
>> The issue is how to name this message: ROS has no notion of namespace.
>> ROS messages are named package_name/MessageName and that's all.
>> Moreover, the package_name "namespace" really has to be a single package
>> (you can't generate messages in the blabla_msg from two different
>> packages). oroGen has a notion of namespace ... So.
> Just out of curiosity: I didn't really get the problem with a message
> in/from/refering-to two different packages. Could you give an example,
> please?
Given a ROS "message namespace"

base_msgs

All messages within that namespace HAVE to be generated from the same
target.

The original idea I had was to use the first part of the
oroGen-type-namespace as the ROS-message-namespace, but since a given
orogen-type-namespace can be used in different orogen projects, that
does not work.

Clearer ?

Naming of generated ROS messages

On 11/20/2012 12:10 PM, Sylvain Joyeux wrote:
> On 11/20/2012 11:55 AM, Georg Bartels wrote:
>> On 11/20/2012 11:48 AM, Sylvain Joyeux wrote:
>>> In the ROS integration within oroGen, oroGen generates ROS messages for
>>> oroGen-registered types (you also have the option of reusing an
>>> existing
>>> ROS messages, but that's not the subject here).
>>>
>>> The issue is how to name this message: ROS has no notion of namespace.
>>> ROS messages are named package_name/MessageName and that's all.
>>> Moreover, the package_name "namespace" really has to be a single
>>> package
>>> (you can't generate messages in the blabla_msg from two different
>>> packages). oroGen has a notion of namespace ... So.
>> Just out of curiosity: I didn't really get the problem with a message
>> in/from/refering-to two different packages. Could you give an example,
>> please?
> Given a ROS "message namespace"
>
> base_msgs
>
> All messages within that namespace HAVE to be generated from the same
> target.
I still do not get the intention of this sentence. Do you mean that
"When trying to build any message in our message package/namespace
base_msgs all message inside it have to be build."? If yes, I don't see
the problem. Sorry for asking you to act as captain obvious, here.
>
> The original idea I had was to use the first part of the
> oroGen-type-namespace as the ROS-message-namespace, but since a given
> orogen-type-namespace can be used in different orogen projects, that
> does not work.
>
> Clearer ?
>

Naming of generated ROS messages

On 11/20/2012 01:50 PM, Georg Bartels wrote:
> On 11/20/2012 12:10 PM, Sylvain Joyeux wrote:
>> On 11/20/2012 11:55 AM, Georg Bartels wrote:
>>> On 11/20/2012 11:48 AM, Sylvain Joyeux wrote:
>>>> In the ROS integration within oroGen, oroGen generates ROS messages
>>>> for
>>>> oroGen-registered types (you also have the option of reusing an
>>>> existing
>>>> ROS messages, but that's not the subject here).
>>>>
>>>> The issue is how to name this message: ROS has no notion of namespace.
>>>> ROS messages are named package_name/MessageName and that's all.
>>>> Moreover, the package_name "namespace" really has to be a single
>>>> package
>>>> (you can't generate messages in the blabla_msg from two different
>>>> packages). oroGen has a notion of namespace ... So.
>>> Just out of curiosity: I didn't really get the problem with a message
>>> in/from/refering-to two different packages. Could you give an example,
>>> please?
>> Given a ROS "message namespace"
>>
>> base_msgs
>>
>> All messages within that namespace HAVE to be generated from the same
>> target.
> I still do not get the intention of this sentence. Do you mean that
> "When trying to build any message in our message package/namespace
> base_msgs all message inside it have to be build."? If yes, I don't
> see the problem. Sorry for asking you to act as captain obvious, here.
No problem. Let me try to rephrase:

All messages registered under base_msgs have to be generated them from
within a single CMake project.

In other words: it is impossible to have two CMake projects generating
messages for the same "ROS namespace" base_msgs.

Since that is a possibility within oroGen (two oroGen projects can
manipulate types from the same namespace), it reduces the possibilities
for possible name mappings.

Is that clearer ?

Sylvain

Naming of generated ROS messages

On 11/20/2012 01:56 PM, Sylvain Joyeux wrote:
> On 11/20/2012 01:50 PM, Georg Bartels wrote:
>> On 11/20/2012 12:10 PM, Sylvain Joyeux wrote:
>>> On 11/20/2012 11:55 AM, Georg Bartels wrote:
>>>> On 11/20/2012 11:48 AM, Sylvain Joyeux wrote:
>>>>> In the ROS integration within oroGen, oroGen generates ROS
>>>>> messages for
>>>>> oroGen-registered types (you also have the option of reusing an
>>>>> existing
>>>>> ROS messages, but that's not the subject here).
>>>>>
>>>>> The issue is how to name this message: ROS has no notion of
>>>>> namespace.
>>>>> ROS messages are named package_name/MessageName and that's all.
>>>>> Moreover, the package_name "namespace" really has to be a single
>>>>> package
>>>>> (you can't generate messages in the blabla_msg from two different
>>>>> packages). oroGen has a notion of namespace ... So.
>>>> Just out of curiosity: I didn't really get the problem with a message
>>>> in/from/refering-to two different packages. Could you give an example,
>>>> please?
>>> Given a ROS "message namespace"
>>>
>>> base_msgs
>>>
>>> All messages within that namespace HAVE to be generated from the
>>> same target.
>> I still do not get the intention of this sentence. Do you mean that
>> "When trying to build any message in our message package/namespace
>> base_msgs all message inside it have to be build."? If yes, I don't
>> see the problem. Sorry for asking you to act as captain obvious, here.
> No problem. Let me try to rephrase:
>
> All messages registered under base_msgs have to be generated them from
> within a single CMake project.
>
> In other words: it is impossible to have two CMake projects generating
> messages for the same "ROS namespace" base_msgs.
>
> Since that is a possibility within oroGen (two oroGen projects can
> manipulate types from the same namespace), it reduces the
> possibilities for possible name mappings.
Aha, sounds like you got yourself a non-trivial problem, there.
Originally, I'd say go with creating a single ROS package with the name
<original-namespace>_msgs and all original types as a single message in
the msg/ sub-directory. But that would require you to consider either
all types that are in this namespace or know about all CMake projects
that contribute to the namespace when generating the ROS message. If
that is not easy, then I don't know. If it is feasible, though, (because
you know in this oroGen which types you want to export to ROS) then
that'd be my proposition. Just my 2 cents... ;)
>
> Is that clearer ?
Yup. Thanks.

Georg.