Программу Для Кегельринга На Nxt2

Как написать программу для робота на базе Lego EV3 для соревнований 'Кегельринг'. 11.3 Создание программы для соревнования 'Кегельринг'. Подробно пропишем последовательность действий нашего робота для обнаружения одной кегли на поле: вращаться вокруг своей оси по часовой стрелке, пока впереди расположенный датчик не обнаружит кеглю; остановиться напротив кегли.

(С) Состязание роботов Кегельринг интересно тем, что в нем могут принимать участие как новички, только начинающие знакомиться с миром робототехники, так и опытные создатели роботов. Если вкратце сформулировать условие состязаний, то можно сказать, что основной целью робота является освобождение ринга от кеглей. Тот робот, что справляется с этой задачей за наименьшее время объявляется победителем. Этот вид соревнований - интересен и познавателен для робототехника любого уровня, поскольку позволяет в ходе подготовки задуматься над конструкторскими особенностями механизма и над алгоритмом поведения робота.

Состав конструктора Lego Mindstorms NXT 2.0. Технология NXT. Среда программирования NXT-G. Измените программу так, чтобы данные выводились в оборотах. Общий алгоритм. Итак, общий алгоритм кегельринга состоит в следующем: Разворот на месте, пока датчик ультразвука не обнаружит банку. Камаз схема подключения тахометра. Двигаться вперёд до чёрной линии. Mar 8, 2016 - Я с просьбой ко всем, готовимся к кегельринг - квадро, уперлись. Очень нужна программа для ловли жемчуга на NXT 2.0 У кого есть.

В данном цикле заметок, предлагается поразмышлять, над каждым аспектом по отдельности. Итак, что же может из себя представлять конструкция робота?

Колесная база – это расположение колес и количество и способ подведения к ним энергии от двигателей. Традиционно рассматривают две основные схемы, остальные же являются модификациями этих двух. Первая схема с рулевыми колесами. В этой схеме направление движения задается положением управляющих колес относительно корпуса механизма. Преимущество такой схемы: возможность установки нескольких двигателей на ведущие колеса, что позволит увеличить общую мощность механизма. Недостаток схемы – это сложность выполнения поворотов: данное устройство не сможет выполнять поворот на месте вокруг своей оси, т.е.

Программа Для Фотошопа

Разворот будет требовать значительных временных затрат, а также наличия достаточного места для выполнения разворота. Тем не менее можно попробовать рассмотреть программирование робота для движения по таким траекториям, которые позволяют обойти/собрать/сбить все кегли избегая ненужных разворотов. Колесная база, в основе которой лежит 'танковая' схема, значительно выигрывает у предыдущей конструкции в скорости выполнения разворотов. Такой тележке ничего не стоит сделать разворот вокруг своей оси на нужное количество градусов, чтобы направится прямиком к очередной кегле. Что при схеме с управляющими колесами, что при тележке, собранной по танковой схеме, у робота могут быть такие колеса, задача которых поддерживать механизм над поверхностью ринга и не давать другим частям механизма замедлять движение.

Их можно назвать – опорные колеса. Особенности использования того или иного способа конструирования опорных колес подробно описывались вот. Другой аспект, который нужно учитывать при конструировании робота для состязаний Кегельринг – скорость движения. Это важно, поскольку нужно выполнить задание быстрее всех. Использовать свежие батарейки и запускать моторы на полную мощность – это очевидное решение, его будут использовать большинство ваших соперников. Менее очевидное решение – это добиться такого эффекта, чтобы один поворот двигателя перемещал робота на наибольшее расстояние.

Например, если поставить на робота колеса б о льшего диаметра, - это будет приводить к желаемому результату. Как показано на рисунке ниже, маленькое колесо за поворот двигателя на 180 градусов, проедет гораздо меньшее расстояние, чем проедет большое колесо при повороте двигателя на эти же 180 градусов. Другой способ достичь похожего результата – установить на мотор и колеса шестерни. На мотор – большую, на колеса – маленькую.

Что получится – смотрите на картинке ниже: Мотор сделает чуть меньше, чем четверть поворота (9 зубцов, отмеченных красным), а маленькая шестерня при этом обернется на 180 градусов (9 зубцов, отмеченных синим). За полный оборот двигателя, колесо сделает 4-5 оборотов вокруг своей оси, тем самым проехав в 4-5 большее расстояние, нежели в случае, когда оно присоединено непосредственно к двигателю.

