|
MROB
|
Special Euclidean (group) in 3d Is the group representing rotations and translations, that is, rigid body transformations. SE3 = {T = [R t] | R SO3 , t Re^3 } [0 1] Associated to the groups of RBT, there is the Lie algebra se3 representing the same transformation in the tangent space around the identity. Particularly, xi =[w , v] Re^6, where w Re^3 represents the rotation and v the translation. We will preserve this order in this class. More...
Namespaces | |
| PCRegistration | |
Classes | |
| class | CreatePoints |
| class | EigenFactor |
| class | EigenFactorPlane |
| class | EigenFactorPlaneCenter |
| class | EigenFactorPlaneCoordinatesAlign |
| class | EigenFactorPlaneRaw |
| class | EigenFactorPoint |
| class | Factor |
| class | Factor1Pose1Landmark2d |
| class | Factor1Pose1Landmark3d |
| class | Factor1Pose1Plane4d |
| class | Factor1Pose2d |
| class | Factor1Pose3d |
| class | Factor1PosePoint2Plane |
| class | Factor1PosePoint2Point |
| class | Factor2Poses2d |
| class | Factor2Poses2dOdom |
| class | Factor2Poses3d |
| class | Factor2Poses3d2obs |
| class | FactorCameraProj3dLine |
| class | FactorCameraProj3dPoint |
| class | FGraph |
| class | FGraphSolve |
| class | FGraphSolveDense |
| class | Node |
| class | NodeLandmark2d |
| class | NodeLandmark3d |
| class | NodePlane4d |
| class | NodePose2d |
| class | NodePose3d |
| class | Optimizer |
| class | OptimizerDense |
| class | OptimizerSparse |
| class | PiFactorPlane |
| class | Plane |
| class | PlaneRegistration |
| class | SamplePlanarSurface |
| class | SampleUniformSE3 |
| class | SE3 |
| class | SE3Cov |
| class | SO3 |
| class | TimeProfiling |
Functions | |
| double | wrap_angle (double angle) |
| Mat4 | hat6 (const Mat61 &xi) |
| Mat61 | vee6 (const Mat4 &xi_hat) |
| bool | isSE3 (const Mat4 &T) |
| Mat4 | SE3GenerativeMatrix (uint_t coordinate) |
| Mat6 | curly_wedge (const Mat61 &xi) |
| Curly wedge operator. More... | |
| Mat3 | hat3 (const Mat31 &w) |
| Mat31 | vee3 (const Mat3 &w_hat) |
| bool | isSO3 (const Mat3 &R) |
| Mat3 | quat_to_so3 (const Eigen::Ref< const Mat41 > v) |
| Mat41 | so3_to_quat (const Eigen::Ref< const Mat3 > R) |
| Mat3 | rpy_to_so3 (const Eigen::Ref< const Mat31 > v) |
| Mat41 | estimate_plane (MatRefConst X, bool flagCentered=true) |
| Mat31 | estimate_normal (MatRefConst X) |
| Mat31 | estimate_centroid (MatRefConst X) |
Variables | |
| const std::vector< Mat4 > | LieGenerative |
| const std::vector< Mat4 > | LieDoubleGenerative |
Special Euclidean (group) in 3d Is the group representing rotations and translations, that is, rigid body transformations. SE3 = {T = [R t] | R SO3 , t Re^3 } [0 1] Associated to the groups of RBT, there is the Lie algebra se3 representing the same transformation in the tangent space around the identity. Particularly, xi =[w , v] Re^6, where w Re^3 represents the rotation and v the translation. We will preserve this order in this class.
Special Orthogonal (group) in 3d Is the group representing rotations SO3 = {R GL(3) | R'R = I , det R = 1} where GL(n) is the general linear group of matrices nxn (inverse exists) Associated to the group SO3, there is the Lie algebra so3 representing the same transformation in the tangent space around the identity. Particularly, w Re^3 represents the rotation.
Class SE3Cov for Special eualidean group poses compounding. Class SE3Cov inherits properties of SE3 class and containes additional attribute covariance_ to store the corresponding uncertainty. Beside that, SE3Cov has two compounding methods of different order. Implemented according to the paper: : http://ncfrn.mcgill.ca/members/pubs/barfoot_tro14.pdf.
The Factor1Poses2d is a vertex representing the distribution of a nodePose2d, pretty much like an anchoring factor.
The state is an observed RBT, coincident with the node state it is connected to.
In particular, the residual of this factor is: r = obs-x
In addition, we have added some utilities regarding alternative methods to build SO(3) and connect them to the manifold representation.
| Mat6 mrob::curly_wedge | ( | const Mat61 & | xi | ) |
Curly wedge operator.
| xi | - input state vector |
| Mat31 mrob::estimate_centroid | ( | MatRefConst | X | ) |
Estimate centroid: given a set of points, in a Nx3 array, calculates the centroid point p R^3
| Mat31 mrob::estimate_normal | ( | MatRefConst | X | ) |
Estimate normal: given a set of points, in a Nx3 array, calculates the noamrl plane n R^3
| Mat41 mrob::estimate_plane | ( | MatRefConst | X, |
| bool | flagCentered = true |
||
| ) |
Estimate plane: given a set of points, in a Nx3 array, calculates the plane as pi = [n, d] P^3
| Mat3 mrob::hat3 | ( | const Mat31 & | w | ) |
Functions specified outside the class, since they are not strictly necessary as a class method.
The hat operator (^) constructs a skew-symetric matrix from a R^3 such as [0 -w3 w2] [w3 0 -w1] [-w2 w1 0]
| Mat4 mrob::hat6 | ( | const Mat61 & | xi | ) |
Hat operator xi^ = [0 -w3 w2 v1 w3 0 -w1 v2 -w2 w1 0 v3 0 0 0 0]
| Mat3 mrob::quat_to_so3 | ( | const Eigen::Ref< const Mat41 > | v | ) |
Function converting from quaternion q = [qx, qy, qz, qw](Eigen convention) to a rotation matrix 3x3 XXX: ref eigen did not return a valid matrix (probably lifetime was managed from cpp and this object was local to this scope)
| Mat3 mrob::rpy_to_so3 | ( | const Eigen::Ref< const Mat31 > | v | ) |
Function converting from roll pitch yaw v = [r, p, y](Eigen convention) to a rotation matrix 3x3
| Mat4 mrob::SE3GenerativeMatrix | ( | uint_t | coordinate | ) |
Returns the generative matrix given the coordinate, considering xi(0..5) = [theta(0..2), rho(3..5)]
| Mat41 mrob::so3_to_quat | ( | const Eigen::Ref< const Mat3 > | R | ) |
Function converting from a rotation matrix 3x3 to quaternion q = [qx, qy, qz, qw](Eigen convention)
| Mat31 mrob::vee3 | ( | const Mat3 & | w_hat | ) |
The vee operator (v) gets the parameters w from a skew-symetric matrix of the form [0 -w3 w2] [w3 0 -w1] [-w2 w1 0]
| Mat61 mrob::vee6 | ( | const Mat4 & | xi_hat | ) |
Vee operator (v), the inverse of hat
| double mrob::wrap_angle | ( | double | angle | ) |
utility function for 2D poses to wrap angles into [-pi,pi]
| const std::vector< Mat4> mrob::LieDoubleGenerative |
Global variables declared here, defined once in the cpp. These are common data to access, so we make it accessible the fastest way. Returns the double generative matrix given the coordinates (i,j), considering xi(0..5) = [theta(0..2), rho(3..5)] This corresponds to the differential form:
d Exp / d xi = 0.5 (Gi *Gj + Gj*Gi)
| const std::vector<Mat4> mrob::LieGenerative |
Returns the double generative matrix given the coordinates (i,j), considering xi(0..5) = [theta(0..2), rho(3..5)] This corresponds to the differential form:
d Exp / d xi = 0.5 (Gi *Gj + Gj*Gi) Global variables declared here, defined once in the cpp.
These are common data to access, so we make it accessible the fastest way. generative matrix given the coordinate, considering xi(0..5) = [theta(0..2), rho(3..5)]
1.8.13