Updating modify_extrinsics to handle imu
Also, pushing updated calibration files to match it
Here's the commands I used to create these (for reproducibility / checking)
Front camera (0 pitch, assuming cam-24-05 at orin1/camera0):
front sensor location: X: 11.118, Y: 8.928, Z: 17.439
bazel run -c opt //y2024/vision:modify_extrinsics -- ~/code/FRC/971-Robot-Code/y2024/constants/calib_files/calibration_orin-971-1-1_cam-24-05_1970-01-05_17-40-27.793683328.json --team_number=971 --node_name=orin1 --camera_number=0 --camera_x=11.118 --camera_y=8.928 --camera_z=17.439
Right camera (-15 deg pitch, -90 yaw assuming cam-24-06 at orin1/camera1):
right sensor location: X: 4.372, Y: -10.310, Z: 13.668
bazel run -c opt //y2024/vision:modify_extrinsics -- ~/code/FRC/971-Robot-Code/y2024/constants/calib_files/calibration_orin-971-1-0_cam-24-06_1970-01-05_17-40-29.245444672.json --team_number=971 --node_name=orin1 --camera_number=1 --camera_x=4.372 --camera_y=-10.310 --camera_z=13.668 --camera_pitch=-15 --camera_yaw=-90
Left camera (-15 deg pitch, 90 yaw assuming cam-24-07 at orin1/camera0):
left sensor location: X: 4.372, Y: 10.310, Z: 13.668
bazel run -c opt //y2024/vision:modify_extrinsics -- ~/code/FRC/971-Robot-Code/y2024/constants/calib_files/calibration_orin-971-1-0_cam-24-07_2024-02-24_19-52-27.338466592.json --team_number=971 --node_name=imu --camera_number=0 --camera_x=4.372 --camera_y=10.310 --camera_z=13.668 --camera_pitch=-15 --camera_yaw=90
Rear camera (-15 deg pitch, 1800 yaw assuming cam-24-08 at imu/camera1):
back sensor location: X: -12.652, Y: 10.561, Z: 18.528
bazel run -c opt //y2024/vision:modify_extrinsics -- ~/code/FRC/971-Robot-Code/y2024/constants/calib_files/calibration_orin-971-1-0_cam-24-08_2024-02-24_16-21-54.420797344.json --team_number=971 --node_name=imu --camera_number=1 --camera_x=-12.652 --camera_y=10.561 --camera_z=18.528 --camera_pitch=-15 --camera_yaw=180
Change-Id: I6bcdca25cc15c80dac263c8ea102df9ae125323c
Signed-off-by: Jim Ostrowski <yimmy13@gmail.com>
diff --git a/y2024/vision/modify_extrinsics.cc b/y2024/vision/modify_extrinsics.cc
index fc1d348..9122191 100644
--- a/y2024/vision/modify_extrinsics.cc
+++ b/y2024/vision/modify_extrinsics.cc
@@ -26,7 +26,8 @@
"Intrinsics to use for estimating board pose prior to solving "
"for the new intrinsics.");
DEFINE_string(calibration_folder, "/tmp", "Folder to place calibration files.");
-DEFINE_int32(orin_number, -1, "Orin number to use; unchanged if -1");
+DEFINE_string(node_name, "",
+ "Node name to use, e.g. orin1, imu; unchanged if blank");
DEFINE_int32(team_number, -1, "Team number to use; unchanged if -1");
DEFINE_int32(camera_number, -1, "Camera number to use; unchanged if -1");
@@ -134,19 +135,9 @@
orig_calib_filename);
// Populate the new variables from command-line or from base_calibration
- CHECK(base_calibration.message().node_name()->str().find("orin") == 0)
- << "This code is only available for calibrations on the orin (2024+)";
- int cpu_number =
- (FLAGS_orin_number == -1 ? std::atoi(base_calibration.message()
- .node_name()
- ->str()
- .substr(4, 1)
- .c_str())
- : FLAGS_orin_number);
std::string node_name =
- (FLAGS_orin_number == -1
- ? base_calibration.message().node_name()->str()
- : std::string("orin") + std::to_string(FLAGS_orin_number));
+ (FLAGS_node_name == "" ? base_calibration.message().node_name()->str()
+ : FLAGS_node_name);
int team_number =
(FLAGS_team_number == -1 ? base_calibration.message().team_number()
: FLAGS_team_number);
@@ -171,8 +162,8 @@
: FLAGS_calibration_folder);
const std::string new_calib_filename =
dirname + "/" +
- absl::StrFormat("calibration_orin-%d-%d-%d_cam-%s_%s.json", team_number,
- cpu_number, camera_number, camera_id.c_str(),
+ absl::StrFormat("calibration_%s-%d-%d_cam-%s_%s.json", node_name.c_str(),
+ team_number, camera_number, camera_id.c_str(),
time_ss.str());
VLOG(1) << "From: " << orig_calib_filename << " -> "