Показаны сообщения с ярлыком pid. Показать все сообщения
Показаны сообщения с ярлыком pid. Показать все сообщения

вторник, 17 декабря 2013 г.

Продолжение серии русскоязычных вебинаров по NXT-G

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

Ниже представлены два последних прошедших вебинара.
Вебинар №6.
Прошел в виде мастер-класса, где Сергей вместе со своими учениками рассказывали про создание и программирование робота для участия в состязании Робо-Сумо.

вторник, 19 марта 2013 г.

суббота, 9 марта 2013 г.

NXT R3PTAR - пишем свою программу

В школе, где проходит наш кружок робототехники, нужно было провести "удивительный урок" для первоклассников, приуроченный к 23 феваряля и 8 марта. Одним из роботов, который должен был появиться на этом уроке, было решено сделать - NXT R3PTAR - змею, похожую на EV3 R3PTAR, только выполненную из набора NXT 2.0.
Об существующих инструкциях по сборке для данного "животного" уже упоминалось в блоге. А вот программу пришлось составлять самостоятельно. А поскольку кто-то захочет повторить этот опыт - процесс составления программы приводиться в этой заметке.

среда, 21 ноября 2012 г.

Алгоритмы: черно-белое движение. Часть VIII

Как и обещано ранее, настало время рассмотреть от чего же еще зависит коэффициент пропорциональности линейного регулятора при движении вдоль линии.

В предыдущих заметках было выведено, что он однозначно зависит от освещенности трассы и яркости элементов на ней:
Где, Lmax - значения сенсора освещенности на самом светлом участке поля, а Lmin - значение сенсора на самом темном участке.

вторник, 6 ноября 2012 г.

Алгоритмы: черно-белое движение. Часть VII

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

Рассмотрим, что происходит с вращением оси мотора в случае работы следующей программы:

вторник, 30 октября 2012 г.

Алгоритмы: черно-белое движение. Часть VI

Продолжение. В этот раз не будет сложных формул и замудренных графиков - данная заметка посвящена именно тому для чего и предназначались роботы, а именно нудной и повторяющейся деятельности.
Но прежде нужно понять, где же в предыдущих заметках была эта нудная и повторяющаяся работа. Для этого взглянем еще раз на формулы.
Первая вычисляет коэффициент пропорциональной составляющей.
А вторая позволяет рассчитать мощность для каждого мотора.
Где, LA - предполагаемая освещенность на границе линии, которую можно определить по следующей, третьей формуле.
Можно заметить, что и KP и LA использующиеся в формуле для мощностей, зависят от уровней освещенности: на белой - Lmax и черной - Lmin частях поля. А это значит, что каждый раз когда робот попадает в другие условия освещенности, или у него изменяется датчик или его расположение относительно поверхности поля, то и KP, и LA придется рассчитывать заново, подставлять в программу и перекомпилировать ее. Поэтому вот это очень и хочется возложить на плечи робота - пусть он делает вычисления вместо человека.

Как бы тогда хотелось, чтобы устройство функционировало?

четверг, 25 октября 2012 г.

Алгоритмы: черно-белое движение. Часть V

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

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

Для составления таблицы еще раз укажем формулы зависимости мощностей от показаний датчика, а также будем считать, что датчик на самом светлом участке поля (Lmax) показывает 60%, а на темном (Lmin) - 24%, таким образом получается, что ожидаемая освещенность на границе линии (LA) - 42%.

среда, 24 октября 2012 г.

Алгоритмы: черно-белое движение. Часть IV

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

четверг, 11 октября 2012 г.

Робо-состязания: базовые навыки по программированию роботов

Когда учащиеся проходят некоторый базовый курс обучения, то встает вопрос, что изучать дальше, какие навыки будут необходимы для участия команд в робо-состязаниях.
В ходе Летнего Робототехнического лагеря - 2012, вырисовалась примерная схема, как можно шаг за шагом готовить команды, на каких задачах их можно тренировать.
Итак, ниже представлен план по какому происходила тренировка команд в лагере. Данный план может быть легко адаптирован под нужды учебного процесса в кружке и/или уроки информатики. Причем он достаточно универсальный - не опирается на какой-то отдельный язык программирования - задания в нем могут быть выполнены, что на NXT-G, что на Robolab, а равно также и на RobotC, LabView и NXC.

