Go to the documentation of this file.
20 cout <<
s <<
" azimuth: " << azimuth_.theta() <<
" elevation: " << elevation_.theta() << endl;
25 return azimuth_.equals(
x.azimuth_,
tol) && elevation_.equals(
x.elevation_,
tol);
31 Matrix Cnb =
A.rotation().matrix().transpose();
37 -1.,0.,0.).finished();
39 Vector p_rel_c = Cbc*Cnb*(
B -
A.translation());
44 double azimuth =
atan2(p_rel_c(1),p_rel_c(0));
46 double elevation =
atan2(p_rel_c(2),
sqrt(p_rel_c(0) * p_rel_c(0) + p_rel_c(1) * p_rel_c(1)));
53 Matrix Cnb =
A.rotation().matrix().transpose();
55 Vector p_rel_c = Cnb*(
B -
A.translation());
60 double azimuth =
atan2(p_rel_c(1),p_rel_c(0));
62 double elevation =
atan2(p_rel_c(2),
sqrt(p_rel_c(0) * p_rel_c(0) + p_rel_c(1) * p_rel_c(1)));
68 assert(
v.size() == 2);
69 return BearingS2(azimuth_.retract(
v.head(1)), elevation_.retract(
v.tail(1)));
74 return (
Vector(2) << azimuth_.localCoordinates(
x.azimuth_)(0),
75 elevation_.localCoordinates(
x.elevation_)(0)).finished();
static BearingS2 fromForwardObservation(const Pose3 &A, const Point3 &B)
Matrix< SCALARB, Dynamic, Dynamic, opt_B > B
void print(const std::string &s="") const
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
Vector localCoordinates(const BearingS2 &p2) const
Local coordinates of BearingS2 manifold neighborhood around current pose.
Matrix< SCALARA, Dynamic, Dynamic, opt_A > A
static BearingS2 fromDownwardsObservation(const POSE &A, const TARGET &B)
AnnoyingScalar atan2(const AnnoyingScalar &y, const AnnoyingScalar &x)
Manifold measurement between two points on a unit sphere.
BearingS2 retract(const Vector &v) const
Array< int, Dynamic, 1 > v
Jet< T, N > sqrt(const Jet< T, N > &f)
bool equals(const BearingS2 &x, double tol=1e-9) const
gtsam
Author(s):
autogenerated on Sun Dec 22 2024 04:11:11