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#
- Receive the required lateral offset input.
- 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. - 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:
- BEFORE_SHIFT: Preparing for shift.
- SHIFTING: Currently in the process of shifting.
- AFTER_SHIFT: Shift completed.
Flowchart#
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 |