Skip to content

Latest commit

 

History

History
118 lines (78 loc) · 4.29 KB

File metadata and controls

118 lines (78 loc) · 4.29 KB

Control

Overview

Control stack generates control signals to drive a vehicle following trajectories considering vehicle dynamics. This layer ensures that the vehicle follows the trajectory planned by planning. The output of Control stack includes velocity, acceleration, and steering.

Role

There are two main roles of Control Stack:

  • Generation of control command for following target trajectory
  • Post-processing of vehicle control command

Use Case

Control stack supports the following use cases.

  1. Driving without excessive speed
  2. Driving at slope
  3. Smooth stop by normal obstacles / Sudden stop by obstacle's running-out
  4. Forward/Reverse parking

Requirement

To achieve the above use case, Control stack requires the following conditions.

  • The input trajectory includes speed limit at each point (Use case 1).
  • The input pose includes gradient information (=vehicle orientation) (Use case 2).
  • The output vehicle command includes acceleration but also velocity (Use case 2, 3).
  • The output vehicle command includes the command to shift drive/reverse gear(Use case 4.).

Input

The input to Control stack:

Input Topic (Data Type) Explanation
Trajectory /planning/scenario_planning/trajectory
(autoware_planning_msgs::Trajectory)
Target trajectory to follow
Pose /tf
(tf2_msgs::TFMessage)
Current pose of the vehicle
Twist /vehicle/status/twist
(geometry_msgs::TwistStamped)
Current twist of the vehicle
Steer /vehicle/status/steering
(autoware_vehicle_msgs::Steering)
Current steer of the vehicle
Engage Command /autoware/engage
(std_msgs::Bool)
Whether to send commands to the vehicle
Remote Command - Control command from remote

As the above requirements, the data type of target trajectory, autoware_planning_msgs::Trajectory, includes the speed at each point.

Output

The table below summarizes the output from Control stack:

Output Topic(Data Type) Explanation
Vehicle Command /control/vehicle_cmd
(autoware_vehicle_msgs/VehicleCommand)
Table Below

The main outputs included in Vehicle Command are as follows.

Output Data Type
Velocity std_msgs/Float64
Acceleration std_msgs/Float64
Steering angle std_msgs/Float64
Steering angle velocity std_msgs/Float64
Gear shifting command std_msgs/Int32
Emergency command std_msgs/Int32

As above requirements, the control stack outputs gear shifting command and acceleration command as Vehicle command

Design

ControlOverview

Trajectory follower

Role

Generate control command for following given trajectory smoothly.

Input

  • Target trajectory
    • Target trajectory includes target position, target twist, target acceleration
  • Current pose
  • Current velocity
  • Current steering

Output

  • Steering angle command
  • Steering angular velocity command
  • Velocity command
  • Acceleration command

Vehicle command gate

Role

Systematic post-processing of vehicle control command, independent of trajectory following process

  • Reshape the vehicle control command
  • Select the command values (Trajectory follow command, Remote manual command)
  • Observe the maximum speed limit, maximum lateral/longitudinal jerk
  • Stop urgently when an emergency command is received

Input

  • Control commands from Trajectory Follower module
  • Remote Control commands
  • Engage Commands

Output

  • Control signal for vehicles

References

TBU