пятница, 31 декабря 2010 г.

с Новым 2011 Годом!

Неумолимо движется стрелка на часах и буквально чуть больше одного оборота ей осталось до нового года!

В связи с этим, хочется всех читателей блога про робототехнику поздравить с этим событием! Я верю, что новый год будет еще более интересен и насыщен радостными событиями для всех нас!

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

С Новым Годом!

четверг, 30 декабря 2010 г.

Памятка для будущих победителей состязаний по программированию Lego-роботов

Участие в соревнованиях по программированию Lego-роботов один из увлекательнейших этапов при изучении робототехники. Это не только командная работа, дух состязания и радость победы, но и возможность почувствовать себя вовлеченным в разработку Проекта, подобным тем, что имеют место быть на настоящих предприятиях, исследовательских институтах, R&D центрах.
Ведь Lego-проект для участия в соревнованиях по этапам работы над ним ничем отличается от реальных проектов. И тот и другой имеют стадии получения и уточнения деталей задания, продумывание структуры и взаимодействия отдельных частей проекта, включая конструкцию и программную начинку, затем, идет непосредственно реализация, проверка на работоспособность (тестирование) и, наконец, сдача проекта – участие в соревнованиях.

среда, 29 декабря 2010 г.

Космонавтика совместно с Lego Mindstorms.

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

вторник, 28 декабря 2010 г.

Lego механизмы: остановись мгновение!

Очень отрадно видеть среди Lego-изобретателей наших соотечественников (хоть и бывших).
Так bshikin, имея в своем арсенале Lego Mindstorms NXT и несколько Lego Technic наборов, собрал пленочную фотокамеру.

Новогоднее: про блог

В ноябре 2010 года компания ВолгаТелеком проводила конкурс блогов "ЖЖизнь - это общение" среди авторов, проживающих в регионах покрытия.


Блог NiNoXT участвовал в конкурсе наравне с другими 140 интернет ресурсами.

понедельник, 27 декабря 2010 г.

Lego механизмы: ход гусеницей

Не смотря на то, что колесный Lego-робот, все еще наиболее часто собираемая конструкция, не стоит списывать со счетов возможность использовать гусенечный ход для перемещения вашего устройства. В стандартной поставке коробочной версии Lego Mindstorms NXT 2.0 есть два трака, с помощью которых можно сконструировать различные гусеничные механизмы.
А что если, взять только одну гусеницу и научить робота использовать только ее для движения?

среда, 22 декабря 2010 г.

Lego механизмы: шар вместо колеса

Оригинал можно найти на TechnicBRICKs
Помните фильм "Я - Робот" (I, Robot) c Уилом Смитом в главной роли? В течении фильма он лихо ездил на Audi RSQ. Этот автомобиль интересен тем, что в нем используются не совсем обычные колеса - они сферические. По просту говоря, каждое колесо - шар.
Мы уже рассматривали, что такая форма как ведущего так и опроного механизма довольно выигрышна - такое транспортное средство можно назвать голономным, т.е. оно может двигаться в любом направлении в любой момент времени, без необходимости выполнения сложным маневров для разворота.

понедельник, 20 декабря 2010 г.

Черновик заданий для Международной Робототехнической Олимпиады 2011

Известно, что в 2011 году Международная Робототехническая Олимпиада будет проходить в Объединенных Арабских Эмиратах в г. Абу Даби. Команды, желающие попасть на этот турнир, с нетерпением ждут, когда же будут объявлены задания, чтобы начать готовиться.
Так вот, отмашка на старт дана - опубликован черновик (версия для обсуждения) заданий для Международной Робототехнической Олимпиады.

Фотоотчеты с соревнований "Робот своими руками"

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

Каникулы роботов в Политехническом

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

воскресенье, 19 декабря 2010 г.

Lego Mindstorms NXT 2.0 в Нижнем Новгороде

Давно искал в Нижнем Новгороде Lego Mindstorms NXT 2.0. И вот свершилось - данный комлект был приобретен в ТЦ "Мега". После покупки была обещана на все следующие покупки в 3-7%. Так что, кто хочет приобрести себе к Новому Году подарок - спешите, наборов осталось не очень много. Кто хочет воспользоваться скидкой - отпишитесь в комментариях.

суббота, 18 декабря 2010 г.

Lego механизмы: WALL-E, инструкция по сборке

