rtt-ros integration for 2.2.0

I'm testing the rtt-ros integration against the 2.2.0 release. A patch in
attachment is required.

Is there a git repository that we can use instead of svn ? I'm going to submit
some more patches and I'd prefer not to use svn...

Peter

AttachmentSize
fix-rosmsg-transporter-rtt2.2.patch738 bytes

rtt-ros integration for 2.2.0

On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> I'm testing the rtt-ros integration against the 2.2.0 release. A patch in
> attachment is required.
>
> Is there a git repository that we can use instead of svn ? I'm going to
> submit some more patches and I'd prefer not to use svn...

Here's a patch against git's 0.2 branch. It seems to work now, the bug Ruben
saw was that an -${OROCOS_TARGET} suffix was missing... I noticed you can use
${OROCOS_TARGET} in the manifest file itself too (see patch).

I would also propose to build the typekit packages by default with
'MinSizeRel' in order to somewhat reduce the size of these libraries.

Note that there's a patch in RTT's toolchain-2.2 branch that you need for
supporting the [] suffix in scripting/taskbrowser of the 'vector<T>' versions of
ros messages.

I also noted that the ros primitives types don't provide the default
conversions/constructors for doing int32->uint32 etc. These were included in
the RTT typekit, so you might need to copy/paste the code from there.

Tested with import("rtt_ros_integration_geometry_msgs")

What doesn't work yet is the [] operator:

var TransformStamped[] tsv(10)
tsv
= { [, , , , , , , , , ], size = 10, capacity = 10 }
tsv[0]
= {header = {seq = 0, stamp = (time), frame_id = }, child_frame_id = ,
transform = {translation = {x = 0, y = 0, z = 0 }, rotation = {x = 0, y = 0, z
= 0, w = 0 } } }
tsv[0].header
= {header = {seq = 0, stamp = (time), frame_id = }, child_frame_id = ,
transform = {translation = {x = 0, y = 0, z = 0 }, rotation = {x = 0, y = 0, z
= 0, w = 0 } } }

but that is probably an RTT/scripting issue.

Peter

Ruben Smits's picture

rtt-ros integration for 2.2.0

On Wednesday 15 December 2010 11:41:31 Peter Soetens wrote:
> On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> > I'm testing the rtt-ros integration against the 2.2.0 release. A patch in
> > attachment is required.
> >
> > Is there a git repository that we can use instead of svn ? I'm going to
> > submit some more patches and I'd prefer not to use svn...
>
> Here's a patch against git's 0.2 branch. It seems to work now, the bug
> Ruben saw was that an -${OROCOS_TARGET} suffix was missing... I noticed
> you can use ${OROCOS_TARGET} in the manifest file itself too (see patch).

Patch is applied.

Can we use the ${OROCOS_TARGET} in the rtt/ocl manifests too?

> I would also propose to build the typekit packages by default with
> 'MinSizeRel' in order to somewhat reduce the size of these libraries.
>
> Note that there's a patch in RTT's toolchain-2.2 branch that you need for
> supporting the [] suffix in scripting/taskbrowser of the 'vector<T>'
> versions of ros messages.

The orocos_toolchain_ros-0.2 branch should now be in sync with these commits.

> I also noted that the ros primitives types don't provide the default
> conversions/constructors for doing int32->uint32 etc. These were included
> in the RTT typekit, so you might need to copy/paste the code from there.
>
> Tested with import("rtt_ros_integration_geometry_msgs")
>
> What doesn't work yet is the [] operator:
>
> var TransformStamped[] tsv(10)
> tsv
> = { [, , , , , , , , , ], size = 10, capacity = 10 }
> tsv[0]
> = {header = {seq = 0, stamp = (time), frame_id = }, child_frame_id = ,
> transform = {translation = {x = 0, y = 0, z = 0 }, rotation = {x = 0, y =
> 0, z = 0, w = 0 } } }
> tsv[0].header
> = {header = {seq = 0, stamp = (time), frame_id = }, child_frame_id = ,
> transform = {translation = {x = 0, y = 0, z = 0 }, rotation = {x = 0, y =
> 0, z = 0, w = 0 } } }
>
> but that is probably an RTT/scripting issue.
>
> Peter

Ruben Smits's picture

rtt-ros integration for 2.2.0

On Thursday 16 December 2010 16:31:32 Ruben Smits wrote:
> On Wednesday 15 December 2010 11:41:31 Peter Soetens wrote:
> > On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> > > I'm testing the rtt-ros integration against the 2.2.0 release. A patch
> > > in attachment is required.
> > >
> > > Is there a git repository that we can use instead of svn ? I'm going to
> > > submit some more patches and I'd prefer not to use svn...
> >
> > Here's a patch against git's 0.2 branch. It seems to work now, the bug
> > Ruben saw was that an -${OROCOS_TARGET} suffix was missing... I noticed
> > you can use ${OROCOS_TARGET} in the manifest file itself too (see patch).
>
> Patch is applied.

Hmm, this is not working for me, where does the manifest or make get its
target from?

Ruben

>
> Can we use the ${OROCOS_TARGET} in the rtt/ocl manifests too?
>
> > I would also propose to build the typekit packages by default with
> > 'MinSizeRel' in order to somewhat reduce the size of these libraries.
> >
> > Note that there's a patch in RTT's toolchain-2.2 branch that you need for
> > supporting the [] suffix in scripting/taskbrowser of the 'vector<T>'
> > versions of ros messages.
>
> The orocos_toolchain_ros-0.2 branch should now be in sync with these
> commits.
>
> > I also noted that the ros primitives types don't provide the default
> > conversions/constructors for doing int32->uint32 etc. These were included
> > in the RTT typekit, so you might need to copy/paste the code from there.
> >
> > Tested with import("rtt_ros_integration_geometry_msgs")
> >
> > What doesn't work yet is the [] operator:
> >
> > var TransformStamped[] tsv(10)
> > tsv
> >
> > = { [, , , , , , , , , ], size = 10, capacity = 10 }
> >
> > tsv[0]
> > = {header = {seq = 0, stamp = (time), frame_id = }, child_frame_id = ,
> > transform = {translation = {x = 0, y = 0, z = 0 }, rotation = {x = 0, y =
> > 0, z = 0, w = 0 } } }
> > tsv[0].header
> >
> > = {header = {seq = 0, stamp = (time), frame_id = }, child_frame_id = ,
> >
> > transform = {translation = {x = 0, y = 0, z = 0 }, rotation = {x = 0, y =
> > 0, z = 0, w = 0 } } }
> >
> > but that is probably an RTT/scripting issue.
> >
> > Peter

