10 #include <gtsam/nonlinear/expressions.h> 20 typedef Expression<Point2> Point2_;
21 typedef Expression<Rot2> Rot2_;
22 typedef Expression<Pose2> Pose2_;
24 inline Point2_ transform_to(
const Pose2_& x,
const Point2_& p) {
30 typedef Expression<Point3> Point3_;
31 typedef Expression<Unit3> Unit3_;
32 typedef Expression<Rot3> Rot3_;
33 typedef Expression<Pose3> Pose3_;
35 inline Point3_ transform_to(
const Pose3_& x,
const Point3_& p) {
39 inline Point3_ transform_from(
const Pose3_& x,
const Point3_& p) {
43 inline Point3_
rotate(
const Rot3_& x,
const Point3_& p) {
47 inline Point3_ unrotate(
const Rot3_& x,
const Point3_& p) {
53 typedef Expression<Cal3_S2> Cal3_S2_;
54 typedef Expression<Cal3Bundler> Cal3Bundler_;
57 inline Point2_
project(
const Point3_& p_cam) {
59 return Point2_(f, p_cam);
62 inline Point2_
project(
const Unit3_& p_cam) {
64 return Point2_(f, p_cam);
69 template <
class CAMERA,
class POINT>
72 return camera.project2(p, Dcam, Dpoint);
76 template <
class CAMERA,
class POINT>
78 return Point2_(internal::project4<CAMERA, POINT>, camera_, p_);
83 template <
class CALIBRATION,
class POINT>
91 template <
class CALIBRATION,
class POINT>
94 return Point2_(internal::project6<CALIBRATION, POINT>, x, p, K);
97 template <
class CALIBRATION>
99 return Point2_(K, &CALIBRATION::uncalibrate, xy_hat);
Expression class that supports automatic differentiation.
Definition: Expression.h:49
Point2_ project(const Point3_ &p_cam)
Expression version of PinholeBase::Project.
Definition: expressions.h:57
Point3 transform_to(const Point3 &p, OptionalJacobian< 3, 6 > Dpose=boost::none, OptionalJacobian< 3, 3 > Dpoint=boost::none) const
takes point in world coordinates and transforms it to Pose coordinates
Definition: Pose3.cpp:319
The most common 5DOF 3D->2D calibration.
Represents a 3D point on a unit sphere.
Definition: Unit3.h:42
static Point2 Project(const Point3 &pc, OptionalJacobian< 2, 3 > Dpoint=boost::none)
Project from 3D point in camera coordinates into image Does not throw a CheiralityException, even if pc behind image plane.
Definition: CalibratedCamera.cpp:88
OptionalJacobian is an Eigen::Ref like class that can take be constructed using either a fixed size o...
Definition: OptionalJacobian.h:39
Point3 unrotate(const Point3 &p, OptionalJacobian< 3, 3 > H1=boost::none, OptionalJacobian< 3, 3 > H2=boost::none) const
rotate point from world to rotated frame
Definition: Rot3.cpp:134
Calibration used by Bundler.
Point3 rotate(const Point3 &p, OptionalJacobian< 3, 3 > H1=boost::none, OptionalJacobian< 3, 3 > H2=boost::none) const
rotate point from rotated coordinate frame to world
Definition: Rot3M.cpp:120
P rotate(const T &r, const P &pt)
rotation functions
Definition: lieProxies.h:47
Base class for all pinhole cameras.
Definition: PinholeCamera.h:33
Give fixed size dimension of a type, fails at compile time if dynamic.
Definition: Manifold.h:164
Point2 transform_to(const Point2 &point, OptionalJacobian< 2, 3 > H1=boost::none, OptionalJacobian< 2, 2 > H2=boost::none) const
Return point coordinates in pose coordinate frame.
Definition: Pose2.cpp:201
Point3 transform_from(const Point3 &p, OptionalJacobian< 3, 6 > Dpose=boost::none, OptionalJacobian< 3, 3 > Dpoint=boost::none) const
takes point in Pose coordinates and transforms it to world coordinates
Definition: Pose3.cpp:303
Global functions in a separate testing namespace.
Definition: chartTesting.h:28