Ну и конечно, еще одним важным вопросом при конструировании будет вопрос о том, какие и сколько датчиков ставить на робота. В общем случае, роботу понадобится датчик для определения местонахождения кеглей, а также датчик для контроля, выехал ли робот за пределы ринга. Для решения первой задачи традиционно используют один или несколько датчиков расстояния. А для определения границ ринга подойдут световой или цветовой датчики. Имеет смысл рассматривать установку нескольких датчиков освещенности (или цветовых) для лучшего определения роботом своего положения на ринге. Например, в данном случае программа может распознать, что робот двигается под углом относительно ограничительной линии, поэтому ему нужно продолжить движение только левым мотором, чтобы выравнять свое положение и стать направленным к центру ринга. Итак, базовое поведение робота в состязании Кегельринг можно описать просто:.

Найти кеглю в внутри ринга. Выдвинуть ее за пределы ринга. Перейти в пункт 1. Поскольку известно, что робот в самом начале стоит в центре ринга, то в самом начале для поиска кегли робот может вращаться вокруг своей оси, и если датчик расстояния обнаружит предмет на каком-то заданном удалении от робота, то можно считать, что он обнаружил кеглю. Вращение робота должно прекратиться для того, чтобы следующими действиями выдвинуть кеглю за пределы ринга. Что делать дальше, когда кегля выдвинута?

Если робот находясь около кегли выдвинутой за ринг начнет опять вращаться, чтобы обнаружить следующую, есть вероятность, что он опять увидит первую. Очевидно, что чтобы избежать этого нужно поворачиваться вокруг своей оси некоторое количество вхолостую. На данном рисунке холостой ход, когда ультразвуковой датчик не задействован показан зеленым цветом. Поскольку нельзя с уверенностью сказать на какую границу банки среагирует датчик расстояния (из-за его достаточно широкого угла обзора), то нельзя однозначно сказать какая у него будет траектория перемещения следующей банки, и сколько при этом он банок выдвинет и выдвинет ли вообще. Вполне может оказаться что едва задетые банки упадут, что приведет к сложностям в их дальнейшем поиске на ринге. Такое поведение называют недетерминированным - нельзя сказать, где в определенный момент находиться робот, и нельзя сказать какая часть задачи выполнена - сколько еще кеглей осталось вытолкнуть.

Поэтому напрашивается более надежный способ выталкивания банок - вернуться на исходную позицию, т.е. В центр ринга, после того как банка вытолкнута. Теперь робот с достаточной уверенностью может сказать, сколько банок он уже вытолкнул. К тому же, если внимательно посмотреть на расположение банок на ринге, то можно этот способ слегка модифицировать, сократив время поиска банок: на противоположной стороне хорды идущей от каждой банки через центр ринга находиться вторая банка. Следовательно робот, обнаружив одну банку может выбить сразу две: обнаруженную и ее напарницу: Если пойти еще дальше, то можно с уверенностью утверждать: когда робот при старте смотрит на кеглю (направление старта выбирается оператором, запускающим робота), то следующая кегля находиться от него на 45 градусов по часовой (или против) стрелки. Приняв этот факт, можно не устанавливать датчик расстояния на робота - каждую следующая банка будет находиться перед роботом каждый раз, когда он повернется на 45 градусов вокруг своей оси.

Освободившийся порт можно использовать еще для одного датчика освещенности, чтобы помогать роботу все время четко возвращаться в центр, выравниваясь по границе ринга. Способы описанные выше интересны тем, что подходят как для обычного кегельринга, так и для других разновидностей этого состязания, где кегли нужно еще и различать по цвету. Робот может подъехать к такой кегле определить ее цвет и принять решение выталкивать ее или нет. Затем проехать в центр или на другую сторону хорды и проделать те же манипуляции со следующей банки. Еще одно ускорение в программе можно получить, зная из какого материала изготовлены кегли - обычно это легкий, достаточно упругий материал (часто кегли - алюминиевые банки из-под напитков емкостью 0,33 литра). Если коснуться такую кеглю на большой скорости, то она отскочит от жесткого бампера робота. А равно, робот может не доезжать до линии - ему достаточно доехать на большой скорости до банки - дальше она покинет ринг сама согласно переданному ей роботом импульсу.

Причем, расстояние, которое нужно проехать до банки известно заранее и оно будет одним и тем же для всех банок. Следующие способы даже не требуют отдельного описания - они все основываются на том, что расположение кеглей однозначно определено и робот может быть установлен в под любым углом, относительно первой кегли. Как видно из схем, многие из подходов к решению задачи не требуют установки датчиков вообще.

