Refactor of apriltag detector to send out tags
Split into app in y2024, and libs in frc971
Added in calibration constants to y2024, including single basic camera
Modified team number parsing to work with orins
Pulled out year-by-year calibration call to a single FindCameraCalibration
call, and rest (extrinsics, intrinsics) are year-agnostic
Moving camera calibration files into constants/calib_files directory, instead
of vision/calib_files
Change-Id: Ic485086aad9665d2b571551a5afb337c9254d690
Signed-off-by: Jim Ostrowski <yimmy13@gmail.com>
diff --git a/y2023/vision/aprilrobotics.cc b/y2023/vision/aprilrobotics.cc
index 0605eb2..342e046 100644
--- a/y2023/vision/aprilrobotics.cc
+++ b/y2023/vision/aprilrobotics.cc
@@ -24,6 +24,11 @@
namespace chrono = std::chrono;
+// Set max age on image for processing at 20 ms. For 60Hz, we should be
+// processing at least every 16.7ms
+constexpr aos::monotonic_clock::duration kMaxImageAge =
+ std::chrono::milliseconds(20);
+
AprilRoboticsDetector::AprilRoboticsDetector(aos::EventLoop *event_loop,
std::string_view channel_name,
bool flip_image)
@@ -34,11 +39,11 @@
ftrace_(),
image_callback_(
event_loop, channel_name,
- [&](cv::Mat image_color_mat,
- const aos::monotonic_clock::time_point eof) {
+ [this](cv::Mat image_color_mat,
+ const aos::monotonic_clock::time_point eof) {
HandleImage(image_color_mat, eof);
},
- chrono::milliseconds(5)),
+ kMaxImageAge),
target_map_sender_(
event_loop->MakeSender<frc971::vision::TargetMap>("/camera")),
image_annotations_sender_(