SaDVIO
Namespaces | Functions
geometry.h File Reference
#include <cmath>
#include <limits>
#include <Eigen/Eigenvalues>
#include <opencv2/core.hpp>
#include "isaeslam/typedefs.h"
Include dependency graph for geometry.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 isae
 
 isae::geometry
 

Functions

template<typename Derived >
Eigen::Matrix3d isae::geometry::skewMatrix (const Eigen::MatrixBase< Derived > &w)
 Computes the skew matrix of a given 3D vector. More...
 
Eigen::Vector3d isae::geometry::FromskewMatrix (const Eigen::Matrix3d &skew)
 Computes the 3D vector from a given skew matrix. More...
 
Eigen::Matrix3d isae::geometry::so3_rightJacobian (const Eigen::Vector3d &w)
 Compute the right jacobian on SO(3) manifold. More...
 
Eigen::Matrix3d isae::geometry::so3_leftJacobian (const Eigen::Vector3d &w)
 Compute the left jacobian on SO(3) manifold. More...
 
Eigen::Vector3d isae::geometry::rotationMatrixToEulerAnglesEigen (Eigen::Matrix3d R)
 Compute the Euler angle representation of a rotation matrix. More...
 
Eigen::Matrix3d isae::geometry::xFront2zFront ()
 Rotation matrix that rotates a right handed frame with X front to a frame with Z front. More...
 
Eigen::Matrix3d isae::geometry::zFront2xFront ()
 Rotation matrix that rotates a right handed frame with Z front to a frame with X front. More...
 
Eigen::Matrix3d isae::geometry::xRight2xFront ()
 Rotation matrix that rotates a right handed frame with X right to a frame with X front. More...
 
Eigen::Matrix3d isae::geometry::directionVector2Rotation (Eigen::Vector3d v, const Eigen::Vector3d &reference_vector=Eigen::Vector3d(1, 0, 0))
 Gives the rotation matrix from a direction vector. More...
 
Eigen::Vector3d isae::geometry::Rotation2directionVector (const Eigen::Matrix3d &R, const Eigen::Vector3d &reference_vector=Eigen::Vector3d(1, 0, 0))
 Gives the direction vector from a rotation matrix. More...
 
Eigen::Matrix3d isae::geometry::exp_so3 (const Eigen::Vector3d &v)
 Compute the exponential of the SO(3) manifold. More...
 
Eigen::Vector3d isae::geometry::log_so3 (const Eigen::Matrix3d &M)
 Compute the logarithm of the SO(3) manifold. More...
 
Vector6d isae::geometry::se3_RTtoVec6d (Eigen::Affine3d RT)
 Compute the logarithm of the SO(3)xT(3) composite manifold. More...
 
Eigen::Affine3d isae::geometry::se3_Vec6dtoRT (Vector6d pose)
 Compute the Exponential of the SO(3)xT(3) composite manifold. More...
 
Eigen::Affine3d isae::geometry::se3_doubleVec6dtoRT (const double *pose)
 Compute the Exponential of the SO(3)xT(3) composite manifold from a double*. More...
 
Eigen::Affine3d isae::geometry::se3_doubleVec3dtoRT (const double *p3d)
 Turns a point 3d in double* into an Affine3d with Id rotation. More...
 
template<typename T >
Eigen::Transform< T, 3, 4 > isae::geometry::se3_doubleVec6dtoRT (const T *pose)
 Compute the logarithm of the SO(3)xT(3) composite manifold from a double*. More...
 
double isae::geometry::getAngle (Eigen::Vector3d p, Eigen::Vector3d p1, Eigen::Vector3d p2)
 Get the angle formed by the segments p-p1 and p-p2. More...
 
template<typename Derived = Eigen::VectorXd>
bool isae::geometry::pointInTriangle (Derived pt, std::vector< Derived > triangle)
 Check if a point is in a triangle with the barycentric technique. More...
 
Eigen::Matrix2d isae::geometry::cov2dTriangle (std::vector< Eigen::Vector2d > triangle)
 Computes the covariance of a 2D triangle according to CGAL library. More...
 
double isae::geometry::areaTriangle (std::vector< Eigen::Vector2d > triangle)
 Compute the area of a 2D triangle. More...
 
Eigen::MatrixXd isae::geometry::J_norm (Eigen::Vector3d X)
 
Eigen::Matrix3d isae::geometry::J_normalization (Eigen::Vector3d X)
 
Eigen::Matrix3d isae::geometry::J_XcrossA (Eigen::Vector3d A)
 
Eigen::Matrix3d isae::geometry::J_AcrossX (Eigen::Vector3d A)
 
Eigen::Matrix3d isae::geometry::J_Rexpwt (Eigen::Matrix3d R, Eigen::Matrix3d expw, Eigen::Vector3d t)