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_start_planner_module/README.md
+40-40
Original file line number
Diff line number
Diff line change
@@ -83,7 +83,7 @@ The `StartPlannerModule` is designed to initiate its execution based on specific
83
83
84
84
2.**Vehicle far from start position**: If the vehicle is far from the start position, the module will not execute. This prevents redundant planning when the vehicle is already in position.
85
85
86
-
3.**Vehicle reached Goal**: The module will not start if the vehicle has already reached its goal position, avoiding unnecessary execution when the destination is attained.
86
+
3.**Vehicle reached goal**: The module will not start if the vehicle has already reached its goal position, avoiding unnecessary execution when the destination is attained.
87
87
88
88
4.**Vehicle in motion**: If the vehicle is still moving, the module will defer starting. This ensures that planning occurs from a stable, stationary state for safety.
89
89
@@ -138,32 +138,6 @@ The approach to collision safety is divided into two main components: generating
138
138
139
139
-**Static obstacle clearance from the path**: This involves verifying that a sufficient margin around static obstacles is maintained. The process includes creating a vehicle-sized footprint from the current position to the pull-out endpoint, which can be adjusted via parameters. The distance to static obstacle polygons is then calculated. If this distance is below a specified threshold, the path is deemed unsafe. Threshold levels (e.g., [2.0, 1.0, 0.5, 0.1]) can be configured, and the system searches for paths that meet the highest possible threshold based on a set search priority explained in following section, ensuring the selection of the safe path based on the policy. If no path meets the minimum threshold, it's determined that no safe path is available.
140
140
141
-
```plantuml
142
-
@startuml
143
-
start
144
-
:Generate start pose candidates;
145
-
:Path generation\nbased on start pose and planner type;
-**Clearance from stationary objects**: Maintaining an adequate distance from stationary objects positioned in front of and behind the vehicle is imperative for safety. Despite the path and stationary objects having a confirmed margin, the path is deemed unsafe if the distance from the shift start position to a front stationary object falls below `collision_check_margin_from_front_object` meters, or if the distance to a rear stationary object is shorter than `back_objects_collision_check_margin` meters.
168
142
169
143
- Why is a margin from the front object necessary?
@@ -172,11 +146,42 @@ stop
172
146
- Why is a margin from the rear object necessary?
173
147
For objects ahead, another behavior module can intervene, allowing the path to overwrite itself through an avoidance plan, even if the clearance from the path to a static obstacle is minimal, thus maintaining a safe distance from static obstacles. However, for objects behind the vehicle, it is impossible for other behavior modules other than the start_planner to alter the path to secure a margin, potentially leading to a deadlock by an action module like "obstacle_stop_cruise" and subsequent immobilization. Therefore, a margin is set for stationary objects at the rear.
174
148
149
+
Here's the expression of the steps start pose searching steps, considering the threshold levels are set at [2.0, 1.0, 0.5, 0.1 meters] as example. The process is as follows:
150
+
151
+
1.**Generating start pose candidates**
152
+
153
+
- Set the current position of the vehicle as the base point.
154
+
- Determine the area of consideration behind the vehicle up to the `max_back_distance`.
155
+
- Generate candidate points for the start pose in the backward direction at intervals defined by `backward_search_resolution`.
156
+
- Include the current position as one of the start pose candidates.
157
+
158
+
2.**Starting search at maximum margin**
159
+
160
+
- Begin the search with the largest threshold (e.g., 2.0 meters).
161
+
- Evaluate each start pose candidate to see if it maintains a margin of more than 2.0 meters.
162
+
- Simultaneously, verify that the path generated from that start pose meets other necessary criteria (e.g., path deviation check).
163
+
164
+
3.**Repeating search according to threshold levels**
165
+
166
+
- If no start pose meeting the conditions is found, lower the threshold to the next level (e.g., 1.0 meter) and repeat the search.
167
+
168
+
4.**Continuing the search**
169
+
170
+
- Continue the search until a start pose that meets the conditions is found, or the threshold level reaches the minimum value (e.g., 0.1 meter).
171
+
- The aim of this process is to find a start pose that not only secures as large a margin as possible but also satisfies the conditions required for the route.
172
+
173
+
5.**Generating a stop path**
174
+
- If no start pose satisfies the conditions at any threshold level, generate a stop path to ensure safety.
-**Applying RSS in Dynamic Collision Detection**: Collision detection is based on the RSS (Responsibility-Sensitive Safety) model to evaluate if a safe distance is maintained. See [safety check feature explanation](../behavior_path_planner_common/docs/behavior_path_planner_safety_check.md)
178
183
179
-
-**Collision check performed range**: Safety checks for collisions with dynamic objects are conducted within the defined boundaries between the start and end points of each maneuver, ensuring there is no overlap with the road lane's centerline. This is to avoid hindering the progress of following vehicles. The scope of safety checks varies depending on the type of path generated and will be elaborated upon for each specific maneuver pattern.
184
+
-**Collision check performed range**: Safety checks for collisions with dynamic objects are conducted within the defined boundaries between the start and end points of each maneuver, ensuring there is no overlap with the road lane's centerline. This is to avoid hindering the progress of following vehicles.
180
185
181
186
-**Collision response policy**: Should a collision with dynamic objects be detected along the generated path, departure is not permitted if detection occurs before movement. If the vehicle has already commenced movement, an attempt to stop will be made, provided it's feasible within the braking constraints and without crossing the travel lane's centerline.
182
187
@@ -186,7 +191,7 @@ start
186
191
:Path Generation;
187
192
188
193
if (Collision with dynamic objects detected?) then (yes)
189
-
if (Before movement?) then (yes)
194
+
if (Before departure?) then (yes)
190
195
:Departure not permitted;
191
196
else (no)
192
197
if (Can stop within constraints \n && \n no crossing centerline?) then (yes)
@@ -212,26 +217,21 @@ Give an example of safety verification range for shift pull out. The safety chec
212
217
213
218
**As a note, no safety check is performed during backward movements. Safety verification commences at the point where the backward motion ceases.**
214
219
215
-
## Manual and auto mode behaviors
220
+
## RTC interface
216
221
217
-
The system operates distinctly under manual and automatic modes, especially concerning the initiation of movement and interaction with dynamic obstacles. Below are the specific behaviors for each mode:
222
+
The system operates distinctly under manual and auto mode, especially concerning the before the departure and interaction with dynamic obstacles. Below are the specific behaviors for each mode:
218
223
219
-
### Manual mode
224
+
### When approval is required?
220
225
221
226
#### Forward driving
222
227
223
228
-**Start approval required**: Even if a route is generated, approval is required to initiate movement. If a dynamic object poses a risk, such as an approaching vehicle from behind, candidate routes may be displayed, but approval is not granted.
224
229
225
-
### Inclusion of backward route
226
-
227
-
-**Multiple Approvals Required**: When the planned route includes a backward segment, multiple approvals are needed before starting the reverse and again before restarting forward movement. Before initiating forward movement, the system conducts safety checks against dynamic obstacles. If a risk is detected, approval for movement cannot be granted.
228
-
229
-
### Automatic Mode
230
+
#### Backward driving + forward driving
230
231
231
-
-**Fully automated movement**: The vehicle starts and operates automatically without the need for manual approvals at each step.
232
-
-**Dynamic Obstacle Consideration**: Similar to manual mode, if a dynamic obstacle is deemed hazardous, the system will prevent the vehicle from initiating movement at points where manual mode would require approval.
232
+
-**Multiple approvals required**: When the planned route includes a backward driving, multiple approvals are needed before starting the reverse and again before restarting forward movement. Before initiating forward movement, the system conducts safety checks against dynamic obstacles. If a detection is detected, approval for departure is necessary.
233
233
234
-
This differentiation ensures that the vehicle operates safely by requiring human intervention in manual mode at critical junctures and incorporating automatic safety checks in both modes to prevent unsafe operations in the presence of dynamic obstacles.
234
+
This differentiation ensures that the vehicle operates safely by requiring human intervention in manual mode(`enable_rtc` is true) at critical junctures and incorporating automatic safety checks in both modes to prevent unsafe operations in the presence of dynamic obstacles.
0 commit comments