Go to the documentation of this file.
18 cout <<
s <<
" azimuth: " << azimuth_.theta() <<
" elevation: " << elevation_.theta() << endl;
23 return azimuth_.equals(
x.azimuth_,
tol) && elevation_.equals(
x.elevation_,
tol);
29 Matrix Cnb =
A.rotation().matrix().transpose();
35 -1.,0.,0.).finished();
37 Vector p_rel_c = Cbc*Cnb*(
B -
A.translation());
42 double azimuth =
atan2(p_rel_c(1),p_rel_c(0));
44 double elevation =
atan2(p_rel_c(2),
sqrt(p_rel_c(0) * p_rel_c(0) + p_rel_c(1) * p_rel_c(1)));
51 Matrix Cnb =
A.rotation().matrix().transpose();
53 Vector p_rel_c = Cnb*(
B -
A.translation());
58 double azimuth =
atan2(p_rel_c(1),p_rel_c(0));
60 double elevation =
atan2(p_rel_c(2),
sqrt(p_rel_c(0) * p_rel_c(0) + p_rel_c(1) * p_rel_c(1)));
66 assert(
v.size() == 2);
67 return BearingS2(azimuth_.retract(
v.head(1)), elevation_.retract(
v.tail(1)));
72 return (
Vector(2) << azimuth_.localCoordinates(
x.azimuth_)(0),
73 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 Sat Nov 16 2024 04:01:54