Хотите собрать свой собственный Вселенский Аннигилятор Ландшафтный Лёгкий · Интеллектуальный? На сайте польского образовательной организации RoboCAMP, обучающей школьников робототехнике, найдены инструкции по сборке полюбившегося многим робота ВАЛЛ-И (WALL-E).
Для того чтобы построить нового домашнего любимчика, вам понадобятся только набор Lego Mindstorms NXT v1.0, два колеса 30.4x20 (4297210)/44292, не входящих в этот набор, а также гусеницы (4292139)/680c01:

пятница, 17 декабря 2010 г.

Робот для состязаний: опорные колеса

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

четверг, 16 декабря 2010 г.

Lego механизмы: Ханойская башня

В Великом храме города Бенарас, под собором, отмечающим середину мира, находится бронзовый диск, на котором укреплены 3 алмазных стержня, высотой в один локоть и толщиной с пчелу. Давным-давно, в самом начале времен монахи этого монастыря провинились перед богом Брамой.
Разгневанный, Брама воздвиг три высоких стержня и на один из них возложил 64 диска. Бог Брама поместил на один из стержней 64 диска из чистого золота, причем так, что каждый меньший диск лежит на большем. Как только все 64 диска будут переложены со стержня, на который Бог Брама сложил их при создании мира, на другой стержень, башня вместе с храмом обратятся в пыль и под громовые раскаты погибнет мир.
Так гласит Легенда о Ханойской Башне...

вторник, 14 декабря 2010 г.

Зимняя робототехническая школа в НИИТ

На период зимних школьных каникул, Нижегородский Институт Информационных Технологий планирует открыть Первую Зимнюю робототехническую Школу.
Занятия в Зимней школе будут вестись опытными преподавателями института. Помимо занятий по робототехнике планируются занятия по английскому языку.

1 500 000 000 потенциальных зрителей Лего-олимпиады

Сегодня стало известно, что одно из китайских новостных агенств разместил в своих новостях информацию о Лего состязании, прведенным НИИТ на этих выходных.
Причем доступны не только фотографии, но и видео, естественно, по-китайски.

Lego механизмы: механический калькулятор

Давным-давно, в XIX веке жил в Англии математик Чарльз Бэббидж.

Одним из его изобретений была Разностная Машина (Difference Engine) - механический аппарат, предназначенный для автоматизации вычислений.
Вычисления проводились путём аппроксимации функций многочленами и вычисления конечных разностей. Возможность приближённого представления в многочленах логарифмов и тригонометрических функций позволяет рассматривать эту машину как довольно универсальный вычислительный прибор.

понедельник, 13 декабря 2010 г.

воскресенье, 12 декабря 2010 г.

Как придумать конструкцию для решения определенной задачи?

Действительно, если есть какая-то задача, проектирование механизма решающего ее становится для новичков (да и не только для них) доволньно непростым делом.

Возможно, научные подходы типа ТРИЗ помогут найти решение. Но ведь хотелось бы потренироваться заранее да еще и часто в развлекательной форме.

Результаты декабрьских соревнований "Первый шаг в робототехнику"

Состязания по программированию Лего-роботов "Первый шаг в робототехнику" завершились.

В состязаниях принимала участие 21 команда из школ, лицеев и вузов Нижнего Новгорода.

суббота, 11 декабря 2010 г.

Lego механизмы: антикитерский механизм

Антикитерский механизм - древнейший механический калькулятор, обнаруженный в 1902 году на затонувшем древнем судне недалеко от греческого острова Антикитера. Датируется приблизительно 100 годом до н. э. (возможно, до 150 года до н. э.).
Другие устройства подобной сложности неизвестны в эллинистической культуре.

пятница, 10 декабря 2010 г.

Lego механизмы: автоматический склад

Интересная реализация как с точки зрения программирорвания: конечные автоматы и сортировка; так и с точки зрения конструкции: блокировка шариков, их разблокировка и робототизированная рука.

И все это работает без вмешательства человека.

NXT-G: решаем задачки. Задача #2


Сканер изображений из Lego Mindstorms NXT




В предыдущих статьях уже говорилось, как сенсор освещенности может определять цвет предмета. Следует также помнить, что начиная с NXT 2.0, в базовый комплект входит цветовой сенсор, для которого определение именно цвета, является основной задачей. Ну и не забудем, про цветовой сенсор от компании HiTechnic.

