Введение
Основные конструктивные отличия от предшественника: Ну и, наверное, главное - появление эмблемы робофорума, которая светилась цветными светодиодами
Робот выступал в 4х видах: оба кегельринга, линия и слалом. Поэтому у робота существует 2 вида "обвески":
- для кегельрингов: 2 датчика света крепятся прямо к блоку. На бампере расположен датчик NXTSumoEyes от Mindsensors. Над блоком - сонар. В классике работают только датчики света.
- для линий: 3 датчика света расположенные на переднем бампере и сонар (использовался только в слаломе естественно:) Кроме того, в линиях задний бампер "прятался".
Программы написаны на RobotC 2.01
Кегельринг-классик
Победная попытка.
Однако, основные отличия от предшественника состоят не в механике. Изменена траектория и управление маневрами робота. Напомню, что ширина робота 20 см. Диаметр банки - 6,5. Т.о. на бампер вполне умещаются 3 кегли. Схема сбивания кегель сейчас - 1-3-3-1. Причем последнюю робот выбивает задним бампером. Сделать небольшую дугу оказалось эффективнее, чем разворачиваться, объезжать банку и толкать ее к краю ринга.
Ну и теперь о маневрировании. У робота при разгонах и торможениях никогда не проскальзывают колеса. Все из-за того, что все маневры начинаются и заканчиваются плавно. Экспериментально мы определили, что на бумажном ринге для разгона с 0 до 100 без пробуксовки достаточно 0,1 сек.
Хотя судья по ручному секундомеру определил время в 7,20 сек, покадровый просмотр видео показывает, что реальное время менее 7 секунд.
Кегельринг-квадро
Основная идея определения белых банок - свойство инфракрасного барьерного сенсора замечать белое препятствие с большего расстояния, чем черное. Робот крутится в центре ринга. Сонаром определяет наличие банки перед собой. По тому же сонару отъезжает от банки на расстояние, с которого он гарантированно не видит черный предмет. После этого включается инфракрасный датчик. Если он что-то видит, то значит, банка белая и робот начинает ее выталкивать. При приближении к банке происходит коррекция траектории, что бы банка оказалась прямо перед роботом. После выталкивания банки за пределы ринга робот возвращается в центр и продолжает осмотр. Осмотр происходит против часовой стрелки. Исходя из регламента, шансы "исчезнуть" у банок, справа от робота, немного выше, чем у тех, что слева. В соревнованиях организаторы использовали другой алгоритм расстановки банок, так что такая уловка не помогла бы. Участник тянул карточку, с обратной стороны которой указывалось расположение черных и белых банок на ринге.
Провал в этом виде объясняется достаточно просто: не предусмотрели изменение условий освещенности. Первая попытка - робот крутился в ринге и все 4 банки считал черными. Во второй, уменьшение "граничного" расстояния немного помогло. Первую банку вытолкнул сразу, а вот со второй у него начались проблемы. Он сделал около 10 оборотов, прежде чем ее "увидел". 37 сек для такого алгоритма - полный провал. Обидно, но не смертельно. Хорошая наука. В следующий раз тщательнЕе будем готовиться
К сожалению, видео с соревнований нету. Поэтому прикладываем домашнее, в котором алгоритм виден во всей красе
Линия
Было много вопросов, как реализована такая плавность хода. Ответы можно найти в архиве с программами
Слалом
К этому виду дома не готовились. Вся отладка была 9-го числа в день тренировок. Заняло это больше времени, чем планировали и из-за этого фактически провалили кегельринг-квадро