rtt-ros integration for 2.2.0

On Wednesday 15 December 2010 11:41:31 Peter Soetens wrote:
> On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> > I'm testing the rtt-ros integration against the 2.2.0 release. A patch in
> > attachment is required.
> >
> > Is there a git repository that we can use instead of svn ? I'm going to
> > submit some more patches and I'd prefer not to use svn...
>
> Here's a patch against git's 0.2 branch. It seems to work now, the bug
> Ruben saw was that an -${OROCOS_TARGET} suffix was missing... I noticed
> you can use ${OROCOS_TARGET} in the manifest file itself too (see patch).
>
> I would also propose to build the typekit packages by default with
> 'MinSizeRel' in order to somewhat reduce the size of these libraries.
>
> Note that there's a patch in RTT's toolchain-2.2 branch that you need for
> supporting the [] suffix in scripting/taskbrowser of the 'vector<T>'
> versions of ros messages.
>
> I also noted that the ros primitives types don't provide the default
> conversions/constructors for doing int32->uint32 etc. These were included
> in the RTT typekit, so you might need to copy/paste the code from there.
>
> Tested with import("rtt_ros_integration_geometry_msgs")
>
> What doesn't work yet is the [] operator:
>
> var TransformStamped[] tsv(10)
> tsv
> = { [, , , , , , , , , ], size = 10, capacity = 10 }
> tsv[0]
> = {header = {seq = 0, stamp = (time), frame_id = }, child_frame_id = ,
> transform = {translation = {x = 0, y = 0, z = 0 }, rotation = {x = 0, y =
> 0, z = 0, w = 0 } } }
> tsv[0].header
> = {header = {seq = 0, stamp = (time), frame_id = }, child_frame_id = ,
> transform = {translation = {x = 0, y = 0, z = 0 }, rotation = {x = 0, y =
> 0, z = 0, w = 0 } } }
>
> but that is probably an RTT/scripting issue.

I have pushed a fix+test to the toolchain-2.2 branch. The not showing of the
contents of 'tsv' is probably a bug in the TaskBrowser. But you should now at
least be able to read and write all fields of struct/sequence and any
combination thereof.

Peter

Ruben Smits's picture

rtt-ros integration for 2.2.0

On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> I'm testing the rtt-ros integration against the 2.2.0 release. A patch in
> attachment is required.
>
> Is there a git repository that we can use instead of svn ? I'm going to
> submit some more patches and I'd prefer not to use svn...

I already had a fix for that, but it looks somewhat different. I do not know
whether the code behavior is different too? Maybe you can elaborate on this?
:

commit 1b4bbe5bc5281e676b092a55bf29435b00829c5a
Author: Ruben Smits <ruben [dot] smits [..] ...>
Date: Tue Nov 23 15:39:13 2010 +0100

updated transport to use ChannelElement::getInput

Signed-off-by: Ruben Smits <ruben [dot] smits [..] ...>

diff --git a/rtt_ros_integration/src/ros_msg_transporter.hpp
b/rtt_ros_integration/src/ros_msg_transporter.hpp
index 653401e..5abd27a 100644
--- a/rtt_ros_integration/src/ros_msg_transporter.hpp
+++ b/rtt_ros_integration/src/ros_msg_transporter.hpp
@@ -144,9 +144,9 @@ namespace ros_integration {
void publish(){
typename base::ChannelElement<T>::value_t sample; // XXX: real-time !
// this read should always succeed since signal() means 'data available
in a data element'.
- base::ChannelElement<T>* input = dynamic_cast< base::ChannelElement<T>*
>(this->input);
- if( input->read(sample) == NewData )
- ros_pub.publish(sample);
+ typename base::ChannelElement<T>::shared_ptr input = this->getInput();
+ if( input && (input->read(sample) == NewData) )
+ ros_pub.publish(sample);
}

};

> Peter

rtt-ros integration for 2.2.0

On Tuesday 14 December 2010 20:01:11 Ruben Smits wrote:
> On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> > I'm testing the rtt-ros integration against the 2.2.0 release. A patch in
> > attachment is required.
> >
> > Is there a git repository that we can use instead of svn ? I'm going to
> > submit some more patches and I'd prefer not to use svn...
>
> I already had a fix for that, but it looks somewhat different. I do not
> know whether the code behavior is different too? Maybe you can elaborate
> on this?
>
>
> commit 1b4bbe5bc5281e676b092a55bf29435b00829c5a
> Author: Ruben Smits <ruben [dot] smits [..] ...>
> Date: Tue Nov 23 15:39:13 2010 +0100
>
> updated transport to use ChannelElement::getInput
>
> Signed-off-by: Ruben Smits <ruben [dot] smits [..] ...>
>
> diff --git a/rtt_ros_integration/src/ros_msg_transporter.hpp
> b/rtt_ros_integration/src/ros_msg_transporter.hpp
> index 653401e..5abd27a 100644
> --- a/rtt_ros_integration/src/ros_msg_transporter.hpp
> +++ b/rtt_ros_integration/src/ros_msg_transporter.hpp
> @@ -144,9 +144,9 @@ namespace ros_integration {
> void publish(){
> typename base::ChannelElement<T>::value_t sample; // XXX: real-time
> ! // this read should always succeed since signal() means 'data available
> in a data element'.
> - base::ChannelElement<T>* input = dynamic_cast<
> base::ChannelElement<T>*
>
> >(this->input);
>
> - if( input->read(sample) == NewData )
> - ros_pub.publish(sample);
> + typename base::ChannelElement<T>::shared_ptr input =
> this->getInput(); + if( input && (input->read(sample) == NewData) )
> + ros_pub.publish(sample);
> }
>
> };

