Чем программируют роботов. Программирование роботов

01.04.2019

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

Робототехника — одно из перспективнейших направлений в сфере интернет-технологий, а то, что за ИТ-сферой будущее, в наше время и объяснять не надо. Роботостроение — увлекательнейшая штука: сконструировать робота значит почти что создать новое существо, пусть и электронное.

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

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

Чем отличается робототехника для детей от профессиональной?

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

Татьяна Волкова, сотрудник Центра интеллектуальной робототехники: «Как правило, с чего все начинают: разбираются с моторами и заставляют робота элементарно ехать вперед, потом - делать повороты. Когда робот выполняет команды движения, можно уже подключить датчик и сделать так, чтобы робот ехал на свет или, наоборот, «убегал» от него. А дальше идет любимая задача всех новичков: робот, который ездит по линии. Устраиваются даже различные гонки роботов».

Как понять, есть ли у ребенка склонность к робототехнике?

Для начала нужно купить конструктор и посмотреть, нравится ли ребенку собирать его. А дальше и в кружок можно отдать. Занятия помогут ему развить мелкую моторику, фантазию, пространственное восприятие, логику, концентрацию и терпеливость.

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

Александр Колотов, ведущий специалист STEM-программ в Университете Иннополис: «Если ребенку нравится собирать конструктор, то ему подойдёт конструирование. Если ему интересно изучать, как устроена вещь, то ему понравится заниматься электроникой. Если у ребенка тяга к математике, то его заинтересует программирование».

Когда начинать обучение робототехнике?

Начинать изучение и записываться в кружки лучше всего с детства, впрочем, не слишком рано — в 8-12 лет , говорят специалисты. Раньше ребенку сложнее уловить понятные абстракция, а позднее, в подростковом возрасте, у него могут появиться другие интересы, и он станет отвлекаться. Также ребенка необходимо мотивировать на изучение математики, чтобы ему было интересно и легко в будущем проектировать механизмы и схемы, составлять алгоритмы.

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

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

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

Какие конструкторы выбрать?

Для каждого возраста существуют свои образовательные программы, конструкторы и платформы, различающиеся степенью сложности. Можно найти как зарубежные, так и отечественные продукты. Есть дорогие наборы для робототехники (в районе 30 тыс. руб. и выше), есть и подешевле, совсем простые (в пределах 1-3 тыс. руб.).

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

В 13-14 лет можно начать работать с ТРИК или модулями Arduino, которые, по словам Татьяны Волковой, является практически стандартом в области образовательной робототехники, а также Raspberry. ТРИК сложнее Lego, но легче Arduino и Raspberry Ri. Последние две уже требуют базовых навыков программирования.

Что еще потребуется изучить?

Программирование . Избежать его возможно только на первоначальном этапе, потом же без него никуда. Начать можно с Lego Mindstorms, Python, ROS (Robot Operating System).

Базовую механику. Начинать можно с поделок из бумаги, картона, бутылок, что важно и для мелкой моторики, и для общего развития. Самого простого робота можно сделать вообще из отдельных деталей (моторчики, провода, фотодатчик и одна несложная микросхема). Познакомиться с базовой механикой поможет «Мастерилка с папашей Шперхом».

Основы электроники. Для начала научиться собирать простые схемы. Для детей до восьми лет эксперты советуют конструктор «Знаток», дальше можно перейти к набору «Основы электроники. Начало».

Где заниматься робототехникой детям?

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

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

Алексей Колотов: «Для серьезных занятий, проектов, участия в соревнованиях нужно выбирать кружки, с небольшими группами по 6—8 человек и тренером, который приводит учеников к призовым местам на соревнованиях, который постоянно сам развивается и дает интересные задачи. Для занятий в виде хобби можно пойти в группы до 20 человек».

Как выбирать курсы для занятий робототехникой?

При записи на курсы обратите внимание на педагога , рекомендует коммерческий директор компании Promobot Олег Кивокурцев. «Бывают прецеденты, когда педагог просто отдает ребятам оборудование, а дальше занимайтесь кто чем хочет», — согласна с Олегом Татьяна Волкова. От таких занятий толку будет мало.

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

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

