autowarefoundation / autoware.universe

https://autowarefoundation.github.io/autoware.universe/
Apache License 2.0
1.01k stars 650 forks source link

Misclassification of static obstacle into cyclist makes the vehicle stop. #7166

Closed Kim-mins closed 1 week ago

Kim-mins commented 5 months ago

Checklist

Description

Hi team,

I'm currently running Autoware with Carla, and I found a situation that the misclassification of static obstacle into cyclist makes the vehicle stop. Here's the rviz video:

https://github.com/autowarefoundation/autoware.universe/assets/50267797/e1b2a8d0-4e4a-4376-bd54-e35edced2c7b

According to the video, the vehicle does not move because of the static obstacle, which is not cyclist at all. I checked that obstacle in Carla, referring to the [frontview video], it was something other than the cyclist. something

Expected behavior

I hope the vehicle to drive as usual, classifying the static obstacle clearly.

Actual behavior

However, the static obstacle is misclassified as a cyclist, which eventually make the vehicle stop.

Steps to reproduce

Here's the ros2bag file for the reproduction: [ros2bag]

Versions

Possible causes

No response

Additional context

No response

YoshiRi commented 5 months ago

@Kim-mins

I found this problem is caused by centerpoint detection. (sky blue bbox in figure below)

Fig1. centerpoint detection in sky blue and clustering based detection in purple

Though these solutions will be temporary one, you can try:

For example, you can fix priority_mode in lidar_merger.launch.xml

  <!-- Merger -->
  <group>
    <!-- 1st merger to merge clustering + ML lidar detection-->
    <let name="merger/input/objects" value="$(var lidar_detection_model)/validation/objects" if="$(var use_validator)"/>
    <let name="merger/input/objects" value="$(var lidar_detection_model)/objects" unless="$(var use_validator)"/>
    <let name="without_dbt_and_filter" value="$(eval &quot;'$(var use_detection_by_tracker)'=='false' and '$(var use_object_filter)'=='false' &quot;)"/>
    <let name="merger/output/objects" value="temporary_merged_objects" unless="$(var without_dbt_and_filter)"/>
    <let name="merger/output/objects" value="$(var output/objects)" if="$(var without_dbt_and_filter)"/>
    <include file="$(find-pkg-share object_merger)/launch/object_association_merger.launch.xml">
      <arg name="input/object0" value="$(var merger/input/objects)"/>
      <arg name="input/object1" value="clustering/objects"/>
      <arg name="priority_mode" value="1"/>    <!-- change here from 0 to 1 so that merger will prioritize object1-->
      <arg name="output/object" value="$(var merger/output/objects)"/>
      <arg name="data_association_matrix_path" value="$(var object_recognition_detection_object_merger_data_association_matrix_param_path)"/>
      <arg name="distance_threshold_list_path" value="$(var object_recognition_detection_object_merger_distance_threshold_list_path)"/>
    </include>
  </group>
Kim-mins commented 5 months ago

Thank you for the response and possible solutions @YoshiRi!

I tried your suggestions, but it seems they don't work..

For a resolution of the pointcloud, I increased the # of point per second from 1,200,000 to 10,000,000(changed from carla's sensor setting), but it doesn't work. Here's the video: [video]

I also changed the priority_mode to 1(actually my default value was 2, so I changed from 2 to 1), but it seems the issue still remains. [video]

stale[bot] commented 3 months ago

This pull request has been automatically marked as stale because it has not had recent activity.

amadeuszsz commented 1 week ago

Closing due to inactivity. Feel free to reopen if needed.