{"action":"opened","issue":{"url":"https://api.github.com/repos/ros-planning/moveit_ros/issues/559","labels_url":"https://api.github.com/repos/ros-planning/moveit_ros/issues/559/labels{/name}","comments_url":"https://api.github.com/repos/ros-planning/moveit_ros/issues/559/comments","events_url":"https://api.github.com/repos/ros-planning/moveit_ros/issues/559/events","html_url":"https://github.com/ros-planning/moveit_ros/issues/559","id":55388356,"number":559,"title":"\"moveit_evaluate_collision_checking_speed\" tool segfaults","user":{"login":"skohlbr","id":205963,"avatar_url":"https://avatars.githubusercontent.com/u/205963?v=3","gravatar_id":"","url":"https://api.github.com/users/skohlbr","html_url":"https://github.com/skohlbr","followers_url":"https://api.github.com/users/skohlbr/followers","following_url":"https://api.github.com/users/skohlbr/following{/other_user}","gists_url":"https://api.github.com/users/skohlbr/gists{/gist_id}","starred_url":"https://api.github.com/users/skohlbr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skohlbr/subscriptions","organizations_url":"https://api.github.com/users/skohlbr/orgs","repos_url":"https://api.github.com/users/skohlbr/repos","events_url":"https://api.github.com/users/skohlbr/events{/privacy}","received_events_url":"https://api.github.com/users/skohlbr/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-01-24T23:06:30Z","updated_at":"2015-01-24T23:06:30Z","closed_at":null,"body":"When I run\r\n<pre>\r\nrosrun moveit_ros_planning moveit_evaluate_collision_checking_speed\r\n</pre>\r\nI consistently get segfaults regardless of the type of robot I try. For simplicity I tried this in an environment with sim time activated (Ubuntu 14.04/AMD64/Indigo), but it's unlikely that causes the segfault I guess.\r\n\r\nBacktrace (moveit_core compiled as Debug):\r\n<pre>\r\n0\t__GI_raise\t\t56\t0x7f835f1dbbb9\t\r\n1\t__GI_abort\t\t89\t0x7f835f1defc8\t\r\n2\t__assert_fail_base\t\t92\t0x7f835f1d4a76\t\r\n3\t__GI___assert_fail\t\t101\t0x7f835f1d4b22\t\r\n4\tmoveit::core::RobotState::getCollisionBodyTransform\trobot_state.h\t1032\t0x7f835c02dae0\t\r\n5\tcollision_detection::CollisionRobotFCL::constructFCLObject\tcollision_robot_fcl.cpp\t80\t0x7f835c02c4dd\t\r\n6\tcollision_detection::CollisionWorldFCL::checkRobotCollisionHelper\tcollision_world_fcl.cpp\t111\t0x7f835c03ee09\t\r\n7\tcollision_detection::CollisionWorldFCL::checkRobotCollision\tcollision_world_fcl.cpp\t94\t0x7f835c03ecf6\t\r\n8\tplanning_scene::PlanningScene::checkCollision\tplanning_scene.cpp\t522\t0x7f8360c06cc1\t\r\n9\trunCollisionDetection\tevaluate_collision_checking_speed.cpp\t51\t0x431a02\t\r\n10\tboost::_bi::list4<boost::_bi::value<unsigned int>, boost::_bi::value<unsigned int>, boost::_bi::value<planning_scene::PlanningScene*>, boost::_bi::value<moveit::core::RobotState*> >::operator()<void (*)(unsigned int, unsigned int, planning_scene::PlanningScene const*, moveit::core::RobotState const*), boost::_bi::list0>\tbind.hpp\t457\t0x44312e\t\r\n11\tboost::_bi::bind_t<void, void (*)(unsigned int, unsigned int, planning_scene::PlanningScene const*, moveit::core::RobotState const*), boost::_bi::list4<boost::_bi::value<unsigned int>, boost::_bi::value<unsigned int>, boost::_bi::value<planning_scene::PlanningScene*>, boost::_bi::value<moveit::core::RobotState*> > >::operator()\tbind_template.hpp\t20\t0x44297d\t\r\n12\tboost::detail::thread_data<boost::_bi::bind_t<void, void (*)(unsigned int, unsigned int, planning_scene::PlanningScene const*, moveit::core::RobotState const*), boost::_bi::list4<boost::_bi::value<unsigned int>, boost::_bi::value<unsigned int>, boost::_bi::value<planning_scene::PlanningScene*>, boost::_bi::value<moveit::core::RobotState*> > > >::run\tthread.hpp\t117\t0x441e44\t\r\n13\t??\t/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0\t\t0x7f835ff1ca4a\t\r\n14\tstart_thread\t\t312\t0x7f835fcfb182\t\r\n15\tclone\t\t111\t0x7f835f29fefd\t\r\n</pre>\r\n\r\nThe crash happens here at BOOST_VERIFY in https://github.com/ros-planning/moveit_core/blob/indigo-devel/robot_state/include/moveit/robot_state/robot_state.h#L1032:\r\n<pre>\r\n  const Eigen::Affine3d& getCollisionBodyTransform(const LinkModel *link, std::size_t index) const\r\n  {\r\n    BOOST_VERIFY(checkCollisionTransforms());\r\n    return global_collision_body_transforms_[link->getFirstCollisionBodyTransformIndex() + index];\r\n  }\r\n</pre>\r\n\r\nAny suggestions on how to fix or avoid this are appreciated."}}