object_merger#
Purpose#
object_merger is a package for merging detected objects from two methods by data association.
Inner-workings / Algorithms#
The successive shortest path algorithm is used to solve the data association problem (the minimum-cost flow problem). The cost is calculated by the distance between two objects and gate functions are applied to reset cost, s.t. the maximum distance, the maximum area and the minimum area.
Inputs / Outputs#
Input#
Name | Type | Description |
---|---|---|
input/object0 |
autoware_auto_perception_msgs::msg::DetectedObjects |
detection objects |
input/object1 |
autoware_auto_perception_msgs::msg::DetectedObjects |
detection objects |
Output#
Name | Type | Description |
---|---|---|
output/object |
autoware_auto_perception_msgs::msg::DetectedObjects |
modified Objects |
Parameters#
Name | Type | Description |
---|---|---|
can_assign_matrix |
double | Assignment table for data association |
max_dist_matrix |
double | Maximum distance table for data association |
max_area_matrix |
double | Maximum area table for data association |
min_area_matrix |
double | Minimum area table for data association |
max_rad_matrix |
double | Maximum angle table for data association |
base_link_frame_id |
double | association frame |
distance_threshold_list |
std::vector<double> |
Distance threshold for each class used in judging overlap. The class order depends on ObjectClassification. |
generalized_iou_threshold |
std::vector<double> |
Generalized IoU threshold for each class |
Tips#
- False Positive Unknown object detected by clustering method sometimes raises the risk of sudden stop and interferes with Planning module. If ML based detector rarely misses objects, you can tune the parameter of object_merger and make Perception module ignore unknown objects.
- If you want to remove unknown object close to large vehicle,
- use HIGH
distance_threshold_list
- However, this causes high computational load
- use LOW
precision_threshold_to_judge_overlapped
- use LOW
generalized_iou_threshold
- However, these 2 params raise the risk of overlooking object close to known object.
- use HIGH
- If you want to remove unknown object close to large vehicle,
Assumptions / Known limits#
(Optional) Error detection and handling#
(Optional) Performance characterization#
(Optional) References/External links#
(Optional) Future extensions / Unimplemented parts#
Data association algorithm was the same as that of multi_object_tracker, but the algorithm of multi_object_tracker was already updated.