ros-industrial-consortium / descartes

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

AxialSymetricPt does not properly initialize tolerance frame in CartesianPt parent class #114

Closed jrgnicho closed 9 years ago

jrgnicho commented 9 years ago

The AxialSymetricPt constructors assigns the nominal pose data to the wobj_base_member instead of the wobjpt tolerance frame member. Thus the correct translation and rotation bounds of the point aren't captured within the tolerance frame and they are set to zero instead. This causes failures when calling the getClosestJointPose() method which in turn causes the SparsePlanner to fail at finding a path.

Jmeyer1292 commented 9 years ago

The issue is not with AxiallySymmetricPt. The issue (see #110) is that getClosestJointPose doesn't work with the 4 transforms that can be specified in Cartesian point. Anyone who specifies more than just wobpt will run into issues.

jrgnicho commented 9 years ago

I agree that the getClosestJointPose() method is incomplete (see issue #43). The proper solution would require using all transforms and evaluating the rotational bounds in quaternion space in order to avoid dealing with discontinuities inherent in the cartesian space euler angles.