我有一个使用光学鼠标作为位置跟踪的机器人。基本上,随着机器人的移动,它能够使用鼠标跟踪 X 和 Y 方向的变化。鼠标还跟踪您正在移动的方向 - 即负 X 或正 X。这些值被汇总到单独的 X 和 Y 寄存器中。
现在,机器人在原地旋转并仅向前移动。因此,理想情况下,机器人的运动是在特定角度以直线运动(尽管如果您偏离方向,鼠标跟踪可以拾取偏差)。机器人的一组特定运动如下:
A:旋转 45 度,移动 3 英寸
B:旋转 90 度,移动 10 英寸
C:旋转 -110 度,移动 5 英寸
D:旋转 10 度,移动 1 英寸
但是每次鼠标 X 和鼠标 Y 寄存器都会给出您在每个方向上移动的实际距离。
现在,如果我只想重复从 A 到 D 的运动集,我该如何使用我已经收集的信息来做到这一点。我知道我基本上可以总结我已经输入的所有角度和距离,但是如果每个移动命令中存在很大的错误,这将被证明是不准确的。如何使用鼠标中的原始信息?一位朋友提供了一个想法,即我可以连续地对鼠标值进行正弦和余弦运算并计算最终向量,但我不确定这将如何工作。
问题是鼠标只给出相对读数,因此旋转或向后移动,您可能会擦除信息。所以,是的,我想知道的是如何实现该算法,以便它可以持续跟踪变化,如果您最初以之字形移动到达那里,它可以为您提供最短路径。