5#ifndef AUBO_SDK_MATH_INTERFACE_H
6#define AUBO_SDK_MATH_INTERFACE_H
12#include <aubo/global_config.h>
15namespace common_interface {
82 std::vector<double>
poseAdd(
const std::vector<double> &p1,
83 const std::vector<double> &p2);
145 std::vector<double>
poseSub(
const std::vector<double> &p1,
146 const std::vector<double> &p2);
205 const std::vector<double> &p2,
292 std::vector<double>
poseTrans(
const std::vector<double> &pose_from,
293 const std::vector<double> &pose_from_to);
349 const std::vector<double> &pose_to_from);
431 const std::vector<double> &p2);
452 const std::vector<double> &p2);
487 bool poseEqual(
const std::vector<double> &p1,
const std::vector<double> &p2,
554 const std::vector<double> &rotv);
678 const std::vector<std::vector<double>> &poses);
724 const std::vector<std::vector<double>> &poses,
int type);
771 const std::vector<double> &p2,
772 const std::vector<double> &p3,
791 std::vector<double>
forceTrans(
const std::vector<double> &pose_a_in_b,
792 const std::vector<double> &force_in_a);
814 const std::vector<double> &distances,
double position,
double radius,
833 const std::vector<double> &ft_in_a);
850 std::vector<double>
deltaPoseAdd(
const std::vector<double> &pose_a_in_b,
851 const std::vector<double> &v_in_b);
869 const std::vector<double> &pose_tar,
870 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)
计算两个位姿的位置距离
std::vector< double > poseTrans(const std::vector< double > &pose_from, const std::vector< double > &pose_from_to)
位姿变换
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)
姿态旋转
ResultWithErrno calculateCircleFourthPoint(const std::vector< double > &p1, const std::vector< double > &p2, const std::vector< double > &p3, int mode)
根据圆弧的三个点,计算出拟合成的圆的另一半圆弧的中间点位置
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)
double poseAngleDistance(const std::vector< double > &p1, const std::vector< double > &p2)
计算两个位姿的轴角距离
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)
Three point method calibration for TCP offset
std::vector< double > poseSub(const std::vector< double > &p1, const std::vector< double > &p2)
位姿相减
bool poseEqual(const std::vector< double > &p1, const std::vector< double > &p2, double eps=5e-5)
判断两个位姿是否相等
ResultWithErrno tcpOffsetIdentify(const std::vector< std::vector< double > > &poses)
四点法标定TCP偏移
std::vector< double > quaternionToRpy(const std::vector< double > &quat)
四元数转欧拉角
std::vector< double > rpyToQuaternion(const std::vector< double > &rpy)
欧拉角转四元数
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)
姿态逆变换
std::vector< double > poseInverse(const std::vector< double > &pose)
获取位姿的逆
std::vector< double > interpolatePose(const std::vector< double > &p1, const std::vector< double > &p2, double alpha)
计算线性插值
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