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)