Your patch is better. I had missed the getInput() function in the
ChannelElement class itself.

Peter

rtt-ros integration for 2.2.0

On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> I'm testing the rtt-ros integration against the 2.2.0 release. A patch in
> attachment is required.
>
> Is there a git repository that we can use instead of svn ? I'm going to
> submit some more patches and I'd prefer not to use svn...

Here's another patch in order to produce only two libraries per package:
a -typekit and a -transport library. Instead of two libs per message type.

Only tested on an unmodified stdmsg integration package. As expected, testing
can be done by just typing 'import("rtt_ros_integration_std_msg")' which
imports *both* the roslib types (in the rtt_ros_integration package) and the
std msg types of ROS.

Previous patch is included as well. Also has the addition of the
SequenceTypeInfo Steven wrote about before. It's still all against svn/trunk.

Also needs two patches I just pushed to the toolchain-2.2 branch.

Could someone explain to me how today's users add the 'float32',... types (the
primitive ros types used in messages) ? Is there a typekit for that ?
Shouldn't this typekit belong in the rtt_ros_integration package ?

Peter

Ruben Smits's picture

rtt-ros integration for 2.2.0

On Tuesday 14 December 2010 17:19:06 Peter Soetens wrote:
> On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> > I'm testing the rtt-ros integration against the 2.2.0 release. A patch in
> > attachment is required.
> >
> > Is there a git repository that we can use instead of svn ? I'm going to
> > submit some more patches and I'd prefer not to use svn...
>
> Here's another patch in order to produce only two libraries per package:
> a -typekit and a -transport library. Instead of two libs per message type.

I had to apply the patch by hand so I might have broken something but for me
it is not working yet:

Linking CXX shared library ../lib/orocos/types/librtt-ros-std_msgs-typekit-
gnulinux.so
/usr/bin/ld: cannot find -lrtt_ros_integration

does this line automatically resolve the target?:
from rtt_ros_integration/cmake/GenerateRTTtypekit.cmake:

orocos_typekit( rtt-ros-${package}-transport
${CMAKE_CURRENT_SOURCE_DIR}/src/orocos/types/ros_${package}_transport.cpp )
target_link_libraries(rtt-ros-${package}-transport rtt_ros_integration)

I think we can leave it out and let it be handled by the manifest of the
rtt_ros_integration package?

Ruben

> Only tested on an unmodified stdmsg integration package. As expected,
> testing can be done by just typing 'import("rtt_ros_integration_std_msg")'
> which imports *both* the roslib types (in the rtt_ros_integration package)
> and the std msg types of ROS.
>
> Previous patch is included as well. Also has the addition of the
> SequenceTypeInfo Steven wrote about before. It's still all against
> svn/trunk.
>
> Also needs two patches I just pushed to the toolchain-2.2 branch.
>
> Could someone explain to me how today's users add the 'float32',... types
> (the primitive ros types used in messages) ? Is there a typekit for that ?
> Shouldn't this typekit belong in the rtt_ros_integration package ?
>
> Peter

rtt-ros integration for 2.2.0

On Fri, Dec 17, 2010 at 10:46 AM, Ruben Smits
<ruben [dot] smits [..] ...> wrote:
> On Thursday 16 December 2010 16:31:32 Ruben Smits wrote:
>> On Wednesday 15 December 2010 11:41:31 Peter Soetens wrote:
>> > On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
>> > > I'm testing the rtt-ros integration against the 2.2.0 release. A patch
>> > > in attachment is required.
>> > >
>> > > Is there a git repository that we can use instead of svn ? I'm going to
>> > > submit some more patches and I'd prefer not to use svn...
>> >
>> > Here's a patch against git's 0.2 branch. It seems to work now, the bug
>> > Ruben saw was that an -${OROCOS_TARGET} suffix was missing... I noticed
>> > you can use ${OROCOS_TARGET} in the manifest file itself too (see patch).
>>
>> Patch is applied.
>
> Hmm, this is not working for me, where does the manifest or make get its
> target from?

Oh wait, could it be that the env.sh's export is being picked up ?
The user or the cmake scripts could set this
environment variable before invoking ros_pack, with all possible races/bugs
coming with that if it's not set...

We need to think about how to set the OROCOS_TARGET globally, or find
a way that it doesn't matter anymore (like ABI compatibility between linux,lxrt
and Xenomai and an OS plugin).

In this regard, using ${OROCOS_TARGET} in the manifest is actually the
quickest solution. The better solution for me is to generate .pc or .cmake files
that contain the exported targets and which are read in parallel with the
manifest.xml files. Then we can leave out the hand written exports from
the manifest file and generate them, as they sould be.

Peter

rtt-ros integration for 2.2.0

On Tuesday 14 December 2010 20:36:30 Ruben Smits wrote:
> On Tuesday 14 December 2010 17:19:06 Peter Soetens wrote:
> > On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> > > I'm testing the rtt-ros integration against the 2.2.0 release. A patch
> > > in attachment is required.
> > >
> > > Is there a git repository that we can use instead of svn ? I'm going to
> > > submit some more patches and I'd prefer not to use svn...
> >
> > Here's another patch in order to produce only two libraries per package:
> > a -typekit and a -transport library. Instead of two libs per message
> > type.
>
> I had to apply the patch by hand so I might have broken something but for
> me it is not working yet:
>
> Linking CXX shared library ../lib/orocos/types/librtt-ros-std_msgs-typekit-
> gnulinux.so
> /usr/bin/ld: cannot find -lrtt_ros_integration
>
> does this line automatically resolve the target?:
> from rtt_ros_integration/cmake/GenerateRTTtypekit.cmake:
>
> orocos_typekit( rtt-ros-${package}-transport
> ${CMAKE_CURRENT_SOURCE_DIR}/src/orocos/types/ros_${package}_transport.cpp )
> target_link_libraries(rtt-ros-${package}-transport rtt_ros_integration)
>
> I think we can leave it out and let it be handled by the manifest of the
> rtt_ros_integration package?

