Package Summary
Tags | No category tags. |
Version | 0.45.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-06-06 |
Dev Status | UNKNOWN |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Kyoichi Sugahara
- Go Sakayori
- Tomohito Ando
Authors
- Shinnosuke Hirakawa
Collision Detector
Purpose
This module publishes an ERROR
diagnostic if a collision is detected with the current ego footprint.
Inner-workings / Algorithms
Flow chart
- Check input data.
- Filter dynamic objects.
- Find nearest object and its distance to ego.
- Publish an
ERROR
diagnostic depending on the recent collision detection results.
Algorithms
Check data
Check that collision_detector
receives no ground pointcloud, dynamic objects.
Object Filtering
Recognition Assumptions
- If the classification changes but it’s considered the same object, the uuid does not change.
- It’s possible for the same uuid to be recognized after being lost for a few frames.
- Once an object is determined to be excluded, it continues to be excluded for a certain period of time.
Filtering Process
-
Initial Recognition and Exclusion:
- The system checks if a newly recognized object’s classification is listed in
nearby_object_type_filters
. - If so, and the object is within the
nearby_filter_radius
, it is marked for exclusion.
- The system checks if a newly recognized object’s classification is listed in
-
New Object Determination:
- An object is considered “new” based on its UUID.
- If the UUID is not found in recent frame data, the object is treated as new.
-
Exclusion Mechanism:
- Newly excluded objects are recorded by their UUID.
- These objects continue to be excluded for a set period (
keep_ignoring_time
) as long as they maintain the classification specified innearby_object_type_filters
and remain within thenearby_filter_radius
.
Get distance to nearest object
Calculate distance between ego vehicle and the nearest object.
In this function, it calculates the minimum distance between the polygon of ego vehicle and all points in pointclouds and the polygons of dynamic objects.
If the minimum distance is lower than the collision_distance
parameter, then a collision is detected.
Time buffer and distance hysteresis
Before publishing an ERROR
diagnostic, a collision must be detected for at least a duration set by the parameter time_buffer.on
.
Once an ERROR
diagnostic is published, the time_buffer.off_distance_hysteresis
parameter is used to make the ego footprint larger,
making it easier to detect a collision.
To stop publishing the ERROR
diagnostic, no collision must be detected for at least a duration set by the parameter time_buffer.off
.
Inputs / Outputs
Input
Name | Type | Description |
---|---|---|
/perception/obstacle_segmentation/pointcloud |
sensor_msgs::msg::PointCloud2 |
Pointcloud of obstacles which the ego-vehicle should stop or avoid |
/perception/object_recognition/objects |
autoware_perception_msgs::msg::PredictedObjects |
Dynamic objects |
/tf |
tf2_msgs::msg::TFMessage |
TF |
/tf_static |
tf2_msgs::msg::TFMessage |
TF static |
Output
Name | Type | Description |
---|---|---|
/diagnostics |
diagnostic_msgs::msg::DiagnosticArray |
Diagnostics |
~/debug_markers |
visualization_msgs::msg::MarkerArray |
Debug markers |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
use_pointcloud |
bool |
Use pointcloud as obstacle check | true |
use_dynamic_object |
bool |
Use dynamic object as obstacle check | true |
collision_distance |
double |
Distance threshold at which an object is considered a collision. [m] | 0.15 |
nearby_filter_radius |
double |
Distance range for filtering objects. Objects within this radius are considered. [m] | 5.0 |
keep_ignoring_time |
double |
Time to keep filtering objects that first appeared in the vicinity [sec] | 10.0 |
nearby_object_type_filters |
object of bool values |
Specifies which object types to filter. Only objects with true value will be filtered. |
{unknown: true, others: false} |
ignore_behind_rear_axle |
bool |
If true, collisions detected behind the rear axle of the ego vehicle are ignored | true |
time_buffer.on |
double |
[s] minimum consecutive detection time before triggering the ERROR diagnostic | 0.2 |
time_buffer.off |
double |
[s] minimum consecutive time without collision detection (including the hysteresis) before releasing the ERROR diagnostic | 5.0 |
time_buffer.off_distance_hysteresis |
double |
[m] extra distance used to detect collisions once the diagnostic is triggered | 1.0 |
Assumptions / Known limits
- This module is based on
surround_obstacle_checker
Changelog for package autoware_collision_detector
0.45.0 (2025-05-22)
- Merge remote-tracking branch 'origin/main' into tmp/notbot/bump_version_base
- fix(collision_detector): rename parameters to prevent launch issues (#10651) rename params
- feat(collision_detector): time buffer and ignore behind rear axle (#10638)
- Contributors: Maxime CLEMENT, TaikiYamada4
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
0.43.0 (2025-03-21)
- Merge remote-tracking branch 'origin/main' into chore/bump-version-0.43
- chore: rename from [autoware.universe]{.title-ref} to [autoware_universe]{.title-ref} (#10306)
- Contributors: Hayato Mizushima, Yutaka Kondo
0.42.0 (2025-03-03)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(autoware_utils): replace autoware_universe_utils with autoware_utils (#10191)
- feat(autoware_vehicle_info_utils): replace autoware_universe_utils with autoware_utils (#10167)
- Contributors: Fumiya Watanabe, Ryohsuke Mitsudome, 心刚
0.41.2 (2025-02-19)
- chore: bump version to 0.41.1 (#10088)
- Contributors: Ryohsuke Mitsudome
0.41.1 (2025-02-10)
0.41.0 (2025-01-29)
0.40.0 (2024-12-12)
- Merge branch 'main' into release-0.40.0
- Revert "chore(package.xml): bump version to 0.39.0 (#9587)" This reverts commit c9f0f2688c57b0f657f5c1f28f036a970682e7f5.
- fix: fix ticket links in CHANGELOG.rst (#9588)
- chore(package.xml): bump version to 0.39.0
(#9587)
- chore(package.xml): bump version to 0.39.0
- fix: fix ticket links in CHANGELOG.rst
* fix: remove unnecessary diff ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
- fix: fix ticket links in CHANGELOG.rst (#9588)
- fix(cpplint): include what you use - control (#9565)
- 0.39.0
- update changelog
- Merge commit '6a1ddbd08bd' into release-0.39.0
- fix: fix ticket links to point to https://github.com/autowarefoundation/autoware_universe (#9304)
- fix(collision_detector): skip process when odometry is not
published
(#9308)
- subscribe odometry
- fix precommit
* remove unnecessary log info ---------
- fix: fix ticket links to point to https://github.com/autowarefoundation/autoware_universe (#9304)
- chore(package.xml): bump version to 0.38.0
(#9266)
(#9284)
- unify package.xml version to 0.37.0
- remove system_monitor/CHANGELOG.rst
- add changelog
* 0.38.0
- feat(collision_detector): use polling subscriber (#9213) use polling subscriber
- Contributors: Esteve Fernandez, Fumiya Watanabe, Go Sakayori, M. Fatih Cırıt, Ryohsuke Mitsudome, Yutaka Kondo
0.39.0 (2024-11-25)
- Merge commit '6a1ddbd08bd' into release-0.39.0
- fix: fix ticket links to point to https://github.com/autowarefoundation/autoware_universe (#9304)
- fix(collision_detector): skip process when odometry is not
published
(#9308)
- subscribe odometry
- fix precommit
* remove unnecessary log info ---------
- fix: fix ticket links to point to https://github.com/autowarefoundation/autoware_universe (#9304)
- chore(package.xml): bump version to 0.38.0
(#9266)
(#9284)
- unify package.xml version to 0.37.0
- remove system_monitor/CHANGELOG.rst
- add changelog
* 0.38.0
- feat(collision_detector): use polling subscriber (#9213) use polling subscriber
- Contributors: Esteve Fernandez, Go Sakayori, Yutaka Kondo
0.38.0 (2024-11-08)
- unify package.xml version to 0.37.0
- chore(collision_detector): add maintainer (#9184) add maintainer
- feat(collision_detector): add autoware_collision_detector
(#9157)
- add new package autoware_collision_detector
- update to latest
- fix
- fix reference
- modify maintainer
- change definiton from filtering to exclude
* change description for parameters ---------
- Contributors: Go Sakayori, Yutaka Kondo
0.26.0 (2024-04-03)
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
eigen |
libpcl-all-dev |
Dependant Packages
Launch files
- launch/collision_detector.launch.xml
-
- param_path [default: $(find-pkg-share autoware_collision_detector)/config/collision_detector.param.yaml]
- input_objects [default: /perception/object_recognition/objects]
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]