18 cout << s <<
" azimuth: " << azimuth_.theta() <<
" elevation: " << elevation_.theta() << endl;
35 -1.,0.,0.).finished();
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)));
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)));
73 elevation_.localCoordinates(x.
elevation_)(0)).finished();
const Point3 & translation(OptionalJacobian< 3, 6 > Hself={}) const
get translation
bool equals(const BearingS2 &x, double tol=1e-9) const
void print(const std::string &s="") const
static BearingS2 fromDownwardsObservation(const POSE &A, const TARGET &B)
BearingS2 retract(const Vector &v) const
Vector localCoordinates(const BearingS2 &p2) const
Local coordinates of BearingS2 manifold neighborhood around current pose.
Array< int, Dynamic, 1 > v
AnnoyingScalar atan2(const AnnoyingScalar &y, const AnnoyingScalar &x)
static BearingS2 fromForwardObservation(const Pose3 &A, const Point3 &B)
const Rot3 & rotation(OptionalJacobian< 3, 6 > Hself={}) const
get rotation
Jet< T, N > sqrt(const Jet< T, N > &f)
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
Manifold measurement between two points on a unit sphere.