А что, если один из этих сенсоров посадить на раму с двигателем, а под раму положить какую-нибудь картинку?

среда, 8 декабря 2010 г.

Распознаем цвета с помощью сенсора освещенности

Хотя сенсор из Lego Mindstorms NXT (v1.0) и называется сенсором освещенности, на самом деле с помощью него можно распознавать и цвета. О том какие показания он выдает в случае цветной поверхности уже было упомянуто в одной из предыдущих статей.
В том случае, рассматриваемый пример был очень простой. На самом деле, во время работы с сенсором освещенности для распознавания цветов, наверняка, найдутся непонятные с первого раза нюансы.

вторник, 7 декабря 2010 г.

Lego механизмы: создать паука за один вечер

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

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

понедельник, 6 декабря 2010 г.

Lego механизмы: гироскоп своими руками

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

Неочевидное использование сенсора освещенности


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



А как вам идея, что с помощью сенсора освещенности можно измерять расстояние, вычислять угол поворота и реагировать на касание?

воскресенье, 5 декабря 2010 г.

Кинетические скульптуры




Кинетическое искусство — направление в современном искусстве, обыгрывающее эффекты движения всего произведения или отдельных его составляющих.
Типичными примерами кинетического искусства являются кинетические скульптуры.
Например, непосредственно шагающие пляжные звери Тео Янсена - кинетические скульптуры.

Из Lego конструктора тоже можно собирать кинетические скульптуры.

Lego механизмы: роботы, на которых можно смотреть вечно

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

На Lego тоже можно сабирать такие механизмы.

Что было в "Золотом запасе"?

Как уже писалось ранее, многие школьники, увлекающиеся робототехникой, имели возможность посетить в сентябре этого года лагерь "Орленок" на берегу Черного моря.

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


Кстати, на одном из кадров, можно разглядеть ребят из Нижнего Новгорода.

В следующем 2011 году опять планируется организовать такое мероприятие! У вас еще есть все шансы попасть туда!

Робот для состязаний: калибровка сенсора освещенности




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

Для начала рассмотрим, что же происходит при калибровке сенсора.

среда, 1 декабря 2010 г.

Декабрьские соревнования роботов

В связи с большим количеством команд (около 20) и зрителей соревнование по программированию Lego-роботов будет проводиться в новом автозаводском корпусе государственного университета – Высшей школы экономики по адресу ул. Львовская д. 1в (Автозавод). Проезд всеми видами транспорта до остановки "ул. Дружаева" (автобусы 11, 32, 58, 85; маршрутные такси 23, 25, 29, 38, 49, 63, 113, 115).

View Larger Map

Начало-регистрация для команд-участников в 10:00
Торжественное открытие олимпиады и начало соревнований в 12:30

Приглашаем посмотреть и поболеть за команды!!!

понедельник, 29 ноября 2010 г.

Lego механизмы: балансирующий мотоцикл




Наверное, многие глядя на колеса из набора Lego Mindstorms (особенно 1.0) подумывали: "Хм... А что было бы неплохо собрать что-то типа мотоцикла". И самое интересное, что многие собирали. Кто с двигателями, кто без. И лишь действительно упорные заставляли его двигаться.
А как вам идея, чтобы мотоцикл не только двигался на двух колесах, но и удерживал самостоятельно равновесие?
И в этом нет ничего невозможного!



Хотя в этом мотоцикле для стабилизации используется гироскоп, скорее всего, мотоцикл можно заставить балансировать основываясь на показания сенсора освещенности как это сделано со всемозможными реализациями Сегвеев.

NXT-G: плавное движение робота

Данный материал является продолжением советов по использованию блоков Move и Motor, а также является трансформированным переводом недавно опубликовонной статьи на legoleaguecoaching.org.

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

Lego механизмы: электронный кодовый замок

Если у вас есть секреты, можете попробовать доверить их хранение Lego Mindstorms роботу.

На сайте electricbricks.com, выложены некоторые идеи относительно создания кодового замка.
Создатели этого устройства в своем блоге рассказывают о техниках какие они использовали в своей программе, чтобы замок открывался по только определенному шифру, а также о том как организовать ввод этого самого шифра перед закрытием замка.



Сам сайт electricbricks.com интересен также тем, что авторы пишут каждую статью сразу на двух языках: на родном испанском и международном английском.

суббота, 27 ноября 2010 г.

Lego Mindstorms в стратосфере

