Работая на поле мы выполняем 4 заезда и охватываем большое число миссий. Работа ведется с нашим "РобоСтарчиком" версия 3.0.
Для работы на поле в качестве основного датчика мы использовали гироскоп. Во всех прошлых проектах вместо него мы использовали датчики света для движения по линиям и выравнивания по линии с помощью двух датчиков. Это было интересно, но этот путь мы уже освоили, и пора было освоить новые горизонты.После установки и обкатки гироскопа мы отказались от двух датчиков света для езды по линии, что позволило нам поставить еще один датчик – датчик касания на наше перспективное устройство сделав его более умным.
Гироскоп – это математика и геометрия, он позволяет решать совершенно сумасшедшие задачи! И мы уже достаточно взрослые, чтобы справляться с ними! Гироскоп очень интересный датчик, но он требует серьезной программной работы. Можно твердо сказать, что в этом проекте мы использовали и освоили самые высокие возможности программной оболочки EV 3.
Нам приходилось решать проблему дрейфа гироскопа. Мы написали специальную программу, которая блокировала этот дрейф и сбрасывала значение датчика на ноль. Она стоит в самом начале программы заезда.
Кроме того, мы обнаружили неожиданную особенность гироскопа. При перезагрузке микрокомпьютера или переключения датчика гироскопа, микрокомпьютер может прочитывать значения гироскопа, прибавляя или убавляя от 3 до 10 градусов. Мы не обнаружили описания такой проблемы в русскоязычном сегменте интернета и, возможно, мы первые придумали решение этой проблемы. Для этого мы написали две программы. Первая – vivod выдает данные гироскопа на экран микрокомпьютера, блокируя дрейф. С ее помощью мы замеряем показания гироскопа по всем бортам поля и, если они сильно отличаются от идеальных, мы перезапускаем датчик. Вторая программа – gyroscope, это блок в котором можно выставить нужное число и он добавляет его ко всем значениям датчика гироскопа в программе, которые после него следуют. Таким образом можно сбрасывать накопленную ошибку в нужных местах программы, не переписывая все значения гироскопа.
Еще одна наша находка - использование геометрии для решения задачи рандомного расположения грузов на поле. Расположение контейнеров имеет шесть вариантов решений. Все они располагаются в линию на определенном месте. Заметив это, мы применили самое интересное и неожиданное решение! Самым коротким путем движения робота от конца путей к блокам сортировочного центра является диагональ, мы заметили, что эти линии образуют равносторонний треугольник и в которой линии расположения блоков и движения к ним робота образуют катеты, а линия движения робота от путей – гипотенузу. Мы написали программу в которой использовали формулу Пифагора, и робот вычисляет движение по катету к грузу по длине гипотенузы! В этом решении нам не нужно писать отдельный код для каждого расположения груза. Все просто, меняется длина катета, меняется длина гипотенузы! Это фантастика!
Комментариев нет:
Отправить комментарий