我有一个(对我来说)有趣的问题。我正在为V4的OpenServo.org工作,试图确定旅行弧长度及其方向。
我有一个磁编码器,返回轴的位置从0到4095。
伺服机有两个逻辑端点,称之为MAX和MIN,其在软件中设置并可随时更改,并且轴必须在MAX和MIN位置之间的一个弧线上旋转(即运动)。例如,在图片中,蓝色弧是有效的,但红色弧对于包括MIN和MAX之间的所有旅行都无效。
我正在尝试使用仅整数运算的简单算法,它可以告诉我在MIN和MAX限制下,任何两个点A和B之间的距离,其中A可以是当前位置,而B是目标位置,或者B是当前位置,而A是目标位置(这由从B到A的负距离表示)。请注意,允许旅行的一侧已知,它可能是“红色”或“蓝色”。
问题是当4095/0存在于ARC中时,计算变得有点有趣。