Соревнование Robocup 2014

Как изучать робототехнику самостоятельно?

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

Найдите материал для изучения. Их можно брать в Интернете, из заказываемых книг, на посещаемых конференциях, из журнала «Занимательная робототехника». Для самостоятельного изучения есть бесплатные онлайн-курсы, например, «Строим роботов и другие устройства на Arduino: от светофора до 3D-принтера».

Нужно ли изучать роботехнику взрослым?

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

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

Олег Кивокурцев: «Взрослому будет проще освоить робототехнику, но важным фактором является время».

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

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

В какие вузы идти учиться?


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

— Московский технологический университет (МИРЭА, МГУПИ, МИТХТ);

— Московский государственный технический университет им. Н. Э. Баумана;

— Московский государственный технологический университет «Станкин»;

— Национальный исследовательский университет «МЭИ» (Москва);

— Сколковский институт науки и технологий (Москва);

— Московский государственный университет путей сообщения Императора Николая II;

— Московский государственный университет пищевых производств;

— Московский государственный университет леса;

— Санкт-Петербургский государственный университет аэрокосмического приборостроения (СГУАП);

— Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики (ИТМО);

— Магнитогорский государственный технический университет;

— Омский Государственный технический университет;

— Саратовский государственный технический университет;

— Университет Иннополис (Республика Татарстан);

— Южно-Российский федеральный университет (Новочеркасский ГТУ).

Самое главное

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

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

А кроме самого материала также комментарии одного из наших робо-экспертов, куратора екатеринбургского , Олега Евсегнеева.

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

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

1. Системное мышление

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

Хороший робототехник в состоянии понять и теоретически обосновать, как совместно и слаженно взаимодействуют все эти разнообразные системы. Если инженер-механик может вполне обоснованно сказать: «это не моя работа, тут нужен программист или электрик», то робототехник должен хорошо разбираться во всех этих дисциплинах.

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

2. Мышление программиста

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

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

Комментарий Олега Евсегнеева: Я бы добавил, что для создания современных роботов требуется знание языков низкого, высокого и даже сверхвысокого уровня. Микроконтроллеры должны работать очень быстро и эффективно. Чтобы этого достичь, нужно углубляться в архитектуру вычислительного устройства, знать особенности работы с памятью и низкоуровневыми протоколами. Сердцем робота может быть тяжелая операционная система, например, ROS. Здесь уже может понадобиться знание ООП, умение пользоваться серьезными пакетами машинного зрения, навигации и машинного обучения. Наконец, чтобы написать интерфейс робота в веб и связать его с сетью интернет, неплохо будет научиться скриптовым языкам, тому же python.

3. Способность к самобучению

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

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

Комментарий Олега Евсегнеева: Это ключевой навык в любом творческом деле. С помощью него можно получить другие навыки

4. Математика

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

Комментарий Олега Евсегнеева: Поведение робота, его реакция на окружающие раздражители, способность учиться – это все математика. Простой пример. Современные беспилотники хорошо летают благодаря фильтру Калмана – мощному математическому инструменту для уточнения данных о положении робота в пространстве. Робот Asimo умеет различать предметы благодаря нейронным сетям. Даже робот-пылесос использует сложную математику, чтобы правильно построить маршрут по комнате.

5. Физика и прикладная математика

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

Комментарий Олега Евсегнеева: Есть хороший пример – автоматические станции для полета на другие планеты. Знание физики позволяет настолько точно рассчитать траекторию их полета, что спустя годы и миллионы километров аппарат попадает в точно заданную позицию.

6. Анализ и выбор решения

Быть хорошим робототехником означает постоянно принимать инженерные решения. Что выбрать для программирования - ROS или другую систему? Сколько пальцев должен иметь проектируемый робот? Какие датчики выбрать для использования? Робототехника использует множество решений и среди них почти нет единственно верного.

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

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

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

