orbbec / OrbbecSDK_ROS2

OrbbecSDK ROS2 wrapper
https://orbbec.github.io/OrbbecSDK_ROS2/
Apache License 2.0
57 stars 19 forks source link

camera_info is reporting incorrect distortion coefficients for Gemini 2 #15

Closed JanNogga closed 4 months ago

JanNogga commented 7 months ago

According to https://github.com/orbbec/OrbbecSDK_ROS2/blob/master/orbbec_camera/src/utils.cpp the SDK is filling the distortion parameters in the CameraInfo messages as (k1, k2, k3, k4, k5), whereas in ROS and OpenCV conventions we would expect parameters (k1, k2, t1, t2, k3) there.

Additionally the parameters seem scaled, as they have very large values. Are these values premultiplied with some weight, like the image width or focal length?

zhonghong322 commented 6 months ago

1、Thank you for your feedback,we will fix the distortion parameters. 2. the distortion parameters are the actual distortion parameters and have not been amplified in any way. The apparent larger values are due to the optimization process of our calibration model, However, the distortion model itself remains unchanged.

JanNogga commented 6 months ago

Thanks for fixing issue 1! Regarding 2., there must be a different problem then. The coefficients reported on our side are in the 1000s and 100s. Looking at the images from the camera, which are barely visibly distorted, we expect parameters close to 0 instead. If we take these results at face value without accounting for any previous amplification it would be like believing a scale telling us that an orange weighs 50 tons.
Can you share some example distortion coefficients from a Gemini 2 on your side so that I can sanity-check whether our sensor specifically is reporting incorrect values?

jian-dong commented 6 months ago

@JanNogga Sorry for the inconvenient, I think it's my bug; fixed it this commit

JanNogga commented 6 months ago

Thanks for dealing with these problems! I'll test the changes when I return to the office in January and close the issue then.