The manifest is ok for other libraries using this package.

I had added that target_link_libraries because the roslib typekit lib also
needs to link to the rtt_ros_integration lib. That's why this line is there.

We'll need to find another way to link the roslib transport with the
rtt_ros_integration lib.

Peter

rtt-ros integration for 2.2.0

On Wednesday 15 December 2010 10:19:34 Peter Soetens wrote:
> On Tuesday 14 December 2010 20:36:30 Ruben Smits wrote:
> > On Tuesday 14 December 2010 17:19:06 Peter Soetens wrote:
> > > On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> > > > I'm testing the rtt-ros integration against the 2.2.0 release. A
> > > > patch in attachment is required.
> > > >
> > > > Is there a git repository that we can use instead of svn ? I'm going
> > > > to submit some more patches and I'd prefer not to use svn...
> > >
> > > Here's another patch in order to produce only two libraries per
> > > package: a -typekit and a -transport library. Instead of two libs per
> > > message type.
> >
> > I had to apply the patch by hand so I might have broken something but for
> > me it is not working yet:
> >
> > Linking CXX shared library
> > ../lib/orocos/types/librtt-ros-std_msgs-typekit- gnulinux.so
> > /usr/bin/ld: cannot find -lrtt_ros_integration
> >
> > does this line automatically resolve the target?:
> > from rtt_ros_integration/cmake/GenerateRTTtypekit.cmake:
> >
> > orocos_typekit( rtt-ros-${package}-transport
> > ${CMAKE_CURRENT_SOURCE_DIR}/src/orocos/types/ros_${package}_transport.cpp
> > )
> >
> > target_link_libraries(rtt-ros-${package}-transport rtt_ros_integration)
> >
> > I think we can leave it out and let it be handled by the manifest of the
> > rtt_ros_integration package?
>
> The manifest is ok for other libraries using this package.
>
> I had added that target_link_libraries because the roslib typekit lib also
> needs to link to the rtt_ros_integration lib. That's why this line is
> there.
>
> We'll need to find another way to link the roslib transport with the
> rtt_ros_integration lib.

I'll propose a new patch.

Peter

rtt-ros integration for 2.2.0

2010/12/14 Ruben Smits <ruben [dot] smits [..] ...>:
> On Tuesday 14 December 2010 19:56:53 Steven Bellens wrote:
>> 2010/12/14 Ruben Smits <ruben [dot] smits [..] ...>:
>> > On Tuesday 14 December 2010 17:43:02 Steven Bellens wrote:
>> >> 2010/12/14 Peter Soetens <peter [..] ...>:
>> >> > On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
>> >> >> I'm testing the rtt-ros integration against the 2.2.0 release. A
>> >> >> patch in attachment is required.
>> >> >>
>> >> >> Is there a git repository that we can use instead of svn ? I'm going
>> >> >> to submit some more patches and I'd prefer not to use svn...
>> >> >
>> >> > Here's another patch in order to produce only two libraries per
>> >> > package: a -typekit and a -transport library. Instead of two libs per
>> >> > message type.
>> >> >
>> >> > Only tested on an unmodified stdmsg integration package. As expected,
>> >> > testing can be done by just typing
>> >> > 'import("rtt_ros_integration_std_msg")' which imports *both* the
>> >> > roslib types (in the rtt_ros_integration package) and the std msg
>> >> > types of ROS.
>> >> >
>> >> > Previous patch is included as well. Also has the addition of the
>> >> > SequenceTypeInfo Steven wrote about before. It's still all against
>> >> > svn/trunk.
>> >> >
>> >> > Also needs two patches I just pushed to the toolchain-2.2 branch.
>> >> >
>> >> > Could someone explain to me how today's users add the 'float32',...
>> >> > types (the primitive ros types used in messages) ? Is there a typekit
>> >> > for that ? Shouldn't this typekit belong in the rtt_ros_integration
>> >> > package ?
>> >>
>> >> I think it should. I already made something like that, but never
>> >> tested it thorougly. It's currently in our private-kul-ros-pkg folder.
>> >> Ruben, shall I move it to the orocos_toolchain_ros stack?
>> >
>> > Yep, maybe we should also add it in the rtt_ros_integration package?
>>
>> I've added all basic ros message types as listed on
>> http://www.ros.org/wiki/msg , except for Time and Duration. I'll take
>> a look at those tomorrow to see if I can add those as well. Nothing is
>> tested,but it's compiling :)
>
> AFAIK both Time and Duration are defined in std_msgs and therefore taken care
> off by the rtt_ros_integration_std_msgs package.

The std_msgs contains a time message which has a 'time' field, but
this doesn't declare the primitive 'time' type to RTT, does it?

Steven

>
> Ruben
>

Ruben Smits's picture

rtt-ros integration for 2.2.0

