26 using namespace gtsam;
39 static Cal3Unified K(100, 105, 0.0, 320, 240, 1
e-3, 2.0 * 1
e-3, 3.0 * 1
e-3,
45 Point2 p_i(364.7791831734982, 305.6677211952602);
105 2.0 * 1
e-3 + 8, 3.0 * 1
e-3 + 9, 4.0 * 1
e-3 + 10,
112 d << 2, 3, 4, 5, 6, 7, 8, 9, 10, 1;
133 std::stringstream
os;
134 os <<
"fx: " << cal.
fx() <<
", fy: " << cal.
fy() <<
", s: " << cal.
skew()
135 <<
", px: " << cal.
px() <<
", py: " << cal.
py() <<
", k1: " << cal.
k1()
136 <<
", k2: " << cal.
k2() <<
", p1: " << cal.
p1() <<
", p2: " << cal.
p2()
137 <<
", xi: " << cal.
xi();
bool assert_stdout_equal(const std::string &expected, const V &actual)
const gtsam::Symbol key('X', 0)
Point2 calibrate_(const Cal3Unified &k, const Point2 &pt)
Provides additional testing facilities for common data structures.
Concept check for values that can be used in unit tests.
static int runAllTests(TestResult &result)
Point2 uncalibrate_(const Cal3Unified &k, const Point2 &pt)
A non-templated config holding any types of Manifold-group elements.
const ValueType at(Key j) const
static Cal3Unified K(100, 105, 0.0, 320, 240, 1e-3, 2.0 *1e-3, 3.0 *1e-3, 4.0 *1e-3, 0.1)
double p2() const
Second tangential distortion coefficient.
size_t dim() const override
Return dimensions of calibration manifold object.
Point2 uncalibrate(const Point2 &p, OptionalJacobian< 2, 10 > Dcal={}, OptionalJacobian< 2, 2 > Dp={}) const
bool assert_equal(const Matrix &expected, const Matrix &actual, double tol)
double py() const
image center in y
Some functions to compute numerical derivatives.
static const Point3 pt(1.0, 2.0, 3.0)
Cal3Unified retract(const Vector &d) const
Given delta vector, update calibration.
internal::FixedSizeMatrix< Y, X1 >::type numericalDerivative21(const std::function< Y(const X1 &, const X2 &)> &h, const X1 &x1, const X2 &x2, double delta=1e-5)
Point2 nPlaneToSpace(const Point2 &p) const
Convert a normalized unit plane point to 3D space.
#define EXPECT(condition)
double fx() const
focal length x
double xi() const
mirror parameter
Vector localCoordinates(const Cal3Unified &T2) const
Given a different calibration, calculate update to obtain it.
Array< double, 1, 3 > e(1./3., 0.5, 2.)
EIGEN_DEVICE_FUNC const Scalar & q
static Point2 p(0.5, 0.7)
Calibration of a omni-directional camera with mirror + lens radial distortion.
#define GTSAM_CONCEPT_MANIFOLD_INST(T)
#define EXPECT_LONGS_EQUAL(expected, actual)
ofstream os("timeSchurFactors.csv")
static size_t Dim()
Return dimensions of calibration manifold object.
internal::FixedSizeMatrix< Y, X2 >::type numericalDerivative22(std::function< Y(const X1 &, const X2 &)> h, const X1 &x1, const X2 &x2, double delta=1e-5)
double p1() const
First tangential distortion coefficient.
void insert(Key j, const Value &val)
Point2 spaceToNPlane(const Point2 &p) const
Convert a 3D point to normalized unit plane.
TEST(SmartFactorBase, Pinhole)
Unified Calibration Model, see Mei07icra for details.
double k1() const
First distortion coefficient.
std::uint64_t Key
Integer nonlinear key type.
void Print(const CONTAINER &keys, const string &s, const KeyFormatter &keyFormatter)
double fy() const
focal length y
Point2 calibrate(const Point2 &p, OptionalJacobian< 2, 10 > Dcal={}, OptionalJacobian< 2, 2 > Dp={}) const
Conver a pixel coordinate to ideal coordinate.
#define GTSAM_CONCEPT_TESTABLE_INST(T)
double k2() const
Second distortion coefficient.
double px() const
image center in x