在 AI 课程中,我们有一个机器人,它的手臂有 7 个关节。每个关节可以旋转不同的方向。我需要知道最后会在哪里。我一直在尝试进行 3d 矩阵乘法,它适用于一个关节,但是一旦我添加另一个关节,它就不会与我使用 Java3D api 制作的模型对齐。这就是我试图计算第二个关节的位置的方式。
double[][] b = {{0, 0, 0, 1}};
// Joint 1
b = HercMatrix.MatMul(b, HercMatrix.getTranslation(0, 0, -110));
b = HercMatrix.MatMul(b, HercMatrix.getRotation(0, arm.getJointAngle(0), 0));
// Joint 2
b = HercMatrix.MatMul(b, HercMatrix.getTranslation(0, 0, -250));
b = HercMatrix.MatMul(b, HercMatrix.getRotation(arm.getJointAngle(1), 0, 0));
System.out.println("Matrix: " + b[0][0] + ", " + b[0][1] + ", " + b[0][2]);
我想这是我应用乘法的方式。我知道事实上这不是我的 matmul 或矩阵生成代码,我已经单独测试了所有这些。
我的第二个平移需要在第一个关节角度的相对 x 轴上。但我不知道这是否是我的做法......
非常感谢任何帮助或想法。