所以我有一个关于尝试旋转 BASE 框架的问题。
下面我有一个黄色框和一个绿色框。我知道以下内容:
1) 我知道交点,即两个 BASE 的原点在哪里。
2) 我知道黄色盒子的中心,用黄色小圆圈表示。3) 我知道黄色盒子和绿色盒子之间的角度。4) 我知道盒子的尺寸。宽度为 500 毫米,长度为 700 毫米。
我想得到的是:
a) 我想计算绿色小圆圈的位置。
我的想法如下:
1) 我可以不只创建一个 BASE_normal 框架然后做这样的事情吗:
$BASE_normal.X = 0$BASE_normal.Y = 0$BASE_normal.Z = 0$BASE_normal .A = 0$BASE_normal.B = 0$BASE_normal.C = 0
然后像这样生成一个新的碱基:
$BASE_rotated.X = 0$BASE_rotated.Y = 0$BASE_rotated.Z = 0$BASE_rotated.A = angle$BASE_rotated.B = 0$BASE_rotated.C = 0
然后我使用框的宽度和长度信息。 (即绿色和黄色大小相同)$BASE_rotated.X = LENGTH /2$BASE_rotated.Y = WIDTH /2
我能从那里得到绿色圆圈位置吗?我可以命令机器人开到那里吗?
或者我应该使用旋转矩阵的其他方式,即
代码
这可能有效,但前提是您的“ normal" base 与 $WORLD 完美对齐。如果它相对于 $WORLD 完全倾斜,那么简单地将一个数字放入 $BASE.A 将失败。
处理此问题的正确方法是几何运算符。所以,像这样的东西:代码