5#ifndef AUBO_SDK_MATH_INTERFACE_H
6#define AUBO_SDK_MATH_INTERFACE_H
12#include <aubo/global_config.h>
15namespace common_interface {
88 std::vector<double>
poseAdd(
const std::vector<double> &p1,
89 const std::vector<double> &p2);
157 std::vector<double>
poseSub(
const std::vector<double> &p1,
158 const std::vector<double> &p2);
223 const std::vector<double> &p2,
316 std::vector<double>
poseTrans(
const std::vector<double> &pose_from,
317 const std::vector<double> &pose_from_to);
379 const std::vector<double> &pose_to_from);
479 const std::vector<double> &p2);
514 const std::vector<double> &p2);
561 bool poseEqual(
const std::vector<double> &p1,
const std::vector<double> &p2,
628 const std::vector<double> &rotv);
782 const std::vector<std::vector<double>> &poses);
848 const std::vector<std::vector<double>> &poses,
int type);
912 const std::vector<double> &p2,
913 const std::vector<double> &p3,
932 std::vector<double>
forceTrans(
const std::vector<double> &pose_a_in_b,
933 const std::vector<double> &force_in_a);
955 const std::vector<double> &distances,
double position,
double radius,
974 const std::vector<double> &ft_in_a);
991 std::vector<double>
deltaPoseAdd(
const std::vector<double> &pose_a_in_b,
992 const std::vector<double> &v_in_b);
1010 const std::vector<double> &pose_tar,
1011 const std::vector<double> &pose_ref);
std::vector< double > transferRefFrame(const std::vector< double > &F_b_a_old, const Vector3d &V_in_a, int type)
double poseDistance(const std::vector< double > &p1, const std::vector< double > &p2)
Calculate distance between two poses
std::vector< double > poseTrans(const std::vector< double > &pose_from, const std::vector< double > &pose_from_to)
Pose transformation
std::vector< double > forceTrans(const std::vector< double > &pose_a_in_b, const std::vector< double > &force_in_a)
std::vector< double > poseToHomMatrix(const std::vector< double > &pose)
std::vector< double > poseRotation(const std::vector< double > &pose, const std::vector< double > &rotv)
Pose rotation
ResultWithErrno calculateCircleFourthPoint(const std::vector< double > &p1, const std::vector< double > &p2, const std::vector< double > &p3, int mode)
Based on three points on an arc, calculate the position of the midpoint of the other half of the fitt...
std::vector< double > changePoseWithXYRef(const std::vector< double > &pose_tar, const std::vector< double > &pose_ref)
std::vector< double > poseAdd(const std::vector< double > &p1, const std::vector< double > &p2)
Pose addition
double poseAngleDistance(const std::vector< double > &p1, const std::vector< double > &p2)
Calculate axis-angle difference between two poses
std::vector< double > getDeltaPoseBySensorDistance(const std::vector< double > &distances, double position, double radius, double track_scale)
ResultWithErrno calibrateCoordinate(const std::vector< std::vector< double > > &poses, int type)
Calibrate coordinate system with 3 points
std::vector< double > poseSub(const std::vector< double > &p1, const std::vector< double > &p2)
Pose subtraction
bool poseEqual(const std::vector< double > &p1, const std::vector< double > &p2, double eps=5e-5)
Determine if two poses are equivalent
ResultWithErrno tcpOffsetIdentify(const std::vector< std::vector< double > > &poses)
Four point method calibration for TCP offset
std::vector< double > quaternionToRpy(const std::vector< double > &quat)
Quaternions to euler angles
std::vector< double > rpyToQuaternion(const std::vector< double > &rpy)
Euler angles to quaternions
std::vector< double > homMatrixToPose(const std::vector< double > &homMatrix)
std::vector< double > poseTransInv(const std::vector< double > &pose_from, const std::vector< double > &pose_to_from)
Pose inverse transformation
std::vector< double > poseInverse(const std::vector< double > &pose)
Get the inverse of a pose
std::vector< double > interpolatePose(const std::vector< double > &p1, const std::vector< double > &p2, double alpha)
Calculate linear interpolation
std::vector< double > deltaPoseTrans(const std::vector< double > &pose_a_in_b, const std::vector< double > &ft_in_a)
std::vector< double > deltaPoseAdd(const std::vector< double > &pose_a_in_b, const std::vector< double > &v_in_b)
std::array< double, 3 > Vector3d
std::shared_ptr< Math > MathPtr
std::tuple< std::vector< double >, int > ResultWithErrno