Robot Dynamics Library
Namespaces | Enumerations | Functions
rdl_mathutils.hpp File Reference
#include <assert.h>
#include <cmath>
#include "rdl_dynamics/rdl_eigenmath.hpp"
Include dependency graph for rdl_mathutils.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 RobotDynamics
 Namespace for all structures of the RobotDynamics library.
 
 RobotDynamics::Math
 Math types such as vectors and matrices and utility functions.
 

Enumerations

enum  RobotDynamics::Math::LinearSolver {
  RobotDynamics::Math::LinearSolverUnknown = 0 , RobotDynamics::Math::LinearSolverPartialPivLU , RobotDynamics::Math::LinearSolverColPivHouseholderQR , RobotDynamics::Math::LinearSolverHouseholderQR ,
  RobotDynamics::Math::LinearSolverLLT , RobotDynamics::Math::LinearSolverLast
}
 Available solver methods for the linear systems. More...
 

Functions

VectorNd RobotDynamics::Math::vectorFromPtr (unsigned int n, double *ptr)
 
MatrixNd RobotDynamics::Math::matrixFromPtr (unsigned int rows, unsigned int cols, double *ptr, bool row_major=true)
 
bool RobotDynamics::Math::linSolveGaussElimPivot (MatrixNd A, VectorNd b, VectorNd &x)
 Solves a linear system using gaussian elimination with pivoting. More...
 
Matrix3d RobotDynamics::Math::parallel_axis (const Matrix3d &inertia, double mass, const Vector3d &com)
 Translates the inertia matrix to a new center. More...
 
Vector3d RobotDynamics::Math::angular_velocity_from_zyx_angle_rates (const Vector3d &zyx_angles, const Vector3d &zyx_angle_rates)
 convert zyx euler angles and angle rates to angular velocity More...
 
Vector3d RobotDynamics::Math::angular_velocity_from_xyz_angle_rates (const Vector3d &xyz_angles, const Vector3d &xyz_angle_rates)
 convert xyz euler angles and angle rates to angular velocity More...
 
Matrix3d RobotDynamics::Math::angular_velocity_to_zyx_angle_rates_jacobian (const Vector3d &zyx_angles, double singularity_threshold=1.e-10)
 compute the 3x3 jacobian matrix that when multiplied by the angular velocity, ordered (wx, wy, wz) returns the angular velocity vector, note that the ordering of the returned angle rates is (yaw_dot, pitch_Dot, roll_dot) More...
 
Matrix3d RobotDynamics::Math::angular_velocity_to_xyz_angle_rates_jacobian (const Vector3d &xyz_angles, double singularity_threshold=1.e-10)
 compute the 3x3 jacobian matrix that when multiplied by the angular velocity, ordered (wx, wy, wz) returns the angular velocity vector, note that the ordering of the returned angle rates is (roll_dot, pitch_dot, yaw_dot) More...
 
Vector3d RobotDynamics::Math::angular_velocity_to_zyx_angle_rates (const Vector3d &zyx_angles, const Vector3d &angular_velocity, double singularity_threshold=1.e-10)
 convert angular velocity to zyx angle rates More...
 
Vector3d RobotDynamics::Math::angular_velocity_to_xyz_angle_rates (const Vector3d &xyz_angles, const Vector3d &angular_velocity, double singularity_threshold=1.e-10)
 convert angular velocity to xyz angle rates More...
 
Vector3d RobotDynamics::Math::global_angular_velocity_from_rates (const Vector3d &zyx_angles, const Vector3d &zyx_rates)
 
Vector3d RobotDynamics::Math::angular_acceleration_from_zyx_angle_rates (const Vector3d &zyx_angles, const Vector3d &zyx_angle_rates, const Vector3d &zyx_angle_rates_dot)
 calculate angular acceleration from zyx angles, angle rates, and angle accelerations More...
 
Vector3d RobotDynamics::Math::angular_acceleration_from_xyz_angle_rates (const Vector3d &xyz_angles, const Vector3d &xyz_angle_rates, const Vector3d &xyz_angle_rates_dot)
 calculate angular acceleration from zyx angles, angle rates, and angle accelerations More...
 
void RobotDynamics::Math::SparseFactorizeLTL (Model &model, Math::MatrixNd &H)
 
void RobotDynamics::Math::SparseMultiplyHx (Model &model, Math::MatrixNd &L)
 
void RobotDynamics::Math::SparseMultiplyLx (Model &model, Math::MatrixNd &L)
 
void RobotDynamics::Math::SparseMultiplyLTx (Model &model, Math::MatrixNd &L)
 
void RobotDynamics::Math::SparseSolveLx (Model &model, Math::MatrixNd &L, Math::VectorNd &x)
 
void RobotDynamics::Math::SparseSolveLTx (Model &model, Math::MatrixNd &L, Math::VectorNd &x)