Boost logo

Ublas :

From: Dinesh Gurram (dgurram_at_[hidden])
Date: 2005-05-02 23:06:35


Geez, thanks for all your help guys. Don't all be bombarding my inbox
with some answers.

Anyways while you all have remained silent, the problem has been
resolved. I reinstalled Boost 1.29.0 and the SLAM code now works with
the uBlas that came with that. Unless there's a really good reason to
upgrade Boost, I'm happy...for now.

Dinesh

On 5/1/05, Dinesh Gurram <dgurram_at_[hidden]> wrote:
> Hi,
>
> I am quite new to uBlas and even SLAM (Simultaneous Localisation and
> Mapping) - an important task performed by mobile robots in new
> environments.
>
> I have started with a robotics framework known as Orca
> (orca-robotics.sourceforge.net) which has a SLAM component that
> utilises uBlas. However, this component has not been maintained too
> well and I am currently having some incompatibility issues causing the
> component to fail at compilation. Perhaps it was written with an older
> version of Boost/uBlas, I'm not sure. I get lost in the maths that the
> code is trying to perform and the templated calls etc (I'm also kinda
> new to c++) so I was hoping someone with more (a lot more) knowledge
> than myself would be able to provide some clues as to what's going on.
>
> I will start with providing the compiler output:
>
> /home/dgurram/unpacked/orca/orca-components/src/components/slamlocalizer:
> building default_target
> Building dependencies cmake.check_depends...
> Planning to Build Component: slamlocalizer
> Building object file clsfslam.o...
> /home/dgurram/unpacked/orca/orca-components/src/components/slamlocalizer/clsfslam.cpp:
> In member function `bool
> CLSFSlam::CLSFApplyConstraints(std::vector<int, std::allocator<int>
> >&, int, int, int, int)':
> /home/dgurram/unpacked/orca/orca-components/src/components/slamlocalizer/clsfslam.cpp:217:
> warning: comparison between signed and unsigned integer expressions
> /home/dgurram/unpacked/orca/orca-components/src/components/slamlocalizer/clsfslam.cpp:339:
> warning: comparison between signed and unsigned integer expressions
> /usr/include/boost/numeric/ublas/matrix_expression.hpp: In function
> `typename boost::numeric::ublas::matrix_matrix_binary_traits<typename
> E1::value_type, E1, typename E2::value_type, E2>::result_type
> boost::numeric::ublas::prod(const
> boost::numeric::ublas::matrix_expression<E>&, const
> boost::numeric::ublas::matrix_expression<E2>&) [with E1 =
> boost::numeric::ublas::matrix_matrix_binary<boost::numeric::ublas::symmetric_matrix<double,
> boost::numeric::ublas::lower, boost::numeric::ublas::row_major,
> boost::numeric::ublas::unbounded_array<double, std::allocator<double>
> > >, boost::numeric::ublas::matrix_unary2<boost::numeric::ublas::matrix<double,
> boost::numeric::ublas::row_major,
> boost::numeric::ublas::unbounded_array<double, std::allocator<double>
> > >, boost::numeric::ublas::scalar_identity<double> >,
> boost::numeric::ublas::matrix_matrix_prod<double, double, double> >,
> E2 = boost::numeric::ublas::symmetric_matrix<double,
> boost::numeric::ublas::lower, boost::numeric::ublas::row_major,
> boost::numeric::ublas::unbounded_array<double, std::allocator<double>
> > >]':
> /home/dgurram/unpacked/orca/orca-components/src/components/slamlocalizer/clsfslam.cpp:265:
> instantiated from here
> /usr/include/boost/numeric/ublas/matrix_expression.hpp:5103: error:
> incomplete type `boost::STATIC_ASSERTION_FAILURE< false>' used in
> nested name specifier
> /usr/include/boost/numeric/ublas/matrix_expression.hpp:5103: error:
> size of array has non-integral type `<type error>'
> /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../../include/c++/3.4.3/bits/stl_algo.h:
> In function `_RandomAccessIterator std::find(_RandomAccessIterator,
> _RandomAccessIterator, const _Tp&, std::random_access_iterator_tag)
> [with _RandomAccessIterator= __gnu_cxx::__normal_iterator<int*,
> std::vector<int, std::allocator<int> > >, _Tp = unsigned int]':
> /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../../include/c++/3.4.3/bits/stl_algo.h:314:
> instantiated from `_InputIteratorstd::find(_InputIterator,
> _InputIterator, const _Tp&) [with _InputIterator =
> __gnu_cxx::__normal_iterator<int*, std::vector<int,
> std::allocator<int> > >, _Tp = size_t]'
>
> I have also attached the cpp file where the error is originating, just
> to allow you to see the line(s) of code causing trouble. Of course
> there are other files in the component and Orca and this won't give
> the whole picture. But maybe these kind of errors ring a bell? Have
> they been encountered by anyone? (I've searched lists.boost.org an
> came up empty-handed). Has the interface to uBlas changed
> significantly in recent years? Is it a compiler thing? I am using
> 3.4.3 20050227 on a Fedora Core 3 system running on an Athlon 900.
>
> It's a long shot but maybe someone on this list has used Orca. The
> orca mailing list has not responded for a while now so this seems to
> be my last hope.
>
> Thanks in advance,
>
> Dinesh
>
>
>