37 #include <kdl/path.hpp> 
   38 #include <kdl/path_circle.hpp> 
   39 #include <kdl/rotational_interpolation_sa.hpp> 
   40 #include <kdl/utilities/error.h> 
   61   static std::unique_ptr<KDL::Path> 
circleFromCenter(
const KDL::Frame& start_pose, 
const KDL::Frame& goal_pose,
 
   62                                                      const KDL::Vector& center_point, 
double eqradius);
 
   69   static std::unique_ptr<KDL::Path> 
circleFromInterim(
const KDL::Frame& start_pose, 
const KDL::Frame& goal_pose,
 
   70                                                       const KDL::Vector& interim_point, 
double eqradius);
 
   80   static double cosines(
const double a, 
const double b, 
const double c);
 
   82   static constexpr 
double MAX_RADIUS_DIFF{ 1e-2 };
 
   83   static constexpr 
double MAX_COLINEAR_NORM{ 1e-5 };
 
   93     return "Distances between start-center and goal-center are different." 
   94            " A circle cannot be created.";
 
   98     return ERROR_CODE_CENTER_POINT_DIFFERENT_RADIUS;
 
  102   static constexpr 
int ERROR_CODE_CENTER_POINT_DIFFERENT_RADIUS{ 3006 };
 
const char * Description() const override
 
int GetType() const override
 
Generator class for KDL::Path_Circle from different circle representations.
 
static std::unique_ptr< KDL::Path > circleFromCenter(const KDL::Frame &start_pose, const KDL::Frame &goal_pose, const KDL::Vector ¢er_point, double eqradius)
set the path circle from start, goal and center point
 
static std::unique_ptr< KDL::Path > circleFromInterim(const KDL::Frame &start_pose, const KDL::Frame &goal_pose, const KDL::Vector &interim_point, double eqradius)
set circle from start, goal and interim point