Drake

RoadCurve specification for a reference curve that describes a piece of an arc. More...

#include <drake/automotive/maliput/multilane/arc_road_curve.h>

[legend]
[legend]

## Public Member Functions

ArcRoadCurve (const Vector2< double > &center, double radius, double theta0, double d_theta, const CubicPolynomial &elevation, const CubicPolynomial &superelevation)
Constructor. More...

Vector2< doublexy_of_p (double p) const override
Computes the reference curve. More...

Vector2< doublexy_dot_of_p (double p) const override
Computes the first derivative of the reference curve. More...

double heading_of_p (double p) const override
Computes the heading of the reference curve. More...

double heading_dot_of_p (double p) const override
Computes the first derivative heading of the reference curve. More...

double p_scale () const override
Computes the path length integral of the reference curve for the interval [0;1] of p. More...

Vector3< doubleToCurveFrame (const Vector3< double > &geo_coordinate, const api::RBounds &lateral_bounds, const api::HBounds &height_bounds) const override
Converts a geo_coordinate in the world frame to the composed curve frame, i.e., the superposition of the reference curve, elevation and superelevation polynomials. More...

bool IsValid (const api::RBounds &lateral_bounds, const api::HBounds &height_bounds) const override
Evaluates extrema in superelevation polynomial to verify that for the given lateral_bounds the surface do not fold over itself. More...

Does not allow copy, move, or assignment

Public Member Functions inherited from RoadCurve

const CubicPolynomialelevation () const

const CubicPolynomialsuperelevation () const

double trajectory_length () const
Computes the composed curve path integral in the interval of p = [0; 1]. More...

Protected Member Functions inherited from RoadCurve
RoadCurve (const CubicPolynomial &elevation, const CubicPolynomial &superelevation)
Constructs a road curve given elevation and superelevation curves. More...

## Detailed Description

RoadCurve specification for a reference curve that describes a piece of an arc.

## Constructor & Destructor Documentation

delete
delete
 ArcRoadCurve ( const Vector2< double > & center, double radius, double theta0, double d_theta, const CubicPolynomial & elevation, const CubicPolynomial & superelevation )
inlineexplicit

Constructor.

The reference curve is created from the circle center, the radius, initial angular position theta0 and the angle span d_theta. elevation and superelevation polynomials will be used to feed RoadGeometry parent class.

Parameters
 center Center of the reference arc. radius Radius of the reference arc (must be positive). theta0 Angle of the start point of the reference arc with respect to center (0 == parallel to x-axis). d_theta Central angle of the arc, i.e., angular displacement from start to end. d_theta > 0 is counter-clockwise. elevation CubicPolynomial object that represents the elevation polynomial. See RoadCurve class constructor for more details. superelevation CubicPolynomial object that represents the superelevation polynomial. See RoadCurve class constructor for more details.
Exceptions
 std::runtime_error When radius is not positive.
overridedefault

## Member Function Documentation

 double heading_dot_of_p ( double p ) const
inlineoverridevirtual

Computes the first derivative heading of the reference curve.

Parameters
 p The reference curve parameter.
Returns
The derivative of the heading with respect to p, i.e., d_heading/dp evaluated at p.

Here is the call graph for this function:

Here is the caller graph for this function:

 double heading_of_p ( double p ) const
inlineoverridevirtual

Computes the heading of the reference curve.

Parameters
 p The reference curve parameter.
Returns
The heading of the curve at p, i.e., the angle of the tangent vector (with respect to x-axis) in the increasing-p direction.

Here is the call graph for this function:

Here is the caller graph for this function:

 bool IsValid ( const api::RBounds & lateral_bounds, const api::HBounds & height_bounds ) const
overridevirtual

Evaluates extrema in superelevation polynomial to verify that for the given lateral_bounds the surface do not fold over itself.

Parameters
 lateral_bounds An api::RBounds object that represents the lateral bounds of the surface mapping. height_bounds An api::HBounds object that represents the elevation bounds of the surface mapping.
Returns
True.

Here is the call graph for this function:

Here is the caller graph for this function:

delete
delete
 double p_scale ( ) const
inlineoverridevirtual

Computes the path length integral of the reference curve for the interval [0;1] of p.

Returns
The path length integral of the reference curve.

Here is the call graph for this function:

Here is the caller graph for this function:

 Vector3< double > ToCurveFrame ( const Vector3< double > & geo_coordinate, const api::RBounds & lateral_bounds, const api::HBounds & height_bounds ) const
overridevirtual

Converts a geo_coordinate in the world frame to the composed curve frame, i.e., the superposition of the reference curve, elevation and superelevation polynomials.

The resulting coordinates are saturated to lateral_bounds and height_bounds in the lateral and vertical directions over the composed curve trajectory. The path length coordinate is saturated in the interval [0; trajectory_length()].

Parameters
 geo_coordinate A 3D vector in the world frame to be converted to the composed curve frame. lateral_bounds An api::RBounds object that represents the lateral bounds of the surface mapping. height_bounds An api::HBounds object that represents the elevation bounds of the surface mapping.
Returns
A 3D vector that represents the coordinates with respect to the composed curve. The first dimension represents the path length coordinate, the second dimension is the lateral deviation from the composed curve and the third one is the vertical deviation from the composed curve too. The frame where this vector is defined is the same as api::LanePosition.

Here is the call graph for this function:

Here is the caller graph for this function:

 Vector2 xy_dot_of_p ( double p ) const
inlineoverridevirtual

Computes the first derivative of the reference curve.

Parameters
 p The reference curve parameter.
Returns
The derivative of the curve with respect to p, at p, i.e., F'(p0) = (dx/dp, dy/dp) at p0.

Here is the call graph for this function:

Here is the caller graph for this function:

 Vector2 xy_of_p ( double p ) const
inlineoverridevirtual

Computes the reference curve.

Parameters
 p The reference curve parameter.
Returns
The reference curve itself, F(p).

Here is the call graph for this function:

Here is the caller graph for this function:

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