Class VehicleTraits

Nested Relationships

Nested Types

Class Documentation

class VehicleTraits

Public Types

enum class Steering : uint16_t

Values:

enumerator Differential

The vehicle uses differential steering, making it impossible to move laterally.

enumerator Holonomic

The vehicle can move holonomically, so it has no limitations about how it steers.

Public Functions

VehicleTraits(Limits linear, Limits angular, Profile profile, Differential steering = Differential())

Constructor.

Limits &linear()
const Limits &linear() const
Limits &rotational()
const Limits &rotational() const
Profile &profile()
const Profile &profile() const
Steering get_steering() const
Differential &set_differential(Differential parameters = Differential())
Differential *get_differential()
const Differential *get_differential() const
Holonomic &set_holonomic(Holonomic parameters)
Holonomic *get_holonomic()
const Holonomic *get_holonomic() const
bool valid() const

Returns true if the values of the traits are valid. For example, this means that all velocity and acceleration values are greater than zero.

class Differential

Public Functions

Differential(Eigen::Vector2d forward = Eigen::Vector2d::UnitX(), bool reversible = true)
Differential &set_forward(Eigen::Vector2d forward)
const Eigen::Vector2d &get_forward() const
Differential &set_reversible(bool reversible)
bool is_reversible() const
bool valid() const

Returns true if the length of the forward vector is not too close to zero. If it is too close to zero, then the direction of the forward vector cannot be reliably interpreted. Ideally the forward vector should have unit length.

class Holonomic

Public Functions

Holonomic()
class Limits

Public Functions

Limits(double velocity = 0.0, double acceleration = 0.0)
Limits &set_nominal_velocity(double nom_vel)
double get_nominal_velocity() const
Limits &set_nominal_acceleration(double nom_accel)
double get_nominal_acceleration() const
bool valid() const

Returns true if the values of these limits are valid, i.e. greater than zero.