Некоторые из них не требуют также и наличие компьютерного блока: например, движение по спирали может быть реализовано чисто механическим способом. Однако, прежде чем выбирать такие 'экзотические' способы необходимо выяснить у судей или организационного комитета соревнований, будут ли разрешены такие решения. На многих состязаниях могут принимать участие именно роботы: т.е. Устройства обладающие компьютерным интеллектом, который может принимать решения на основании информации о внешних событиях.

(Robolab) Алгоритм движения робота по этой траектории часто называют 'Танец в круге'. Робот должен вытолкнуть из круга все кеглши за наименьшее количество времени, при этом сам он не должен выезжать за пределы круга. Первый вариант программы на языке Robolab иллюстрирует простейший алгоритм движения в круге с черной границей. Направление движения моторов зависит от показаний датчика освещенности. Значение 5 синего (числового) модификатора означает ожидание уровня освещенности темнее текущего на 5 пунктов. Второй пример программы несколько сложнее.

Теперь изначальное положение кеглей неизвестно. И робот вынужден искать их самостоятельно. Для поиска используется датчик расстояния (сонар), значение на котором должно быть 45 см и менее в момент обнаружения.

В этот раз для большей точности моторы вращаются не по времени, а по установленному количеству оборотов в каждую сторону. Для обнаружения черной линии по-прежнему применяется датчик освещенности.

(NXT-G) На языке NXT-G простой алгоритм для кегельринга может выглядеть следующим образом. Здесь реализован тот же самый алгоритм, что и в программе на Robolab. Блок движения, стоящий после цикла, работает в течение трех оборотов мотора.

Этого вполне достаточно, чтобы робот отъехал от линии для разворота. Последние две команды Motor инициируют поворот робота вокруг своей оси. Внимательно проверьте время поворота! Робот должен повернуться своей фронтальной частью внутррь круга для продолжения поиска оставшихся кеглей. Установить точное время поворота можно опытным путем.

Пример реализации более сложного алгоритма с поиском кеглей. Параметры команд установлены те же самые, что и в программе на Robolab.

Программа Для Обновления Драйверов

Вместо команд ожидания установлены циклы, что снижает эффективность программы в целом, но позволяет лучше разобраться в самом алгоритме, рассматривая несколько вариантов его реализации. Параметры, указанные в модификаторах, подберите самостоятельно: степень понижения освещенности на черной линии, время отъезда назад и время поворота. Вытолкнуть все банки Несколько пластиковых стаканчиков или пустых жестяных банок расставлены внутри круга, за черной линией на расстоянии 12-15 см от нее - это мусор, от которого необходимо очистить круг за кратчайшее время.

Первые попытки запуска робота покажут несколько недостатков:. стаканчики попадают под колеса, падают и плохо выталкиваются;. даже вытолкнутые стаканчики остаются частично внитри круга, поскольку, увидев край, робот сразу устремляется назад;. робот ведет себя как слон в посудной лавке;. робот делает много движений впустую. Избавимся от первого недостатка.

Для этого построим бампер шириной 20-25 см рядом с датчиком освещенности. Теперь стоит поработать над точностью движения, по возможности не теряя скорости. В зависимости от конструкции робота, при резкой смене направления он может потерять равновесие или просто 'встать на дыбы' на передние колеса. Поэтому последние несколько сантиметров можно проехать на торможении по инерции, то есть полностью освободив моторы. Точность поворота будет зависеть от того, какие команды подаются на моторы и по какому принцип рассчитываются длительности поворота.

Кегельринга

К сожалению, таймер - не надежный помощник. По инерции на малых промежутках времени робот может поворачиваться не различные углы. Мы можем пожертвовать реверсом в последней команде управления моторам В, для того чтобы достичь неторопливого движения обоими моторами.

Длительность поворота при этом немного возрастет. Не делать лишних движений Желание проконтролировать движение робота приводит к необходимости изменить траекторию движения таким образом, чтобы каждый раз, доехав до края, он возвращался в центр круга.

Программа Для Установки Драйверов

Севомоторы NXT имеют встроенный датчик оборотов, этим непременно надо воспользоваться. Для этого нужно обнулять показания датчика оборотов, когда робот окажется в центре.

Программа Для Восстановления Удаленных Файлов

Программа для создания вензеля. Отсчет времени невозможно повернуть вспять, чтобы снова придти в нулевую точку, а моторы можно. По замыслу робот проезжает некоторое количество оборотов вперед, после чего следует назад, пока датчик оборотов снова не будет ноль. В Robolab для этого следует использовать специфический блок, который не обнуляет показания датчиков оборотов при вызове (с буквой А на пиктограмме). Кроме того, в примере добавлены модификаторы 'Encoder C' из палитры 'NXT Commander' для ясности различия между командами управления мотором и датчиками.

Posted :