mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-06 18:17:47 +08:00
Added stereo multi-camera support (#884)
* Integrated OpenGV * Fixed build without opengv * Cmake: moved OpenGV dependency status under solvers group * Added multi-stereocamera models support * Fixed OpenGV 0 sample error when one of the camera doesn't have features. Fixed g2o BA id offset with multi-camera. * Fixed multicam 3d points generated from stereo correspondences * db: Fixed multi stereo models not loaded correctly * gui: fixed stereo rectification option, RegVis: fixed projection error with old databases (image size not set in calibration) * OdomF2M: Fixed map.at error when bundle adjustment is not used * depthai: added imu firmware update option for convenience * Fixed various refactor errors * Moved "large number stereo correspondences rejected" warning outside computeCorrespondences function for multicam * Added error log if ba correspondences are computed with empty signatures * fixed compilation errors with latest opencv Co-authored-by: mathieu86 <[email protected]>
This commit is contained in:
@@ -445,10 +445,10 @@ void ExportBundlerDialog::exportBundler(
|
||||
out << ster.value().sensorData().cameraModels().at(0).fx() << " 0 0\n";
|
||||
localTransform = ster.value().sensorData().cameraModels().at(0).localTransform();
|
||||
}
|
||||
else
|
||||
else if(ster.value().sensorData().stereoCameraModels().size())
|
||||
{
|
||||
out << ster.value().sensorData().stereoCameraModel().left().fx() << " 0 0\n";
|
||||
localTransform = ster.value().sensorData().stereoCameraModel().left().localTransform();
|
||||
out << ster.value().sensorData().stereoCameraModels()[0].left().fx() << " 0 0\n";
|
||||
localTransform = ster.value().sensorData().stereoCameraModels()[0].left().localTransform();
|
||||
}
|
||||
|
||||
Transform pose = iter->second;
|
||||
@@ -519,10 +519,10 @@ void ExportBundlerDialog::exportBundler(
|
||||
pt.x = kter->second.kpt.pt.x - s.sensorData().cameraModels().at(0).cx();
|
||||
pt.y = kter->second.kpt.pt.y - s.sensorData().cameraModels().at(0).cy();
|
||||
}
|
||||
else
|
||||
else if(signatures[camId].sensorData().stereoCameraModels().size())
|
||||
{
|
||||
pt.x = kter->second.kpt.pt.x - s.sensorData().stereoCameraModel().left().cx();
|
||||
pt.y = kter->second.kpt.pt.y - s.sensorData().stereoCameraModel().left().cy();
|
||||
pt.x = kter->second.kpt.pt.x - s.sensorData().stereoCameraModels()[0].left().cx();
|
||||
pt.y = kter->second.kpt.pt.y - s.sensorData().stereoCameraModels()[0].left().cy();
|
||||
}
|
||||
descriptorIndexes.insert(std::make_pair(camId, 0));
|
||||
out << " " << cameraIndexes.at(camId) << " " << descriptorIndexes.at(camId)++ << " " << pt.x << " " << -pt.y;
|
||||
|
||||
Reference in New Issue
Block a user