четверг, 20 сентября 2012 г.

Как узнать заряд батареи в программе?

Во второй половине лета в одной из веток форума MindBoards обсуждали зависимость предсказуемости работы программ NXT робота от заряда батареи. Когда начали обсуждать программные средства, с помощью которых можно было бы узнавать состояние источника питания, один из участников сделал полезное напоминание, что для NXT-G тоже есть уже созданный блок Battery Level, созданный NXT экспертом Guy Ziv.

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

понедельник, 2 апреля 2012 г.

Обучающее видео о ПИД контроллере

В ноябре прошлого года бразилец Ivan Seidel опубликовал интересное видео, в котором рассказывает об ПИД контроллере применительно к Lego роботам.
Само видео привлекательно тем, что выполнено в необычной форме - по ходу повествования в ход идут листки бумаги и "липкие" записки - на них автор на португальском рассказывает, что такое алгоритм ПИД, дает небольшую теоретическую информацию, и, в итоге, показывает примеры работы алгоритма на простом роботе.

четверг, 29 марта 2012 г.

NXC: движение вдоль линии в эмуляторе

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

суббота, 17 марта 2012 г.

Робот для состязаний: Робот "Ван Гог". Часть III

Если внимательно изучить поле для состязаний в старшей группе, то можно обратить внимание на деталь, которая позволит несколько соптимизировать программу для робота.
Такой деталью является расстояние от бортика до черной боковой линии. Правилами здесь заложено всего лишь 13 сантиметров.


суббота, 14 мая 2011 г.

Новый блок от HiTechnic для управления моторами. Часть II

Так получилось, что материал на нашем блоге о новом блоке от HiTechnic появился раньше официального сообщения о нем на сайте фирмы. Теперь, если есть желание, ознакомиться с обзором возможностей блока непосредственно от его создателей, то сделать это можно на сайте HiTechnic.

Новый блок от HiTechnic для управления моторами. Часть I

Компания HiTechnic делает не только всевозможные примочки для NXT, но также публикует свои собственные разработки для среды программирования NXT-G. Недавно, они опубликовали новый блок "HiTechnic Motor PID Block".

Его основное предназначение – посредством PID регулятора, контролировать перемещение мотора к определенной точке.
Важное замечание - блок работает только с одним мотором. Т.е. просто заставить двигаться тележку с его помощью, возможно, не будет идеальным вариантом. Создатели упоминают, что наиболее подходящее место для использования этого блока – управление все возможными манипуляторами, захватывающими и направляющими механизмами.

Чтобы понять, как использовать этот блок на практике, необходимо изучить его возможности.

пятница, 1 апреля 2011 г.

Проблема: робот не едет прямо

От одного из читателей блога прозвучал такой вопрос:
ставлю два двигателя (схема танковая), с синхронизацией, все-ровно прямо
идеально не едет.
Может это болезнь всех NXT?

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

На такое поведение может влиять много факторов: заряд батареек, версия прошивки, внутренние особенности двигателей.

Есть несколько возможностей уменьшить этот эффект (убрать совсем - вряд ли):
  1. При большом выборе моторов, можно подобрать два таких мотора, погрешность которых при движении прямо минимальна. Методика подбора описана здесь.
  2. На "текстовых" языках программирования есть возможность передать коэфициенты во внутренний PID регулятор двигателей. При "правильно" подобрнанных коэфициентах, разницу в движении моторов можно нивелировать.
  3. Можно попробовать написать свой собственный PID регулятор для движения. Здесь замерямой величиной будет разница во вращении двигателей за единицу времени, а контроллируемой - мощность, подаваемая на каждый мотор.
P.S. А вообще о PID регуляторах, когда-нибудь напишется небольшая статья для блога. Следите за обновлениями.
Related Posts Plugin for WordPress, Blogger...