diff --git a/launch/tier4_perception_launch/launch/object_recognition/detection/camera_lidar_fusion_based_detection.launch.xml b/launch/tier4_perception_launch/launch/object_recognition/detection/camera_lidar_fusion_based_detection.launch.xml
index 51359d8d8f0e2..67e123ea5b018 100644
--- a/launch/tier4_perception_launch/launch/object_recognition/detection/camera_lidar_fusion_based_detection.launch.xml
+++ b/launch/tier4_perception_launch/launch/object_recognition/detection/camera_lidar_fusion_based_detection.launch.xml
@@ -15,7 +15,8 @@
-
+
+
@@ -169,7 +170,8 @@
-
+
+
diff --git a/launch/tier4_perception_launch/launch/object_recognition/detection/camera_lidar_radar_fusion_based_detection.launch.xml b/launch/tier4_perception_launch/launch/object_recognition/detection/camera_lidar_radar_fusion_based_detection.launch.xml
index 45cfb91bf25c1..fbe5f21c041b6 100644
--- a/launch/tier4_perception_launch/launch/object_recognition/detection/camera_lidar_radar_fusion_based_detection.launch.xml
+++ b/launch/tier4_perception_launch/launch/object_recognition/detection/camera_lidar_radar_fusion_based_detection.launch.xml
@@ -15,7 +15,8 @@
-
+
+
@@ -190,7 +191,8 @@
-
+
+
diff --git a/launch/tier4_perception_launch/launch/object_recognition/detection/detection.launch.xml b/launch/tier4_perception_launch/launch/object_recognition/detection/detection.launch.xml
index 77a3e345ec5e8..1fcf29606891b 100644
--- a/launch/tier4_perception_launch/launch/object_recognition/detection/detection.launch.xml
+++ b/launch/tier4_perception_launch/launch/object_recognition/detection/detection.launch.xml
@@ -35,7 +35,8 @@
-
+
+
@@ -64,7 +65,8 @@
-
+
+
diff --git a/launch/tier4_perception_launch/launch/perception.launch.xml b/launch/tier4_perception_launch/launch/perception.launch.xml
index 3d4ce1035e72c..bbb7ebb2d8d25 100644
--- a/launch/tier4_perception_launch/launch/perception.launch.xml
+++ b/launch/tier4_perception_launch/launch/perception.launch.xml
@@ -93,7 +93,8 @@
-
+
+
@@ -169,7 +170,8 @@
-
+
+
diff --git a/perception/image_projection_based_fusion/docs/roi-cluster-fusion.md b/perception/image_projection_based_fusion/docs/roi-cluster-fusion.md
index 01cdc3756866b..03eaab2a3c6ca 100644
--- a/perception/image_projection_based_fusion/docs/roi-cluster-fusion.md
+++ b/perception/image_projection_based_fusion/docs/roi-cluster-fusion.md
@@ -32,18 +32,20 @@ The clusters are projected onto image planes, and then if the ROIs of clusters a
### Core Parameters
-| Name | Type | Description |
-| --------------------------- | ----- | -------------------------------------------------------------------------------- |
-| `use_iou_x` | bool | calculate IoU only along x-axis |
-| `use_iou_y` | bool | calculate IoU only along y-axis |
-| `use_iou` | bool | calculate IoU both along x-axis and y-axis |
-| `use_cluster_semantic_type` | bool | if `false`, the labels of clusters are overwritten by `UNKNOWN` before fusion |
-| `only_allow_inside_cluster` | bool | if `true`, the only clusters contained inside RoIs by a detector |
-| `roi_scale_factor` | float | the scale factor for offset of detector RoIs if `only_allow_inside_cluster=true` |
-| `iou_threshold` | float | the IoU threshold to overwrite a label of clusters with a label of roi |
-| `unknown_iou_threshold` | float | the IoU threshold to fuse cluster with unknown label of roi |
-| `rois_number` | int | the number of input rois |
-| `debug_mode` | bool | If `true`, subscribe and publish images for visualization. |
+| Name | Type | Description |
+| --------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `fusion_distance` | double | If the detected object's distance to frame_id is less than the threshold, the fusion will be processed |
+| `trust_object_distance` | double | if the detected object's distance is less than the `trust_object_distance`, `trust_object_iou_mode` will be used, otherwise `non_trust_object_iou_mode` will be used |
+| `trust_object_iou_mode` | string | select mode from 3 options {`iou`, `iou_x`, `iou_y`} to calculate IoU in range of [`0`, `trust_distance`].
`iou`: IoU along x-axis and y-axis
`iou_x`: IoU along x-axis
`iou_y`: IoU along y-axis |
+| `non_trust_object_iou_mode` | string | the IOU mode using in range of [`trust_distance`, `fusion_distance`] if `trust_distance` < `fusion_distance` |
+| `use_cluster_semantic_type` | bool | if `false`, the labels of clusters are overwritten by `UNKNOWN` before fusion |
+| `only_allow_inside_cluster` | bool | if `true`, the only clusters contained inside RoIs by a detector |
+| `roi_scale_factor` | double | the scale factor for offset of detector RoIs if `only_allow_inside_cluster=true` |
+| `iou_threshold` | double | the IoU threshold to overwrite a label of clusters with a label of roi |
+| `unknown_iou_threshold` | double | the IoU threshold to fuse cluster with unknown label of roi |
+| `remove_unknown` | bool | if `true`, remove all `UNKNOWN` labeled objects from output |
+| `rois_number` | int | the number of input rois |
+| `debug_mode` | bool | If `true`, subscribe and publish images for visualization. |
## Assumptions / Known limits
diff --git a/perception/image_projection_based_fusion/include/image_projection_based_fusion/roi_cluster_fusion/node.hpp b/perception/image_projection_based_fusion/include/image_projection_based_fusion/roi_cluster_fusion/node.hpp
index 70a7866e79b87..e54710ad477da 100644
--- a/perception/image_projection_based_fusion/include/image_projection_based_fusion/roi_cluster_fusion/node.hpp
+++ b/perception/image_projection_based_fusion/include/image_projection_based_fusion/roi_cluster_fusion/node.hpp
@@ -17,10 +17,12 @@
#include "image_projection_based_fusion/fusion_node.hpp"
+#include