Особенности конструкторов

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

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

Возрастные группы

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

От 4 до 6 лет

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

От 7 до 9 лет

Робот-конструктор по робототехнике для младших школьников становится более сложным. Это можно сказать как о самих моделях, так и об изучаемых темах. Дети более подробно знакомятся с физическими законами и явлениями, начинают изучать работу различных датчиков. По этой причине такие наборы с успехом используются на уроках физики. Многие комплекты предлагают не только построить машинку, но и заставить ее двигаться: ехать по линии, отъезжать от края стола.

От 10 до 15 лет

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

LEGO

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

Известный бренд предлагает несколько линеек для детей разных возрастов. Для самых маленьких подойдут «Первые механизмы» (5+) или «Простые механизмы» (7+). Занятия с этими конструкторами не требуют серьезных знаний в роботостроении, наборы лишь знакомят детей с тем, что такое и как функционирует механизм. Будущий инженер-конструктор узнает, как работают рычаги, зубчатые колеса и многое другое.

Линейки WeDo и WeDo 2

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

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

MINDSTORMS Education EV3

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

Huna

Южнокорейские специалисты, разрабатывая программируемые конструкторы для детей, придерживаются правила — «От простого к сложному». Уже детям с шести — восьмилетнего возраста бренд предлагает собрать несложные механизмы с двигателем, датчиками, которые определяют расстояние, звуковым сопровождением. В основу таких комплектов заложены знакомые всем малышам модели: герои сказок (к примеру, Паровозик Томас или персонажи из «Трех поросят»), машинки, животные. Каждый комплект оснащен понятной инструкцией, которая поможет ребенку (конечно, с помощью взрослых) собрать интересную движущуюся модель.

MRT (My Robot Time)

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

Интересной разработкой компании стали наборы для совместной, групповой работы: ребята могут построить зоопарк и даже город или пофантазировать на темы «Новый год и Рождество», «Мечты и реальность».

Fischertechnik (Германия)

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

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

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

Engino (Кипр)

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

Mechanical Science и Discovering Stem

Нельзя не отметить и эти серии от компании Engino. С их помощью ребенок наглядно изучит различные физические явления — работу рычагов, кривошипов, клиньев, познакомится с законами Ньютона и солнечной энергии. Stem расшифровывается как Science (наука), Technology (технология), Engineering (инженерное дело) и Mathematics (математика). Этим областям и посвящены конструкторы.

Makeblock (Германия)

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

Silverlit — программируемый робот (36 функций)

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

  • выполнять последовательные действия (не более тридцати шести за один цикл), из которых наиболее интересны повороты, удар ногой, ходьба вперед и назад, выражение обеспокоенности, танцы, обхождение препятствий;
  • реагировать на громкие звуки. При хлопке в стороне от робота Silverlit, он издает звук;
  • охранять помещение: робот предупреждает знаками ребенка о том, что перед ним появилось какое-то препятствие;
  • общаться со своей мини-копией Maxi Pals, подавая световые сигналы;
  • сверкать глазами, поворачивать голову, шевелить суставами ног и рук;
  • удерживать нетяжелые предметы в руках.

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

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

Конструкторы-роботы человекоподобные, программируемые

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

Darwin-mini

Элементы робота от компании Robotic совместимы с конструктором серии Dream, того же бренда. Рост робота составляет 26,95 см, семнадцать сервомоторов используется для движений. Передвигается он со скоростью 24 см/сек, аккумулятор рассчитан на полчаса непрерывной работы.

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

Для сборного программированного робота применяется бесплатное ПО RoboPlus. Поведение робота можно запрограммировать с помощью редактора RoboPlus Task, а более сложные движения — используя программу RoboPlus Motion.

Bioloid Premium Kit

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

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

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

Одним из таких языков является универсальный робототехнический язык , или сокращенно GRL (Generic Robot Language ). GRL- это функциональный язык программирования для создания больших модульных систем управления. Как и в языке поведения, в GRL в качестве основных конструктивных блоков используются конечные автоматы. Но в качестве настройки над этими автоматами язык GRL предлагает гораздо более широкий перечень конструкций для определения коммуникационного потока и синхронизации ограничений между различными модулями, чем язык поведения. Программы на языке GRL компилируются в эффективные программы на таких языках команд, как С .

Еще одним важным языком программирования (и связанной с ним архитектурой) для параллельного робототехнического программного обеспечения является система планирования реактивных действий, или сокращенно RAPS (Reactive Action Plan System) . Система RAPS позволяет программистам задавать цели, планы, связанные с этими целями (или частично определять политику), а также задавать условия, при которых эти планы по всей вероятности будут выполнены успешно.

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

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

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

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

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

Язык «JSk CES (сокращение от C++ for embedded systems - C++ для встроенных систем) - это языковое расширение C++, в котором объединяются вероятностные средства и средства обучения. В число типов данных CES входят распределения вероятностей, что позволяет программисту проводить расчеты с использованием неопределенной информации, не затрачивая тех усилий, которые обычно связаны с реализацией вероятностных методов.

Еще более важно то, что язык CES обеспечивает настройку робототехнического программного обеспечения с помощью обучения на основании примеров, во многом аналогично тому, что осуществляется в алгоритмах обучения. Язык CES позволяет программистам оставлять в коде «промежутки», которые заполняются обучающими функциями; обычно такими промежутками являются дифференцируемые параметрические представления, такие как нейронные сети. В дальнейшем на отдельных этапах обучения, для которых учитель должен задать требуемое выходное поведение, происходит индуктивное обучение с помощью этих функций. Практика показала, что язык CES может успешно применяться в проблемных областях, характерных для частично наблюдаемой и непрерывной среды.

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

14443

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


Программирование роботов сегодня - прерогатива узких специалистов, а всем остальным, кто интересуется робототехникой, остаётся либо молча завидовать, либо удовлетворяться работой с симуляторами, например, V-REP - робосимулятором, разработанным швейцарской компанией Coppelia Robotics. Впрочем, почему бы и нет? Система V-REP обладает на удивление широким функционалом, поддерживается несколькими операционными системами, включая Windows, а самое главное - бесплатна для домашнего использования. А ещё в ней имеются библиотеки для программирования роботов с помощью C/C++, Python, Java, Matlab и некоторых других языков.

V-REP поставляется с набором готовых моделей - стационарных и мобильных роботов, управлять которыми можно редактируя скрипты. Для управления некоторыми моделями имеются специальный набор ползунков. Все роботы уже имеют базовую программу и подчиняются реальным законам физического мира, той же гравитации. Распространяется платформа в трёх редакциях: EVAL , EDU и Player . Первая - полнофункциональная версия без ограничений, вторая - образовательная версия с лицензионными ограничениями, ориентированная на школьников старших классов, студентов и просто увлеченных пользователей. Плеер (Player) - это программа, предназначенная для запуска сцен, созданных в профессиональной версии. Возможность редактирования скриптов в ней отсутствует.

Для знакомства с платформой вполне подойдёт второй вариант - V-REP PRO EDU. Устанавливается робосимулятор как обычная программа. После запуска вы увидите окно, разделённое на три части.

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

Как работать с V-REP

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

А вот человекоподобный робот Ansi будет идти по прямой, пока не упадёт за край и не распрощается с жизнью.

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

Ваша задача - обучить их, но для этого потребуется знание базовых основ программирования, в идеале - языка Lua , ведь именно на нём написаны внутренние скрипты V-REP. Открыть исходный код управляющего скрипта очень просто - нужно лишь дважды кликнуть по иконке «файл» в колонке иерархии объектов.

Ради интереса можете поэкспериментировать, изменяя значения параметров, а затем наблюдая за поведением роботов. Имеется в V-REP также неплохой набор готовых примеров - сцен в формате ТТТ , получить доступ которым можно через главное меню File –> Open scenes .

Похожие статьи