Ask Your Question
1

hand_interaction unaligned array assertion

asked 2011-05-23 20:02:42 -0500

Miguel Prada gravatar image

updated 2011-05-23 20:10:29 -0500

I'm trying to run the detecthands (without skeleton) demo from mit-ros-pkg, and while it runs fine on my laptop (running Ubuntu 10.04 for x86_64) it crashes when I run it on the PC on our robot (which runs Ubuntu 10.10 for i686). Both of them have ROS Diamondback installed.

The demo fails by failing an assertion related to Eigen object alignment, which by reading the backtrace seems to correspond to the "Cause 2" in [1]. This is an issue that arises when using STL containers together with fixed-size vectorizable Eigen objects. In this case, it is raised when push back is called on a std::vector<pcl::PointCloud<pcl::PointXYZ> >, which I guess in turn uses such kind of Eigen objects. See the full gdb backtrace below for more information.

Given the above, I'm not sure if this is an issue that should be treated at the hand_interaction package level or at the pcl package level (or even elsewhere). Any idea or suggestion?

Please ask if I'm missing any important detail.

[1] [Explanation of the assertion on unaligned arrays](http://eigen.tuxfamily.org/dox/UnalignedArrayAssert.html)

Full gdb backtrace:

 pre blob time:  0.016093  very few points  no hands detected 
 pre blob time:  0.015678  very few points  no hands detected 
detecthands: /opt/ros/diamondback/stacks/geometry/eigen/include/Eigen/src/Core/DenseStorage.h:69: 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.
 pre blob time:  0.016067  
Program received signal SIGABRT, Aborted.
0x0012e416 in __kernel_vsyscall ()
(gdb) bt
#0  0x0012e416 in __kernel_vsyscall ()
#1  0x02329941 in raise () from /lib/libc.so.6
#2  0x0232ce42 in abort () from /lib/libc.so.6
#3  0x023228e8 in __assert_fail () from /lib/libc.so.6
#4  0x0805cfaf in plain_array (this=0x80d1228) at /opt/ros/diamondback/stacks/geometry/eigen/include/Eigen/src/Core/DenseStorage.h:69
#5  DenseStorage (this=0x80d1228) at /opt/ros/diamondback/stacks/geometry/eigen/include/Eigen/src/Core/DenseStorage.h:105
#6  PlainObjectBase (this=0x80d1228) at /opt/ros/diamondback/stacks/geometry/eigen/include/Eigen/src/Core/PlainObjectBase.h:371
#7  Matrix (this=0x80d1228) at /opt/ros/diamondback/stacks/geometry/eigen/include/Eigen/src/Core/Matrix.h:293
#8  Quaternion (this=0x80d1228) at /opt/ros/diamondback/stacks/geometry/eigen/include/Eigen/src/Geometry/Quaternion.h:231
#9  pcl::PointCloud<pcl::PointXYZ>::PointCloud (this=0x80d1228) at /opt/ros/diamondback/stacks/perception_pcl/pcl/include/pcl/point_cloud.h:81
#10 0x0805fd10 in construct (this=0xbfffee48, __position=..., __x=...) at /usr/include/c++/4.4/ext/new_allocator.h:105
#11 std::vector<pcl::PointCloud<pcl::PointXYZ>, std::allocator<pcl::PointCloud<pcl::PointXYZ> > >::_M_insert_aux (this=0xbfffee48, __position=..., __x=...) at /usr/include/c++/4.4/bits/vector.tcc:330
#12 0x08057403 in push_back (cloud=..., clouds=..., nearcents=...) at /usr/include/c++/4.4/bits/stl_vector.h:741
#13 getNearBlobs2 (cloud=..., clouds=..., nearcents=...) at /home/pekee/ros_overlay ...
(more)
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2011-06-17 11:46:28 -0500

Straszheim gravatar image

updated 2011-06-17 11:46:55 -0500

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2011-05-23 20:02:42 -0500

Seen: 549 times

Last updated: Jun 17 '11