tudelft-iv / multi_sensor_calibration

499 stars 105 forks source link

A probable issue with openCV versions #30

Open poledna opened 3 years ago

poledna commented 3 years ago

While working with the Mono Detector Node I noticed it was failing with segmentation faults and not publishing the messages to the topic /mono_pattern, after debugging I've noticed that the issue was on the following statements:

Firstly on this line: https://github.com/tudelft-iv/multi_sensor_calibration/blob/232f5c4a1a9e33f409363bec03cebd497c41e546/mono_detector/src/lib/pnp.cpp#L66 I had some issue with the matrix creation, and the statement that solved this for me was: cv::Mat result(1, 4, CV_32FC2);

then on this line: https://github.com/tudelft-iv/multi_sensor_calibration/blob/232f5c4a1a9e33f409363bec03cebd497c41e546/mono_detector/src/lib/pnp.cpp#L88 I truly do not understand why is there a 0*intrinsics.distortionCoeffs() because it was the culprit of a segmentation error.

I assume all of this is an issue with my opencv version (4.5.4). If it all possible could you check exactly which one is required?

Thank you for the very good work I am looking forward to working more with it now that I have passed this small stage.

And before I leave this issue, I would like to point out that I am amazed by the code written in C++ that you wrote, it is simply beautiful! not easy to be understood sometimes but very impressive. I would have only made a couple different methods because of my writing style.

Yuri.

RonaldEnsing commented 1 year ago

I suspect that 0*intrinsics.distortionCoeffs() was added because the mono detector works on rectified images. So the distortions are already corrected. @EaiPool can you confirm this?

I don't know what OpenCV version we tested on before. We worked on the package with ROS Kinetic and ROS Melodic. We used the OpenCV version that gets installed with ROS.

frothmoon commented 11 months ago

@poledna @RonaldEnsing Hello, I would like to ask about your mono and lidar modality optimized rmse? The result I ran was 0.4, which looks a little big.