On Tuesday 14 December 2010 20:18:16 Steven Bellens wrote:
> 2010/12/14 Ruben Smits <ruben [dot] smits [..] ...>:
> > On Tuesday 14 December 2010 19:56:53 Steven Bellens wrote:
> >> 2010/12/14 Ruben Smits <ruben [dot] smits [..] ...>:
> >> > On Tuesday 14 December 2010 17:43:02 Steven Bellens wrote:
> >> >> 2010/12/14 Peter Soetens <peter [..] ...>:
> >> >> > On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> >> >> >> I'm testing the rtt-ros integration against the 2.2.0 release. A
> >> >> >> patch in attachment is required.
> >> >> >>
> >> >> >> Is there a git repository that we can use instead of svn ? I'm
> >> >> >> going to submit some more patches and I'd prefer not to use
> >> >> >> svn...
> >> >> >
> >> >> > Here's another patch in order to produce only two libraries per
> >> >> > package: a -typekit and a -transport library. Instead of two libs
> >> >> > per message type.
> >> >> >
> >> >> > Only tested on an unmodified stdmsg integration package. As
> >> >> > expected, testing can be done by just typing
> >> >> > 'import("rtt_ros_integration_std_msg")' which imports *both* the
> >> >> > roslib types (in the rtt_ros_integration package) and the std msg
> >> >> > types of ROS.
> >> >> >
> >> >> > Previous patch is included as well. Also has the addition of the
> >> >> > SequenceTypeInfo Steven wrote about before. It's still all against
> >> >> > svn/trunk.
> >> >> >
> >> >> > Also needs two patches I just pushed to the toolchain-2.2 branch.
> >> >> >
> >> >> > Could someone explain to me how today's users add the 'float32',...
> >> >> > types (the primitive ros types used in messages) ? Is there a
> >> >> > typekit for that ? Shouldn't this typekit belong in the
> >> >> > rtt_ros_integration package ?
> >> >>
> >> >> I think it should. I already made something like that, but never
> >> >> tested it thorougly. It's currently in our private-kul-ros-pkg
> >> >> folder. Ruben, shall I move it to the orocos_toolchain_ros stack?
> >> >
> >> > Yep, maybe we should also add it in the rtt_ros_integration package?
> >>
> >> I've added all basic ros message types as listed on
> >> http://www.ros.org/wiki/msg , except for Time and Duration. I'll take
> >> a look at those tomorrow to see if I can add those as well. Nothing is
> >> tested,but it's compiling :)
> >
> > AFAIK both Time and Duration are defined in std_msgs and therefore taken
> > care off by the rtt_ros_integration_std_msgs package.
>
> The std_msgs contains a time message which has a 'time' field, but
> this doesn't declare the primitive 'time' type to RTT, does it?

The rtt_ros_integration package already contains a typekit for the primitive
time type.

Ruben

> Steven
>
> > Ruben

rtt-ros integration for 2.2.0

2010/12/14 Ruben Smits <ruben [dot] smits [..] ...>:
> On Tuesday 14 December 2010 20:18:16 Steven Bellens wrote:
>> 2010/12/14 Ruben Smits <ruben [dot] smits [..] ...>:
>> > On Tuesday 14 December 2010 19:56:53 Steven Bellens wrote:
>> >> 2010/12/14 Ruben Smits <ruben [dot] smits [..] ...>:
>> >> > On Tuesday 14 December 2010 17:43:02 Steven Bellens wrote:
>> >> >> 2010/12/14 Peter Soetens <peter [..] ...>:
>> >> >> > On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
>> >> >> >> I'm testing the rtt-ros integration against the 2.2.0 release. A
>> >> >> >> patch in attachment is required.
>> >> >> >>
>> >> >> >> Is there a git repository that we can use instead of svn ? I'm
>> >> >> >> going to submit some more patches and I'd prefer not to use
>> >> >> >> svn...
>> >> >> >
>> >> >> > Here's another patch in order to produce only two libraries per
>> >> >> > package: a -typekit and a -transport library. Instead of two libs
>> >> >> > per message type.
>> >> >> >
>> >> >> > Only tested on an unmodified stdmsg integration package. As
>> >> >> > expected, testing can be done by just typing
>> >> >> > 'import("rtt_ros_integration_std_msg")' which imports *both* the
>> >> >> > roslib types (in the rtt_ros_integration package) and the std msg
>> >> >> > types of ROS.
>> >> >> >
>> >> >> > Previous patch is included as well. Also has the addition of the
>> >> >> > SequenceTypeInfo Steven wrote about before. It's still all against
>> >> >> > svn/trunk.
>> >> >> >
>> >> >> > Also needs two patches I just pushed to the toolchain-2.2 branch.
>> >> >> >
>> >> >> > Could someone explain to me how today's users add the 'float32',...
>> >> >> > types (the primitive ros types used in messages) ? Is there a
>> >> >> > typekit for that ? Shouldn't this typekit belong in the
>> >> >> > rtt_ros_integration package ?
>> >> >>
>> >> >> I think it should. I already made something like that, but never
>> >> >> tested it thorougly. It's currently in our private-kul-ros-pkg
>> >> >> folder. Ruben, shall I move it to the orocos_toolchain_ros stack?
>> >> >
>> >> > Yep, maybe we should also add it in the rtt_ros_integration package?
>> >>
>> >> I've added all basic ros message types as listed on
>> >> http://www.ros.org/wiki/msg , except for Time and Duration. I'll take
>> >> a look at those tomorrow to see if I can add those as well. Nothing is
>> >> tested,but it's compiling :)
>> >
>> > AFAIK both Time and Duration are defined in std_msgs and therefore taken
>> > care off by the rtt_ros_integration_std_msgs package.
>>
>> The std_msgs contains a time message which has a 'time' field, but
>> this doesn't declare the primitive 'time' type to RTT, does it?
>
> The rtt_ros_integration package already contains a typekit for the primitive
> time type.

Yes, I see. Should we add something similar for the 'duration' type? I
don't see much added value if you already have a 'time' type...

Steven

>
> Ruben
>
>> Steven
>>
>> > Ruben
>

rtt-ros integration for 2.2.0