А вы знаете, что в честь 10-летия с начала продаж Lego Mindstorms в 2008 году, группы энтузиастов, студентов и школьников разных стран запускали исследовательские лаборатории на основе Lego Mindstorms в стратосферу.

Проект назывался H.A.L.E. - High Altitude LEGO Extravaganza. В нем приняли участие команды из США, Тайваня, Люксембурга, Швеции и Дании.
В итоге, 9 капсул запускались на двух метеологических зондах. Оба зонда, достигнув высоты примерно в 30 км., лопнули, после чего капсулы благополучно достигли земли на парашюте.
Помимо фото и видео съемки, капсулы выполняли с помощью Lego Mindstorms такие исследования как анализ загрязнения воздуха, измерения сил притяжения и содержания озона, изучали влияние факторов, меняющихся во время полета, на зефир и т.п.
Хочется порадоваться за ребят, что им предоставилась возможность поучаствовать в уникальном эксперименте. А так же хочеться надеяться, что подобные исследования будут происходить регулярно.
Сейчас же нам оставлена возможность поучаствовать в эксперименте виртуально:

Или даже поднявшись на максимальную высоту вместе с проектом H.A.L.E. (за секунды до разрушения метеозондов) посмотреть, как выглядит наша планета оттуда:

пятница, 26 ноября 2010 г.

Автоматизированное поле для игры в Робо-футбол.

Взято с thenxtstep.blogspot.com.

Mario Ferrari и Daniele Benedettelli объединили свои усилия и создали на основе Lego Mindstorms NXT полностью автоматизированное поле для игры в Робо-футбол. Он само ведет учет забитых голов и разыгрывает мячик.

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

Алгоритмы: движение вдоль стены

Не правда ли программа, заданная в качестве задачки на понимание NXT-G в этом посте, похожа на программы, поясняющие движение вдоль линии, в этом?




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

Если быть более точным, то в задаче робот поворачивает вправо, если расстояние на сенсоре меньше 14 см. и влево, если расстояние на сенсоре больше 16 см. Сложно представить, для чего может понадобиться такое движение, если сенсор смотрит вперед или назад. Но многое встает на свои места, если предположить, что сенсор установлен на одном из бортов робота и смотрит в сторону.



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



Кстати, этот вариант ответа (движение вдоль стены) тоже был среди ответов, которые были присланы после публикации задачи.

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

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

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

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

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

Решение этой проблемы, традиционно, не одно. Оно может быть как программным, так и конструкторским. Например, можно не фиксировать датчик жестко, а поставить его на мотор.

Таким образом, после поворота робота, скажем, налево, сенсор расстояния поворачивается, стараясь быть направленным прямо на стену. А при повороте направо, мотор поворачивает сенсор в другую сторону:


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

Фестиваль робототехники СФУ

Сибирский Федеральный Университет организовывает Фестиваль робототехники. Помимо научно-технической выставки и конференции в программе фестиваля анонсированы состязания Lego-роботов.


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

Следует отметить, что задания для состязаний очень интересные, с ними можно ознакомиться здесь и здесь.

среда, 24 ноября 2010 г.

Как роботы играют в футбол?

Известно, что одним из состязаний на Международной Робототехнической Олимпиаде 2010 был Робо-футбол.




Лего-преподаватель Graeme Faulkner помогал одной из школ готовиться к данному состязанию. В итоге он решил поделиться с интернет-сообществом своими мыслями, относительно того, как можно запрограммировать робота для участия в данном виде спорта: Fun with Robot Soccer (на английском).
Он умышленно не выкладывает подробных инструкций относительно конструкции и конечной программы - он оставляет за вами финальное решение.

понедельник, 22 ноября 2010 г.

Стартанули занятия в лицее №82

После проведенной презентации в 82ом лицее, меньше, чем за месяц набралось почти два десятка желающих изучать робототехнику вместе с Lego Mindstorms NXT.

Занятия уже идут - ребята активно готовятся к участию в состязанию Lego-роботов, которое пройдет в декабре. Хотя времени осталось и не так много, у ребят есть все шансы показать на что они способны!

Lego механизмы: дельта-роботы

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



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



В основе робота лежит использование треугольного основания (отсюда и название "дельта") и параллелограммы, удерживающие манипулятор. Механику работы механизма можно рассмотреть на следующем видео:

воскресенье, 21 ноября 2010 г.

