Skip to content

Commit 96060d0

Browse files
YLouWashUfacebook-github-bot
authored andcommitted
{Feature} Core - Add support for EVT devices.
Summary: Adds supports for EVT device model. Reviewed By: SeaOtocinclus Differential Revision: D78538836 fbshipit-source-id: 33a5715490dfca408860efacadae0d84abb7114f
1 parent 70de95e commit 96060d0

1 file changed

Lines changed: 70 additions & 0 deletions

File tree

core/calibration/DeviceCadExtrinsics.cpp

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,70 @@ std::unordered_map<std::string, Sophus::SE3d> constructCadForDvtmAria() {
169169

170170
return cadMapT_Device_Sensor;
171171
}
172+
173+
// A helper function for constructing CAD extrinsics for EVT-S
174+
std::unordered_map<std::string, Sophus::SE3d> constructCadForEvtSmall() {
175+
std::unordered_map<std::string, Sophus::SE3d> cadMapT_Device_Sensor;
176+
177+
const std::vector<std::string> cadCsvLines = {
178+
"camera-slam-left, 0.069051, 0.002372, 0.009254, 0.793353, 0.000000, -0.608761, 0.607927, -0.052336, 0.792266",
179+
"camera-slam-right, -0.069051, 0.002372, 0.009254, 0.793353, 0.000000, 0.608761, -0.607927, -0.052336, 0.792266",
180+
"camera-et-left, 0.054298, -0.018500, 0.006210, 0.034478, -0.508118, -0.860597, -0.674245, 0.623794, -0.395316",
181+
"camera-et-right, -0.054298, -0.018500, 0.006210, -0.034478, -0.508118, -0.860597, 0.674245, 0.623794, -0.395316",
182+
"camera-rgb, 0.056000, 0.007121, 0.012883, 1.000000, 0.000000, 0.000000, 0.000000, -0.130526, 0.991445",
183+
"imu-left, 0.064799, 0.001997, 0.003152, 0.790027, 0.000000, -0.613072, -0.607365, 0.136127, -0.782673",
184+
"imu-right, -0.065182, 0.001893, 0.002645, -0.793353, 0.000000, -0.608761, 0.595593, 0.206874, -0.776191",
185+
"baro0, -0.009258, 0.010842, 0.017200, 0.000000, 0.000000, -1.000000, 0.173648, 0.984808, 0.000000",
186+
"mag0, 0.064411, -0.004813, 0.000723, 0.588329, 0.006506, -0.808595, -0.808020, 0.043280, -0.587563",
187+
"mic0, -0.045906 ,-0.027938 ,0.006667 ,0.97508224 ,-0.160939007 ,0.152686805 ,-0.14019156 ,-0.980440 ,-0.138144",
188+
"mic1, 0.009161 ,0.010231 ,0.017250 ,-0.984808 ,-0.173648 ,0.000000 ,-0.173648 ,0.984808 ,0.000000",
189+
"mic2, 0.045905 ,-0.027931 ,0.006668 ,-0.975082 ,-0.160938 ,0.152687 ,0.140190 ,-0.980440 ,-0.138146",
190+
"mic3, 0.063471 ,0.012034 ,0.005566 ,-0.017386 ,0.001521 ,0.999848 ,0.087156 ,0.996195 ,0.000000",
191+
"mic4, -0.052398 ,0.013200 ,0.012160 ,0.965337 ,0.033710 ,0.258819 ,-0.034899 ,0.999391 ,0.000000",
192+
"mic5, 0.069856 ,0.008270 ,-0.093105 ,0.002466 ,-0.996176 ,0.087334 ,0.990147 ,-0.009795 ,-0.139689",
193+
"mic6, -0.069822 ,0.008268 ,-0.093138 ,-0.002487 ,-0.996176 ,0.087333 ,-0.990081 ,-0.009815 ,-0.140151"};
194+
195+
for (const auto& line : cadCsvLines) {
196+
const auto maybeLabelAndPose = readSingleCsvLine(line);
197+
XR_CHECK(maybeLabelAndPose.has_value(), "Reading csv line has failed: {}", line);
198+
cadMapT_Device_Sensor.emplace(
199+
maybeLabelAndPose.value().first, maybeLabelAndPose.value().second);
200+
}
201+
202+
return cadMapT_Device_Sensor;
203+
}
204+
205+
// A helper function for constructing CAD extrinsics for EVT-L
206+
std::unordered_map<std::string, Sophus::SE3d> constructCadForEvtLarge() {
207+
std::unordered_map<std::string, Sophus::SE3d> cadMapT_Device_Sensor;
208+
209+
const std::vector<std::string> cadCsvLines = {
210+
"camera-slam-left, 0.071351, 0.002372, 0.008454, 0.793353, 0.000000, -0.608761, 0.607927, -0.052336, 0.792266",
211+
"camera-slam-right, -0.071351, 0.002372, 0.008454, 0.793353, 0.000000, 0.608761, -0.607927, -0.052336, 0.792266",
212+
"camera-et-left, 0.055753, -0.019589, 0.004786, 0.034096, -0.508436, -0.860424, -0.674299, 0.623745, -0.395300",
213+
"camera-et-right, -0.055753, -0.019589, 0.004786, -0.034096, -0.508436, -0.860424, 0.674299, 0.623745, -0.395300",
214+
"camera-rgb, 0.058250, 0.007186, 0.012096, 1.000000, 0.000000, 0.000000, 0.000000, -0.130526, 0.991445",
215+
"imu-left, 0.067042, 0.002160, 0.002413, 0.790027, 0.000000, -0.613072, -0.607365, 0.136127, -0.782673",
216+
"imu-right, -0.067482, 0.001893, 0.001845, -0.793353, 0.000000, -0.608761, 0.595593, 0.206874, -0.776191",
217+
"baro0, -0.009258, 0.010842, 0.017200, 0.000000, 0.000000, -1.000000, 0.173648, 0.984808, 0.000000",
218+
"mag0, 0.066568, -0.004813, -0.001498, 0.587782, -0.008810, -0.808971, -0.808020, 0.043280, -0.587563",
219+
"mic0, -0.04613750996 ,-0.02929690419 ,0.006233332458 ,0.981006 ,-0.109790 ,0.159915 ,-0.087780 ,-0.986430 ,-0.138744",
220+
"mic1, 0.009200472201 ,0.01030418902 ,0.01725 ,-0.984807753 ,-0.173648178 ,0 ,-0.173648178 ,0.984807753 ,0",
221+
"mic2, 0.046138 ,-0.029297 ,0.006233 ,-0.981006 ,-0.109790 ,0.159915 ,0.087780 ,-0.986430 ,-0.138744",
222+
"mic3, 0.065925 ,0.011961 ,0.004305 ,-0.017386 ,0.001521 ,0.999848 ,0.087156 ,0.996195 ,0.000000",
223+
"mic4, -0.054800 ,0.013142 ,0.010960 ,0.965337 ,0.033710 ,0.258819 ,-0.034899 ,0.999391 ,0.000000",
224+
"mic5, 0.072318 ,0.008272 ,-0.094955 ,0.002477 ,-0.996176 ,0.087334 ,0.990114 ,-0.009805 ,-0.139920",
225+
"mic6, -0.072319 ,0.008271 ,-0.094955 ,-0.002477 ,-0.996176 ,0.087334 ,-0.990114 ,-0.009805 ,-0.139920"};
226+
227+
for (const auto& line : cadCsvLines) {
228+
const auto maybeLabelAndPose = readSingleCsvLine(line);
229+
XR_CHECK(maybeLabelAndPose.has_value(), "Reading csv line has failed: {}", line);
230+
cadMapT_Device_Sensor.emplace(
231+
maybeLabelAndPose.value().first, maybeLabelAndPose.value().second);
232+
}
233+
234+
return cadMapT_Device_Sensor;
235+
}
172236
} // namespace
173237

174238
DeviceCadExtrinsics::DeviceCadExtrinsics(
@@ -183,6 +247,12 @@ DeviceCadExtrinsics::DeviceCadExtrinsics(
183247
labelToT_Cpf_Sensor_ = constructCadForDvtLarge();
184248
} else if (deviceSubType == "DVT-MARIA") {
185249
labelToT_Cpf_Sensor_ = constructCadForDvtmAria();
250+
}
251+
// Add support for legacy EVT devices
252+
else if (deviceSubType == "EVT-S") {
253+
labelToT_Cpf_Sensor_ = constructCadForEvtSmall();
254+
} else if (deviceSubType == "EVT-L") {
255+
labelToT_Cpf_Sensor_ = constructCadForEvtLarge();
186256
} else if (simulatedDeviceSubtypes.find(deviceSubType) != simulatedDeviceSubtypes.end()) {
187257
XR_LOGW("No CAD available for simulated device");
188258
return;

0 commit comments

Comments
 (0)