2010/12/14 Steven Bellens <steven [dot] bellens [..] ...>:
> 2010/12/14 Ruben Smits <ruben [dot] smits [..] ...>:
>> On Tuesday 14 December 2010 20:18:16 Steven Bellens wrote:
>>> 2010/12/14 Ruben Smits <ruben [dot] smits [..] ...>:
>>> > On Tuesday 14 December 2010 19:56:53 Steven Bellens wrote:
>>> >> 2010/12/14 Ruben Smits <ruben [dot] smits [..] ...>:
>>> >> > On Tuesday 14 December 2010 17:43:02 Steven Bellens wrote:
>>> >> >> 2010/12/14 Peter Soetens <peter [..] ...>:
>>> >> >> > On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
>>> >> >> >> I'm testing the rtt-ros integration against the 2.2.0 release. A
>>> >> >> >> patch in attachment is required.
>>> >> >> >>
>>> >> >> >> Is there a git repository that we can use instead of svn ? I'm
>>> >> >> >> going to submit some more patches and I'd prefer not to use
>>> >> >> >> svn...
>>> >> >> >
>>> >> >> > Here's another patch in order to produce only two libraries per
>>> >> >> > package: a -typekit and a -transport library. Instead of two libs
>>> >> >> > per message type.
>>> >> >> >
>>> >> >> > Only tested on an unmodified stdmsg integration package. As
>>> >> >> > expected, testing can be done by just typing
>>> >> >> > 'import("rtt_ros_integration_std_msg")' which imports *both* the
>>> >> >> > roslib types (in the rtt_ros_integration package) and the std msg
>>> >> >> > types of ROS.
>>> >> >> >
>>> >> >> > Previous patch is included as well. Also has the addition of the
>>> >> >> > SequenceTypeInfo Steven wrote about before. It's still all against
>>> >> >> > svn/trunk.
>>> >> >> >
>>> >> >> > Also needs two patches I just pushed to the toolchain-2.2 branch.
>>> >> >> >
>>> >> >> > Could someone explain to me how today's users add the 'float32',...
>>> >> >> > types (the primitive ros types used in messages) ? Is there a
>>> >> >> > typekit for that ? Shouldn't this typekit belong in the
>>> >> >> > rtt_ros_integration package ?
>>> >> >>
>>> >> >> I think it should. I already made something like that, but never
>>> >> >> tested it thorougly. It's currently in our private-kul-ros-pkg
>>> >> >> folder. Ruben, shall I move it to the orocos_toolchain_ros stack?
>>> >> >
>>> >> > Yep, maybe we should also add it in the rtt_ros_integration package?
>>> >>
>>> >> I've added all basic ros message types as listed on
>>> >> http://www.ros.org/wiki/msg , except for Time and Duration. I'll take
>>> >> a look at those tomorrow to see if I can add those as well. Nothing is
>>> >> tested,but it's compiling :)
>>> >
>>> > AFAIK both Time and Duration are defined in std_msgs and therefore taken
>>> > care off by the rtt_ros_integration_std_msgs package.
>>>
>>> The std_msgs contains a time message which has a 'time' field, but
>>> this doesn't declare the primitive 'time' type to RTT, does it?
>>
>> The rtt_ros_integration package already contains a typekit for the primitive
>> time type.
>
> Yes, I see. Should we add something similar for the 'duration' type? I
> don't see much added value if you already have a 'time' type...

I've added the ros_typekit functionality in the rtt_ros_integration
package by extending the time typekit. Pushed on
orocos_toolchain_ros-0.2

Steven

>
> Steven
>
>>
>> Ruben
>>
>>> Steven
>>>
>>> > Ruben
>>
>

rtt-ros integration for 2.2.0

2010/12/14 Peter Soetens <peter [..] ...>:
> On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
>> I'm testing the rtt-ros integration against the 2.2.0 release. A patch in
>> attachment is required.
>>
>> Is there a git repository that we can use instead of svn ? I'm going to
>> submit some more patches and I'd prefer not to use svn...
>
> Here's another patch in order to produce only two libraries per package:
> a -typekit and a -transport library. Instead of two libs per message type.
>
> Only tested on an unmodified stdmsg integration package. As expected, testing
> can be done by just typing 'import("rtt_ros_integration_std_msg")' which
> imports *both* the roslib types (in the rtt_ros_integration package) and the
> std msg types of ROS.
>
> Previous patch is included as well. Also has the addition of the
> SequenceTypeInfo Steven wrote about before. It's still all against svn/trunk.
>
> Also needs two patches I just pushed to the toolchain-2.2 branch.
>
> Could someone explain to me how today's users add the 'float32',... types (the
> primitive ros types used in messages) ? Is there a typekit for that ?
> Shouldn't this typekit belong in the rtt_ros_integration package ?

I think it should. I already made something like that, but never
tested it thorougly. It's currently in our private-kul-ros-pkg folder.
Ruben, shall I move it to the orocos_toolchain_ros stack?

Steven

>
> Peter
>

Ruben Smits's picture

rtt-ros integration for 2.2.0

On Tuesday 14 December 2010 17:43:02 Steven Bellens wrote:
> 2010/12/14 Peter Soetens <peter [..] ...>:
> > On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> >> I'm testing the rtt-ros integration against the 2.2.0 release. A patch
> >> in attachment is required.
> >>
> >> Is there a git repository that we can use instead of svn ? I'm going to
> >> submit some more patches and I'd prefer not to use svn...
> >
> > Here's another patch in order to produce only two libraries per package:
> > a -typekit and a -transport library. Instead of two libs per message
> > type.
> >
> > Only tested on an unmodified stdmsg integration package. As expected,
> > testing can be done by just typing
> > 'import("rtt_ros_integration_std_msg")' which imports *both* the roslib
> > types (in the rtt_ros_integration package) and the std msg types of ROS.
> >
> > Previous patch is included as well. Also has the addition of the
> > SequenceTypeInfo Steven wrote about before. It's still all against
> > svn/trunk.
> >
> > Also needs two patches I just pushed to the toolchain-2.2 branch.
> >
> > Could someone explain to me how today's users add the 'float32',... types
> > (the primitive ros types used in messages) ? Is there a typekit for that
> > ? Shouldn't this typekit belong in the rtt_ros_integration package ?
>
> I think it should. I already made something like that, but never
> tested it thorougly. It's currently in our private-kul-ros-pkg folder.
> Ruben, shall I move it to the orocos_toolchain_ros stack?

Yep, maybe we should also add it in the rtt_ros_integration package?

Ruben
> Steven
>
> > Peter

rtt-ros integration for 2.2.0

