Занятия по робототехнике.
7 занятие.
Загружаем проект «движение по линии» с предыдущего занятия. Включаем: «Редактирование» - «Установить единичный шаг» - «Мигание блоков (быстро)» или «Мигание блоков (медленно)». Запускаем и наблюдаем за поведением нашего робота. При этом мы наблюдаем поблочное исполнение скрипта и движение робота на сцене. Хорошо виден алгоритм движения по линии. Видим единичные шаги вперед и в случае касания одним из сенсоров края дороги происходит поворот на пятнадцать градусов относительно центра робота. Напомним, что при рисовании робота его центр должен оказаться в вершине равностороннего треугольника, опирающегося на сенсоры. Режим исполнения с единичным шагом позволяет соотнести текст алгоритма с поведением робота, что необходимо для проверки и устранения ошибок.
На соревнованиях «Траектория» надо за минимальное время проехать по линии. Воспользуемся сенсором
. Он способен фиксировать время с точностью одной тысячной доли секунды. Вначале таймер обнулим. Значение таймера будем записывать в переменную «Время»:
.


Теоретически при касании сенсором желтой линии любым из датчиков выполнение скрипта останавливается, при этом значение таймера добавляется в переменную «Время». При касании второго сенсора значение таймера еще раз добавляется. Это даст некорректный результат. Поэтому изменим алгоритм записи в условии «если» на следующее:
. В итоге мы получаем
секунды для темпа движения
.
А теперь заставим робота совершить пять «кругов» от старта до финиша. Результаты занесем в список. С помощью блока
-
и создадим список
и не забываем поставить галочку для отображения его на сцене. Допишем программу, запустим и получим следующий результат:


Мы видим, что со временем возникают условия, при которых наш робот не успевает повернуть, и покидает трассу. Попробуем выяснить причину.
В скрипте написано
Робот перемещается на пять шагов. Опрашивается красный сенсор. Если на белом, то поворот направо. Опрашивается синий сенсор. Если на белом, то поворот налево. Опрашиваются оба сенсора. Если на желтом любой из них, значение таймера добавляется а список и таймер обнуляется. Робот перемещается на пять шагов и попадает в точку старта (количество шагов подбираем такое, чтобы робот покинул желтую линию). Если записей меньше пяти, то идем на пункт 1. Остановить всё.Если робот сенсорами на белом, то движется только прямо. Именно это мы и наблюдаем на пятом круге, когда робот не вписался в поворот и обоими сенсорами вышел на белое. Чтобы не допустить этого следует увеличить угол поворота.
Угол поворота и количество шагов за один проход цикла зависят от плавности и ширины дороги.
Компьютерная модель (дорога, машина с сенсорами, алгоритм) не учитывает некоторые особенности поведения реального робота, такие, как проскальзывания колес на дороге или влияние освещения на показания сенсоров, изменения величины питания при движении робота и другие нюансы. Но чем точнее построим компьютерную модель, тем правильнее заложим основы для конструирования реальной модели.


