bfl typekit generation

Hi,

I made a small attempt to use the typegen tool to create a typekit for
BFL, but ran into the following problem:
- BFL defines ColumnVector, RowVector, Matrix, etc, but all these
inherit from BOOST, so there are no type definitions in the bfl files.
This is also what typegen say, e.g.
"WARN: /home/steven/matrix_BOOST.h contains no type definition"
- Subsequently I've taken a look at the boost include headers - to try
to generate the typekit for e.g. a boost matrix, however, this also
fails for the same reason.
There are however some typedef in the matrix.hpp class:
http://www.boost.org/doc/libs/1_38_0/boost/numeric/ublas/matrix.hpp

Are the definitions not recognized by typegen / do they have to be
specified otherwise?

Steven

bfl typekit generation

Hi,
> I made a small attempt to use the typegen tool to create a typekit for
> BFL, but ran into the following problem:
> - BFL defines ColumnVector, RowVector, Matrix, etc, but all these
> inherit from BOOST, so there are no type definitions in the bfl files.
> This is also what typegen say, e.g.
> "WARN: /home/steven/matrix_BOOST.h contains no type definition"
> - Subsequently I've taken a look at the boost include headers - to try
> to generate the typekit for e.g. a boost matrix, however, this also
> fails for the same reason.
> There are however some typedef in the matrix.hpp class:
> http://www.boost.org/doc/libs/1_38_0/boost/numeric/ublas/matrix.hpp
>
> Are the definitions not recognized by typegen / do they have to be
> specified otherwise?

Has anyone a suggestion how typegen in general can generate a typekit
for more advanced type definitions (for instance the ones of BFL based
on boost or the ones of KDL based on eigen).
As far as I see now typegen can only handle simple type definitions.
Can we adapt typegen in order to make it understand the more advanced types?
If not, I do not agree with the following sentence in the RTT 2.0
manual "Users should not write typekits themselves and use the typegen
tool instead. " and I believe support and documentation should be
added for users willing to build typekits for advanced data types.

Tinne

bfl typekit generation

On Tue, Sep 28, 2010 at 11:52 AM, Tinne De Laet
<tinne [dot] delaet [..] ...> wrote:
> Hi,
>> I made a small attempt to use the typegen tool to create a typekit for
>> BFL, but ran into the following problem:
>> - BFL defines ColumnVector, RowVector, Matrix, etc, but all these
>> inherit from BOOST, so there are no type definitions in the bfl files.
>> This is also what typegen say, e.g.
>> "WARN: /home/steven/matrix_BOOST.h contains no type definition"
>> - Subsequently I've taken a look at the boost include headers - to try
>> to generate the typekit for e.g. a boost matrix, however, this also
>> fails for the same reason.
>> There are however some typedef in the matrix.hpp class:
>> http://www.boost.org/doc/libs/1_38_0/boost/numeric/ublas/matrix.hpp
>>
>> Are the definitions not recognized by typegen / do they have to be
>> specified otherwise?
>
> Has anyone a suggestion how typegen in general can generate a typekit
> for more advanced type definitions (for instance the ones of BFL based
> on boost or the ones of KDL based on eigen).
> As far as I see now typegen can only handle simple type definitions.
> Can we adapt typegen in order to make it understand the more advanced types?
> If not, I do not agree with the following sentence in the RTT 2.0
> manual "Users should not write typekits themselves and use the typegen
> tool instead. " and I believe support and documentation should be
> added for users willing to build typekits for advanced data types.

Our typegen expert is still in vacation, but why don't you make the
problem concrete with an example
of what typegen outputs and what you expect it outputs ?

Peter

bfl typekit generation

