Could inverse extrinsics
This commit is contained in:
parent
77837933bc
commit
f3d6fcdcb9
|
@ -315,6 +315,13 @@ std::ostream &operator<<(std::ostream &os, const MotionIntrinsics &in);
|
||||||
struct MYNTEYE_API Extrinsics {
|
struct MYNTEYE_API Extrinsics {
|
||||||
double rotation[3][3]; /**< rotation matrix */
|
double rotation[3][3]; /**< rotation matrix */
|
||||||
double translation[3]; /**< translation vector */
|
double translation[3]; /**< translation vector */
|
||||||
|
|
||||||
|
Extrinsics Inverse() const {
|
||||||
|
return {{{rotation[0][0], rotation[1][0], rotation[2][0]},
|
||||||
|
{rotation[0][1], rotation[1][1], rotation[2][1]},
|
||||||
|
{rotation[0][2], rotation[1][2], rotation[2][2]}},
|
||||||
|
{-translation[0], -translation[1], -translation[2]}};
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
MYNTEYE_API
|
MYNTEYE_API
|
||||||
|
|
|
@ -164,9 +164,14 @@ Extrinsics Device::GetExtrinsics(const Stream &from, const Stream &to) const {
|
||||||
try {
|
try {
|
||||||
return stream_from_extrinsics_.at(from).at(to);
|
return stream_from_extrinsics_.at(from).at(to);
|
||||||
} catch (const std::out_of_range &e) {
|
} catch (const std::out_of_range &e) {
|
||||||
LOG(WARNING) << "Extrinsics from " << from << " to " << to << " not found";
|
try {
|
||||||
|
return stream_from_extrinsics_.at(to).at(from).Inverse();
|
||||||
|
} catch (const std::out_of_range &e) {
|
||||||
|
LOG(WARNING) << "Extrinsics from " << from << " to " << to
|
||||||
|
<< " not found";
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MotionIntrinsics Device::GetMotionIntrinsics() const {
|
MotionIntrinsics Device::GetMotionIntrinsics() const {
|
||||||
|
|
|
@ -426,12 +426,10 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||||
camera_info->P.at(11) = 0;
|
camera_info->P.at(11) = 0;
|
||||||
|
|
||||||
if (stream == Stream::RIGHT) {
|
if (stream == Stream::RIGHT) {
|
||||||
/*
|
|
||||||
auto &&ex = api_->GetExtrinsics(stream, Stream::LEFT);
|
auto &&ex = api_->GetExtrinsics(stream, Stream::LEFT);
|
||||||
camera_info->P.at(3) = ex.translation[0];
|
camera_info->P.at(3) = ex.translation[0];
|
||||||
camera_info->P.at(7) = ex.translation[1];
|
camera_info->P.at(7) = ex.translation[1];
|
||||||
camera_info->P.at(11) = ex.translation[2];
|
camera_info->P.at(11) = ex.translation[2];
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
camera_info->distortion_model = "plumb_bob";
|
camera_info->distortion_model = "plumb_bob";
|
||||||
|
|
Loading…
Reference in New Issue
Block a user