如何基于 openpose 3d 从两个 Vector3 坐标获取欧拉角?

How do I get eulerangles from two Vector3 coordinates based on openpose 3d?

简而言之。我想制作以下程序。

输入:两个Vector3坐标 P1 = (x1, y1, z1) P2 = (x2, y2, z2)

输出:一个欧拉角(P1->P2 或 P2->P1)。

我正在尝试将 3d openpose 关节数据应用于机器人手臂控制。 3d openpose数据由Vector3(x, y, z)构建。 但我必须使用 EulerAngles 来控制机械臂。

请告诉我如何从两个 Vector3 坐标计算 EulerAngles。

下图概述了我想要做的事情。 手绘插画请见谅
outline diagram

以下是代码的简单总结

def convert_pos2angle(P1, P2):
    
    ## some code here.
    

    return angle


def main():
    #sample input
    P1 = [0, 0, 0]
    P2 = [1, 1, 1]
    
    #convert
    angle = convert_pos2angle(P1, P2)

    print(angle)

    

我自己解决了这个问题。 我在 GitHub 上找到了项目“video2bvh”。 它将 openpose 转换为 BVH 数据。 这些程序运行良好。

GitHub: https://github.com/KevinLTT/video2bvh