2010/9/28 Peter Soetens <peter [..] ...>:
> On Tue, Sep 28, 2010 at 11:52 AM, Tinne De Laet
> <tinne [dot] delaet [..] ...> wrote:
>> Hi,
>>> I made a small attempt to use the typegen tool to create a typekit for
>>> BFL, but ran into the following problem:
>>> - BFL defines ColumnVector, RowVector, Matrix, etc, but all these
>>> inherit from BOOST, so there are no type definitions in the bfl files.
>>> This is also what typegen say, e.g.
>>> "WARN: /home/steven/matrix_BOOST.h contains no type definition"
>>> - Subsequently I've taken a look at the boost include headers - to try
>>> to generate the typekit for e.g. a boost matrix, however, this also
>>> fails for the same reason.
>>> There are however some typedef in the matrix.hpp class:
>>> http://www.boost.org/doc/libs/1_38_0/boost/numeric/ublas/matrix.hpp
>>>
>>> Are the definitions not recognized by typegen / do they have to be
>>> specified otherwise?
>>
>> Has anyone a suggestion how typegen in general can generate a typekit
>> for more advanced type definitions (for instance the ones of BFL based
>> on boost or the ones of KDL based on eigen).
>> As far as I see now typegen can only handle simple type definitions.
>> Can we adapt typegen in order to make it understand the more advanced types?
>> If not, I do not agree with the following sentence in the RTT 2.0
>> manual "Users should not write typekits themselves and use the typegen
>> tool instead. " and I believe support and documentation should be
>> added for users willing to build typekits for advanced data types.
>
> Our typegen expert is still in vacation, but why don't you make the
> problem concrete with an example
> of what typegen outputs and what you expect it outputs ?

When I try to generate the typekit for e.g. the vector_BOOST.h file,
typegen outputs template code which does not contain any types and
says:

$ typegen bfl_test `rospack find
bfl_0.7`/bfl-svn/src/wrappers/matrix/vector_BOOST.h -o bfl_test/
WARN: /home/steven/src/svn/cturtle/install/stacks/kul-ros-pkg/orocos/bfl/bfl_0.7/bfl-svn/src/wrappers/matrix/vector_BOOST.h:116:
ignoring /MatrixWrapper/RowVector as it has parent classes
WARN: /home/steven/src/svn/cturtle/install/stacks/kul-ros-pkg/orocos/bfl/bfl_0.7/bfl-svn/src/wrappers/matrix/vector_BOOST.h:42:
ignoring /MatrixWrapper/ColumnVector as it has parent classes

Steven

>
> Peter
>

bfl typekit generation

On 10/05/2010 11:03 AM, Steven Bellens wrote:
> 2010/9/28 Peter Soetens<peter [..] ...>:
>> On Tue, Sep 28, 2010 at 11:52 AM, Tinne De Laet
>> <tinne [dot] delaet [..] ...> wrote:
>>> Hi,
>>>> I made a small attempt to use the typegen tool to create a typekit for
>>>> BFL, but ran into the following problem:
>>>> - BFL defines ColumnVector, RowVector, Matrix, etc, but all these
>>>> inherit from BOOST, so there are no type definitions in the bfl files.
>>>> This is also what typegen say, e.g.
>>>> "WARN: /home/steven/matrix_BOOST.h contains no type definition"
>>>> - Subsequently I've taken a look at the boost include headers - to try
>>>> to generate the typekit for e.g. a boost matrix, however, this also
>>>> fails for the same reason.
>>>> There are however some typedef in the matrix.hpp class:
>>>> http://www.boost.org/doc/libs/1_38_0/boost/numeric/ublas/matrix.hpp
>>>>
>>>> Are the definitions not recognized by typegen / do they have to be
>>>> specified otherwise?
>>>
>>> Has anyone a suggestion how typegen in general can generate a typekit
>>> for more advanced type definitions (for instance the ones of BFL based
>>> on boost or the ones of KDL based on eigen).
>>> As far as I see now typegen can only handle simple type definitions.
>>> Can we adapt typegen in order to make it understand the more advanced types?
>>> If not, I do not agree with the following sentence in the RTT 2.0
>>> manual "Users should not write typekits themselves and use the typegen
>>> tool instead. " and I believe support and documentation should be
>>> added for users willing to build typekits for advanced data types.
>>
>> Our typegen expert is still in vacation, but why don't you make the
>> problem concrete with an example
>> of what typegen outputs and what you expect it outputs ?
>
> When I try to generate the typekit for e.g. the vector_BOOST.h file,
> typegen outputs template code which does not contain any types and
> says:
>
> $ typegen bfl_test `rospack find
> bfl_0.7`/bfl-svn/src/wrappers/matrix/vector_BOOST.h -o bfl_test/
> WARN: /home/steven/src/svn/cturtle/install/stacks/kul-ros-pkg/orocos/bfl/bfl_0.7/bfl-svn/src/wrappers/matrix/vector_BOOST.h:116:
> ignoring /MatrixWrapper/RowVector as it has parent classes
> WARN: /home/steven/src/svn/cturtle/install/stacks/kul-ros-pkg/orocos/bfl/bfl_0.7/bfl-svn/src/wrappers/matrix/vector_BOOST.h:42:
> ignoring /MatrixWrapper/ColumnVector as it has parent classes

