Как заставить робота ориентироваться в лабиринте?
Я использую библиотеку Myro с языком Python. У меня были странные результаты.
Моя идея состояла в том, чтобы вызвать датчики getObstacle.
left = getObstacle(0)
center = getObstacle(1)
right = getObstacle(2)
Я хочу, чтобы робот двигался вперед, пока центральный датчик препятствий меньше или равен 4500.
Если правый датчик препятствий на роботе имеет более высокое значение, чем левый датчик препятствий, я хочу, чтобы он повернул налево.
В противном случае поверните направо.
Вот мои попытки на YouTube
Я собираюсь представить 3 разных варианта моего кода
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 <= 4500):
forward(0.5, 0.2)
wait(0.4)
elif (right > left):
turnLeft(1, .45)
else:
turnRight(1, .45)
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 <= 4500):
forward(0.5, 0.2)
wait(0.3)
elif(right > center and left):
turnLeft(1, .45)
elif(left > center and right):
turnRight(1, .45)
Последний, с которым я работаю
def main():
setForwardness(1)
setIRPower(135)
while True:
left = getObstacle(0)
center = getObstacle(1)
right = getObstacle(2)
if (center <= 5000 and left <= 5000 and right <= 5000):
forward(0.5, 0.2)
wait(.3)
elif(right>left):
turnLeft(1, 0.45)
else:
turnRight(1, 0.45)
Есть ли способ улучшить мой код? Я хочу повернуть налево и направо в правильное время.
Должен ли я использовать другую логику в целом? Любая помощь будет оценена.