Open fwarmuth opened 7 months ago
Hi
virtual bool areIntrinsicsReasonable()
{
return cv::norm(camera_matrix_) != 0. && cv::norm(camera_matrix_, cv::Mat::eye(3, 3, CV_64F)) != 0.;
}
This is the intrinsics check function.
Here is my python POC on the same camera matrix.
import numpy as np
cam_mat = np.array([[1039.033447265625, 0.0, 628.4920654296875],
[0.0, 1039.033447265625, 374.26031494140625],
[0.0, 0.0, 1.0]])
print(cv2.norm(cam_mat)) # -> 1641.418614711522
print(cv2.norm(cam_mat, np.eye(3))) # 0-> 1640.152412104567
So based on this. That is not the topic or the intrinsic that code is receiving. Cross check if the topic sent is correct and the right information matches.
Hey, thanks for fast reply.
I just needed patience, the point cloud is there, but the frequency is super low, normal? After a relaunch of the driver it takes several minutes to receive a single point cloud. Yes i know its a network not USB device, but that can not be as intended?
I guess i don't get what you mean... sorry
I looked in the calibration.launch, but i can not figure where the camera_calibration
package is located in the ros1 docker container.
I solved the issue by overwriting the intrinsic calibration with my own - but that is not the solution.
regards
virtual bool areIntrinsicsReasonable() { return cv::norm(camera_matrix_) != 0. && cv::norm(camera_matrix_, cv::Mat::eye(3, 3, CV_64F)) != 0.; }
This is the intrinsics check function.
Here is my python POC on the same camera matrix.
import numpy as np cam_mat = np.array([[1039.033447265625, 0.0, 628.4920654296875], [0.0, 1039.033447265625, 374.26031494140625], [0.0, 0.0, 1.0]]) print(cv2.norm(cam_mat)) # -> 1641.418614711522 print(cv2.norm(cam_mat, np.eye(3))) # 0-> 1640.152412104567
So based on this. That is not the topic or the intrinsic that code is receiving. Cross check if the topic sent is correct and the right information matches.
Sorry, you wrote while I wrote.
Hey, my overall goal is to do an extrinsic calibration using the MoveIT camera calibration.
Situation:
System: ros1 noetic docker container I run the
rgb_pcl.launch
with a custom param_file:It publishes everything, except
/oak/points
don't know why, but problem for a different day. (Maybe some one has a hint) I receive a CameraInfoMsg similar to:All good right?
Problem:
The MoveIT Camera Calibration Target module, shouts: Target detector has not received reasonable intrinsics. Attempted detection anyway. If one looks in the source code, it does call
areIntrinsicsReasonable()
-> Definition at line 292 of file handeye_target_base.h.Therefore it seems that the published (
/oak/rgb/camera_info
) camera info data is not correct. What can i do about it, i dont want to calibrate the camera by hand - as it provides factory calibration values.Any hints or pushes in the right direction would be highly appreciated! Cheers