13 Dp->block<2, 2>(0, 0) = ((incR.
matrix()).transpose()).block<2, 2>(0, 0);
19 Dv->block<2, 2>(0, 0) = Dw.block<2, 2>(0, 0);
34 Matrix3 Dwp = D_log * D_log_wp;
36 Dp->block<2, 2>(0, 0) = Dwp.block<2, 2>(0, 0);
42 Dq->block<2, 2>(0, 0) = D_log.block<2, 2>(0, 0);
45 local << omega[0], omega[1], q.
a_ -
a_, q.
b_ -
b_;
50 std::cout << s << std::endl;
52 std::cout <<
"a: " <<
a_ <<
", b: " <<
b_ << std::endl;
57 return fabs(diff[0]) < tol &&
fabs(diff[1]) < tol
73 Matrix34 D_vec_line = Matrix34::Zero();
74 D_vec_line.col(0) = a_ *
R_.
r3();
75 D_vec_line.col(1) = b_ *
R_.
r3();
76 D_vec_line.col(2) =
R_.
r2();
77 D_vec_line.col(3) = -
R_.
r1();
79 *Dline = D_unit_line * D_vec_line;
91 return rotated_center + distance *
R_.
r3();
105 Matrix3 lRc = (cRl.
matrix()).transpose();
108 Dpose->block<2, 3>(0, 0) = -lRc.block<2, 3>(0, 0);
110 Dpose->block<2, 3>(2, 3) = -lRc.block<2, 3>(0, 0);
113 Dline->setIdentity();
114 (*Dline)(3, 0) = -t[2];
115 (*Dline)(2, 1) = t[2];
117 return Line3(cRl, c_ab[0], c_ab[1]);
void print(const std::string &s="") const
Point3 r1() const
first column
const Point3 & translation(OptionalJacobian< 3, 6 > Hself={}) const
get translation
friend Line3 transformTo(const Pose3 &wTc, const Line3 &wL, OptionalJacobian< 4, 6 > Dpose, OptionalJacobian< 4, 4 > Dline)
Double_ distance(const OrientedPlane3_ &p)
Rot3 is a 3D rotation represented as a rotation matrix if the preprocessor symbol GTSAM_USE_QUATERNIO...
Point3 point(double distance=0) const
static Rot3 Expmap(const Vector3 &v, OptionalJacobian< 3, 3 > H={})
Point3 r2() const
second column
Rot3 inverse() const
inverse of a rotation
Represents a 3D point on a unit sphere.
static const Line3 l(Rot3(), 1, 1)
Vector4 localCoordinates(const Line3 &q, OptionalJacobian< 4, 4 > Dp={}, OptionalJacobian< 4, 4 > Dq={}) const
bool equals(const Line3 &l2, double tol=10e-9) const
static Vector3 Logmap(const Rot3 &R, OptionalJacobian< 3, 3 > H={})
Array< int, Dynamic, 1 > v
Vector::Scalar omega(const Vector &t, const Vector &s, RealScalar angle)
EIGEN_DEVICE_FUNC const Scalar & q
4 dimensional manifold of 3D lines
static Unit3 FromPoint3(const Point3 &point, OptionalJacobian< 2, 3 > H={})
Named constructor from Point3 with optional Jacobian.
void print(const std::string &s="") const
const Rot3 & rotation(OptionalJacobian< 3, 6 > Hself={}) const
get rotation
Line3 retract(const Vector4 &v, OptionalJacobian< 4, 4 > Dp={}, OptionalJacobian< 4, 4 > Dv={}) const
Map< Matrix< T, Dynamic, Dynamic, ColMajor >, 0, OuterStride<> > matrix(T *data, int rows, int cols, int stride)
Unit3 project(OptionalJacobian< 2, 4 > Dline={}) const
Point3 r3() const
third column