spline::helpers Namespace Reference

Classes

class  rotation_spline
 
class  effector_spline_rotation
 Represents a trajectory for and end effector uses the method effector_spline to create a spline trajectory. Additionally, handles the rotation of the effector as follows: does not rotate during the take off and landing phase, then uses a SLERP algorithm to interpolate the rotation in the quaternion space. More...
 

Typedefs

typedef double Numeric
 
typedef double Time
 
typedef Eigen::Matrix< Numeric, 3, 1 > Point
 
typedef std::vector< Point, Eigen::aligned_allocator< Point > > T_Point
 
typedef std::pair< double, PointWaypoint
 
typedef std::vector< WaypointT_Waypoint
 
typedef spline_deriv_constraint< Time, Numeric, 3, true, Point, T_Pointspline_deriv_constraint_t
 
typedef spline_deriv_constraint_t::spline_constraints spline_constraints_t
 
typedef spline_deriv_constraint_t::exact_cubic_t exact_cubic_t
 
typedef spline_deriv_constraint_t::t_spline_t t_spline_t
 
typedef spline_deriv_constraint_t::spline_t spline_t
 
typedef Eigen::Matrix< Numeric, 4, 1 > quat_t
 
typedef Eigen::Ref< quat_tquat_ref_t
 
typedef const Eigen::Ref< const quat_tquat_ref_const_t
 
typedef Eigen::Matrix< Numeric, 7, 1 > config_t
 
typedef curve_abc< Time, Numeric, 4, false, quat_tcurve_abc_quat_t
 
typedef std::pair< Numeric, quat_twaypoint_quat_t
 
typedef std::vector< waypoint_quat_tt_waypoint_quat_t
 
typedef Eigen::Matrix< Numeric, 1, 1 > point_one_dim_t
 
typedef spline_deriv_constraint< Numeric, Numeric, 1, false, point_one_dim_tspline_deriv_constraint_one_dim
 
typedef std::pair< Numeric, point_one_dim_twaypoint_one_dim_t
 
typedef std::vector< waypoint_one_dim_tt_waypoint_one_dim_t
 
typedef exact_cubic< Time, Numeric, 4, false, quat_t, std::vector< quat_t, Eigen::aligned_allocator< quat_t > >, rotation_splineexact_cubic_quat_t
 

Functions

Waypoint compute_offset (const Waypoint &source, const Point &normal, const Numeric offset, const Time time_offset)
 
spline_t make_end_spline (const Point &normal, const Point &from, const Numeric offset, const Time init_time, const Time time_offset)
 
spline_constraints_t compute_required_offset_velocity_acceleration (const spline_t &end_spline, const Time time_offset)
 
template<typename In >
exact_cubic_teffector_spline (In wayPointsBegin, In wayPointsEnd, const Point &lift_normal=Eigen::Vector3d::UnitZ(), const Point &land_normal=Eigen::Vector3d::UnitZ(), const Numeric lift_offset=0.02, const Numeric land_offset=0.02, const Time lift_offset_duration=0.02, const Time land_offset_duration=0.02)
 Helper method to create a spline typically used to guide the 3d trajectory of a robot end effector. Given a set of waypoints, and the normal vector of the start and ending positions, automatically create the spline such that: More...
 

Typedef Documentation

◆ config_t

typedef Eigen::Matrix<Numeric, 7, 1> spline::helpers::config_t

◆ curve_abc_quat_t

typedef curve_abc<Time, Numeric, 4, false, quat_t> spline::helpers::curve_abc_quat_t

◆ exact_cubic_quat_t

typedef exact_cubic<Time, Numeric, 4, false, quat_t, std::vector<quat_t, Eigen::aligned_allocator<quat_t> >, rotation_spline> spline::helpers::exact_cubic_quat_t

◆ exact_cubic_t

typedef spline_deriv_constraint_t::exact_cubic_t spline::helpers::exact_cubic_t

◆ Numeric

typedef double spline::helpers::Numeric

◆ Point

typedef Eigen::Matrix<Numeric, 3, 1> spline::helpers::Point

◆ point_one_dim_t

typedef Eigen::Matrix<Numeric, 1, 1> spline::helpers::point_one_dim_t

◆ quat_ref_const_t

typedef const Eigen::Ref<const quat_t> spline::helpers::quat_ref_const_t

◆ quat_ref_t

typedef Eigen::Ref<quat_t> spline::helpers::quat_ref_t

◆ quat_t

typedef Eigen::Matrix<Numeric, 4, 1> spline::helpers::quat_t

◆ spline_constraints_t

typedef spline_deriv_constraint_t::spline_constraints spline::helpers::spline_constraints_t

◆ spline_deriv_constraint_one_dim

◆ spline_deriv_constraint_t

typedef spline_deriv_constraint<Time, Numeric, 3, true, Point, T_Point> spline::helpers::spline_deriv_constraint_t

◆ spline_t

typedef spline_deriv_constraint_t::spline_t spline::helpers::spline_t

◆ T_Point

typedef std::vector<Point, Eigen::aligned_allocator<Point> > spline::helpers::T_Point

◆ t_spline_t

typedef spline_deriv_constraint_t::t_spline_t spline::helpers::t_spline_t

◆ T_Waypoint

typedef std::vector<Waypoint> spline::helpers::T_Waypoint

◆ t_waypoint_one_dim_t

◆ t_waypoint_quat_t

◆ Time

typedef double spline::helpers::Time

◆ Waypoint

typedef std::pair<double, Point> spline::helpers::Waypoint

◆ waypoint_one_dim_t

◆ waypoint_quat_t

Function Documentation

◆ compute_offset()

Waypoint spline::helpers::compute_offset ( const Waypoint source,
const Point normal,
const Numeric  offset,
const Time  time_offset 
)

◆ compute_required_offset_velocity_acceleration()

spline_constraints_t spline::helpers::compute_required_offset_velocity_acceleration ( const spline_t end_spline,
const Time  time_offset 
)

◆ effector_spline()

template<typename In >
exact_cubic_t* spline::helpers::effector_spline ( In  wayPointsBegin,
In  wayPointsEnd,
const Point lift_normal = Eigen::Vector3d::UnitZ(),
const Point land_normal = Eigen::Vector3d::UnitZ(),
const Numeric  lift_offset = 0.02,
const Numeric  land_offset = 0.02,
const Time  lift_offset_duration = 0.02,
const Time  land_offset_duration = 0.02 
)

Helper method to create a spline typically used to guide the 3d trajectory of a robot end effector. Given a set of waypoints, and the normal vector of the start and ending positions, automatically create the spline such that:

  • init and end velocities / accelerations are 0.
  • the effector lifts and lands exactly in the direction of the specified normals
    Parameters
    wayPointsBegin: an iterator pointing to the first element of a waypoint container
    wayPointsEnd: an iterator pointing to the end of a waypoint container
    lift_normal: normal to be followed by end effector at take-off
    land_normal: normal to be followed by end effector at landing
    lift_offset: length of the straight line along normal at take-off
    land_offset: length of the straight line along normal at landing
    lift_offset_duration: time travelled along straight line at take-off
    land_offset_duration: time travelled along straight line at landing

◆ make_end_spline()

spline_t spline::helpers::make_end_spline ( const Point normal,
const Point from,
const Numeric  offset,
const Time  init_time,
const Time  time_offset 
)