Drake
SimpleCarParams< T > Class Template Reference

Specializes BasicVector with specific getters and setters. More...

#include <drake/automotive/gen/simple_car_params.h>

Inheritance diagram for SimpleCarParams< T >:
[legend]
Collaboration diagram for SimpleCarParams< T >:
[legend]

Public Types

typedef SimpleCarParamsIndices K
 An abbreviation for our row index constants. More...
 

Public Member Functions

 SimpleCarParams ()
 Default constructor. More...
 
SimpleCarParams< T > * DoClone () const override
 Returns a new BasicVector containing a copy of the entire vector. More...
 
decltype(T()< T()) IsValid () const
 Returns whether the current values of this vector are well-formed. More...
 
void CalcInequalityConstraint (VectorX< T > *value) const override
 Populates a vector value suitable for a SystemConstraint inequality constraint. More...
 
Getters and Setters
const T & wheelbase () const
 The distance between the front and rear axles of the vehicle. More...
 
void set_wheelbase (const T &wheelbase)
 
const T & track () const
 The distance between the center of two wheels on the same axle. More...
 
void set_track (const T &track)
 
const T & max_abs_steering_angle () const
 The limit on the driving_command.steering angle input (the desired steering angle of a virtual center wheel); this element is applied symmetrically to both left- and right-turn limits. More...
 
void set_max_abs_steering_angle (const T &max_abs_steering_angle)
 
const T & max_velocity () const
 The limit on the car's forward speed. More...
 
void set_max_velocity (const T &max_velocity)
 
const T & max_acceleration () const
 The limit on the car's acceleration and deceleration. More...
 
void set_max_acceleration (const T &max_acceleration)
 
const T & velocity_limit_kp () const
 The smoothing constant for min/max velocity limits. More...
 
void set_velocity_limit_kp (const T &velocity_limit_kp)
 
- Public Member Functions inherited from BasicVector< T >
 BasicVector (int size)
 Initializes with the given size using the drake::dummy_value<T>, which is NaN when T = double. More...
 
 BasicVector (const VectorX< T > &data)
 Constructs a BasicVector with the specified data. More...
 
int size () const override
 Returns the number of elements in the vector. More...
 
void set_value (const Eigen::Ref< const VectorX< T >> &value)
 Sets the vector to the given value. More...
 
Eigen::VectorBlock< const VectorX< T > > get_value () const
 Returns the entire vector as a const Eigen::VectorBlock. More...
 
Eigen::VectorBlock< VectorX< T > > get_mutable_value ()
 Returns the entire vector as a mutable Eigen::VectorBlock, which allows mutation of the values, but does not allow resizing the vector itself. More...
 
const T & GetAtIndex (int index) const override
 Returns the element at the given index in the vector. More...
 
T & GetAtIndex (int index) override
 Returns the element at the given index in the vector. More...
 
void SetFromVector (const Eigen::Ref< const VectorX< T >> &value) override
 Replaces the entire vector with the contents of value. More...
 
VectorX< T > CopyToVector () const override
 Copies the entire state to a vector with no semantics. More...
 
void ScaleAndAddToVector (const T &scale, Eigen::Ref< VectorX< T >> vec) const override
 Adds a scaled version of this vector to Eigen vector vec, which must be the same size. More...
 
void SetZero () override
 
NormInf () const override
 Computes the infinity norm for this vector. More...
 
std::unique_ptr< BasicVector< T > > Clone () const
 Copies the entire vector to a new BasicVector, with the same concrete implementation type. More...
 
 BasicVector (const BasicVector &)=delete
 
BasicVectoroperator= (const BasicVector &)=delete
 
 BasicVector (BasicVector &&)=delete
 
BasicVectoroperator= (BasicVector &&)=delete
 
- Public Member Functions inherited from VectorBase< T >
virtual ~VectorBase ()
 
T & operator[] (std::size_t idx)
 
const T & operator[] (std::size_t idx) const
 
void SetAtIndex (int index, const T &value)
 Replaces the state at the given index with the value. More...
 
virtual void SetFrom (const VectorBase< T > &value)
 Replaces the entire vector with the contents of value. More...
 
VectorBasePlusEqScaled (const T &scale, const VectorBase< T > &rhs)
 Add in scaled vector rhs to this vector. More...
 
VectorBasePlusEqScaled (const std::initializer_list< std::pair< T, const VectorBase< T > & >> &rhs_scale)
 Add in multiple scaled vectors to this vector. More...
 
VectorBaseoperator+= (const VectorBase< T > &rhs)
 Add in vector rhs to this vector. More...
 
VectorBaseoperator-= (const VectorBase< T > &rhs)
 Subtract in vector rhs to this vector. More...
 
 VectorBase (const VectorBase &)=delete
 
VectorBaseoperator= (const VectorBase &)=delete
 
 VectorBase (VectorBase &&)=delete
 
