delphyne
Curve2< T > Class Template Reference

Detailed Description

template<typename T>
class delphyne::Curve2< T >

Curve2 represents a path through two-dimensional Cartesian space.

Given a list of waypoints, it traces a path between them.

Instantiated templates for the following kinds of T's are provided:

  • double
  • drake::AutoDiffXd

They are already available to link against in the containing library.

TODO(jwnimmer-tri) We will soon trace the path using a spline, but for now it's easiest to just interpolate straight segments, as a starting point. Callers should not yet rely on how we are traversing between the waypoints.

#include <src/systems/curve2.h>

Classes

struct  PositionResult
 A result type for the GetPosition method. More...
 

Public Types

typedef Eigen::Matrix< double, 2, 1, Eigen::DontAlign > Point2
 A two-dimensional Cartesian point that is alignment-safe. More...
 
typedef Eigen::Matrix< T, 2, 1, Eigen::DontAlign > Point2T
 

Public Member Functions

 Curve2 (const std::vector< Point2 > &waypoints)
 Constructor that traces through the given waypoints in order. More...
 
const std::vector< Point2 > & waypoints () const
 
double path_length () const
 
PositionResult GetPosition (const T &path_distance) const
 Returns the Curve's PositionResult::position at path_distance, as well as its first derivative PositionResult::position_dot with respect to path_distance. More...
 

Member Typedef Documentation

◆ Point2

typedef Eigen::Matrix<double, 2, 1, Eigen::DontAlign> Point2

A two-dimensional Cartesian point that is alignment-safe.

◆ Point2T

typedef Eigen::Matrix<T, 2, 1, Eigen::DontAlign> Point2T

Constructor & Destructor Documentation

◆ Curve2()

Curve2 ( const std::vector< Point2 > &  waypoints)
explicit

Constructor that traces through the given waypoints in order.

Throws an error if waypoints.size() == 1.

Member Function Documentation

◆ GetPosition()

PositionResult GetPosition ( const T &  path_distance) const

Returns the Curve's PositionResult::position at path_distance, as well as its first derivative PositionResult::position_dot with respect to path_distance.

The path_distance is clipped to the ends of the curve:

  • A negative path_distance is interpreted as a path_distance of zero.
  • A path_distance that exceeds the path_length() of the curve is interpreted as a path_distance equal to the path_length().

The position_dot derivative, when evaluated exactly at a waypoint, will be congruent with the direction of one of the (max two) segments that neighbor the waypoint. (At the first and last waypoints, there is only one neighboring segment.) TODO(jwnimmer-tri) This will no longer be true once this class uses a spline.

◆ path_length()

double path_length ( ) const
Returns
the length of this curve (the total distance traced).

◆ waypoints()

const std::vector<Point2>& waypoints ( ) const
Returns
the waypoints associated with this curve.

The documentation for this class was generated from the following file: