ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

Eigen package error while running tod_detecting

asked 2011-05-20 09:33:09 -0600

dlmypr gravatar image

updated 2011-05-20 09:58:26 -0600

When I run tod_detecting I get the following error;

recognizer: /opt/ros/diamondback/stacks/geometry/eigen/include/Eigen/src/Core/DenseStorage.h:71: Eigen::internal::plain_array<t, size,="" matrixorarrayoptions,="" 16="">::plain_array() [with T = float, int Size = 4, int MatrixOrArrayOptions = 0]: Assertion `(reinterpret_cast<size_t>(array) & 0xf) == 0 && "this assertion is explained here: " "http://eigen.tuxfamily.org/dox/UnalignedArrayAssert.html" " * READ THIS WEB PAGE !!! *"' failed.

When I get a backtrace I see the problem is coming from the point_cloud.h inside the pcl package.

#0  0xb7fe1424 in __kernel_vsyscall ()
#1  0xb524c941 in raise () from /lib/libc.so.6
#2  0xb524fe42 in abort () from /lib/libc.so.6
#3  0xb52458e8 in __assert_fail () from /lib/libc.so.6
#4  0xb7f6703d in plain_array (this=0x8148de8) at /opt/ros/diamondback/stacks/geometry/eigen/include/Eigen/src/Core/DenseStorage.h:71
#5  DenseStorage (this=0x8148de8) at /opt/ros/diamondback/stacks/geometry/eigen/include/Eigen/src/Core/DenseStorage.h:104
#6  PlainObjectBase (this=0x8148de8) at /opt/ros/diamondback/stacks/geometry/eigen/include/Eigen/src/Core/PlainObjectBase.h:354
#7  Matrix (this=0x8148de8) at /opt/ros/diamondback/stacks/geometry/eigen/include/Eigen/src/Core/Matrix.h:272
#8  Quaternion (this=0x8148de8) at /opt/ros/diamondback/stacks/geometry/eigen/include/Eigen/src/Geometry/Quaternion.h:252
#9  Identity (this=0x8148de8) at /opt/ros/diamondback/stacks/geometry/eigen/include/Eigen/src/Geometry/Quaternion.h:109
#10 PointCloud (this=0x8148de8) at /opt/ros/diamondback/stacks/perception_pcl/pcl/include/pcl/point_cloud.h:84
#11 tod::TexturedObject::TexturedObject (this=0x8148de8) at /host/Desktop/Thesis/ros/repository/object_recognition/tod/src/core/TexturedObject.cpp:18
#12 0xb5551ca0 in tod::Loader::readTexturedObjects(std::vector<cv::Ptr<tod::TexturedObject>, std::allocator<cv::Ptr<tod::TexturedObject> > >&) ()
   from /host/ros/repository/object_recognition/tod_detecting/lib/libtod_detecting.so
#13 0x0805f7cf in ?? ()
#14 0xb5238ce7 in __libc_start_main () from /lib/libc.so.6
#15 0x0805d001 in ?? ()

I visited the web page http://eigen.tuxfamily.org/dox/Unalig... but i didn't understand what is causing this error.

Does anyone know how to cope with it?

Best regards..

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
4

answered 2011-05-21 04:48:27 -0600

dlmypr gravatar image

I defined both EIGEN_DONT_VECTORIZE and EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT inside the recognizer.cpp and the problem is solved

edit flag offensive delete link more
2

answered 2011-05-20 10:55:41 -0600

The answer to this has very much to do with what exactly you're doing. If you're running a tod_detecting launch file that doesn't run any of your code, then it's almost certainly a bug in tod_detecting.

If you are using tod_detecting inside your own code, you could very well be violating the preconditions for using Eigen types with/inside your classes and functions.

In either case, more information about what you are doing and/or what you don't understand about Eigen is needed to help you.

edit flag offensive delete link more

Comments

I actually run tod_detecting launch file so I am not sure what causes this eigen assertion. But I know program tries to reach this function PointCloud () : width (0), height (0), is_dense (true), sensor_origin_ (Eigen::Vector4f::Zero ()), sensor_orientation_ (Eigen::Quaternionf::Identity ()) and (Eigen::Vector4f::Zero ()) is what causes the problem. In the end of the link http://eigen.tuxfamily.org/dox/UnalignedArrayAssert.html it says "define both EIGEN_DONT_VECTORIZE and EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT. This keeps the 128-bit alignment code and thus preserves ABI compatibility, but completely disables vectorization." for getting rid of this assertion error. But I don't get where should I define these???
dlmypr gravatar image dlmypr  ( 2011-05-21 03:50:32 -0600 )edit

Question Tools

Stats

Asked: 2011-05-20 09:33:09 -0600

Seen: 901 times

Last updated: May 21 '11