problem of costmap_2d in ros hydro
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::PointCloud<pcl::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::laserscan_<std::allocator<void=""> > const> const&, boost::shared_ptr<costmap_2d::observationbuffer> const&>, boost::_bi::list3<boost::_bi::value<costmap_2d::obstaclelayer*>, boost::arg<1>, boost::_bi::value<boost::shared_ptr<costmap_2d::observationbuffer> > > >, void, boost::shared_ptr<sensor_msgs::laserscan_<std::allocator<void> > const> const&>::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<sensor_msgs::laserscan_<std::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::CallbackHelper1T<boost::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!
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!