robotis_linear_algebra.h
Go to the documentation of this file.
1 /*******************************************************************************
2 * Copyright 2018 ROBOTIS CO., LTD.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *******************************************************************************/
16 
17 /*
18  * robotis_linear_algebra.h
19  *
20  * Created on: June 7, 2016
21  * Author: SCH
22  */
23 
24 #ifndef ROBOTIS_MATH_ROBOTIS_LINEAR_ALGEBRA_H_
25 #define ROBOTIS_MATH_ROBOTIS_LINEAR_ALGEBRA_H_
26 
27 #define EIGEN_NO_DEBUG
28 #define EIGEN_NO_STATIC_ASSERT
29 
30 #include <cmath>
31 
32 #include <eigen3/Eigen/Dense>
33 #include "step_data_define.h"
34 
35 namespace robotis_framework
36 {
37 
38 Eigen::Vector3d getTransitionXYZ(double position_x, double position_y, double position_z);
39 Eigen::Matrix4d getTransformationXYZRPY(double position_x, double position_y, double position_z , double roll, double pitch, double yaw);
40 Eigen::Matrix4d getInverseTransformation(const Eigen::MatrixXd& transform);
41 Eigen::Matrix3d getInertiaXYZ(double ixx, double ixy, double ixz , double iyy , double iyz, double izz);
42 Eigen::Matrix3d getRotationX(double angle);
43 Eigen::Matrix3d getRotationY(double angle);
44 Eigen::Matrix3d getRotationZ(double angle);
45 Eigen::Matrix4d getRotation4d(double roll, double pitch, double yaw);
46 Eigen::Matrix4d getTranslation4D(double position_x, double position_y, double position_z);
47 
48 Eigen::Vector3d convertRotationToRPY(const Eigen::Matrix3d& rotation);
49 Eigen::Matrix3d convertRPYToRotation(double roll, double pitch, double yaw);
50 Eigen::Quaterniond convertRPYToQuaternion(double roll, double pitch, double yaw);
51 Eigen::Quaterniond convertRotationToQuaternion(const Eigen::Matrix3d& rotation);
52 Eigen::Vector3d convertQuaternionToRPY(const Eigen::Quaterniond& quaternion);
53 Eigen::Matrix3d convertQuaternionToRotation(const Eigen::Quaterniond& quaternion);
54 
55 Eigen::Matrix3d calcHatto(const Eigen::Vector3d& matrix3d);
56 Eigen::Matrix3d calcRodrigues(const Eigen::Matrix3d& hat_matrix, double angle);
57 Eigen::Vector3d convertRotToOmega(const Eigen::Matrix3d& rotation);
58 Eigen::Vector3d calcCross(const Eigen::Vector3d& vector3d_a, const Eigen::Vector3d& vector3d_b);
59 double calcInner(const Eigen::MatrixXd& vector3d_a, const Eigen::MatrixXd& vector3d_b);
60 
61 Pose3D getPose3DfromTransformMatrix(const Eigen::Matrix4d& transform);
62 
63 }
64 
65 
66 
67 #endif /* ROBOTIS_MATH_ROBOTIS_LINEAR_ALGEBRA_H_ */
Eigen::Matrix3d getRotationZ(double angle)
Eigen::Matrix4d getTranslation4D(double position_x, double position_y, double position_z)
Eigen::Matrix3d getRotationX(double angle)
Eigen::Matrix3d getRotationY(double angle)
Eigen::Quaterniond convertRPYToQuaternion(double roll, double pitch, double yaw)
Eigen::Matrix3d calcHatto(const Eigen::Vector3d &matrix3d)
Eigen::Matrix3d calcRodrigues(const Eigen::Matrix3d &hat_matrix, double angle)
Eigen::Vector3d convertRotToOmega(const Eigen::Matrix3d &rotation)
Eigen::Matrix4d getInverseTransformation(const Eigen::MatrixXd &transform)
Eigen::Quaterniond convertRotationToQuaternion(const Eigen::Matrix3d &rotation)
double calcInner(const Eigen::MatrixXd &vector3d_a, const Eigen::MatrixXd &vector3d_b)
Eigen::Vector3d convertQuaternionToRPY(const Eigen::Quaterniond &quaternion)
Eigen::Matrix4d getTransformationXYZRPY(double position_x, double position_y, double position_z, double roll, double pitch, double yaw)
Eigen::Vector3d getTransitionXYZ(double position_x, double position_y, double position_z)
Eigen::Vector3d calcCross(const Eigen::Vector3d &vector3d_a, const Eigen::Vector3d &vector3d_b)
Eigen::Matrix3d convertQuaternionToRotation(const Eigen::Quaterniond &quaternion)
Eigen::Matrix3d convertRPYToRotation(double roll, double pitch, double yaw)
Eigen::Vector3d convertRotationToRPY(const Eigen::Matrix3d &rotation)
Pose3D getPose3DfromTransformMatrix(const Eigen::Matrix4d &transform)
Eigen::Matrix3d getInertiaXYZ(double ixx, double ixy, double ixz, double iyy, double iyz, double izz)
Eigen::Matrix4d getRotation4d(double roll, double pitch, double yaw)


robotis_math
Author(s): SCH , Kayman , Jay Song
autogenerated on Fri Jul 17 2020 03:17:50