Use extrinsics to seed vision solver
Signed-off-by: Milind Upadhyay <milind.upadhyay@gmail.com>
Change-Id: I674da5535fa3894468e66f11cbbc3e9d32d8cedf
diff --git a/y2022/vision/camera_reader.h b/y2022/vision/camera_reader.h
index 3b1eca6..edc3a1a 100644
--- a/y2022/vision/camera_reader.h
+++ b/y2022/vision/camera_reader.h
@@ -25,8 +25,6 @@
using namespace frc971::vision;
// TODO<jim>: Probably need to break out LED control to separate process
-// TODO<jim>: Need to add sync with camera to strobe lights
-
class CameraReader {
public:
CameraReader(aos::ShmEventLoop *event_loop,
@@ -66,18 +64,20 @@
void ReadImage();
cv::Mat CameraIntrinsics() const {
- const cv::Mat result(3, 3, CV_32F,
- const_cast<void *>(static_cast<const void *>(
- camera_calibration_->intrinsics()->data())));
+ cv::Mat result(3, 3, CV_32F,
+ const_cast<void *>(static_cast<const void *>(
+ camera_calibration_->intrinsics()->data())));
+ result.convertTo(result, CV_64F);
CHECK_EQ(result.total(), camera_calibration_->intrinsics()->size());
return result;
}
cv::Mat CameraExtrinsics() const {
- const cv::Mat result(
+ cv::Mat result(
4, 4, CV_32F,
const_cast<void *>(static_cast<const void *>(
camera_calibration_->fixed_extrinsics()->data()->data())));
+ result.convertTo(result, CV_64F);
CHECK_EQ(result.total(),
camera_calibration_->fixed_extrinsics()->data()->size());
return result;