Drake

RoadCurve specification for a reference curve that describes a piece of an arc. More...
#include <drake/automotive/maliput/multilane/arc_road_curve.h>
Public Member Functions  
ArcRoadCurve (const Vector2< double > ¢er, double radius, double theta0, double d_theta, const CubicPolynomial &elevation, const CubicPolynomial &superelevation, double linear_tolerance, double scale_length, ComputationPolicy computation_policy)  
Constructor. More...  
~ArcRoadCurve () override=default  
Vector2< double >  xy_of_p (double p) const override 
Computes the reference curve. More...  
Vector2< double >  xy_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< double >  ToCurveFrame (const Vector3< double > &geo_coordinate, double r_min, double r_max, 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 (double r_min, double r_max, const api::HBounds &height_bounds) const override 
Checks that there are no selfintersections (singularities) in the volume created by applying the constant r_min , r_max and height_bounds to the RoadCurve. More...  
Does not allow copy, move, or assignment  
ArcRoadCurve (const ArcRoadCurve &)=delete  
ArcRoadCurve &  operator= (const ArcRoadCurve &)=delete 
ArcRoadCurve (ArcRoadCurve &&)=delete  
ArcRoadCurve &  operator= (ArcRoadCurve &&)=delete 
Public Member Functions inherited from RoadCurve  
virtual  ~RoadCurve ()=default 
const CubicPolynomial &  elevation () const 
const CubicPolynomial &  superelevation () const 
const double &  linear_tolerance () const 
const double &  scale_length () const 
const ComputationPolicy &  computation_policy () const 
double  CalcPFromS (double s, double r) const 
Computes the parametric position p along the reference curve corresponding to longitudinal position (in pathlength) s along a parallel curve laterally offset by r from the reference curve. More...  
double  CalcSFromP (double p, double r) const 
Computes the path length integral in the interval of the parameter [0; p] and along a parallel curve laterally offset by r the planar reference curve. More...  
Vector3< double >  W_of_prh (double p, double r, double h) const 
Returns W, the world function evaluated at p , r , h . More...  
Vector3< double >  W_prime_of_prh (double p, double r, double h, const Rot3 &Rabg, double g_prime) const 
Returns W' = ∂W/∂p, the partial differential of W with respect to p, evaluated at p , r , h . More...  
Rot3  Rabg_of_p (double p) const 
Returns the rotation R_αβγ, evaluated at p along the reference curve. More...  
Rot3  Orientation (double p, double r, double h) const 
Returns the rotation R_αβγ, evaluated at p , r and h . More...  
Vector3< double >  s_hat_of_prh (double p, double r, double h, const Rot3 &Rabg, double g_prime) const 
Returns the saxis unitvector, expressed in the world frame, of the (s,r,h) Lane frame (with respect to the world frame). More...  
Vector3< double >  r_hat_of_Rabg (const Rot3 &Rabg) const 
Returns the raxis unitvector, expressed in the world frame, of the (s,r,h) Lane frame (with respect to the world frame). More...  
double  CalcGPrimeAsUsedForCalcSFromP (double p) const 
Computes the most appropriate value for the elevation derivative g' at p , that accounts for the limitations of the arc length parameterization being used. More...  
RoadCurve (const RoadCurve &)=delete  
RoadCurve &  operator= (const RoadCurve &)=delete 
RoadCurve (RoadCurve &&)=delete  
RoadCurve &  operator= (RoadCurve &&)=delete 
Additional Inherited Members  
Protected Member Functions inherited from RoadCurve  
RoadCurve (double linear_tolerance, double scale_length, const CubicPolynomial &elevation, const CubicPolynomial &superelevation, ComputationPolicy computation_policy)  
Constructs a road curve given elevation and superelevation curves. More...  
RoadCurve specification for a reference curve that describes a piece of an arc.

delete 

delete 

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.
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 xaxis). 
d_theta  Central angle of the arc, i.e., angular displacement from start to end. d_theta > 0 is counterclockwise. 
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. 
linear_tolerance  The linear tolerance, in meters, for all computations. See RoadCurve class constructor for more details. 
scale_length  The minimum spatial period of variation in the curve, in meters. See RoadCurve class constructor for more details. 
computation_policy  Policy to guide all computations. If geared towards speed, computations will make use of analytical expressions even if not actually correct for the curve as specified. 
std::runtime_error  if radius is not a positive number. 
std::runtime_error  if linear_tolerance is not a positive number. 
std::runtime_error  if scale_length is not a positive number. 

overridedefault 
Computes the first derivative heading of the reference curve.
p  The reference curve parameter. 
p
. Implements RoadCurve.
Computes the heading of the reference curve.
p  The reference curve parameter. 
p
, i.e., the angle of the tangent vector (with respect to xaxis) in the increasingp direction. Implements RoadCurve.

overridevirtual 
Checks that there are no selfintersections (singularities) in the volume created by applying the constant r_min
, r_max
and height_bounds
to the RoadCurve.
r_min  Minimum lateral distance from the composed curve to evaluate the validity of the geometry. 
r_max  Maximum lateral distance from the composed curve to evaluate the validity of the geometry. 
height_bounds  An api::HBounds object that represents the elevation bounds of the surface mapping. 
Implements RoadCurve.

delete 

delete 

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

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 [p, r, h] are saturated in the following domain ranges.
r_min
, r_max
]height_bounds
] geo_coordinate  A 3D vector in the world frame to be converted to the composed curve frame. 
r_min  Minimum lateral distance from the composed curve to saturate, if it is necessary, the result in the given direction. 
r_max  Maximum lateral distance from the composed curve to evaluate, if it is necessary, the result in the given direction 
height_bounds  An api::HBounds object that represents the elevation bounds of the surface mapping. 
geo_cooridnate
. Implements RoadCurve.
Computes the first derivative of the reference curve.
p  The reference curve parameter. 
p
, i.e., F'(p0) = (dx/dp, dy/dp) at p0. Implements RoadCurve.
Computes the reference curve.
p  The reference curve parameter. 
Implements RoadCurve.