|
| std::vector< double > | arcs::common_interface::Math::poseAdd (const std::vector< double > &p1, const std::vector< double > &p2) |
| std::vector< double > | arcs::common_interface::Math::poseSub (const std::vector< double > &p1, const std::vector< double > &p2) |
| | 位姿相减
|
| std::vector< double > | arcs::common_interface::Math::interpolatePose (const std::vector< double > &p1, const std::vector< double > &p2, double alpha) |
| | 计算线性插值
|
| std::vector< double > | arcs::common_interface::Math::poseTrans (const std::vector< double > &pose_from, const std::vector< double > &pose_from_to) |
| | 位姿变换
|
| std::vector< double > | arcs::common_interface::Math::poseTransInv (const std::vector< double > &pose_from, const std::vector< double > &pose_to_from) |
| | 姿态逆变换
|
| std::vector< double > | arcs::common_interface::Math::poseInverse (const std::vector< double > &pose) |
| | 获取位姿的逆
|
| double | arcs::common_interface::Math::poseDistance (const std::vector< double > &p1, const std::vector< double > &p2) |
| | 计算两个位姿的位置距离
|
| double | arcs::common_interface::Math::poseAngleDistance (const std::vector< double > &p1, const std::vector< double > &p2) |
| | 计算两个位姿的轴角距离
|
| bool | arcs::common_interface::Math::poseEqual (const std::vector< double > &p1, const std::vector< double > &p2, double eps=5e-5) |
| | 判断两个位姿是否相等
|
| std::vector< double > | arcs::common_interface::Math::transferRefFrame (const std::vector< double > &F_b_a_old, const Vector3d &V_in_a, int type) |
| std::vector< double > | arcs::common_interface::Math::poseRotation (const std::vector< double > &pose, const std::vector< double > &rotv) |
| | 姿态旋转
|
| std::vector< double > | arcs::common_interface::Math::rpyToQuaternion (const std::vector< double > &rpy) |
| | 欧拉角转四元数
|
| std::vector< double > | arcs::common_interface::Math::quaternionToRpy (const std::vector< double > &quat) |
| | 四元数转欧拉角
|
| ResultWithErrno | arcs::common_interface::Math::tcpOffsetIdentify (const std::vector< std::vector< double > > &poses) |
| | 四点法标定TCP偏移
|
| ResultWithErrno | arcs::common_interface::Math::calibrateCoordinate (const std::vector< std::vector< double > > &poses, int type) |
| | 三点法标定坐标系
|
| ResultWithErrno | arcs::common_interface::Math::calculateCircleFourthPoint (const std::vector< double > &p1, const std::vector< double > &p2, const std::vector< double > &p3, int mode) |
| | 根据圆弧的三个点,计算出拟合成的圆的另一半圆弧的中间点位置
|
| std::vector< double > | arcs::common_interface::Math::forceTrans (const std::vector< double > &pose_a_in_b, const std::vector< double > &force_in_a) |
| std::vector< double > | arcs::common_interface::Math::getDeltaPoseBySensorDistance (const std::vector< double > &distances, double position, double radius, double track_scale) |
| std::vector< double > | arcs::common_interface::Math::deltaPoseTrans (const std::vector< double > &pose_a_in_b, const std::vector< double > &ft_in_a) |
| std::vector< double > | arcs::common_interface::Math::deltaPoseAdd (const std::vector< double > &pose_a_in_b, const std::vector< double > &v_in_b) |
| std::vector< double > | arcs::common_interface::Math::changePoseWithXYRef (const std::vector< double > &pose_tar, const std::vector< double > &pose_ref) |
| std::vector< double > | arcs::common_interface::Math::homMatrixToPose (const std::vector< double > &homMatrix) |
| std::vector< double > | arcs::common_interface::Math::poseToHomMatrix (const std::vector< double > &pose) |
| std::vector< double > arcs::common_interface::Math::poseTrans |
( |
const std::vector< double > & | pose_from, |
|
|
const std::vector< double > & | pose_from_to ) |
位姿变换
第一个参数 p_from 用于转换第二个参数 p_from_to,并返回结果。 这意味着结果是从 p_from 的坐标系开始, 然后在该坐标系中移动 p_from_to后的位姿。
这个函数可以从两个不同的角度来看。 一种是函数将 p_from_to 根据 p_from 的参数进行转换,即平移和旋转。 另一种是函数被用于获取结果姿态,先对 p_from 进行移动,然后再对 p_from_to 进行移动。 如果将姿态视为转换矩阵,它看起来像是:
T_world->to = T_world->from * T_from->to, T_x->to = T_x->from * T_from->to
这两个方程描述了姿态变换的基本原理,根据给定的起始姿态和相对于起始姿态的姿态变化,可以计算出目标姿态。
举个例子,已知B相对于A的位姿、C相对于B的位姿,求C相对于A的位姿。 第一个参数是B相对于A的位姿,第二个参数是C相对于B的位姿, 返回值是C相对于A的位姿。
- 参数
-
| pose_from | 起始位姿(空间向量) |
| pose_from_to | 相对于起始位姿的姿态变化(空间向量) |
- 返回
- 结果位姿 (空间向量)
- Python函数原型
- poseTrans(self: pyaubo_sdk.Math, arg0: List[float], arg1: List[float]) -> List[float]
- Lua函数原型
- poseTrans(pose_from: table, pose_from_to: table) -> table
- Lua示例
- pose_trans = poseTrans({0.2, 0.5, 0.1, 1.57, 0, 0},{0.2, 0.5, 0.6, 1.57, 0, 0})
- JSON-RPC请求示例
- {"jsonrpc":"2.0","method":"Math.poseTrans","params":[[0.2, 0.5, 0.1, 1.57, 0, 0],[0.2, 0.5, 0.6, 1.57, 0, 0]],"id":1}
- JSON-RPC响应示例
- {"id":1,"jsonrpc":"2.0","result":[0.4,-0.09960164640373415,0.6004776374923573,3.14,-0.0,0.0]}