我正在尝试使用指南针移动机器人。我们使用罗盘使机器人直线移动,它使用2个轮子,它们移动有点不同。 所以我们设置一个介于0和359之间的值作为方向,然后检查当前的方向,计算错误并修复它。像error = current_direction - 实际方向。指南针:从359到0度
问题是,如果例如我们的init方向是90度,而我们的机器人是45,那么错误将会是45,它会修复它。如果它是0,错误将是90,它会修复它。问题是,如果它移动的比例大于0并且例如变为359,则错误将是-269,因此不是在一个方向上移动90,而是在另一个方向上移动-29。
我使用错误的符号来决定要移动哪个轮来修复方向。 任何想法如何解决它?
将这些'if's改为'while':D – 2011-04-05 13:03:51
@Jakub Hampl:你叫它Dizzybot? :D – Piskvor 2011-04-05 13:19:24