All Classes Namespaces Files Functions Variables Typedefs
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. 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_Point
spline_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_t
quat_ref_const_t
 
typedef Eigen::Matrix< Numeric, 7, 1 > config_t
 
typedef curve_abc< Time,
Numeric, 4, false, quat_t
curve_abc_quat_t
 
typedef std::pair< Numeric,
quat_t
waypoint_quat_t
 
typedef std::vector
< waypoint_quat_t
t_waypoint_quat_t
 
typedef Eigen::Matrix< Numeric, 1, 1 > point_one_dim_t
 
typedef
spline_deriv_constraint
< Numeric, Numeric, 1, false,
point_one_dim_t
spline_deriv_constraint_one_dim
 
typedef std::pair< Numeric,
point_one_dim_t
waypoint_one_dim_t
 
typedef std::vector
< waypoint_one_dim_t
t_waypoint_one_dim_t
 
typedef exact_cubic< Time,
Numeric, 4, false, quat_t,
std::vector< quat_t,
Eigen::aligned_allocator
< quat_t > >, rotation_spline
exact_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)
 
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. More...
 

Typedef Documentation

typedef Eigen::Matrix<Numeric, 7, 1> spline::helpers::config_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
typedef double spline::helpers::Numeric
typedef Eigen::Matrix<Numeric, 3, 1> spline::helpers::Point
typedef Eigen::Matrix<Numeric, 1, 1> spline::helpers::point_one_dim_t
typedef const Eigen::Ref<const quat_t> spline::helpers::quat_ref_const_t
typedef Eigen::Ref<quat_t> spline::helpers::quat_ref_t
typedef Eigen::Matrix<Numeric, 4, 1> spline::helpers::quat_t
typedef std::vector<Point, Eigen::aligned_allocator<Point> > spline::helpers::T_Point
typedef std::vector<Waypoint> spline::helpers::T_Waypoint
typedef double spline::helpers::Time
typedef std::pair<double, Point> spline::helpers::Waypoint

Function Documentation

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

Referenced by 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

References compute_offset(), compute_required_offset_velocity_acceleration(), make_end_spline(), and spline::exact_cubic< Time, Numeric, Dim, Safe, Point, T_Point, SplineBase >::subSplines_.

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

Referenced by effector_spline().