Международная робототехническая олимпиада 2010

Многие, кто интересуется состязаниями Лего-роботов, знают, что в этом году 5-7 ноября в Филиппинах проходила World Robotics Olympiad 2010.

Данное состязание для школьников, студентов колледжей и младших курсов ВУЗов. Этого не скажешь, когда смотришь на роботов, которые они сделали для прохождения трасс, являющихся заданием олимпиады.

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

Вот некоторые из них:



Также на оффициальном сайте олимпиады доступны списки победителей (если у кого, список недоступен, можно попробовать также по этой ссылке)

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

Место Младшая группа Средняя группа Старшая группа
1 Корея Малазия Тайланд
2 Филиппины Малазия Тайвань
3 Тайвань Тайланд Индия
4 Малазия Китай Индия
5 Филиппины Тайвань Китай
6 Россия Тайвань Перу
7 Тайвань Филиппины Япония
8 Тайвань Филиппины Япония

Из таблицы видно, что наиболее успешно выступили команды из Малазии, Тайваня и Тайланда.

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

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

Тем же кого тема Международных робототехнических олимпиад заинтересовала могут в этом году уже начать готовиться - все, что для этого нужно: желание победить, конструктор Lego Mindstorms NXT и светлая голова.

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

Также вы можете найти много интересных роликов о роботах, участвовавших в международных олимпиадах, если зайдете на сайт YouTube и наберете слово "wro"

Алгоритмы: черно-белое движение

Сенсор освещенности (или цветовой сенсор) из набора Lego Mindstorms NXT, один из наиболее используемых сенсоров при конструировании и программировании Lego-роботов.

По внутреннему устройству, он не такой сложный как сенсор расстояния. Основным элементом в нем является светочувствительный элемент (фоторезистор или фототранзистор).

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

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

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


Допустим, необходимо написать программу, которая перемещает робота из светлой в темную область на следующей карте:


Перед началом программирования, необходимо провести калибровку сенсора освещенности. После чего, измерить, что показывает сенсор на разных частях картыс ветлой и темной части карты. Пусть после калибровки, показания сенсора будут 10% на темной стороне и 90% процентов на светлой. Следовательно, условием, когда можно рассматривать, что робот уже на темной стороне – значение на сенсоре стало меньше 30%.

Тогда программа может быть сформулирована следующим образом:
1. Начать движение прямо (поскольку неизвестно, сколько нужно проехать работу до темной области, нужно задать "бесконечное" движение)
2. Ехать до тех пор, пока значение на сенсоре не станет меньше 30%.
3. Остановиться.

На NXT-G программа будет выглядеть, следующим образом:


Давайте, усложним программу, чтобы робот возвращался еще и назад, на белую область. Условием, что робот уже на светлой стороне, являются показания сенсора большие 70%.
1. Начать движение прямо
2. Ехать до тех пор, пока значение на сенсоре не станет меньше 30%.
3. Остановиться.
4. Начать движение назад.
5. Ехать до тех пор, пока значение на сенсоре не станет больше 70%.
6. Остановиться.



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


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

А насколько изменится программа, если условие задачи еще немного изменится? Допустим, карта теперь также состоит из двух частей: темной и светлой, но размеры этих частей увеличились и роботу теперь нужно добраться от одного края карты, до другого, совершая движения "ёлочкой".


Видно, что характер самого движения не изменился – робот опять должен двигаться поочередно из области одного цвета в другой. Однако, изменилось направление движения, раньше робот у нас ездил вперед и назад, сейчас же движение должно быть все время вперед, только меняется направление поворота. Итак, программа должна состоять из следующих действий:
1. Начать поворот налево.
2. Ехать до тех пор, пока значение на сенсоре не станет меньше 30%.
3. Остановиться.
4. Начать поворот направо.
5. Ехать до тех пор, пока значение на сенсоре не станет больше 70%.
6. Остановиться.
7. Повторить действия, начиная с шага 1.



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

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


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

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



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

Естественно, приведенная выше реализация небезупречна. Основной ее недостаток – итоговая скорость движения робота вдоль линии. Можно сказать, что эта реализация базовая – с нее стоит начать изучение этого сложного алгоритма. К тому же, она позволяет довольно быстро (маленькое количество действий в программе) и с минимальным количеством деталей (два мотора и один светочувствительный сенсор) показать, на что способен робот.
Related Posts Plugin for WordPress, Blogger...