我正在使用一个涂鸦机器人来导航一个自制的迷宫(一旦我的功能正常工作,我会改进它,我在视频中的那个只是用于测试目的。)
我最初试图让机器人仅在 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
我正在使用上面代码的不同变体。我只是想在队列或堆栈中实现轮流,但我不知道该怎么做。
谢谢