Loading...
Searching...
No Matches
ndcurves::helpers Namespace Reference

Classes

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...
 
class  rotation_spline
 

Typedefs

typedef double Numeric
 
typedef double Time
 
typedef Eigen::Matrix< Numeric, Eigen::Dynamic, 1 > Point
 
typedef std::vector< Point, Eigen::aligned_allocator< Point > > T_Point
 
typedef std::pair< double, PointWaypoint
 
typedef std::vector< WaypointT_Waypoint
 
typedef exact_cubic< Time, Numeric, true, Point, T_Pointexact_cubic_t
 
typedef exact_cubic_t::spline_constraints spline_constraints_t
 
typedef exact_cubic_t::t_spline_t t_spline_t
 
typedef exact_cubic_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, 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 exact_cubic< Numeric, Numeric, false, point_one_dim_texact_cubic_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, 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)
 Compute time such that the equation from source to offsetpoint is necessarily a line.
 
spline_t make_end_spline (const Point &normal, const Point &from, const Numeric offset, const Time init_time, const Time time_offset)
 Compute spline from land way point to end point. Constraints are null velocity and acceleration.
 
spline_constraints_t compute_required_offset_velocity_acceleration (const spline_t &end_spline, const Time)
 Compute end velocity : along landing normal and respecting 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. Given a set of waypoints, and the normal vector of the start and ending positions, automatically create the spline such that:
 

Typedef Documentation

◆ config_t

◆ curve_abc_quat_t

◆ exact_cubic_constraint_one_dim

◆ exact_cubic_quat_t

◆ exact_cubic_t

◆ Numeric

◆ Point

typedef Eigen::Matrix<Numeric, Eigen::Dynamic, 1> ndcurves::helpers::Point

◆ point_one_dim_t

◆ quat_ref_const_t

◆ quat_ref_t

◆ quat_t

◆ spline_constraints_t

◆ spline_t

◆ T_Point

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

◆ t_spline_t

◆ T_Waypoint

◆ t_waypoint_one_dim_t

◆ t_waypoint_quat_t

◆ Time

◆ Waypoint

◆ waypoint_one_dim_t

◆ waypoint_quat_t

Function Documentation

◆ compute_offset()

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

Compute time such that the equation from source to offsetpoint is necessarily a line.

◆ compute_required_offset_velocity_acceleration()

spline_constraints_t ndcurves::helpers::compute_required_offset_velocity_acceleration ( const spline_t end_spline,
const Time   
)

Compute end velocity : along landing normal and respecting time.

◆ effector_spline()

template<typename In >
exact_cubic_t * ndcurves::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 last element 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 ndcurves::helpers::make_end_spline ( const Point normal,
const Point from,
const Numeric  offset,
const Time  init_time,
const Time  time_offset 
)

Compute spline from land way point to end point. Constraints are null velocity and acceleration.