← Все вопросы

Что такое алгоритм избегания препятствий у робота?

Задан 7 месяцев назад1.4к просмотров2 ответа
9

Хочу, чтобы мой робот ездил по комнате и сам объезжал стены и мебель. Какие есть простые алгоритмы избегания препятствий для новичка и как они работают?

2 ответа

12
✓ Принятый ответ — помог автору

Избегание препятствий — это логика «увидел преграду → не врезайся, объезжай». Для школьного робота есть несколько уровней сложности.

1. Самый простой — «отскок» (bump-and-go): робот едет вперёд, пока датчик расстояния не покажет, что стена близко (например, ближе 20 см). Тогда он останавливается, поворачивает на случайный или фиксированный угол и едет дальше. Так ездят простые роботы-пылесосы. Логика буквально:

если расстояние < 20 см:
    стоп
    повернуть направо
иначе:
    ехать вперёд

2. «Следование вдоль стены» (wall-following): робот держит постоянное расстояние до стены сбоку (с помощью ПИД) и так обходит помещение по периметру. Хорошо для лабиринтов.

3. Несколько датчиков по кругу: робот смотрит влево, вперёд, вправо и едет в ту сторону, где свободнее. Это уже сглаженный объезд, а не дёрганые отскоки.

4. Продвинутое — карта (SLAM): с лидаром робот строит карту и планирует маршрут в обход препятствий. Это уровень беспилотников.

Новичку советую начать с варианта 1 на одном ультразвуковом датчике — он заводится за вечер. Потом добавь датчики по бокам и сделай выбор «куда свободнее». Частая ошибка: ставить порог срабатывания слишком близко — робот не успевает затормозить и бьётся.

5

Минимальный рабочий рецепт: один датчик расстояния спереди + правило «близко стена — стоп и поворот». Этого хватает, чтобы робот не врезался и катался сам. Дальше усложняешь: датчики по бокам → едем туда, где просторнее; потом ПИД для плавного объезда вдоль стены. До SLAM и лидара дойдёшь позже — это уже когда захочешь, чтобы робот строил карту и ездил по маршруту.

Ваш ответ

Войдите, чтобы ответить на вопрос.