2010/12/14 Ruben Smits <ruben [dot] smits [..] ...>:
> On Tuesday 14 December 2010 17:43:02 Steven Bellens wrote:
>> 2010/12/14 Peter Soetens <peter [..] ...>:
>> > On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
>> >> I'm testing the rtt-ros integration against the 2.2.0 release. A patch
>> >> in attachment is required.
>> >>
>> >> Is there a git repository that we can use instead of svn ? I'm going to
>> >> submit some more patches and I'd prefer not to use svn...
>> >
>> > Here's another patch in order to produce only two libraries per package:
>> > a -typekit and a -transport library. Instead of two libs per message
>> > type.
>> >
>> > Only tested on an unmodified stdmsg integration package. As expected,
>> > testing can be done by just typing
>> > 'import("rtt_ros_integration_std_msg")' which imports *both* the roslib
>> > types (in the rtt_ros_integration package) and the std msg types of ROS.
>> >
>> > Previous patch is included as well. Also has the addition of the
>> > SequenceTypeInfo Steven wrote about before. It's still all against
>> > svn/trunk.
>> >
>> > Also needs two patches I just pushed to the toolchain-2.2 branch.
>> >
>> > Could someone explain to me how today's users add the 'float32',... types
>> > (the primitive ros types used in messages) ? Is there a typekit for that
>> > ? Shouldn't this typekit belong in the rtt_ros_integration package ?
>>
>> I think it should. I already made something like that, but never
>> tested it thorougly. It's currently in our private-kul-ros-pkg folder.
>> Ruben, shall I move it to the orocos_toolchain_ros stack?
>
> Yep, maybe we should also add it in the rtt_ros_integration package?

I've added all basic ros message types as listed on
http://www.ros.org/wiki/msg , except for Time and Duration. I'll take
a look at those tomorrow to see if I can add those as well. Nothing is
tested,but it's compiling :)

Steven

>
> Ruben
>> Steven
>>
>> > Peter
>

rtt-ros integration for 2.2.0

On Sunday 19 December 2010 19:40:58 Ruben Smits wrote:
> On Sunday 19 December 2010 18:28:43 Peter Soetens wrote:
> > On Fri, Dec 17, 2010 at 10:46 AM, Ruben Smits
> >
> > <ruben [dot] smits [..] ...> wrote:
> > > On Thursday 16 December 2010 16:31:32 Ruben Smits wrote:
> > >> On Wednesday 15 December 2010 11:41:31 Peter Soetens wrote:
> > >> > On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> > >> > > I'm testing the rtt-ros integration against the 2.2.0 release. A
> > >> > > patch in attachment is required.
> > >> > >
> > >> > > Is there a git repository that we can use instead of svn ? I'm
> > >> > > going to submit some more patches and I'd prefer not to use
> > >> > > svn...
> > >> >
> > >> > Here's a patch against git's 0.2 branch. It seems to work now, the
> > >> > bug Ruben saw was that an -${OROCOS_TARGET} suffix was missing... I
> > >> > noticed you can use ${OROCOS_TARGET} in the manifest file itself
> > >> > too (see patch).
> > >>
> > >> Patch is applied.
> > >
> > > Hmm, this is not working for me, where does the manifest or make get
> > > its target from?
> >
> > Oh wait, could it be that the env.sh's export is being picked up ?
> > The user or the cmake scripts could set this
> > environment variable before invoking ros_pack, with all possible
> > races/bugs coming with that if it's not set...
> >
> > We need to think about how to set the OROCOS_TARGET globally, or find
> > a way that it doesn't matter anymore (like ABI compatibility between
> > linux,lxrt and Xenomai and an OS plugin).
>
> If we use the UseOrocosRTT cmake macros the target is not needed in the
> manifest. I can succesfully compile everything in the orocos_toolchain_ros
> stack without the -lorocos-rtt-target in the manifest of xml.
>
> > In this regard, using ${OROCOS_TARGET} in the manifest is actually the
> > quickest solution. The better solution for me is to generate .pc or
> > .cmake files that contain the exported targets and which are read in
> > parallel with the manifest.xml files. Then we can leave out the hand
> > written exports from the manifest file and generate them, as they sould
> > be.
>
> For now I consider it fixed since all packages in our stack use the
> UseOrocosRTT cmake macros as it should be. We'll put it on the wiki that
> users need those macros for their ROS/Orocos packages.

Great, we'll cleanup the manifest files then to remove these exports.

I'm working on generating .pc files automatically (when you use
UseOrocos.cmake), which we can pick-up in a downstream package by listing the
upstream package in the manifest file and looking for a .pc file in that
package.

Peter

rtt-ros integration for 2.2.0

2010/12/15 Peter Soetens <peter [..] ...>:
> On Tuesday 14 December 2010 20:36:30 Ruben Smits wrote:
>> On Tuesday 14 December 2010 17:19:06 Peter Soetens wrote:
>> > On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
>> > > I'm testing the rtt-ros integration against the 2.2.0 release. A patch
>> > > in attachment is required.
>> > >
>> > > Is there a git repository that we can use instead of svn ? I'm going to
>> > > submit some more patches and I'd prefer not to use svn...
>> >
>> > Here's another patch in order to produce only two libraries per package:
>> > a -typekit and a -transport library. Instead of two libs per message
>> > type.
>>
>> I had to apply the patch by hand so I might have broken something but for
>> me it is not working yet:
>>
>> Linking CXX shared library ../lib/orocos/types/librtt-ros-std_msgs-typekit-
>> gnulinux.so
>> /usr/bin/ld: cannot find -lrtt_ros_integration
>>
>> does this line automatically resolve the target?:
>> from rtt_ros_integration/cmake/GenerateRTTtypekit.cmake:
>>
>> orocos_typekit( rtt-ros-${package}-transport
>> ${CMAKE_CURRENT_SOURCE_DIR}/src/orocos/types/ros_${package}_transport.cpp )
>>   target_link_libraries(rtt-ros-${package}-transport rtt_ros_integration)
>>
>> I think we can leave it out and let it be handled by the manifest of the
>> rtt_ros_integration package?
>
> The manifest is ok for other libraries using this package.
>
> I had added that target_link_libraries because the roslib typekit lib also
> needs to link to the rtt_ros_integration lib. That's why this line is there.

Yes, we've encountered this problem before. Looks like there is no
'one' way to link against a library both from within the same package
and from within another package...
http://www.ros.org/wiki/rosbuild/CMakeLists/Examples#Linking_against_lib...

