ros-industrial / easy_perception_deployment

A ROS2 package that accelerates the training and deployment of CV models for industries.
Apache License 2.0
53 stars 16 forks source link

EPD crashes in action mode whenever a sudden movement is detected #28

Closed Promethees closed 2 years ago

Promethees commented 2 years ago

Hi, according to the EMD's pipeline given here: https://easy-manipulation-deployment-docs.readthedocs.io/en/latest/about/overview.html?highlight=pipeline#manipulation-pipeline. I have to feed the grasp_planner with data provided by /processor/epd_localize_output topic. Thus, I switch the GUI to Action mode. Screenshot from 2021-12-20 17-23-35 As I notice, whenever an object suddenly appeared in the frame or a detected object got sudden movement, the EPD crashed and yielded this error: Screenshot from 2021-12-20 17-19-50 This appears to be abnormal as everything worked fine in visualize mode regardless of any sudden movement and appearance of objects in the frame. I wonder if there is any solution to improve the systematic reliability? By the way, the way we are conducting our experiment is using an external camera (IntelRealSense) as an input source instead of using the pre-made rosbag's db in the tutorial.

cardboardcode commented 2 years ago

Working on it. Will update once my bandwidth allows me.

cardboardcode commented 2 years ago

Hi @Promethees, I will looking into this over next week (7th March 2020 to 11th March 2020). Will update once more investigation is done into this issue and whether a hot fix is warranted.

For now, is it possible to provide a ROS2 bag file that allows us to reproduce this issue? Also, may I clarify what model of Intel Realsense Camera are you using?

cardboardcode commented 2 years ago

@Promethees

Based on the screenshot you shared, it seems the error reported is as follows:

Assertion `allClassNames.size() > *std::max_element(classIndices.begin(), classIndices.end()) failed

It seems that, for an unknown reason, the integer class index of the object that has the sudden movement exceeds the number of classes defined in your label_list.txt file. This can be due to sporadic precision loss.

While further debugging is done, please do the following to address the issue in the meantime:

  1. Please comment out lines 1109 - 1113 of p3_ort_base.cpp.
    // if (!allClassNames.empty()) {
    //  assert(
    //   allClassNames.size() >
    //  *std::max_element(classIndices.begin(), classIndices.end()));
    // }
cardboardcode commented 2 years ago

Issue is stale. Closing.

@Promethees Please reopen as needed if the issue is still not resolved.