gtsam 4.1.1
gtsam
|
Represents an infinite plane in 3D, which is composed of a planar normal and its perpendicular distance to the origin.
Currently it provides a transform of the plane, and a norm 1 differencing of two planes. Refer to Trevor12iros for more math details.
Public Member Functions | |
OrientedPlane3 | transform (const Pose3 &xr, OptionalJacobian< 3, 3 > Hp=boost::none, OptionalJacobian< 3, 6 > Hr=boost::none) const |
Transforms a plane to the specified pose. More... | |
Vector3 | errorVector (const OrientedPlane3 &other, OptionalJacobian< 3, 3 > H1=boost::none, OptionalJacobian< 3, 3 > H2=boost::none) const |
Computes the error between the two planes, with derivatives. More... | |
size_t | dim () const |
Dimensionality of tangent space = 3 DOF. | |
OrientedPlane3 | retract (const Vector3 &v, OptionalJacobian< 3, 3 > H=boost::none) const |
The retract function. | |
Vector3 | localCoordinates (const OrientedPlane3 &s) const |
The local coordinates function. | |
Vector4 | planeCoefficients () const |
Returns the plane coefficients. | |
Unit3 | normal () const |
Return the normal. | |
double | distance () const |
Return the perpendicular distance to the origin. | |
Constructors | |
OrientedPlane3 () | |
Default constructor. | |
OrientedPlane3 (const Unit3 &n, double d) | |
Construct from a Unit3 and a distance. | |
OrientedPlane3 (const Vector4 &vec) | |
Construct from a vector of plane coefficients. | |
OrientedPlane3 (double a, double b, double c, double d) | |
Construct from four numbers of plane coeffcients (a, b, c, d) | |
Testable | |
void | print (const std::string &s=std::string()) const |
The print function. | |
bool | equals (const OrientedPlane3 &s, double tol=1e-9) const |
The equals function with tolerance. | |
Static Public Member Functions | |
static size_t | Dim () |
Dimensionality of tangent space = 3 DOF. | |
Public Types | |
enum | { dimension = 3 } |
Vector3 gtsam::OrientedPlane3::errorVector | ( | const OrientedPlane3 & | other, |
OptionalJacobian< 3, 3 > | H1 = boost::none , |
||
OptionalJacobian< 3, 3 > | H2 = boost::none |
||
) | const |
Computes the error between the two planes, with derivatives.
This uses Unit3::errorVector, as opposed to the other .error() in this class, which uses Unit3::localCoordinates. This one has correct derivatives. NOTE(hayk): The derivatives are zero when normals are exactly orthogonal.
other | the other plane |
OrientedPlane3 gtsam::OrientedPlane3::transform | ( | const Pose3 & | xr, |
OptionalJacobian< 3, 3 > | Hp = boost::none , |
||
OptionalJacobian< 3, 6 > | Hr = boost::none |
||
) | const |
Transforms a plane to the specified pose.
xr | a transformation in current coordiante |
Hp | optional Jacobian wrpt the destination plane |
Hr | optional jacobian wrpt the pose transformation |