Hello! I encounter a problem when using the "new version" costmap_2d in ros hydro. I tested it with costmap_2d_node with the proper parameters, but the program stopped because of the famous warning information from eigen:
/usr/include/eigen3/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-devel/TopicUnalignedArrayAssert.html" " **** READ THIS WEB PAGE !!! ****"' failed.
And I tried to use gdb to get some more details about this crash, and it seems that the problem comes from the observation_buffer.cpp file in the costmap_2d package, as it deals with the pcl point cloud. The last several calls before the crash are shown below:
#1 0xb715f1df in raise () from /lib/i386-linux-gnu/libc.so.6
#2 0xb7162825 in abort () from /lib/i386-linux-gnu/libc.so.6
#3 0xb7158085 in ?? () from /lib/i386-linux-gnu/libc.so.6
#4 0xb7158137 in __assert_fail () from /lib/i386-linux-gnu/libc.so.6
#5 0xb76abff1 in ?? () from /opt/ros/hydro/lib/libcostmap_2d.so
#6 0xb76b4682 in costmap_2d::ObservationBuffer::bufferCloud(pcl::PointCloudpcl::PointXYZ const&) () from /opt/ros/hydro/lib/libcostmap_2d.so
#7 0xb76b4a61 in costmap_2d::ObservationBuffer::bufferCloud(sensor_msgs::PointCloud2_std::allocator<void > const&) () from /opt/ros/hydro/lib/libcostmap_2d.so
#8 0xb2228421 in costmap_2d::ObstacleLayer::laserScanCallback(boost::shared_ptr<sensor_msgs::LaserScan_std::allocator<void > const> const&, boost::shared_ptr<costmap_2d::ObservationBuffer> const&) () from /opt/ros/hydro/lib/liblayers.so
#9 0xb2231eb3 in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::mfi::mf2<void, costmap_2d::ObstacleLayer, boost::shared_ptr<sensor_msgs::LaserScanstd::allocator<void > const> const&, boost::shared_ptr<costmap_2d::ObservationBuffer> const&>, boost::bi::list3boost::_bi::value<costmap_2d::ObstacleLayer*, boost::arg<1>, boost::bi::valueboost::shared_ptr<costmap_2d::ObservationBuffer > > >, void, boost::shared_ptr<sensor_msgs::LaserScanstd::allocator<void > const> const&>::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<sensor_msgs::LaserScanstd::allocator<void > const> const&) () from /opt/ros/hydro/lib/liblayers.so
#10 0xb223a346 in boost::detail::function::void_function_obj_invoker1<boost::function<void (boost::shared_ptr<sensor_msgs::LaserScan_std::allocator<void > const> const&)>, void, boost::shared_ptr<sensor_msgs::LaserScan_std::allocator<void > const> >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<sensor_msgs::LaserScan_std::allocator<void > const>) () from /opt/ros/hydro/lib/liblayers.so
#11 0xb225adae in message_filters::CallbackHelper1Tboost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void > const> const&, sensor_msgs::LaserScan_std::allocator<void > >::call(ros::MessageEvent<sensor_msgs::LaserScan_std::allocator<void > const> const&, bool) () from /opt/ros/hydro/lib/liblayers.so
#12 0xb22455be in message_filters::SimpleFilter<sensor_msgs::LaserScan_std::allocator<void > >::signalMessage(ros::MessageEvent<sensor_msgs::LaserScan_std::allocator<void > const> const&) () from /opt/ros/hydro/lib/liblayers.so
I never had this problem before. My os is ubuntu precise 32bit. Thanks for any help!
Originally posted by Mike Gao on ROS Answers with karma: 108 on 2013-07-26
Post score: 1
Original comments
Comment by jorge on 2013-09-04:
Still there the error? It always happens or just randomly? I show something similar when using pointclouds with costmaps. But it was while preparing a demo, so no way to stop and debug!