typegen/orogen currently ignores types that have base classes (hence the
error message). However, I believe that eigen/boost matrix-based types
won't work anyway because they have private members. You don't expect
typegen to autodetect the getters and setters, do you ? ;-)

Implementing base classes is not that difficult, though. But I'll need
one or two weeks before I can start working on that again ... A brave
soul could have a look at bindings/ruby/lib/typelib-gccxml.rb in
typelib. What this script basically does is convert the gccxml XML
format to the corresponding Typelib XML format. Parent classes could be
quickly implemented by prepending the base class definition at the
beginning of the subclass definition.

Sylvain

bfl typekit generation

On Tue, Sep 28, 2010 at 2:06 PM, Peter Soetens <peter [..] ...>wrote:

> On Tue, Sep 28, 2010 at 11:52 AM, Tinne De Laet
> <tinne [dot] delaet [..] ...> wrote:
> > Hi,
> >> I made a small attempt to use the typegen tool to create a typekit for
> >> BFL, but ran into the following problem:
> >> - BFL defines ColumnVector, RowVector, Matrix, etc, but all these
> >> inherit from BOOST, so there are no type definitions in the bfl files.
> >> This is also what typegen say, e.g.
> >> "WARN: /home/steven/matrix_BOOST.h contains no type definition"
> >> - Subsequently I've taken a look at the boost include headers - to try
> >> to generate the typekit for e.g. a boost matrix, however, this also
> >> fails for the same reason.
> >> There are however some typedef in the matrix.hpp class:
> >> http://www.boost.org/doc/libs/1_38_0/boost/numeric/ublas/matrix.hpp
> >>
> >> Are the definitions not recognized by typegen / do they have to be
> >> specified otherwise?
> >
> > Has anyone a suggestion how typegen in general can generate a typekit
> > for more advanced type definitions (for instance the ones of BFL based
> > on boost or the ones of KDL based on eigen).
>

Can't talk about boost, but there has been a previous discussion on the list
about eigen-based types and typegen, with a proposed solution:

http://www.orocos.org/forum/orocos/orocos-users/plugintoolkit-eigen2-or-...

Adolfo

> > As far as I see now typegen can only handle simple type definitions.
> > Can we adapt typegen in order to make it understand the more advanced
> types?
> > If not, I do not agree with the following sentence in the RTT 2.0
> > manual "Users should not write typekits themselves and use the typegen
> > tool instead. " and I believe support and documentation should be
> > added for users willing to build typekits for advanced data types.
>
> Our typegen expert is still in vacation, but why don't you make the
> problem concrete with an example
> of what typegen outputs and what you expect it outputs ?
>
> Peter
> --
> Orocos-Dev mailing list
> Orocos-Dev [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev
>