Steven

>
> We'll need to find another way to link the roslib transport with the
> rtt_ros_integration lib.
>
> Peter
> --
> Orocos-Dev mailing list
> Orocos-Dev [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev
>

Ruben Smits's picture

rtt-ros integration for 2.2.0

On Tuesday 14 December 2010 19:56:53 Steven Bellens wrote:
> 2010/12/14 Ruben Smits <ruben [dot] smits [..] ...>:
> > On Tuesday 14 December 2010 17:43:02 Steven Bellens wrote:
> >> 2010/12/14 Peter Soetens <peter [..] ...>:
> >> > On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> >> >> I'm testing the rtt-ros integration against the 2.2.0 release. A
> >> >> patch in attachment is required.
> >> >>
> >> >> Is there a git repository that we can use instead of svn ? I'm going
> >> >> to submit some more patches and I'd prefer not to use svn...
> >> >
> >> > Here's another patch in order to produce only two libraries per
> >> > package: a -typekit and a -transport library. Instead of two libs per
> >> > message type.
> >> >
> >> > Only tested on an unmodified stdmsg integration package. As expected,
> >> > testing can be done by just typing
> >> > 'import("rtt_ros_integration_std_msg")' which imports *both* the
> >> > roslib types (in the rtt_ros_integration package) and the std msg
> >> > types of ROS.
> >> >
> >> > Previous patch is included as well. Also has the addition of the
> >> > SequenceTypeInfo Steven wrote about before. It's still all against
> >> > svn/trunk.
> >> >
> >> > Also needs two patches I just pushed to the toolchain-2.2 branch.
> >> >
> >> > Could someone explain to me how today's users add the 'float32',...
> >> > types (the primitive ros types used in messages) ? Is there a typekit
> >> > for that ? Shouldn't this typekit belong in the rtt_ros_integration
> >> > package ?
> >>
> >> I think it should. I already made something like that, but never
> >> tested it thorougly. It's currently in our private-kul-ros-pkg folder.
> >> Ruben, shall I move it to the orocos_toolchain_ros stack?
> >
> > Yep, maybe we should also add it in the rtt_ros_integration package?
>
> I've added all basic ros message types as listed on
> http://www.ros.org/wiki/msg , except for Time and Duration. I'll take
> a look at those tomorrow to see if I can add those as well. Nothing is
> tested,but it's compiling :)

AFAIK both Time and Duration are defined in std_msgs and therefore taken care
off by the rtt_ros_integration_std_msgs package.

Ruben

Ruben Smits's picture

rtt-ros integration for 2.2.0

On Tuesday 14 December 2010 17:19:06 Peter Soetens wrote:
> On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> > I'm testing the rtt-ros integration against the 2.2.0 release. A patch in
> > attachment is required.
> >
> > Is there a git repository that we can use instead of svn ? I'm going to
> > submit some more patches and I'd prefer not to use svn...
>
> Here's another patch in order to produce only two libraries per package:
> a -typekit and a -transport library. Instead of two libs per message type.
>
> Only tested on an unmodified stdmsg integration package. As expected,
> testing can be done by just typing 'import("rtt_ros_integration_std_msg")'
> which imports *both* the roslib types (in the rtt_ros_integration package)
> and the std msg types of ROS.
>
> Previous patch is included as well. Also has the addition of the
> SequenceTypeInfo Steven wrote about before. It's still all against
> svn/trunk.

You should be able to clone from the
git.mech.kuleuven.be/robotics/orocos_toolchain_ros.git repos using the http
protocol. We are currently developing in the orocos_toolchain_0.2 branch.
(Which has rtt, ocl and log4cpp as submodules)

> Also needs two patches I just pushed to the toolchain-2.2 branch.
>
> Could someone explain to me how today's users add the 'float32',... types
> (the primitive ros types used in messages) ? Is there a typekit for that ?
> Shouldn't this typekit belong in the rtt_ros_integration package ?

Steven made a typekit for this, but it is still located in some obscure svn
location ;), I'll ask him to put it in the orocos_toolchain_ros stack/repos.

Ruben

Ruben Smits's picture

rtt-ros integration for 2.2.0

On Tuesday 14 December 2010 17:27:48 Ruben Smits wrote:
> On Tuesday 14 December 2010 17:19:06 Peter Soetens wrote:
> > On Tuesday 14 December 2010 15:32:25 Peter Soetens wrote:
> > > I'm testing the rtt-ros integration against the 2.2.0 release. A patch
> > > in attachment is required.
> > >
> > > Is there a git repository that we can use instead of svn ? I'm going to
> > > submit some more patches and I'd prefer not to use svn...
> >
> > Here's another patch in order to produce only two libraries per package:
> > a -typekit and a -transport library. Instead of two libs per message
> > type.
> >
> > Only tested on an unmodified stdmsg integration package. As expected,
> > testing can be done by just typing
> > 'import("rtt_ros_integration_std_msg")' which imports *both* the roslib
> > types (in the rtt_ros_integration package) and the std msg types of ROS.
> >
> > Previous patch is included as well. Also has the addition of the
> > SequenceTypeInfo Steven wrote about before. It's still all against
> > svn/trunk.
>
> You should be able to clone from the
> git.mech.kuleuven.be/robotics/orocos_toolchain_ros.git repos using the http
> protocol. We are currently developing in the orocos_toolchain_0.2 branch.

This has to be orocos_toolchain_ros-0.2 ;)

> (Which has rtt, ocl and log4cpp as submodules)
>
> > Also needs two patches I just pushed to the toolchain-2.2 branch.
> >
> > Could someone explain to me how today's users add the 'float32',... types
> > (the primitive ros types used in messages) ? Is there a typekit for that
> > ? Shouldn't this typekit belong in the rtt_ros_integration package ?
>
> Steven made a typekit for this, but it is still located in some obscure svn
> location ;), I'll ask him to put it in the orocos_toolchain_ros
> stack/repos.
>
> Ruben