The reach study currently implicitly rotates each target pose by 180 degrees about the x-axis and makes the assumption that a robot's TCP frame has the z-axis pointing "out". This assumption and implict operation can be easily missed, causing reach studies to report many infeasible IK solutions, which is generally difficult to debug. We should remove the implicit rotation and state the assumption that the reach study will attempt to align the TCP frame directly with the target poses (per the operation of the underlying IK solver).
|
const Eigen::Isometry3d& tgt_frame = target_poses_[i] * Eigen::AngleAxisd(M_PI, Eigen::Vector3d::UnitX()); |
The reach study currently implicitly rotates each target pose by 180 degrees about the x-axis and makes the assumption that a robot's TCP frame has the z-axis pointing "out". This assumption and implict operation can be easily missed, causing reach studies to report many infeasible IK solutions, which is generally difficult to debug. We should remove the implicit rotation and state the assumption that the reach study will attempt to align the TCP frame directly with the target poses (per the operation of the underlying IK solver).
reach/src/reach_study.cpp
Line 111 in d89ddaf