You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/README.md
+58
Original file line number
Diff line number
Diff line change
@@ -787,6 +787,51 @@ Depending on the space configuration around the Ego vehicle, it is possible that
787
787
788
788
Additionally if terminal path feature is enabled and path is computed, stop point placement can be configured to be at the edge of the current lane instead of at the `terminal_start` position, as indicated by the dashed red line in the image above.
789
789
790
+
## Generating Path Using Frenet Planner
791
+
792
+
!!! warning
793
+
794
+
Generating path using Frenet planner applies only when ego is near terminal start
795
+
796
+
If the ego vehicle is far from the terminal, the lane change module defaults to using the [path shifter](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_planner_common/docs/behavior_path_planner_path_generation_design/). This ensures that the lane change is completed while the target lane remains a neighbor of the current lane. However, this approach may result in high curvature paths near the terminal, potentially causing long vehicles to deviate from the lane.
797
+
798
+
To address this, the lane change module provides an option to choose between the path shifter and the [Frenet planner](https://autowarefoundation.github.io/autoware.universe/main/planning/sampling_based_planner/autoware_frenet_planner/). The Frenet planner allows for some flexibility in the lane change endpoint, extending the lane changing end point slightly beyond the current lane's neighbors.
799
+
800
+
The following table provides comparisons between the planners
801
+
802
+
<divalign="center">
803
+
<table>
804
+
<tr>
805
+
<td align="center">With Path Shifter</td>
806
+
<td align="center">With Frenet Planner</td>
807
+
</tr>
808
+
<tr>
809
+
<td><img src="./images/terminal_straight_path_shifter.png" alt="Path shifter result at straight lanelets" width="450"></a></td>
810
+
<td><img src="./images/terminal_straight_frenet.png" alt="Frenet planner result at straight lanelets" width="450"></a></td>
811
+
</tr>
812
+
<tr>
813
+
<td><img src="./images/terminal_branched_path_shifter.png" alt="Path shifter result at branching lanelets" width="450"></a></td>
814
+
<td><img src="./images/terminal_branched_frenet.png" alt="Frenet planner result at branching lanelets" width="450"></a></td>
815
+
</tr>
816
+
<tr>
817
+
<td><img src="./images/terminal_curved_path_shifter.png" alt="Path shifter result at curved lanelets" width="450"></a></td>
818
+
<td><img src="./images/terminal_curved_frenet.png" alt="Frenet planner result at curved lanelets" width="450"></a></td>
819
+
</tr>
820
+
</table>
821
+
</div>
822
+
823
+
!!! note
824
+
825
+
The planner can be enabled or disabled using the `frenet.enable` flag.
826
+
827
+
!!! note
828
+
829
+
Since only a segment of the target lane is used as input to generate the lane change path, the end pose of the lane change segment may not smoothly connect to the target lane centerline. To address this, increase the value of `frenet.th_curvature_smoothing` to improve the smoothness.
830
+
831
+
!!! note
832
+
833
+
The yaw difference threshold (`frenet.th_yaw_diff`) limits the maximum curvature difference between the end of the prepare segment and the lane change segment. This threshold might prevent the generation of a lane change path when the lane curvature is high. In such cases, you can increase the frenet.th_yaw_diff value. However, note that if the prepare path was initially shifted by other modules, the resultant steering may not be continuous.
834
+
790
835
## Aborting a Previously Approved Lane Change
791
836
792
837
Once the lane change path is approved, there are several situations where we may need to abort the maneuver. The abort process is triggered when any of the following conditions is met
@@ -1008,6 +1053,7 @@ The following parameters are configurable in [lane_change.param.yaml](https://gi
1008
1053
|`trajectory.max_longitudinal_acc`|[m/s2]| double | maximum longitudinal acceleration for lane change | 1.0 |
1009
1054
|`trajectory.min_longitudinal_acc`|[m/s2]| double | maximum longitudinal deceleration for lane change | -1.0 |
1010
1055
|`trajectory.lane_changing_decel_factor`|[-]| double | longitudinal deceleration factor during lane changing phase | 0.5 |
1056
+
|`trajectory.th_prepare_curvature`|[-]| double | If the maximum curvature of the prepare segment exceeds the threshold, the prepare segment is invalid. | 0.03 |
1011
1057
|`min_length_for_turn_signal_activation`|[m]| double | Turn signal will be activated if the ego vehicle approaches to this length from minimum lane change length | 10.0 |
1012
1058
|`lateral_acceleration.velocity`|[m/s]| double | Reference velocity for lateral acceleration calculation (look up table) |[0.0, 4.0, 10.0]|
1013
1059
|`lateral_acceleration.min_values`|[m/s2]| double | Min lateral acceleration values corresponding to velocity (look up table) |[0.4, 0.4, 0.4]|
@@ -1057,6 +1103,18 @@ The following parameters are used to configure terminal lane change path feature
1057
1103
|`terminal_path.disable_near_goal`|[-]| bool | Flag to disable terminal path feature if ego is near goal | true |
1058
1104
|`terminal_path.stop_at_boundary`|[-]| bool | If true, ego will stop at current lane boundary instead of middle of lane | false |
1059
1105
1106
+
### Generating Lane Changing Path using Frenet Planner
1107
+
1108
+
!!! warning
1109
+
1110
+
Only applicable when ego is near terminal start
1111
+
1112
+
| Name | Unit | Type | Description | Default value |
|`frenet.enable`|[-]| bool | Flag to enable/disable frenet planner when ego is near terminal start. | true |
1115
+
|`frenet.th_yaw_diff`|[deg]| double | If the yaw diff between of the prepare segment's end and lane changing segment's start exceed the threshold , the lane changing segment is invalid. | 10.0 |
1116
+
|`frenet.th_curvature_smoothing`|[-]| double | Filters and appends target path points with curvature below the threshold to candidate path. | 0.1 |
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/scene.hpp
+12
Original file line number
Diff line number
Diff line change
@@ -140,6 +140,18 @@ class NormalLaneChange : public LaneChangeBase
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/structs/data.hpp
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/structs/debug.hpp
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/structs/parameters.hpp
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/structs/path.hpp
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/utils/path.hpp
+61-1
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,6 @@
11
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
// See the License for the specific language governing permissions and
0 commit comments