55 template <
class Jo
intModelGroup>
56 static bool hasSolver(
const JointModelGroup* group)
60 throw std::invalid_argument(
"Group must not be null");
62 return group->getSolverInstance() !=
nullptr;
74 template <
class Jo
intModelGroup>
75 static const std::string& getSolverTipFrame(
const JointModelGroup* group)
77 if (!hasSolver(group))
79 throw NoSolverException(
"No solver for group " + group->getName());
82 const std::vector<std::string>& tip_frames{ group->getSolverInstance()->getTipFrames() };
83 if (tip_frames.size() > 1)
85 throw MoreThanOneTipFrameException(
"Solver for group \"" + group->getName() +
"\" has more than one tip frame");
87 return tip_frames.front();
CREATE_MOVEIT_ERROR_CODE_EXCEPTION(NegativeBlendRadiusException, moveit_msgs::msg::MoveItErrorCodes::INVALID_MOTION_PLAN)