ethz-asl / COIN-LIO

Other
191 stars 16 forks source link

Params file using Ouster OS1-64 #11

Closed Julioaregom closed 2 days ago

Julioaregom commented 3 days ago

Hi, first of all, congrats on your amazing work!

I'm using an Ouster OS1-64 to run this algorithm following the instructions in the readme. At first, it crashed and showed the following exception:

terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(4.2.0) ../modules/core/src/matrix.cpp:465: error: (-215:Assertion failed) 
0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows in function 'Mat'

After investigating, I concluded that the part of the code collapsing was the following (in ImageProcessor::createMask):

    for (auto& mask_rect : masks_) {
        mask(mask_rect) = 0;
    }

So I decided to eliminate the image/masks parameter elements in the params.yaml file and it worked fine:

    masks: []
    # masks: [0, 84, 70, 44, 953, 84, 70, 44]

I want to ask what the elements of the masks parameter stand for and how did you get yours. Have you tried the algorithm with this type of Ouster before?

Thanks. Julio.

patripfr commented 3 days ago

Hi, thanks for your interest in our work :) The mask parameter blocks out certain parts of the image. I used it because with an OS-0 the connector of the ouster is visible in the image, which results in detected features on the connector. To avoid this, I blocked out this area of the image. The masks are in the format x, y, width, height (similar to cv::Rect), listed after each other. Since the images from an OS1-64 will be only 64 pixel high, the parameters in the default parameters won't work and cause the exception you've experienced.

I haven't tried COIN-LIO with an OS1-64 before, but I think it should work fine :)

Julioaregom commented 2 days ago

Hi, I appreciate your fast response.

All understood and working fine. Keep up this amazing work!

Julio