0

我正在使用一个涂鸦机器人来导航一个自制的迷宫(一旦我的功能正常工作,我会改进它,我在视频中的那个只是用于测试目的。)

迷宫

我最初试图让机器人仅在 getObstacle 传感器上左右移动。我遇到了麻烦。它不会像我想要的那样向左或向右转。所以我正在考虑使用堆栈或队列。

我只想告诉机器人

if(getObstacle(1) <=6000): # once sensor reaches 6000, it will stop doing the command
   forward(1,0) # will move forward as long as getObstacle(1) is less than 6000

然后,一旦它检测到第一个障碍物,左转并继续前进

然后,一旦它检测到另一个障碍物,就向右转。

我基本上想绘制出迷宫的左转和右转,并提前告诉涂鸦者何时转弯。

所以当它第一次感觉到墙时=左转..然后向前走

当它第二次感应到墙壁时=右转..然后向前走。

如何将此代码实现到堆栈或队列中?

我现在拥有的代码完全基于传感器,而且不可靠。

这是我正在使用的示例:

def main():
    setIRPower(135)
    while True:
        left = getObstacle(0)
        center = getObstacle(1)
        right = getObstacle(2)
        # 2 feet per 1 second at 1 speed
        if (center <= 6000):
            forward(0.5, 0.3)       
        elif (center >= 6000 and right > left): #if right sensor detects value higher than left
            turnLeft(1, .55) #left turn
        else:
            turnRight(1, .55) #otherwise, turn right

我正在使用上面代码的不同变体。我只是想在队列或堆栈中实现轮流,但我不知道该怎么做。

谢谢

4

0 回答 0