Similar presentations:
Робототехника. Обнаружение и подсчёт перекрестков
1. Обнаружение перекрестков
РобототехникаОбнаружение перекрестков
Логинов Андрей Анатольевич
2.
Редко встречаются дороги, которые не пересекаются с другимидорогами. Перекресток – это одно из самых сложных мест на
дорога, требующее от водителя оценки множества факторов
дорожной обстановки, и принятия оптимального решения.
Чтобы правильно действовать на перекрестках, необходимо для
начала научиться их определять. В качестве дороги у нас пока
выступает черная линия. В качестве органов зрения – датчики
света. В качестве водителя – программа, написанная средствами
Trik Studio.
3.
Для робота, двигающегося по линии на двух датчиках света,перекресток – это когда оба датчика находятся над черной
поверхностью.
Это не
перекресток
Это не
перекресток
Это не
перекресток
Это перекресток
4. Проверку на одновременное определение черного цвета двумя датчиками лучше разместить в условии цикла:
&& -одновременное условиеЦикл будет завершён, когда оба датчика будут находится над
черной поверхностью. Далее можно добавлять диаграмму блоков
дальнейших действий или заключить весь цикл в подпрограмму
5.
Случается, что перекресток необходимо проезжать, но при этомпроизводить подсчёт перекрестков по ходу движения. Допустим,
робот попал на перекресток и посчитал его. Дальше возможна
неприятная ситуация. Итерация цикла (один его проход) длится 1
мсек. Для человека – это мгновенье, а для робота – реальная
временная величина, за которую он успевает выполнить
микроскопическое перемещение, и, снова оказывается над черной
поверхностью на том же перекрестке. Только робот не знает, что
это тот же перекресток, и считает его второй раз. Пока робот
докатится до окончания перекрестка, в его копилке уже не один, а
10-20 перекрестков.
Это перекресток
Через
1 мсек
Через
2 мсек
Через
3 мсек
Через
12 мсек
Выход с
перекрестка
6.
Чтобы избежать подобных нежелательных событий, послеобнаружения роботом перекрестка и его подсчета, робота
необходимо согнать с перекрестка.
Делать это можно разными способами: заставить проехать
некоторое расстояние по энкодеру, то же самое, но по времени. А
можно, просто дописать задержку, которой будет достаточно,
чтобы робот докатился до окончания перекрестка:
Здесь робот будет бесконечно двигаться по линии и считать
перекрестки в переменную р, сдержимое которой можно
наблюдать на панели «Переменные» в правой части экрана.
7.
Это программа считает перекрестки при движении робота иостанавливает его на пятом перекрестке:
Здесь движение по линии вынесено в подпрограмму «Линия»:
8.
Настройку и отладку робота необходимо проводить на полеFollow_line из коллекции «Картинки». Перекрёстки необходимо
нарисовать вручную инструментом Линия»: