День робототехники в гимназии №120

DSC_2503В начале buy levitra overnight shipping месяца, выпускники УКШ имени Н.Н.Красовского, и уже студенты первого курса УрФУ, Илья Банников и Александра Кузнецова, провели замечательный урок робототехники у четвероклассников в Гимназии №120.

Свои впечатления от мероприятия они представили в небольшом отчете на нашем портале.

Читать далее

Набор учащихся в Уральскую компьютерную школу

Уральская компьютерная школа (УКШ) имени Н.Н.Красовского открывает набор учащихся 8-11 классов на 2013/2014 учебный год по направлениям:

  • программирование;
  • робототехника.

Зачисление в УКШ по результатам заочной компьютерной олимпиады. Обучение в УКШ бесплатное.

Читать далее

С новым учебным годом!

Итак, неделю назад у всех учеников страны начался новый учебный год. И наш проект, после летнего затишья, переходит в очередную активную фазу.

Надо отметить, что это лето было весьма непростым для ребят из УКШ. Большинство из них превратились из школьников в студентов. Причем, в основном, в студентов УрФУ имени Б.Н.Ельцина. А пятеро из них, стали студентами кафедры Вычислительной техники, Физико-технологического института (тот самый физтех). Такой высокий результат еще раз показывает особый статус УКШ имени Н.Н.Красовского, а также важность таких инициатив как РоботКласс.

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

Напомню, MakeItLab — это еще один наш проект, нацеленный, в первую очередь, на объединение всех увлеченных техникой людей под одной крышей. В MakeItLab, который еще называют хакспейсом, есть различные полезные инструменты, включая паяльную станцию, фен, фрезерный станок и даже 3D-принтер. Имеется также большая библиотека электронных компонентов, а также все наши стенды, разрабатываемые в рамках проекта РоботКласс.

Чем же мы занимались все лето в этом самом хакспейсе? Расскажу по-порядку.

3D-печать

Благодаря появлению в лаборатории MakeItLab 3D-принтера, мы смогли ближе познакомиться с этим потрясающим инструментом. С помощью 3D-принтера можно, к примеру, очень быстро создать каркас робота, либо корпус электронного прибора из пластика. Также, имеется возможность изготавливать шестерни и целые механизмы.IMG_0112

Однако, чтобы напечатать на 3D-принтере какую-либо деталь, её нужно сначала спроектировать в соответствующем редакторе. На фото ниже, как раз представлен процесс создания модели в приложении SketchUp.DSC_0462

Учитывая всю важность этапа моделирования, этим же летом мы приняли решение создать учебный курс по 3D-моделированию. Наряду с проводимыми мероприятиями по популяризации 3D-принтеров, этот курс призван сделать 3D-печать более понятной и доступной.

Робот-следопыт

Если кто помнит, зимой мы тестировали нашего робота-следопыта на весьма оригинальной линии, выстеленной малярным скотчем по старой доске:) Теперь же у нас появился огромный стол-стенд, на котором линия выглядит уже не так страшно. Именно такие трассы используются на соревнованиях.
DSC_0413

В ходе экспериментов мы выяснили, что для адекватной работы, следопыту необходимы как минимум четыре датчика линии, вместо двух. Это опыт будет учтен при очередном обновлении платформы МР1.

Четырехногий робот

Наконец, занимались программированием четырехногого робота. Корпус этой забавной машины, кстати сказать, полностью напечатан на 3D-принтере.
DSC_0461

В ближайшем будущем на базе этого робота будет создан еще один курс. Также, робота можно будет приобрести в виде набора.

BrickPi: LEGO Bricks with a Raspberry Pi Brain

Прекрасный проект по своей идее и реализации: http://www.dexterindustries.com/BrickPi/

Проект полностью OpenSource: http://www.dexterindustries.com/BrickPi/about/open-source/

Суть проекта — использовать RaspberryPi и Arduino для взаимодействия с периферией LEGO (что для робототехники), так же конструктивно совместим с LEGO блоками — что позволяет создавать автономные устройства на базе Lego.

Но при этом есть доступ полностью к OpenSource ПО — Python, и т.п. для управления периферией.

Вики раздел проекта Амперка

Компания Амперка с 2010 года успешно занимается продажей и развитием хобби-электроники.

У них есть электронный магазин где они продают Ардуино, РазбериПай, и разнообразные компоненты.

И так же у них есть целый раздел с русскоязычной информацией по Арудино, для начинающих самое то.

Где представлены:

Читать далее

Запуск веб-сервера на базе RaspberryPi (Ruby/Sinatra)

Запуск веб-сервера на базе RaspberryPi (Ruby/Sinatra)

У вас есть RaspberryPi микрокомпьютер и вы хотите сделать простую веб-админку.

Для этого можно использовать Ruby язык, и простой веб-фреймворк — Sinatra.

Весь процесс от начала, и до открытия веб-страницы в браузере займёт не более 10 минут,
при этом знание Ruby на данном этапе — не обязательное.

Предполагается, что вы проделали процедуру настройки RPi (например на базе данного туториала
https://github.com/robotclass/robotclass/blob/master/articles/raspberry-pi-start/raspberry-pi-start.md)

Установлена система Raspberian (aka Debian)

Читать далее

Создание веб-сервера видео-трансляции на базе RaspberryPi за 5 минут

Создание веб-сервера видео-трансляции на базе RaspberryPi за 5 минут

У вас есть RaspberryPi микрокомпьютер и вы хотите сделать сервер веб-трансляции.

Так же вы проделали процедуру настройки RPi (например на базе данного туториала
https://github.com/robotclass/robotclass/blob/master/articles/raspberry-pi-start/raspberry-pi-start.md)

Периферия

  1. USB Веб-камера (в качестве теста была взята самая дешёвая камера — Ritmix 640×480, за 250 руб.

Предусловие

USB Веб-камера подключена к RaspberryPi, который подключен к сети, и вы можете заходить по ssh.
(в случае захода на RPi консольно через ssh — монитор, клавитара и мышка не нужны)

Читать далее

RaspberryPi — начало работы

Начало работы с RaspberryPi

У вас появился долгожданный RaspberryPi микрокомпьютер, для старта RaspberryPi потребуется:

Периферия

  1. SD флэш карта, лучше не менее 4Гб — в данном примере была взята Kingston 2Гб за 220 руб (MicroSD С адаптером)
  2. Блог питания Micro USB — а данном примере 1А за 250 руб.
  3. купить HDMI кабель для монитора (он должен поддерживать HDMI), или на телевизор (через HDMI, или RCA коннектор для композитного видео, желтый).
  4. USB клавиатура, USB мышка
  5. Необходим ридер SD карты — для ноутбуков встроенные, для стационарных компьютеров, можно купить внешний модуль, в данном примере был куплен Transcend TS-RDP5K, 310 руб. — достаточно элегантный девайс, он вставляется прямо в USB слот компьютера, и уже в него вставляется SD карта.

Читать далее

OpenCV. Инструмент для «прозрения» машины

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

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

  • Matrox Imaging Library
  • Camellia Library
  • Open eVision
  • HALCON
  • VXL
  • libCVD
  • IVT
  • OpenCV
  •  и т.д…

Данные SDK могут сильно различаться по функциональности, условиям лицензирования, используемым языкам программирования. Мы же подробнее остановимся на OpenCV.

Она бесплатна как для учебных целей, так и для коммерческого использования. Написана на оптимизированном C/C++, поддерживает интерфейсы C, C++, Python, Java и включает в себя реализации свыше 2500 алгоритмов.

Помимо стандартных функций обработки изображений (фильтрация, размытие, геометрические преобразования и т.д…) данный SDK позволяет решать более сложные задачи, к которым относятся обнаружение объекта на фотографии и его «узнавание». Следует понимать, что задачи обнаружения и распознавания могут быть совершенно различными:

  • поиск и распознавание конкретного объекта,
  • поиск объектов одной категории (без распознавания),
  • только распознавание объекта (уже готовое изображение с ним).

i1

i2

Для обнаружения признаков на изображении и проверки на совпадение в OpenCV имеются следующие методы:

  • Гистограмма направленных градиентов HOG(Histogram of Oriented Gradients) — может применяться для обнаружения пешеходов
  • Алгоритм Виолы-Джонса — применяется для поиска лиц
  • Алгоритм обнаружения признаков SIFT (Scale Invariant Feature Transform)
  • Алгоритм обнаружения признаков SURF (Speeded Up Robust Features)

Например, SIFT обнаруживает наборы точек, которые можно использовать для идентификации объекта.

traffic sign

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

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

Также следует отметить, что за последние годы OpenCV сильно расширилась и стала в некоторой степени «тяжеловесной». В связи с этим, разными группами энтузиастов создаются «облегченные» библиотеки, основанные на OpenCV. Примеры: SimpleCV, liuliu ccv, tinycv…

Полезные сайты

  1. http://opencv.org/ — Основной сайт проекта
  2. http://opencv.willowgarage.com/wiki/ — Старый сайт проекта с документацией по старым версиям
  3. http://locv.ru — Обучение с примерами на русском
  4. http://robocraft.ru/page/opencv/ — Раздел на Робокрафте
  5. http://opencv-srf.blogspot.ru/ — Обучение с примерами

Литература

  1.  G. Bradski. Learning OpenCV: Computer Vision with the OpenCV Library. O’Reilly, 2008.
  2. J. Solem. Programming Computer Vision with Python. O’Reilly, 2012.
  3. R. Laganiere. OpenCV 2 Computer Vision Application Programming Cookbook. Packt Publishing, 2011

Экспансия курса робототехники в УрФУ

DSC_0389

С начала этой недели, у студентов второго курса Физико-технологического института УрФУ началась производственная практика. Как правило, студенты первого и второго года обучения проходят эту самую практику в различных служебных подразделениях университета, будь то приемная комиссия, или деканат. Надо сказать, и я в свое время проходил её именно таким образом. Пользы от этого мероприятия учащимся — никакой. А вся польза университету выражается только в эксплуатации неквалифицированных кадров.

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

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

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

На сегодняшний день, уже прошло три полных занятия, за время которых «практикующие» робототехники выполнили почти весь базовый курс. И уже на следующем занятии, в понедельник, мы приступим к изучению мобильного робота, и попробуем поработать с одной из его ипостасей — роботом-следопытом.

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

DSC_0392

 

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