ros-industrial-consortium / descartes

ROS-Industrial Special Project: Cartesian Path Planner
Apache License 2.0
126 stars 92 forks source link

Segfault while using planner.planPath(points) #186

Open JKBehrens opened 7 years ago

JKBehrens commented 7 years ago

Continuing the work from this issue: https://github.com/ros-industrial-consortium/descartes/issues/185

when I additionally uncomment from the tutoarial code

 // 3. Create a planner and initialize it with our robot model
  descartes_planner::DensePlanner planner;
  planner.initialize(model);

  // 4. Feed the trajectory to the planner
  if (!planner.planPath(points))
  {
    ROS_ERROR("Could not solve for a valid path");
    return -2;
  }

and have gazebo and moveit running (so urdf and srdl are present), I'll get the following error:

rosrun descartes_tutorials tutorial1 
[ INFO] [1480079917.141680125]: Loading robot model 'NextageOpen'...
[ INFO] [1480079917.141806220]: No root joint specified. Assuming fixed joint
[ INFO] [1480079917.496046383, 1285.616000000]: World frame 'WAIST' does not match model root frame '/world', all poses will be transformed to world frame 'WAIST'
tutorial1: /usr/include/boost/smart_ptr/shared_ptr.hpp:653: typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = const kinematics::KinematicsBase; typename boost::detail::sp_member_access<T>::type = const kinematics::KinematicsBase*]: Assertion `px != 0' failed.
Aborted (core dumped)

Could you please include useful checks (to prevent segfaults) and issue some error messages to enable better debugging?

BTW: I am using Ubuntu 14.04 and Indigo

Thank you! Jan

shaun-edwards commented 7 years ago

+1 to this, but I believe the real issue is that MoveIt doesn't report/log errors when things fail. Checking the validity of pointers that are returned from MoveIt would provide more useful info then a seg fault.