Drake

Namespaces  
test  
Classes  
class  ArcLengthParameterizedSpline 
An extension for ignition::math::Splines that reparameterizes them by path length. More...  
class  BranchPoint 
An implementation of api::BranchPoint for RNDF. More...  
class  Builder 
A class to ease the construction of a RoadGeometry from Connection and DirectedWaypoint objects. More...  
class  Connection 
A container that holds the information needed by a Builder to construct one or more Lane objects. More...  
class  DirectedWaypoint 
A container that holds the information needed by a Builder to construct a Lane from a sequence of ignition::rndf::Waypoint objects. More...  
class  InverseFunctionInterpolator 
A linear interpolator for arbitrary inverse functions. More...  
class  Junction 
An api::Junction implementation for RNDF. More...  
class  Lane 
Base class for the RNDF implementation of api::Lane. More...  
class  LaneEndSet 
An implementation of LaneEndSet for RNDF. More...  
struct  RoadCharacteristics 
Holds common api::RoadGeometry characteristics needed to construct one. More...  
class  RoadGeometry 
An api::RoadGeometry implementation for RNDF specification. More...  
class  Segment 
An api::Segment implementation for RNDF. More...  
class  SplineLane 
Specialization of drake::maliput::rndf::Lane with a spline curve as its reference path. More...  
Functions  
std::unique_ptr< const api::RoadGeometry >  LoadFile (const std::string &filepath) 
Loads a given RNDF at filepath and builds an equivalent api::RoadGeometry.using default RoadCharacteristics. More...  
std::unique_ptr< const api::RoadGeometry >  LoadFile (const std::string &filepath, const RoadCharacteristics &road_characteristics) 
Loads a given RNDF at filepath and builds an equivalent api::RoadGeometry with the given road_characteristics . More...  
std::vector< ignition::math::Vector3d >  SplineToBezier (const ignition::math::Vector3d &p0, const ignition::math::Vector3d &t0, const ignition::math::Vector3d &p1, const ignition::math::Vector3d &t1) 
Provides the equivalent set of points in cubic Bezier base from two pairs of points and tangents at the extents of a spline. More...  
std::vector< ignition::math::Vector3d >  BezierToSpline (const ignition::math::Vector3d &p0, const ignition::math::Vector3d &p1, const ignition::math::Vector3d &p2, const ignition::math::Vector3d &p3) 
Provides the equivalent set of points in cubic spline base from four cubic Bezier control points. More...  
std::vector< ignition::math::Vector3d >  MakeBezierCurveMonotonic (const std::vector< ignition::math::Vector3d > &control_points, double scale) 
Provides a conditionally convex and monotonic Bezier curve given a vector of control points control_points . More...  
std::unique_ptr< ignition::math::Spline >  CreatePChipBasedSpline (const std::vector< ignition::math::Vector3d > &positions) 
Creates a ignition::math::Spline from a set of positions . More...  
Variables  
static const int  kFunctionPartitionTreeDegree = 10 
static const int  kFunctionPartitionTreeMaxDepth = 10 
static constexpr double  kBezierMatrix [16] 
static constexpr double  kHermiteMatrix [16] 
std::vector< ignition::math::Vector3d > BezierToSpline  (  const ignition::math::Vector3d &  p0, 
const ignition::math::Vector3d &  p1,  
const ignition::math::Vector3d &  p2,  
const ignition::math::Vector3d &  p3  
) 
Provides the equivalent set of points in cubic spline base from four cubic Bezier control points.
p0  A vector that describes the starting position of the curve. 
p1  A vector that describes the first control point of the curve. 
p2  A vector that describes the second control point of the curve. 
p3  A vector that describes the last control point of the curve. 
std::unique_ptr< ignition::math::Spline > CreatePChipBasedSpline  (  const std::vector< ignition::math::Vector3d > &  positions  ) 
Creates a ignition::math::Spline from a set of positions
.
These positions are the control points where the curve must go through. The final curve is based from a PChip algorithm, which makes the interpolation safe in terms of piecewise convexity and monotonicity.
positions  A vector of position where the spline should go through. It should have more than two points. In addition, two consecutive points that have a length of zero will throw an exception since it's not yet supported. 
std::runtime_error  When positions' size is less than three. 
std::runtime_error  When two consecutive positions' items have a distance of zero. 
std::unique_ptr< const api::RoadGeometry > LoadFile  (  const std::string &  filepath  ) 
Loads a given RNDF at filepath
and builds an equivalent api::RoadGeometry.using default RoadCharacteristics.
This is an overloaded function provided for convenience. See LoadFile(const std::string&, const RoadCharacteristics&).
std::unique_ptr< const api::RoadGeometry > LoadFile  (  const std::string &  filepath, 
const RoadCharacteristics &  road_characteristics  
) 
Loads a given RNDF at filepath
and builds an equivalent api::RoadGeometry with the given road_characteristics
.
RNDF waypoints are given in UTM (latitude / longitude) coordinates. In the resulting api::RoadGeometry, they are mapped to ENU (Cartesian) coordinates whose origin coincides with the location of waypoint '1.1.1'. Note that due to the planar nature of the underlying api::RoadGeometry implementation, the elevation coordinate will be forced to 0.
filepath  The RNDF path. 
road_characteristics  The common geometrical aspects to comply with when building the api::RoadGeometry. 
std::runtime_error  When the given file is not a valid RNDF. 
std::runtime_error  When the given RNDF doesn't have at least a single lane segment with one or more waypoints. RNDFs containing only zones are not supported. 
std::vector< ignition::math::Vector3d > MakeBezierCurveMonotonic  (  const std::vector< ignition::math::Vector3d > &  control_points, 
double  scale  
) 
Provides a conditionally convex and monotonic Bezier curve given a vector of control points control_points
.
First it computes the intersection of the lines represented by point and tangent at the beginning and at the end of the curve. From here we have a a first branch in the behavior, if there is no intersection, we assume that all these curves are 2D curves over the z = 0.0 api::GeoPosition frame. Then, we create two intermediate control points for them that will provide a S shape to match the curve. The change in convexity is set to be in the mid point of the extents of the curve. In case there is an intersection between the two lines, we find it and this will be the critical point. From this step, there are two types of geometries we can generate but for both, the control points at the extents remain the same. For those control points in between we use the following equations to compute them:
control_points
[1] = control_points
[0] + (±1.0) * scale
* (critical_point  control_points[0]) control_points
[2] = control_points
[3] + (∓1.0) * scale
* (critical_point  control_points[3])
When the curve preserves convexity, scale
is multiplied by (+1.0) in both cases. However, when it is not, opposite signs are used.
control_points  A vector containing four Bezier control points. The first and last points are the extent points of the Bezier curve and the other two are the tangent controlling waypoints. 
scale  A scale factor with a range value between 0.0 and 1.0. 
std::runtime_error  When the size of control_points is different from 4. 
std::runtime_error  When scale is bigger than 1.0. 
std::runtime_error  When scale is smaller than 0.0. 
std::vector< ignition::math::Vector3d > SplineToBezier  (  const ignition::math::Vector3d &  p0, 
const ignition::math::Vector3d &  t0,  
const ignition::math::Vector3d &  p1,  
const ignition::math::Vector3d &  t1  
) 
Provides the equivalent set of points in cubic Bezier base from two pairs of points and tangents at the extents of a spline.
p0  A vector that describes the starting position of the curve. 
t0  A vector that describes the tangent at p0 . 
p1  A vector that describes the ending position of the curve. 
t1  A vector that describes the tangent at p1 . 

static 

static 

static 

static 