Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-04 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kyoichi Sugahara
- Tomoya Kimura
- Shumpei Wakabayashi
- Yukinari Hisaki
- Takumi Odashima
Authors
- Kyoichi Sugahara
Detection Area
Role
If pointcloud or predicted objects are detected in a detection area defined on a map, the stop planning will be executed at the predetermined point.
Activation Timing
This module is activated when there is a detection area on the target lane.
Module Parameters
| Parameter | Type | Description |
|---|---|---|
use_dead_line |
bool | [-] weather to use dead line or not |
state_clear_time |
double | [s] when the vehicle is stopping for certain time without incoming obstacle, move to STOPPED state |
stop_margin |
double | [m] a margin that the vehicle tries to stop before stop_line |
dead_line_margin |
double | [m] ignore threshold that vehicle behind is collide with ego vehicle or not |
unstoppable_policy |
string | [-] policy for handling unstoppable situations: “go” (pass through), “force_stop” (emergency stop), or “stop_after_stopline” (stop after the stop line) |
max_deceleration |
double | [m/s^2] maximum deceleration used to calculate required braking distance for unstoppable situation handling |
delay_response_time |
double | [s] delay response time used to calculate required braking distance for unstoppable situation handling |
hold_stop_margin_distance |
double | [m] parameter for restart prevention (See Algorithm section) |
distance_to_judge_over_stop_line |
double | [m] parameter for judging that the stop line has been crossed |
suppress_pass_judge_when_stopping |
bool | [m] parameter for suppressing pass judge when stopping |
enable_detected_obstacle_logging |
bool | [-] enable/disable logging of detected obstacle positions, time elapsed since last detection, and ego vehicle position when ego-vehicle is in STOP state |
target_filtering.pointcloud |
bool | [-] whether to stop for pointcloud detection |
target_filtering.unknown |
bool | [-] whether to stop for UNKNOWN objects area |
target_filtering.car |
bool | [-] whether to stop for CAR objects area |
target_filtering.truck |
bool | [-] whether to stop for TRUCK objects area |
target_filtering.bus |
bool | [-] whether to stop for BUS objects area |
target_filtering.trailer |
bool | [-] whether to stop for TRAILER objects area |
target_filtering.motorcycle |
bool | [-] whether to stop for MOTORCYCLE objects area |
target_filtering.bicycle |
bool | [-] whether to stop for BICYCLE objects area |
target_filtering.pedestrian |
bool | [-] whether to stop for PEDESTRIAN objects area |
target_filtering.animal |
bool | [-] whether to stop for ANIMAL objects area |
target_filtering.hazard |
bool | [-] whether to stop for HAZARD objects area |
target_filtering.over_drivable |
bool | [-] whether to stop for OVER_DRIVABLE objects area |
target_filtering.under_drivable |
bool | [-] whether to stop for UNDER_DRIVABLE objects area |
Inner-workings / Algorithm
- Gets a detection area and stop line from map information and confirms if there are obstacles in the detection area
- Inserts stop point l[m] in front of the stop line
- Calculates required braking distance based on current velocity,
max_deceleration, anddelay_response_time - If the vehicle cannot stop before the stop line, applies the configured
unstoppable_policy - Sets velocity as zero at the determined stop point
Detection Logic
The module uses two detection sources:
-
Pointcloud detection: Detects any obstacles in the detection area using 3D point cloud data (if
target_filtering.pointcloudis enabled) - Predicted objects detection: Detects classified objects (vehicles, pedestrians, etc.) in the detection area based on perception module outputs
The module stops the vehicle if either detection source finds an obstacle. For performance optimization, if pointcloud detection finds an obstacle, predicted objects detection is skipped (short-circuit evaluation).
Flowchart
```plantuml @startuml title modifyPathVelocity start
:check obstacles area;
if (obstacle detected?) then (no) else (yes) :set last time obstacle found; endif
:get clear stop state duration;
if (clear stop state duration is more than state_clear_time?) then (yes) if (suppress_pass_judge_when_stopping is false or ego is moving) then (yes) :set current state GO; endif :reset clear stop state duration; stop else (no) endif
if (use dead line?) then (yes) :create dead line point; if (Is there dead line point?) then (yes) if (Is over dead line point?) then (yes) stop endif endif endif
:calculate stop point;
if (stop point?) then (yes) else (no) stop endif
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_velocity_detection_area_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(detection_area): implement unified handling for unstoppable situations (#11638)
* feat(detection_area): implement unified handling for unstoppable situations Implement unified handling for unstoppable situations in both detection_area and detection_area/experimental modules with enhanced policy handling.
- fix(detection_area): update unstoppable_policy to stop_after_stopline
* docs(detection_area): enhance unstoppable situation handling with new parameters ---------
-
feat(detection_area): update object detection logic to use polygon intersection for detection areas (#11625)
-
feat(behavior_velocity_detection_area_module): add target filtering parameters to DetectionAreaModuleManager (#11636)
-
feat(behavior_velocity_detection_area_module): use Trajectory instead of PathWithLaneId (#11583)
- use Trajectory instead of PathWithLaneId
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp ---------Co-authored-by: Yukinari Hisaki <<42021302+yhisaki@users.noreply.github.com>> Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(behavior_velocity_rtc_interface, behavior_velocity_*_module): replace PathWithLaneId with Trajectory<> class (#11555)
-
feat(detection_area): enable stopping based on predicted objects (#11588)
- feat(detection_area): enhance obstacle detection with target filtering for various object types
- Added support for detecting predicted objects in the detection area alongside pointcloud data.
- Introduced target filtering parameters in the configuration to specify which object types (e.g., cars, trucks, pedestrians) should trigger stop planning.
- Updated README to reflect changes in detection logic and configuration options.
- Modified relevant source files to implement the new detection logic and parameter handling. This enhancement improves the module's ability to respond to a wider range of obstacles, increasing safety and reliability in planning scenarios.
- docs(detection_area): update README to clarify detection area and target filtering parameters
* refactor(detection_area): simplify detection source assignment and enhance target object filtering ---------
-
chore(detection_area): add Yukinari Hisaki and Takumi Odashima as maintainers (#11587) chore(package.xml): add Yukinari Hisaki and Takumi Odashima as maintainers
-
Contributors: Mitsuhiro Sakamoto, Ryohsuke Mitsudome, Tim Clephas, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(detection_area): set stop point behind actual stop line when ego exceeds max acceleration (#10919)
- feat(detection_area): set stop point behind actual stop line
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_detection_area_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-04 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kyoichi Sugahara
- Tomoya Kimura
- Shumpei Wakabayashi
- Yukinari Hisaki
- Takumi Odashima
Authors
- Kyoichi Sugahara
Detection Area
Role
If pointcloud or predicted objects are detected in a detection area defined on a map, the stop planning will be executed at the predetermined point.
Activation Timing
This module is activated when there is a detection area on the target lane.
Module Parameters
| Parameter | Type | Description |
|---|---|---|
use_dead_line |
bool | [-] weather to use dead line or not |
state_clear_time |
double | [s] when the vehicle is stopping for certain time without incoming obstacle, move to STOPPED state |
stop_margin |
double | [m] a margin that the vehicle tries to stop before stop_line |
dead_line_margin |
double | [m] ignore threshold that vehicle behind is collide with ego vehicle or not |
unstoppable_policy |
string | [-] policy for handling unstoppable situations: “go” (pass through), “force_stop” (emergency stop), or “stop_after_stopline” (stop after the stop line) |
max_deceleration |
double | [m/s^2] maximum deceleration used to calculate required braking distance for unstoppable situation handling |
delay_response_time |
double | [s] delay response time used to calculate required braking distance for unstoppable situation handling |
hold_stop_margin_distance |
double | [m] parameter for restart prevention (See Algorithm section) |
distance_to_judge_over_stop_line |
double | [m] parameter for judging that the stop line has been crossed |
suppress_pass_judge_when_stopping |
bool | [m] parameter for suppressing pass judge when stopping |
enable_detected_obstacle_logging |
bool | [-] enable/disable logging of detected obstacle positions, time elapsed since last detection, and ego vehicle position when ego-vehicle is in STOP state |
target_filtering.pointcloud |
bool | [-] whether to stop for pointcloud detection |
target_filtering.unknown |
bool | [-] whether to stop for UNKNOWN objects area |
target_filtering.car |
bool | [-] whether to stop for CAR objects area |
target_filtering.truck |
bool | [-] whether to stop for TRUCK objects area |
target_filtering.bus |
bool | [-] whether to stop for BUS objects area |
target_filtering.trailer |
bool | [-] whether to stop for TRAILER objects area |
target_filtering.motorcycle |
bool | [-] whether to stop for MOTORCYCLE objects area |
target_filtering.bicycle |
bool | [-] whether to stop for BICYCLE objects area |
target_filtering.pedestrian |
bool | [-] whether to stop for PEDESTRIAN objects area |
target_filtering.animal |
bool | [-] whether to stop for ANIMAL objects area |
target_filtering.hazard |
bool | [-] whether to stop for HAZARD objects area |
target_filtering.over_drivable |
bool | [-] whether to stop for OVER_DRIVABLE objects area |
target_filtering.under_drivable |
bool | [-] whether to stop for UNDER_DRIVABLE objects area |
Inner-workings / Algorithm
- Gets a detection area and stop line from map information and confirms if there are obstacles in the detection area
- Inserts stop point l[m] in front of the stop line
- Calculates required braking distance based on current velocity,
max_deceleration, anddelay_response_time - If the vehicle cannot stop before the stop line, applies the configured
unstoppable_policy - Sets velocity as zero at the determined stop point
Detection Logic
The module uses two detection sources:
-
Pointcloud detection: Detects any obstacles in the detection area using 3D point cloud data (if
target_filtering.pointcloudis enabled) - Predicted objects detection: Detects classified objects (vehicles, pedestrians, etc.) in the detection area based on perception module outputs
The module stops the vehicle if either detection source finds an obstacle. For performance optimization, if pointcloud detection finds an obstacle, predicted objects detection is skipped (short-circuit evaluation).
Flowchart
```plantuml @startuml title modifyPathVelocity start
:check obstacles area;
if (obstacle detected?) then (no) else (yes) :set last time obstacle found; endif
:get clear stop state duration;
if (clear stop state duration is more than state_clear_time?) then (yes) if (suppress_pass_judge_when_stopping is false or ego is moving) then (yes) :set current state GO; endif :reset clear stop state duration; stop else (no) endif
if (use dead line?) then (yes) :create dead line point; if (Is there dead line point?) then (yes) if (Is over dead line point?) then (yes) stop endif endif endif
:calculate stop point;
if (stop point?) then (yes) else (no) stop endif
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_velocity_detection_area_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(detection_area): implement unified handling for unstoppable situations (#11638)
* feat(detection_area): implement unified handling for unstoppable situations Implement unified handling for unstoppable situations in both detection_area and detection_area/experimental modules with enhanced policy handling.
- fix(detection_area): update unstoppable_policy to stop_after_stopline
* docs(detection_area): enhance unstoppable situation handling with new parameters ---------
-
feat(detection_area): update object detection logic to use polygon intersection for detection areas (#11625)
-
feat(behavior_velocity_detection_area_module): add target filtering parameters to DetectionAreaModuleManager (#11636)
-
feat(behavior_velocity_detection_area_module): use Trajectory instead of PathWithLaneId (#11583)
- use Trajectory instead of PathWithLaneId
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp ---------Co-authored-by: Yukinari Hisaki <<42021302+yhisaki@users.noreply.github.com>> Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(behavior_velocity_rtc_interface, behavior_velocity_*_module): replace PathWithLaneId with Trajectory<> class (#11555)
-
feat(detection_area): enable stopping based on predicted objects (#11588)
- feat(detection_area): enhance obstacle detection with target filtering for various object types
- Added support for detecting predicted objects in the detection area alongside pointcloud data.
- Introduced target filtering parameters in the configuration to specify which object types (e.g., cars, trucks, pedestrians) should trigger stop planning.
- Updated README to reflect changes in detection logic and configuration options.
- Modified relevant source files to implement the new detection logic and parameter handling. This enhancement improves the module's ability to respond to a wider range of obstacles, increasing safety and reliability in planning scenarios.
- docs(detection_area): update README to clarify detection area and target filtering parameters
* refactor(detection_area): simplify detection source assignment and enhance target object filtering ---------
-
chore(detection_area): add Yukinari Hisaki and Takumi Odashima as maintainers (#11587) chore(package.xml): add Yukinari Hisaki and Takumi Odashima as maintainers
-
Contributors: Mitsuhiro Sakamoto, Ryohsuke Mitsudome, Tim Clephas, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(detection_area): set stop point behind actual stop line when ego exceeds max acceleration (#10919)
- feat(detection_area): set stop point behind actual stop line
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_detection_area_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-04 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kyoichi Sugahara
- Tomoya Kimura
- Shumpei Wakabayashi
- Yukinari Hisaki
- Takumi Odashima
Authors
- Kyoichi Sugahara
Detection Area
Role
If pointcloud or predicted objects are detected in a detection area defined on a map, the stop planning will be executed at the predetermined point.
Activation Timing
This module is activated when there is a detection area on the target lane.
Module Parameters
| Parameter | Type | Description |
|---|---|---|
use_dead_line |
bool | [-] weather to use dead line or not |
state_clear_time |
double | [s] when the vehicle is stopping for certain time without incoming obstacle, move to STOPPED state |
stop_margin |
double | [m] a margin that the vehicle tries to stop before stop_line |
dead_line_margin |
double | [m] ignore threshold that vehicle behind is collide with ego vehicle or not |
unstoppable_policy |
string | [-] policy for handling unstoppable situations: “go” (pass through), “force_stop” (emergency stop), or “stop_after_stopline” (stop after the stop line) |
max_deceleration |
double | [m/s^2] maximum deceleration used to calculate required braking distance for unstoppable situation handling |
delay_response_time |
double | [s] delay response time used to calculate required braking distance for unstoppable situation handling |
hold_stop_margin_distance |
double | [m] parameter for restart prevention (See Algorithm section) |
distance_to_judge_over_stop_line |
double | [m] parameter for judging that the stop line has been crossed |
suppress_pass_judge_when_stopping |
bool | [m] parameter for suppressing pass judge when stopping |
enable_detected_obstacle_logging |
bool | [-] enable/disable logging of detected obstacle positions, time elapsed since last detection, and ego vehicle position when ego-vehicle is in STOP state |
target_filtering.pointcloud |
bool | [-] whether to stop for pointcloud detection |
target_filtering.unknown |
bool | [-] whether to stop for UNKNOWN objects area |
target_filtering.car |
bool | [-] whether to stop for CAR objects area |
target_filtering.truck |
bool | [-] whether to stop for TRUCK objects area |
target_filtering.bus |
bool | [-] whether to stop for BUS objects area |
target_filtering.trailer |
bool | [-] whether to stop for TRAILER objects area |
target_filtering.motorcycle |
bool | [-] whether to stop for MOTORCYCLE objects area |
target_filtering.bicycle |
bool | [-] whether to stop for BICYCLE objects area |
target_filtering.pedestrian |
bool | [-] whether to stop for PEDESTRIAN objects area |
target_filtering.animal |
bool | [-] whether to stop for ANIMAL objects area |
target_filtering.hazard |
bool | [-] whether to stop for HAZARD objects area |
target_filtering.over_drivable |
bool | [-] whether to stop for OVER_DRIVABLE objects area |
target_filtering.under_drivable |
bool | [-] whether to stop for UNDER_DRIVABLE objects area |
Inner-workings / Algorithm
- Gets a detection area and stop line from map information and confirms if there are obstacles in the detection area
- Inserts stop point l[m] in front of the stop line
- Calculates required braking distance based on current velocity,
max_deceleration, anddelay_response_time - If the vehicle cannot stop before the stop line, applies the configured
unstoppable_policy - Sets velocity as zero at the determined stop point
Detection Logic
The module uses two detection sources:
-
Pointcloud detection: Detects any obstacles in the detection area using 3D point cloud data (if
target_filtering.pointcloudis enabled) - Predicted objects detection: Detects classified objects (vehicles, pedestrians, etc.) in the detection area based on perception module outputs
The module stops the vehicle if either detection source finds an obstacle. For performance optimization, if pointcloud detection finds an obstacle, predicted objects detection is skipped (short-circuit evaluation).
Flowchart
```plantuml @startuml title modifyPathVelocity start
:check obstacles area;
if (obstacle detected?) then (no) else (yes) :set last time obstacle found; endif
:get clear stop state duration;
if (clear stop state duration is more than state_clear_time?) then (yes) if (suppress_pass_judge_when_stopping is false or ego is moving) then (yes) :set current state GO; endif :reset clear stop state duration; stop else (no) endif
if (use dead line?) then (yes) :create dead line point; if (Is there dead line point?) then (yes) if (Is over dead line point?) then (yes) stop endif endif endif
:calculate stop point;
if (stop point?) then (yes) else (no) stop endif
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_velocity_detection_area_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(detection_area): implement unified handling for unstoppable situations (#11638)
* feat(detection_area): implement unified handling for unstoppable situations Implement unified handling for unstoppable situations in both detection_area and detection_area/experimental modules with enhanced policy handling.
- fix(detection_area): update unstoppable_policy to stop_after_stopline
* docs(detection_area): enhance unstoppable situation handling with new parameters ---------
-
feat(detection_area): update object detection logic to use polygon intersection for detection areas (#11625)
-
feat(behavior_velocity_detection_area_module): add target filtering parameters to DetectionAreaModuleManager (#11636)
-
feat(behavior_velocity_detection_area_module): use Trajectory instead of PathWithLaneId (#11583)
- use Trajectory instead of PathWithLaneId
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp ---------Co-authored-by: Yukinari Hisaki <<42021302+yhisaki@users.noreply.github.com>> Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(behavior_velocity_rtc_interface, behavior_velocity_*_module): replace PathWithLaneId with Trajectory<> class (#11555)
-
feat(detection_area): enable stopping based on predicted objects (#11588)
- feat(detection_area): enhance obstacle detection with target filtering for various object types
- Added support for detecting predicted objects in the detection area alongside pointcloud data.
- Introduced target filtering parameters in the configuration to specify which object types (e.g., cars, trucks, pedestrians) should trigger stop planning.
- Updated README to reflect changes in detection logic and configuration options.
- Modified relevant source files to implement the new detection logic and parameter handling. This enhancement improves the module's ability to respond to a wider range of obstacles, increasing safety and reliability in planning scenarios.
- docs(detection_area): update README to clarify detection area and target filtering parameters
* refactor(detection_area): simplify detection source assignment and enhance target object filtering ---------
-
chore(detection_area): add Yukinari Hisaki and Takumi Odashima as maintainers (#11587) chore(package.xml): add Yukinari Hisaki and Takumi Odashima as maintainers
-
Contributors: Mitsuhiro Sakamoto, Ryohsuke Mitsudome, Tim Clephas, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(detection_area): set stop point behind actual stop line when ego exceeds max acceleration (#10919)
- feat(detection_area): set stop point behind actual stop line
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_detection_area_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-04 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kyoichi Sugahara
- Tomoya Kimura
- Shumpei Wakabayashi
- Yukinari Hisaki
- Takumi Odashima
Authors
- Kyoichi Sugahara
Detection Area
Role
If pointcloud or predicted objects are detected in a detection area defined on a map, the stop planning will be executed at the predetermined point.
Activation Timing
This module is activated when there is a detection area on the target lane.
Module Parameters
| Parameter | Type | Description |
|---|---|---|
use_dead_line |
bool | [-] weather to use dead line or not |
state_clear_time |
double | [s] when the vehicle is stopping for certain time without incoming obstacle, move to STOPPED state |
stop_margin |
double | [m] a margin that the vehicle tries to stop before stop_line |
dead_line_margin |
double | [m] ignore threshold that vehicle behind is collide with ego vehicle or not |
unstoppable_policy |
string | [-] policy for handling unstoppable situations: “go” (pass through), “force_stop” (emergency stop), or “stop_after_stopline” (stop after the stop line) |
max_deceleration |
double | [m/s^2] maximum deceleration used to calculate required braking distance for unstoppable situation handling |
delay_response_time |
double | [s] delay response time used to calculate required braking distance for unstoppable situation handling |
hold_stop_margin_distance |
double | [m] parameter for restart prevention (See Algorithm section) |
distance_to_judge_over_stop_line |
double | [m] parameter for judging that the stop line has been crossed |
suppress_pass_judge_when_stopping |
bool | [m] parameter for suppressing pass judge when stopping |
enable_detected_obstacle_logging |
bool | [-] enable/disable logging of detected obstacle positions, time elapsed since last detection, and ego vehicle position when ego-vehicle is in STOP state |
target_filtering.pointcloud |
bool | [-] whether to stop for pointcloud detection |
target_filtering.unknown |
bool | [-] whether to stop for UNKNOWN objects area |
target_filtering.car |
bool | [-] whether to stop for CAR objects area |
target_filtering.truck |
bool | [-] whether to stop for TRUCK objects area |
target_filtering.bus |
bool | [-] whether to stop for BUS objects area |
target_filtering.trailer |
bool | [-] whether to stop for TRAILER objects area |
target_filtering.motorcycle |
bool | [-] whether to stop for MOTORCYCLE objects area |
target_filtering.bicycle |
bool | [-] whether to stop for BICYCLE objects area |
target_filtering.pedestrian |
bool | [-] whether to stop for PEDESTRIAN objects area |
target_filtering.animal |
bool | [-] whether to stop for ANIMAL objects area |
target_filtering.hazard |
bool | [-] whether to stop for HAZARD objects area |
target_filtering.over_drivable |
bool | [-] whether to stop for OVER_DRIVABLE objects area |
target_filtering.under_drivable |
bool | [-] whether to stop for UNDER_DRIVABLE objects area |
Inner-workings / Algorithm
- Gets a detection area and stop line from map information and confirms if there are obstacles in the detection area
- Inserts stop point l[m] in front of the stop line
- Calculates required braking distance based on current velocity,
max_deceleration, anddelay_response_time - If the vehicle cannot stop before the stop line, applies the configured
unstoppable_policy - Sets velocity as zero at the determined stop point
Detection Logic
The module uses two detection sources:
-
Pointcloud detection: Detects any obstacles in the detection area using 3D point cloud data (if
target_filtering.pointcloudis enabled) - Predicted objects detection: Detects classified objects (vehicles, pedestrians, etc.) in the detection area based on perception module outputs
The module stops the vehicle if either detection source finds an obstacle. For performance optimization, if pointcloud detection finds an obstacle, predicted objects detection is skipped (short-circuit evaluation).
Flowchart
```plantuml @startuml title modifyPathVelocity start
:check obstacles area;
if (obstacle detected?) then (no) else (yes) :set last time obstacle found; endif
:get clear stop state duration;
if (clear stop state duration is more than state_clear_time?) then (yes) if (suppress_pass_judge_when_stopping is false or ego is moving) then (yes) :set current state GO; endif :reset clear stop state duration; stop else (no) endif
if (use dead line?) then (yes) :create dead line point; if (Is there dead line point?) then (yes) if (Is over dead line point?) then (yes) stop endif endif endif
:calculate stop point;
if (stop point?) then (yes) else (no) stop endif
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_velocity_detection_area_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(detection_area): implement unified handling for unstoppable situations (#11638)
* feat(detection_area): implement unified handling for unstoppable situations Implement unified handling for unstoppable situations in both detection_area and detection_area/experimental modules with enhanced policy handling.
- fix(detection_area): update unstoppable_policy to stop_after_stopline
* docs(detection_area): enhance unstoppable situation handling with new parameters ---------
-
feat(detection_area): update object detection logic to use polygon intersection for detection areas (#11625)
-
feat(behavior_velocity_detection_area_module): add target filtering parameters to DetectionAreaModuleManager (#11636)
-
feat(behavior_velocity_detection_area_module): use Trajectory instead of PathWithLaneId (#11583)
- use Trajectory instead of PathWithLaneId
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp ---------Co-authored-by: Yukinari Hisaki <<42021302+yhisaki@users.noreply.github.com>> Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(behavior_velocity_rtc_interface, behavior_velocity_*_module): replace PathWithLaneId with Trajectory<> class (#11555)
-
feat(detection_area): enable stopping based on predicted objects (#11588)
- feat(detection_area): enhance obstacle detection with target filtering for various object types
- Added support for detecting predicted objects in the detection area alongside pointcloud data.
- Introduced target filtering parameters in the configuration to specify which object types (e.g., cars, trucks, pedestrians) should trigger stop planning.
- Updated README to reflect changes in detection logic and configuration options.
- Modified relevant source files to implement the new detection logic and parameter handling. This enhancement improves the module's ability to respond to a wider range of obstacles, increasing safety and reliability in planning scenarios.
- docs(detection_area): update README to clarify detection area and target filtering parameters
* refactor(detection_area): simplify detection source assignment and enhance target object filtering ---------
-
chore(detection_area): add Yukinari Hisaki and Takumi Odashima as maintainers (#11587) chore(package.xml): add Yukinari Hisaki and Takumi Odashima as maintainers
-
Contributors: Mitsuhiro Sakamoto, Ryohsuke Mitsudome, Tim Clephas, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(detection_area): set stop point behind actual stop line when ego exceeds max acceleration (#10919)
- feat(detection_area): set stop point behind actual stop line
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_detection_area_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-04 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kyoichi Sugahara
- Tomoya Kimura
- Shumpei Wakabayashi
- Yukinari Hisaki
- Takumi Odashima
Authors
- Kyoichi Sugahara
Detection Area
Role
If pointcloud or predicted objects are detected in a detection area defined on a map, the stop planning will be executed at the predetermined point.
Activation Timing
This module is activated when there is a detection area on the target lane.
Module Parameters
| Parameter | Type | Description |
|---|---|---|
use_dead_line |
bool | [-] weather to use dead line or not |
state_clear_time |
double | [s] when the vehicle is stopping for certain time without incoming obstacle, move to STOPPED state |
stop_margin |
double | [m] a margin that the vehicle tries to stop before stop_line |
dead_line_margin |
double | [m] ignore threshold that vehicle behind is collide with ego vehicle or not |
unstoppable_policy |
string | [-] policy for handling unstoppable situations: “go” (pass through), “force_stop” (emergency stop), or “stop_after_stopline” (stop after the stop line) |
max_deceleration |
double | [m/s^2] maximum deceleration used to calculate required braking distance for unstoppable situation handling |
delay_response_time |
double | [s] delay response time used to calculate required braking distance for unstoppable situation handling |
hold_stop_margin_distance |
double | [m] parameter for restart prevention (See Algorithm section) |
distance_to_judge_over_stop_line |
double | [m] parameter for judging that the stop line has been crossed |
suppress_pass_judge_when_stopping |
bool | [m] parameter for suppressing pass judge when stopping |
enable_detected_obstacle_logging |
bool | [-] enable/disable logging of detected obstacle positions, time elapsed since last detection, and ego vehicle position when ego-vehicle is in STOP state |
target_filtering.pointcloud |
bool | [-] whether to stop for pointcloud detection |
target_filtering.unknown |
bool | [-] whether to stop for UNKNOWN objects area |
target_filtering.car |
bool | [-] whether to stop for CAR objects area |
target_filtering.truck |
bool | [-] whether to stop for TRUCK objects area |
target_filtering.bus |
bool | [-] whether to stop for BUS objects area |
target_filtering.trailer |
bool | [-] whether to stop for TRAILER objects area |
target_filtering.motorcycle |
bool | [-] whether to stop for MOTORCYCLE objects area |
target_filtering.bicycle |
bool | [-] whether to stop for BICYCLE objects area |
target_filtering.pedestrian |
bool | [-] whether to stop for PEDESTRIAN objects area |
target_filtering.animal |
bool | [-] whether to stop for ANIMAL objects area |
target_filtering.hazard |
bool | [-] whether to stop for HAZARD objects area |
target_filtering.over_drivable |
bool | [-] whether to stop for OVER_DRIVABLE objects area |
target_filtering.under_drivable |
bool | [-] whether to stop for UNDER_DRIVABLE objects area |
Inner-workings / Algorithm
- Gets a detection area and stop line from map information and confirms if there are obstacles in the detection area
- Inserts stop point l[m] in front of the stop line
- Calculates required braking distance based on current velocity,
max_deceleration, anddelay_response_time - If the vehicle cannot stop before the stop line, applies the configured
unstoppable_policy - Sets velocity as zero at the determined stop point
Detection Logic
The module uses two detection sources:
-
Pointcloud detection: Detects any obstacles in the detection area using 3D point cloud data (if
target_filtering.pointcloudis enabled) - Predicted objects detection: Detects classified objects (vehicles, pedestrians, etc.) in the detection area based on perception module outputs
The module stops the vehicle if either detection source finds an obstacle. For performance optimization, if pointcloud detection finds an obstacle, predicted objects detection is skipped (short-circuit evaluation).
Flowchart
```plantuml @startuml title modifyPathVelocity start
:check obstacles area;
if (obstacle detected?) then (no) else (yes) :set last time obstacle found; endif
:get clear stop state duration;
if (clear stop state duration is more than state_clear_time?) then (yes) if (suppress_pass_judge_when_stopping is false or ego is moving) then (yes) :set current state GO; endif :reset clear stop state duration; stop else (no) endif
if (use dead line?) then (yes) :create dead line point; if (Is there dead line point?) then (yes) if (Is over dead line point?) then (yes) stop endif endif endif
:calculate stop point;
if (stop point?) then (yes) else (no) stop endif
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_velocity_detection_area_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(detection_area): implement unified handling for unstoppable situations (#11638)
* feat(detection_area): implement unified handling for unstoppable situations Implement unified handling for unstoppable situations in both detection_area and detection_area/experimental modules with enhanced policy handling.
- fix(detection_area): update unstoppable_policy to stop_after_stopline
* docs(detection_area): enhance unstoppable situation handling with new parameters ---------
-
feat(detection_area): update object detection logic to use polygon intersection for detection areas (#11625)
-
feat(behavior_velocity_detection_area_module): add target filtering parameters to DetectionAreaModuleManager (#11636)
-
feat(behavior_velocity_detection_area_module): use Trajectory instead of PathWithLaneId (#11583)
- use Trajectory instead of PathWithLaneId
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp ---------Co-authored-by: Yukinari Hisaki <<42021302+yhisaki@users.noreply.github.com>> Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(behavior_velocity_rtc_interface, behavior_velocity_*_module): replace PathWithLaneId with Trajectory<> class (#11555)
-
feat(detection_area): enable stopping based on predicted objects (#11588)
- feat(detection_area): enhance obstacle detection with target filtering for various object types
- Added support for detecting predicted objects in the detection area alongside pointcloud data.
- Introduced target filtering parameters in the configuration to specify which object types (e.g., cars, trucks, pedestrians) should trigger stop planning.
- Updated README to reflect changes in detection logic and configuration options.
- Modified relevant source files to implement the new detection logic and parameter handling. This enhancement improves the module's ability to respond to a wider range of obstacles, increasing safety and reliability in planning scenarios.
- docs(detection_area): update README to clarify detection area and target filtering parameters
* refactor(detection_area): simplify detection source assignment and enhance target object filtering ---------
-
chore(detection_area): add Yukinari Hisaki and Takumi Odashima as maintainers (#11587) chore(package.xml): add Yukinari Hisaki and Takumi Odashima as maintainers
-
Contributors: Mitsuhiro Sakamoto, Ryohsuke Mitsudome, Tim Clephas, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(detection_area): set stop point behind actual stop line when ego exceeds max acceleration (#10919)
- feat(detection_area): set stop point behind actual stop line
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_detection_area_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-04 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kyoichi Sugahara
- Tomoya Kimura
- Shumpei Wakabayashi
- Yukinari Hisaki
- Takumi Odashima
Authors
- Kyoichi Sugahara
Detection Area
Role
If pointcloud or predicted objects are detected in a detection area defined on a map, the stop planning will be executed at the predetermined point.
Activation Timing
This module is activated when there is a detection area on the target lane.
Module Parameters
| Parameter | Type | Description |
|---|---|---|
use_dead_line |
bool | [-] weather to use dead line or not |
state_clear_time |
double | [s] when the vehicle is stopping for certain time without incoming obstacle, move to STOPPED state |
stop_margin |
double | [m] a margin that the vehicle tries to stop before stop_line |
dead_line_margin |
double | [m] ignore threshold that vehicle behind is collide with ego vehicle or not |
unstoppable_policy |
string | [-] policy for handling unstoppable situations: “go” (pass through), “force_stop” (emergency stop), or “stop_after_stopline” (stop after the stop line) |
max_deceleration |
double | [m/s^2] maximum deceleration used to calculate required braking distance for unstoppable situation handling |
delay_response_time |
double | [s] delay response time used to calculate required braking distance for unstoppable situation handling |
hold_stop_margin_distance |
double | [m] parameter for restart prevention (See Algorithm section) |
distance_to_judge_over_stop_line |
double | [m] parameter for judging that the stop line has been crossed |
suppress_pass_judge_when_stopping |
bool | [m] parameter for suppressing pass judge when stopping |
enable_detected_obstacle_logging |
bool | [-] enable/disable logging of detected obstacle positions, time elapsed since last detection, and ego vehicle position when ego-vehicle is in STOP state |
target_filtering.pointcloud |
bool | [-] whether to stop for pointcloud detection |
target_filtering.unknown |
bool | [-] whether to stop for UNKNOWN objects area |
target_filtering.car |
bool | [-] whether to stop for CAR objects area |
target_filtering.truck |
bool | [-] whether to stop for TRUCK objects area |
target_filtering.bus |
bool | [-] whether to stop for BUS objects area |
target_filtering.trailer |
bool | [-] whether to stop for TRAILER objects area |
target_filtering.motorcycle |
bool | [-] whether to stop for MOTORCYCLE objects area |
target_filtering.bicycle |
bool | [-] whether to stop for BICYCLE objects area |
target_filtering.pedestrian |
bool | [-] whether to stop for PEDESTRIAN objects area |
target_filtering.animal |
bool | [-] whether to stop for ANIMAL objects area |
target_filtering.hazard |
bool | [-] whether to stop for HAZARD objects area |
target_filtering.over_drivable |
bool | [-] whether to stop for OVER_DRIVABLE objects area |
target_filtering.under_drivable |
bool | [-] whether to stop for UNDER_DRIVABLE objects area |
Inner-workings / Algorithm
- Gets a detection area and stop line from map information and confirms if there are obstacles in the detection area
- Inserts stop point l[m] in front of the stop line
- Calculates required braking distance based on current velocity,
max_deceleration, anddelay_response_time - If the vehicle cannot stop before the stop line, applies the configured
unstoppable_policy - Sets velocity as zero at the determined stop point
Detection Logic
The module uses two detection sources:
-
Pointcloud detection: Detects any obstacles in the detection area using 3D point cloud data (if
target_filtering.pointcloudis enabled) - Predicted objects detection: Detects classified objects (vehicles, pedestrians, etc.) in the detection area based on perception module outputs
The module stops the vehicle if either detection source finds an obstacle. For performance optimization, if pointcloud detection finds an obstacle, predicted objects detection is skipped (short-circuit evaluation).
Flowchart
```plantuml @startuml title modifyPathVelocity start
:check obstacles area;
if (obstacle detected?) then (no) else (yes) :set last time obstacle found; endif
:get clear stop state duration;
if (clear stop state duration is more than state_clear_time?) then (yes) if (suppress_pass_judge_when_stopping is false or ego is moving) then (yes) :set current state GO; endif :reset clear stop state duration; stop else (no) endif
if (use dead line?) then (yes) :create dead line point; if (Is there dead line point?) then (yes) if (Is over dead line point?) then (yes) stop endif endif endif
:calculate stop point;
if (stop point?) then (yes) else (no) stop endif
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_velocity_detection_area_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(detection_area): implement unified handling for unstoppable situations (#11638)
* feat(detection_area): implement unified handling for unstoppable situations Implement unified handling for unstoppable situations in both detection_area and detection_area/experimental modules with enhanced policy handling.
- fix(detection_area): update unstoppable_policy to stop_after_stopline
* docs(detection_area): enhance unstoppable situation handling with new parameters ---------
-
feat(detection_area): update object detection logic to use polygon intersection for detection areas (#11625)
-
feat(behavior_velocity_detection_area_module): add target filtering parameters to DetectionAreaModuleManager (#11636)
-
feat(behavior_velocity_detection_area_module): use Trajectory instead of PathWithLaneId (#11583)
- use Trajectory instead of PathWithLaneId
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp ---------Co-authored-by: Yukinari Hisaki <<42021302+yhisaki@users.noreply.github.com>> Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(behavior_velocity_rtc_interface, behavior_velocity_*_module): replace PathWithLaneId with Trajectory<> class (#11555)
-
feat(detection_area): enable stopping based on predicted objects (#11588)
- feat(detection_area): enhance obstacle detection with target filtering for various object types
- Added support for detecting predicted objects in the detection area alongside pointcloud data.
- Introduced target filtering parameters in the configuration to specify which object types (e.g., cars, trucks, pedestrians) should trigger stop planning.
- Updated README to reflect changes in detection logic and configuration options.
- Modified relevant source files to implement the new detection logic and parameter handling. This enhancement improves the module's ability to respond to a wider range of obstacles, increasing safety and reliability in planning scenarios.
- docs(detection_area): update README to clarify detection area and target filtering parameters
* refactor(detection_area): simplify detection source assignment and enhance target object filtering ---------
-
chore(detection_area): add Yukinari Hisaki and Takumi Odashima as maintainers (#11587) chore(package.xml): add Yukinari Hisaki and Takumi Odashima as maintainers
-
Contributors: Mitsuhiro Sakamoto, Ryohsuke Mitsudome, Tim Clephas, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(detection_area): set stop point behind actual stop line when ego exceeds max acceleration (#10919)
- feat(detection_area): set stop point behind actual stop line
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_detection_area_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-04 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kyoichi Sugahara
- Tomoya Kimura
- Shumpei Wakabayashi
- Yukinari Hisaki
- Takumi Odashima
Authors
- Kyoichi Sugahara
Detection Area
Role
If pointcloud or predicted objects are detected in a detection area defined on a map, the stop planning will be executed at the predetermined point.
Activation Timing
This module is activated when there is a detection area on the target lane.
Module Parameters
| Parameter | Type | Description |
|---|---|---|
use_dead_line |
bool | [-] weather to use dead line or not |
state_clear_time |
double | [s] when the vehicle is stopping for certain time without incoming obstacle, move to STOPPED state |
stop_margin |
double | [m] a margin that the vehicle tries to stop before stop_line |
dead_line_margin |
double | [m] ignore threshold that vehicle behind is collide with ego vehicle or not |
unstoppable_policy |
string | [-] policy for handling unstoppable situations: “go” (pass through), “force_stop” (emergency stop), or “stop_after_stopline” (stop after the stop line) |
max_deceleration |
double | [m/s^2] maximum deceleration used to calculate required braking distance for unstoppable situation handling |
delay_response_time |
double | [s] delay response time used to calculate required braking distance for unstoppable situation handling |
hold_stop_margin_distance |
double | [m] parameter for restart prevention (See Algorithm section) |
distance_to_judge_over_stop_line |
double | [m] parameter for judging that the stop line has been crossed |
suppress_pass_judge_when_stopping |
bool | [m] parameter for suppressing pass judge when stopping |
enable_detected_obstacle_logging |
bool | [-] enable/disable logging of detected obstacle positions, time elapsed since last detection, and ego vehicle position when ego-vehicle is in STOP state |
target_filtering.pointcloud |
bool | [-] whether to stop for pointcloud detection |
target_filtering.unknown |
bool | [-] whether to stop for UNKNOWN objects area |
target_filtering.car |
bool | [-] whether to stop for CAR objects area |
target_filtering.truck |
bool | [-] whether to stop for TRUCK objects area |
target_filtering.bus |
bool | [-] whether to stop for BUS objects area |
target_filtering.trailer |
bool | [-] whether to stop for TRAILER objects area |
target_filtering.motorcycle |
bool | [-] whether to stop for MOTORCYCLE objects area |
target_filtering.bicycle |
bool | [-] whether to stop for BICYCLE objects area |
target_filtering.pedestrian |
bool | [-] whether to stop for PEDESTRIAN objects area |
target_filtering.animal |
bool | [-] whether to stop for ANIMAL objects area |
target_filtering.hazard |
bool | [-] whether to stop for HAZARD objects area |
target_filtering.over_drivable |
bool | [-] whether to stop for OVER_DRIVABLE objects area |
target_filtering.under_drivable |
bool | [-] whether to stop for UNDER_DRIVABLE objects area |
Inner-workings / Algorithm
- Gets a detection area and stop line from map information and confirms if there are obstacles in the detection area
- Inserts stop point l[m] in front of the stop line
- Calculates required braking distance based on current velocity,
max_deceleration, anddelay_response_time - If the vehicle cannot stop before the stop line, applies the configured
unstoppable_policy - Sets velocity as zero at the determined stop point
Detection Logic
The module uses two detection sources:
-
Pointcloud detection: Detects any obstacles in the detection area using 3D point cloud data (if
target_filtering.pointcloudis enabled) - Predicted objects detection: Detects classified objects (vehicles, pedestrians, etc.) in the detection area based on perception module outputs
The module stops the vehicle if either detection source finds an obstacle. For performance optimization, if pointcloud detection finds an obstacle, predicted objects detection is skipped (short-circuit evaluation).
Flowchart
```plantuml @startuml title modifyPathVelocity start
:check obstacles area;
if (obstacle detected?) then (no) else (yes) :set last time obstacle found; endif
:get clear stop state duration;
if (clear stop state duration is more than state_clear_time?) then (yes) if (suppress_pass_judge_when_stopping is false or ego is moving) then (yes) :set current state GO; endif :reset clear stop state duration; stop else (no) endif
if (use dead line?) then (yes) :create dead line point; if (Is there dead line point?) then (yes) if (Is over dead line point?) then (yes) stop endif endif endif
:calculate stop point;
if (stop point?) then (yes) else (no) stop endif
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_velocity_detection_area_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(detection_area): implement unified handling for unstoppable situations (#11638)
* feat(detection_area): implement unified handling for unstoppable situations Implement unified handling for unstoppable situations in both detection_area and detection_area/experimental modules with enhanced policy handling.
- fix(detection_area): update unstoppable_policy to stop_after_stopline
* docs(detection_area): enhance unstoppable situation handling with new parameters ---------
-
feat(detection_area): update object detection logic to use polygon intersection for detection areas (#11625)
-
feat(behavior_velocity_detection_area_module): add target filtering parameters to DetectionAreaModuleManager (#11636)
-
feat(behavior_velocity_detection_area_module): use Trajectory instead of PathWithLaneId (#11583)
- use Trajectory instead of PathWithLaneId
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp ---------Co-authored-by: Yukinari Hisaki <<42021302+yhisaki@users.noreply.github.com>> Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(behavior_velocity_rtc_interface, behavior_velocity_*_module): replace PathWithLaneId with Trajectory<> class (#11555)
-
feat(detection_area): enable stopping based on predicted objects (#11588)
- feat(detection_area): enhance obstacle detection with target filtering for various object types
- Added support for detecting predicted objects in the detection area alongside pointcloud data.
- Introduced target filtering parameters in the configuration to specify which object types (e.g., cars, trucks, pedestrians) should trigger stop planning.
- Updated README to reflect changes in detection logic and configuration options.
- Modified relevant source files to implement the new detection logic and parameter handling. This enhancement improves the module's ability to respond to a wider range of obstacles, increasing safety and reliability in planning scenarios.
- docs(detection_area): update README to clarify detection area and target filtering parameters
* refactor(detection_area): simplify detection source assignment and enhance target object filtering ---------
-
chore(detection_area): add Yukinari Hisaki and Takumi Odashima as maintainers (#11587) chore(package.xml): add Yukinari Hisaki and Takumi Odashima as maintainers
-
Contributors: Mitsuhiro Sakamoto, Ryohsuke Mitsudome, Tim Clephas, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(detection_area): set stop point behind actual stop line when ego exceeds max acceleration (#10919)
- feat(detection_area): set stop point behind actual stop line
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_detection_area_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-04 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kyoichi Sugahara
- Tomoya Kimura
- Shumpei Wakabayashi
- Yukinari Hisaki
- Takumi Odashima
Authors
- Kyoichi Sugahara
Detection Area
Role
If pointcloud or predicted objects are detected in a detection area defined on a map, the stop planning will be executed at the predetermined point.
Activation Timing
This module is activated when there is a detection area on the target lane.
Module Parameters
| Parameter | Type | Description |
|---|---|---|
use_dead_line |
bool | [-] weather to use dead line or not |
state_clear_time |
double | [s] when the vehicle is stopping for certain time without incoming obstacle, move to STOPPED state |
stop_margin |
double | [m] a margin that the vehicle tries to stop before stop_line |
dead_line_margin |
double | [m] ignore threshold that vehicle behind is collide with ego vehicle or not |
unstoppable_policy |
string | [-] policy for handling unstoppable situations: “go” (pass through), “force_stop” (emergency stop), or “stop_after_stopline” (stop after the stop line) |
max_deceleration |
double | [m/s^2] maximum deceleration used to calculate required braking distance for unstoppable situation handling |
delay_response_time |
double | [s] delay response time used to calculate required braking distance for unstoppable situation handling |
hold_stop_margin_distance |
double | [m] parameter for restart prevention (See Algorithm section) |
distance_to_judge_over_stop_line |
double | [m] parameter for judging that the stop line has been crossed |
suppress_pass_judge_when_stopping |
bool | [m] parameter for suppressing pass judge when stopping |
enable_detected_obstacle_logging |
bool | [-] enable/disable logging of detected obstacle positions, time elapsed since last detection, and ego vehicle position when ego-vehicle is in STOP state |
target_filtering.pointcloud |
bool | [-] whether to stop for pointcloud detection |
target_filtering.unknown |
bool | [-] whether to stop for UNKNOWN objects area |
target_filtering.car |
bool | [-] whether to stop for CAR objects area |
target_filtering.truck |
bool | [-] whether to stop for TRUCK objects area |
target_filtering.bus |
bool | [-] whether to stop for BUS objects area |
target_filtering.trailer |
bool | [-] whether to stop for TRAILER objects area |
target_filtering.motorcycle |
bool | [-] whether to stop for MOTORCYCLE objects area |
target_filtering.bicycle |
bool | [-] whether to stop for BICYCLE objects area |
target_filtering.pedestrian |
bool | [-] whether to stop for PEDESTRIAN objects area |
target_filtering.animal |
bool | [-] whether to stop for ANIMAL objects area |
target_filtering.hazard |
bool | [-] whether to stop for HAZARD objects area |
target_filtering.over_drivable |
bool | [-] whether to stop for OVER_DRIVABLE objects area |
target_filtering.under_drivable |
bool | [-] whether to stop for UNDER_DRIVABLE objects area |
Inner-workings / Algorithm
- Gets a detection area and stop line from map information and confirms if there are obstacles in the detection area
- Inserts stop point l[m] in front of the stop line
- Calculates required braking distance based on current velocity,
max_deceleration, anddelay_response_time - If the vehicle cannot stop before the stop line, applies the configured
unstoppable_policy - Sets velocity as zero at the determined stop point
Detection Logic
The module uses two detection sources:
-
Pointcloud detection: Detects any obstacles in the detection area using 3D point cloud data (if
target_filtering.pointcloudis enabled) - Predicted objects detection: Detects classified objects (vehicles, pedestrians, etc.) in the detection area based on perception module outputs
The module stops the vehicle if either detection source finds an obstacle. For performance optimization, if pointcloud detection finds an obstacle, predicted objects detection is skipped (short-circuit evaluation).
Flowchart
```plantuml @startuml title modifyPathVelocity start
:check obstacles area;
if (obstacle detected?) then (no) else (yes) :set last time obstacle found; endif
:get clear stop state duration;
if (clear stop state duration is more than state_clear_time?) then (yes) if (suppress_pass_judge_when_stopping is false or ego is moving) then (yes) :set current state GO; endif :reset clear stop state duration; stop else (no) endif
if (use dead line?) then (yes) :create dead line point; if (Is there dead line point?) then (yes) if (Is over dead line point?) then (yes) stop endif endif endif
:calculate stop point;
if (stop point?) then (yes) else (no) stop endif
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_velocity_detection_area_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(detection_area): implement unified handling for unstoppable situations (#11638)
* feat(detection_area): implement unified handling for unstoppable situations Implement unified handling for unstoppable situations in both detection_area and detection_area/experimental modules with enhanced policy handling.
- fix(detection_area): update unstoppable_policy to stop_after_stopline
* docs(detection_area): enhance unstoppable situation handling with new parameters ---------
-
feat(detection_area): update object detection logic to use polygon intersection for detection areas (#11625)
-
feat(behavior_velocity_detection_area_module): add target filtering parameters to DetectionAreaModuleManager (#11636)
-
feat(behavior_velocity_detection_area_module): use Trajectory instead of PathWithLaneId (#11583)
- use Trajectory instead of PathWithLaneId
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp ---------Co-authored-by: Yukinari Hisaki <<42021302+yhisaki@users.noreply.github.com>> Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(behavior_velocity_rtc_interface, behavior_velocity_*_module): replace PathWithLaneId with Trajectory<> class (#11555)
-
feat(detection_area): enable stopping based on predicted objects (#11588)
- feat(detection_area): enhance obstacle detection with target filtering for various object types
- Added support for detecting predicted objects in the detection area alongside pointcloud data.
- Introduced target filtering parameters in the configuration to specify which object types (e.g., cars, trucks, pedestrians) should trigger stop planning.
- Updated README to reflect changes in detection logic and configuration options.
- Modified relevant source files to implement the new detection logic and parameter handling. This enhancement improves the module's ability to respond to a wider range of obstacles, increasing safety and reliability in planning scenarios.
- docs(detection_area): update README to clarify detection area and target filtering parameters
* refactor(detection_area): simplify detection source assignment and enhance target object filtering ---------
-
chore(detection_area): add Yukinari Hisaki and Takumi Odashima as maintainers (#11587) chore(package.xml): add Yukinari Hisaki and Takumi Odashima as maintainers
-
Contributors: Mitsuhiro Sakamoto, Ryohsuke Mitsudome, Tim Clephas, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(detection_area): set stop point behind actual stop line when ego exceeds max acceleration (#10919)
- feat(detection_area): set stop point behind actual stop line
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_detection_area_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-04 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kyoichi Sugahara
- Tomoya Kimura
- Shumpei Wakabayashi
- Yukinari Hisaki
- Takumi Odashima
Authors
- Kyoichi Sugahara
Detection Area
Role
If pointcloud or predicted objects are detected in a detection area defined on a map, the stop planning will be executed at the predetermined point.
Activation Timing
This module is activated when there is a detection area on the target lane.
Module Parameters
| Parameter | Type | Description |
|---|---|---|
use_dead_line |
bool | [-] weather to use dead line or not |
state_clear_time |
double | [s] when the vehicle is stopping for certain time without incoming obstacle, move to STOPPED state |
stop_margin |
double | [m] a margin that the vehicle tries to stop before stop_line |
dead_line_margin |
double | [m] ignore threshold that vehicle behind is collide with ego vehicle or not |
unstoppable_policy |
string | [-] policy for handling unstoppable situations: “go” (pass through), “force_stop” (emergency stop), or “stop_after_stopline” (stop after the stop line) |
max_deceleration |
double | [m/s^2] maximum deceleration used to calculate required braking distance for unstoppable situation handling |
delay_response_time |
double | [s] delay response time used to calculate required braking distance for unstoppable situation handling |
hold_stop_margin_distance |
double | [m] parameter for restart prevention (See Algorithm section) |
distance_to_judge_over_stop_line |
double | [m] parameter for judging that the stop line has been crossed |
suppress_pass_judge_when_stopping |
bool | [m] parameter for suppressing pass judge when stopping |
enable_detected_obstacle_logging |
bool | [-] enable/disable logging of detected obstacle positions, time elapsed since last detection, and ego vehicle position when ego-vehicle is in STOP state |
target_filtering.pointcloud |
bool | [-] whether to stop for pointcloud detection |
target_filtering.unknown |
bool | [-] whether to stop for UNKNOWN objects area |
target_filtering.car |
bool | [-] whether to stop for CAR objects area |
target_filtering.truck |
bool | [-] whether to stop for TRUCK objects area |
target_filtering.bus |
bool | [-] whether to stop for BUS objects area |
target_filtering.trailer |
bool | [-] whether to stop for TRAILER objects area |
target_filtering.motorcycle |
bool | [-] whether to stop for MOTORCYCLE objects area |
target_filtering.bicycle |
bool | [-] whether to stop for BICYCLE objects area |
target_filtering.pedestrian |
bool | [-] whether to stop for PEDESTRIAN objects area |
target_filtering.animal |
bool | [-] whether to stop for ANIMAL objects area |
target_filtering.hazard |
bool | [-] whether to stop for HAZARD objects area |
target_filtering.over_drivable |
bool | [-] whether to stop for OVER_DRIVABLE objects area |
target_filtering.under_drivable |
bool | [-] whether to stop for UNDER_DRIVABLE objects area |
Inner-workings / Algorithm
- Gets a detection area and stop line from map information and confirms if there are obstacles in the detection area
- Inserts stop point l[m] in front of the stop line
- Calculates required braking distance based on current velocity,
max_deceleration, anddelay_response_time - If the vehicle cannot stop before the stop line, applies the configured
unstoppable_policy - Sets velocity as zero at the determined stop point
Detection Logic
The module uses two detection sources:
-
Pointcloud detection: Detects any obstacles in the detection area using 3D point cloud data (if
target_filtering.pointcloudis enabled) - Predicted objects detection: Detects classified objects (vehicles, pedestrians, etc.) in the detection area based on perception module outputs
The module stops the vehicle if either detection source finds an obstacle. For performance optimization, if pointcloud detection finds an obstacle, predicted objects detection is skipped (short-circuit evaluation).
Flowchart
```plantuml @startuml title modifyPathVelocity start
:check obstacles area;
if (obstacle detected?) then (no) else (yes) :set last time obstacle found; endif
:get clear stop state duration;
if (clear stop state duration is more than state_clear_time?) then (yes) if (suppress_pass_judge_when_stopping is false or ego is moving) then (yes) :set current state GO; endif :reset clear stop state duration; stop else (no) endif
if (use dead line?) then (yes) :create dead line point; if (Is there dead line point?) then (yes) if (Is over dead line point?) then (yes) stop endif endif endif
:calculate stop point;
if (stop point?) then (yes) else (no) stop endif
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_velocity_detection_area_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(detection_area): implement unified handling for unstoppable situations (#11638)
* feat(detection_area): implement unified handling for unstoppable situations Implement unified handling for unstoppable situations in both detection_area and detection_area/experimental modules with enhanced policy handling.
- fix(detection_area): update unstoppable_policy to stop_after_stopline
* docs(detection_area): enhance unstoppable situation handling with new parameters ---------
-
feat(detection_area): update object detection logic to use polygon intersection for detection areas (#11625)
-
feat(behavior_velocity_detection_area_module): add target filtering parameters to DetectionAreaModuleManager (#11636)
-
feat(behavior_velocity_detection_area_module): use Trajectory instead of PathWithLaneId (#11583)
- use Trajectory instead of PathWithLaneId
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
* Update planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/src/experimental/scene.cpp ---------Co-authored-by: Yukinari Hisaki <<42021302+yhisaki@users.noreply.github.com>> Co-authored-by: Mamoru Sobue <<mamoru.sobue@tier4.jp>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(behavior_velocity_rtc_interface, behavior_velocity_*_module): replace PathWithLaneId with Trajectory<> class (#11555)
-
feat(detection_area): enable stopping based on predicted objects (#11588)
- feat(detection_area): enhance obstacle detection with target filtering for various object types
- Added support for detecting predicted objects in the detection area alongside pointcloud data.
- Introduced target filtering parameters in the configuration to specify which object types (e.g., cars, trucks, pedestrians) should trigger stop planning.
- Updated README to reflect changes in detection logic and configuration options.
- Modified relevant source files to implement the new detection logic and parameter handling. This enhancement improves the module's ability to respond to a wider range of obstacles, increasing safety and reliability in planning scenarios.
- docs(detection_area): update README to clarify detection area and target filtering parameters
* refactor(detection_area): simplify detection source assignment and enhance target object filtering ---------
-
chore(detection_area): add Yukinari Hisaki and Takumi Odashima as maintainers (#11587) chore(package.xml): add Yukinari Hisaki and Takumi Odashima as maintainers
-
Contributors: Mitsuhiro Sakamoto, Ryohsuke Mitsudome, Tim Clephas, Yukinari Hisaki
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(detection_area): set stop point behind actual stop line when ego exceeds max acceleration (#10919)
- feat(detection_area): set stop point behind actual stop line
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |