delphyne
RailFollower< T > Class Template Referencefinal

Detailed Description

template<typename T>
class delphyne::RailFollower< T >

RailFollower models an entity that follows a maliput::api::Lane as if it were on rails and neglecting all physics.

Parameters:

Continuous State:

Abstract state:

Input Port Accessors:

Output Port Accessors:

Template Parameters
Tmust support certain arithmetic operations; for details, see delphyne::Symbolic.

Instantiated templates for the following ScalarTypes are provided:

  • double

#include <src/systems/rail_follower.h>

Inheritance diagram for RailFollower< T >:
[legend]

Public Member Functions

 RailFollower (const LaneDirection &initial_lane_direction)
 The constructor. More...
 
 RailFollower (const LaneDirection &initial_lane_direction, const RailFollowerState< T > &initial_context_state, const RailFollowerParams< T > &initial_context_parameters)
 Constructor that initialises all variables in the system that will be placed on the context. More...
 
RailFollowerParams< T > & get_mutable_parameters (drake::systems::Context< T > *context) const
 Returns a mutable reference to the parameters in the given context. More...
 
const drake::systems::InputPort< T > & command_input () const
 Getter methods for input and output ports. More...
 
const drake::systems::OutputPort< T > & state_output () const
 
const drake::systems::OutputPort< T > & simple_car_state_output () const
 
const drake::systems::OutputPort< T > & lane_state_output () const
 
const drake::systems::OutputPort< T > & pose_output () const
 
const drake::systems::OutputPort< T > & velocity_output () const
 

Static Public Attributes

static constexpr double kLaneEndEpsilon {1e-12}
 Defines a distance that is "close enough" to the end of a lane for the modelled entity to transition to an ongoing branch. More...
 
static constexpr double kTimeEpsilon {1e-12}
 Defines a time interval that is used to ensure a desired update time is always greater than (i.e., after) the current time. More...
 

Constructor & Destructor Documentation

◆ RailFollower() [1/2]

RailFollower ( const LaneDirection initial_lane_direction)
explicit

The constructor.

Parameters
initial_lane_directionThe initial lane and direction of travel.

◆ RailFollower() [2/2]

RailFollower ( const LaneDirection initial_lane_direction,
const RailFollowerState< T > &  initial_context_state,
const RailFollowerParams< T > &  initial_context_parameters 
)

Constructor that initialises all variables in the system that will be placed on the context.

This includes the continuous state, parameters and non-continuous state variables.

Parameters
[in]initial_lane_directionThe initial lane and direction of travel.
[in]initial_context_stateThe continuous state variables
[in]initial_context_parametersThe parameters

Member Function Documentation

◆ command_input()

const drake::systems::InputPort< T > & command_input

Getter methods for input and output ports.

◆ get_mutable_parameters()

RailFollowerParams< T > & get_mutable_parameters ( drake::systems::Context< T > *  context) const

Returns a mutable reference to the parameters in the given context.

◆ lane_state_output()

const drake::systems::OutputPort< T > & lane_state_output

◆ pose_output()

const drake::systems::OutputPort< T > & pose_output

◆ simple_car_state_output()

const drake::systems::OutputPort< T > & simple_car_state_output

◆ state_output()

const drake::systems::OutputPort< T > & state_output

◆ velocity_output()

const drake::systems::OutputPort< T > & velocity_output

Member Data Documentation

◆ kLaneEndEpsilon

constexpr double kLaneEndEpsilon {1e-12}
staticconstexpr

Defines a distance that is "close enough" to the end of a lane for the modelled entity to transition to an ongoing branch.

The primary constraint on the selection of this variable is the application's degree of sensitivity to position state discontinuity when the modelled entity "jumps" from its current lane to a lane in an ongoing branch. A smaller value results in a smaller spatial discontinuity. If this value is zero, the spatial discontinuity will be zero. However, it will trigger the use of kTimeEpsilon, which results in a temporal discontinuity.

◆ kTimeEpsilon

constexpr double kTimeEpsilon {1e-12}
staticconstexpr

Defines a time interval that is used to ensure a desired update time is always greater than (i.e., after) the current time.

Despite the spatial window provided by kLaneEndEpsilon, it is still possible for the vehicle to end up precisely at the end of its current lane (e.g., it could be initialized in this state). In this scenario, the next update time will be equal to the current time. The integrator, however, requires that the next update time be strictly after the current time, which is when this constant is used. The primary constraint on the selection of this constant is the application's sensitivity to the modelled entity being "late" in its transition to an ongoing branch once it is at the end of its current lane. The smaller this value, the less "late" the transition will occur. This value cannot be zero since that will violate the integrator's need for the next update time to be strictly after the current time.


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