Skip to content

Side Shift design#

(For remote control) Shift the path to left or right according to an external instruction.

Overview of the Side Shift Module Process#

  1. Receive the required lateral offset input.
  2. Update the requested_lateral_offset_ under the following conditions: a. Verify if the last update time has elapsed. b. Ensure the required lateral offset value is different from the previous one.
  3. Insert the shift points into the path if the side shift module's status is not in the SHIFTING status.

Please be aware that requested_lateral_offset_ is continuously updated with the latest values and is not queued.

Statuses of the Side Shift#

The side shift has three distinct statuses. Note that during the SHIFTING status, the path cannot be updated:

  1. BEFORE_SHIFT: Preparing for shift.
  2. SHIFTING: Currently in the process of shifting.
  3. AFTER_SHIFT: Shift completed.

case1

side shift status

Flowchart#

uml diagram

uml diagram

uml diagram

Parameters#

Name Type Description Default Range
min_distance_to_start_shifting float Minimum distance to start shifting. 5 N/A
time_to_start_shifting float Time to start shifting. 1 N/A
shifting_lateral_jerk float Lateral jerk during shifting. 0.2 N/A
min_shifting_distance float Minimum shifting distance. 5 N/A
min_shifting_speed float Minimum speed to perform shifting. 5.56 N/A
shift_request_time_limit float Time limit for shift request. 1 N/A
publish_debug_marker boolean Flag to publish debug markers. 0 N/A