VectorBaseoperator= (VectorBase &&)=delete
 

Static Public Member Functions

static const std::vector< std::string > & GetCoordinateNames ()
 See SimpleCarParamsIndices::GetCoordinateNames(). More...
 
- Static Public Member Functions inherited from BasicVector< T >
static std::unique_ptr< BasicVector< T > > Make (const std::initializer_list< T > &data)
 Constructs a BasicVector whose elements are the elements of data. More...
 
template<typename... Fargs>
static std::unique_ptr< BasicVector< T > > Make (Fargs &&...args)
 Constructs a BasicVector where each element is constructed using the placewise-corresponding member of args as the sole constructor argument. More...
 

Additional Inherited Members

- Protected Member Functions inherited from VectorBase< T >
 VectorBase ()
 
- Static Protected Member Functions inherited from BasicVector< T >
template<typename F , typename... Fargs>
static void MakeRecursive (BasicVector< T > *data, int index, F constructor_arg, Fargs &&...recursive_args)
 Sets data at index to an object of type T, which must have a single-argument constructor invoked via constructor_arg, and then recursively invokes itself on the next index with recursive args. More...
 
template<typename F , typename... Fargs>
static void MakeRecursive (BasicVector< T > *data, int index, F constructor_arg)
 Base case for the MakeRecursive template recursion. More...
 

Detailed Description

template<typename T>
class drake::automotive::SimpleCarParams< T >

Specializes BasicVector with specific getters and setters.

Member Typedef Documentation

An abbreviation for our row index constants.

Constructor & Destructor Documentation

SimpleCarParams ( )
inline

Default constructor.

Sets all rows to their default value:

  • wheelbase defaults to 2.700 m.
  • track defaults to 1.521 m.
  • max_abs_steering_angle defaults to 0.471 rad.
  • max_velocity defaults to 45.0 m/s.
  • max_acceleration defaults to 4.0 m/s^2.
  • velocity_limit_kp defaults to 10.0 Hz.

Member Function Documentation

void CalcInequalityConstraint ( VectorX< T > *  value) const
inlineoverridevirtual

Populates a vector value suitable for a SystemConstraint inequality constraint.

For all indices i in the result vector, the validity constraint is result[i] >= 0. For a given subclass type, the size of the result must not vary over time. The VectorBase default implementation sets the value to be empty (no constraints).

Reimplemented from VectorBase< T >.

SimpleCarParams<T>* DoClone ( ) const
inlineoverridevirtual

Returns a new BasicVector containing a copy of the entire vector.

Caller must take ownership, and may rely on the NVI wrapper to initialize the clone elementwise.

Subclasses of BasicVector must override DoClone to return their covariant type.

Reimplemented from BasicVector< T >.

static const std::vector<std::string>& GetCoordinateNames ( )
inlinestatic

See SimpleCarParamsIndices::GetCoordinateNames().

Here is the call graph for this function:

decltype(T() < T()) IsValid ( ) const
inline

Returns whether the current values of this vector are well-formed.

Here is the call graph for this function:

Here is the caller graph for this function:

const T& max_abs_steering_angle ( ) const
inline

The limit on the driving_command.steering angle input (the desired steering angle of a virtual center wheel); this element is applied symmetrically to both left- and right-turn limits.

Note
max_abs_steering_angle is expressed in units of rad.
max_abs_steering_angle has a limited domain of [0.0, +Inf].

Here is the caller graph for this function:

const T& max_acceleration ( ) const
inline

The limit on the car's acceleration and deceleration.

Note
max_acceleration is expressed in units of m/s^2.
max_acceleration has a limited domain of [0.0, +Inf].

Here is the caller graph for this function:

const T& max_velocity ( ) const
inline

The limit on the car's forward speed.

Note
max_velocity is expressed in units of m/s.
max_velocity has a limited domain of [0.0, +Inf].

Here is the caller graph for this function:

void set_max_abs_steering_angle ( const T &  max_abs_steering_angle)
inline
void set_max_acceleration ( const T &  max_acceleration)
inline
void set_max_velocity ( const T &  max_velocity)
inline
void set_track ( const T &  track)
inline
void set_velocity_limit_kp ( const T &  velocity_limit_kp)
inline
void set_wheelbase ( const T &  wheelbase)
inline
const T& track ( ) const
inline

The distance between the center of two wheels on the same axle.

Note
track is expressed in units of m.
track has a limited domain of [0.0, +Inf].
const T& velocity_limit_kp ( ) const
inline

The smoothing constant for min/max velocity limits.

Note
velocity_limit_kp is expressed in units of Hz.
velocity_limit_kp has a limited domain of [0.0, +Inf].

Here is the caller graph for this function:

const T& wheelbase ( ) const
inline

The distance between the front and rear axles of the vehicle.

Note
wheelbase is expressed in units of m.
wheelbase has a limited domain of [0.0, +Inf].

Here is the caller graph for this function:


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