Обнаружение перекрестков
Проверку на одновременное определение черного цвета двумя датчиками лучше разместить в условии цикла:
1.27M
Category: electronicselectronics

Робототехника. Обнаружение и подсчёт перекрестков

1. Обнаружение перекрестков

Робототехника
Обнаружение перекрестков
Логинов Андрей Анатольевич

2.

Редко встречаются дороги, которые не пересекаются с другими
дорогами. Перекресток – это одно из самых сложных мест на
дорога, требующее от водителя оценки множества факторов
дорожной обстановки, и принятия оптимального решения.
Чтобы правильно действовать на перекрестках, необходимо для
начала научиться их определять. В качестве дороги у нас пока
выступает черная линия. В качестве органов зрения – датчики
света. В качестве водителя – программа, написанная средствами
Trik Studio.

3.

Для робота, двигающегося по линии на двух датчиках света,
перекресток – это когда оба датчика находятся над черной
поверхностью.
Это не
перекресток
Это не
перекресток
Это не
перекресток
Это перекресток

4. Проверку на одновременное определение черного цвета двумя датчиками лучше разместить в условии цикла:

&& -одновременное условие
Цикл будет завершён, когда оба датчика будут находится над
черной поверхностью. Далее можно добавлять диаграмму блоков
дальнейших действий или заключить весь цикл в подпрограмму

5.

Случается, что перекресток необходимо проезжать, но при этом
производить подсчёт перекрестков по ходу движения. Допустим,
робот попал на перекресток и посчитал его. Дальше возможна
неприятная ситуация. Итерация цикла (один его проход) длится 1
мсек. Для человека – это мгновенье, а для робота – реальная
временная величина, за которую он успевает выполнить
микроскопическое перемещение, и, снова оказывается над черной
поверхностью на том же перекрестке. Только робот не знает, что
это тот же перекресток, и считает его второй раз. Пока робот
докатится до окончания перекрестка, в его копилке уже не один, а
10-20 перекрестков.
Это перекресток
Через
1 мсек
Через
2 мсек
Через
3 мсек
Через
12 мсек
Выход с
перекрестка

6.

Чтобы избежать подобных нежелательных событий, после
обнаружения роботом перекрестка и его подсчета, робота
необходимо согнать с перекрестка.
Делать это можно разными способами: заставить проехать
некоторое расстояние по энкодеру, то же самое, но по времени. А
можно, просто дописать задержку, которой будет достаточно,
чтобы робот докатился до окончания перекрестка:
Здесь робот будет бесконечно двигаться по линии и считать
перекрестки в переменную р, сдержимое которой можно
наблюдать на панели «Переменные» в правой части экрана.

7.

Это программа считает перекрестки при движении робота и
останавливает его на пятом перекрестке:
Здесь движение по линии вынесено в подпрограмму «Линия»:

8.

Настройку и отладку робота необходимо проводить на поле
Follow_line из коллекции «Картинки». Перекрёстки необходимо
нарисовать вручную инструментом Линия»:
English     Русский Rules