Языки программирования в робототехнике. Программирование и управление промышленными роботами

Программирование виртуальных роботов на языке Java

Робототехника давным давно вышла за пределы научно-фантастических романов и в настоящее время является одной из движущих сил, определяющих прогресс во многих областях, таких как автоматизация производства, медицина, космос и т.д. Важную роль в робототехнике играют программные симуляторы, т.к. они не только упрощают работу инженеров, но и позволяют исследователям испытывать новейшие алгоритмы искусственного интеллекта (AI) и машинного обучения. Одним из таких симуляторов является Simbad – проект с открытым кодом, разработанный на основе технологии Java 3D (см. ). В данной статье мы расскажем, как программировать виртуальных роботов, используя инструментарий Simbad, для получения лучшего представления об одной из философий проектирования роботов – архитектуре поглощения (subsumption architecture ).

Начало статьи посвящено краткому обзору робототехники и концепции архитектуры поглощения. Затем мы перейдем к инструментарию Simbad и расскажем, как, используя его, можно реализовать данную архитектуру. После этого придет время создания простого робота в соответствии с описанной архитектурой. В конце концов, вы окунетесь в занимательный мир лабиринтов и создадите второго робота, который, подобно Гомеру из Симпсонов (см. ), сможет самостоятельно из них выбираться. Разумеется, созданные роботы будут “виртуальными”, т.е. будут жить в виртуальной среде Simbad.

Программирование роботов

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

  • Набора сенсоров
  • Программы, определяющей поведение робота
  • Набора приводов и эффекторов

Традиционная робототехника

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

Таким образом, традиционный робот получает данные от множества сенсоров, комбинирует эти данные в процессе обновления картины мира, затем вырабатывает план действий на основе данной картины, и наконец, приводит его в исполнение. К сожалению, данный подход сопряжен с определенными трудностями. Во-первых, он требует большого объема вычислений. Во-вторых, поддержка актуальной картины окружающего мира – задача очень сложная, т.к. мир меняется постоянно. При этом известно, что многие организмы, например, насекомые, благополучно существуют и без поддержки полной картины мира, более того, даже не имея памяти как таковой. Так может стоит попробовать перенять их подход к функционированию? Подобные размышления стали отправной точкой нового течения в робототехнике, доминирующего в настоящее время. Оно получило название “поведенческая робототехника” (behavior-based robotics - BBR).

Архитектура поглощения

Одним из способов организации BBR-роботов является архитектура поглощения, предложенная в 1986 г. Родни Бруксом (Rodney A. Brooks) — в настоящее время главой лаборатории искусственного интеллекта в Массачусетском Технологическом Институте (MIT) — в его фундаментальной статье под названием “Слоны не играют в шахматы” (см. ). Согласно Бруксу, поведенческие роботы можно рассматривать как набор простых и независимых поведенческих узлов (behaviors), каждый из которых определяется двумя вещами – тем, что вызывает данное поведение (как правило, информация, поступающая от сенсоров), и тем действием, что является его результатом (как правило, выполненным с помощью эффектора). Поведения могут наслаиваться друг на друга, а также конфликтовать между собой. В этом случае, в действие вступает специальный механизм арбитража , который решает, какое поведение в данный момент является приоритетным. Ключевым моментом является то, что поведение робота, как единого целого, не закладывается заранее, а вырисовывается из взаимодействия его поведенческих узлов. Более того, по мнению сторонников BBR, глобальное поведение является чем-то большим, чем просто суперпозицией его частей. Оно поглощает каждое из локальных, низкоуровневых поведений. В целом, идея заключается в том, что вместо проектирования робота и точного описания его поведения во всех ситуациях, можно просто добавлять поведенческие узлы и смотреть, что получится в результате.

Simbad: среда для моделирования роботов

LEGO Mindstorms

В данной статье рассматривается создание программных агентов (ботов), но если вас интересуют реальные физические роботы, то обратите внимание на LEGO Mindstorms – замечательный инструментарий для робототехника.

Слоган в штаб-квартире LEGO Mindstorms гласит: “Мы сделаем для робототехники то, что iPod сделал для музыки” ("We will do for robotics what iPod did for music"). Первая версия Mindstorms была представлена в 1998 г. и сразу же превзошла ожидания LEGO по объему продаж. Цена комплекта ($250) может показаться слегка завышенной, но не забывайте, что столько же стоит iPod Classic, а он есть практически у каждого .

При этом iPod не предоставляет собой такого интереса для взлома как Mindstorms. Стоило выйти первому релизу Mindstorms, как различного рода хакеры начали взламывать и анализировать блоки RCX, являющиеся “мозгами” роботов. LEGO пребывала в некотором недоумении и сначала не могла решить, оставить ли все как есть или же выпустить официальное требование прекратить подобные действия. К чести руководства компании, они решили предоставить хакерам полную свободу действий в отношении Mindstorms.

Это привело к расцвету сообщества Mindstorms (см. ). Одним из следствий стало стороннее портирование платформы Mindstorms под другие языки, такие как C и Java, в то время, как сам инструментарий изначально поставлялся только вместе с графическим языком программирования NXT-G. В итоге, более половины пользователей инструментария – это взрослые специалисты.

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

Simbad был разработан на Java Луи Уге (Louis Hugue) и Николя Бредешем (Nicolas Bredeche). Проект размещен на сервере SourceForge.net и может свободно использоваться или модифицироваться в соответствии с лицензией GNU GPL (General Public License).

Технические подробности

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

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

Simbad API

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

  • simbad.sim : Классы данного пакета описывают как самих роботов, так и окружающий их мир. Основными классами являются:
    • Agent: Сами роботы.
    • Arch: Арки, которые роботы могут объезжать либо проезжать под ними.
    • Box: Описывают препятствия на пути робота.
    • CameraSensor: Позволяет получать доступ к картине окружающего мира с точки зрения робота.
    • EnvironmentDescription: Описывает среду, в которую можно добавлять как роботов, так и неодушевленные объекты, например, стены и другие препятствия.
    • LampActuator: Фары, которые можно добавлять к своему роботу.
    • LightSensor: Сенсоры света.
    • RangeSensorBelt: Набор датчиков расстояния, которые могут быть расположены по периметру робота.
    • RobotFactory: Используется для добавления различных сенсоров к роботу.
    • Wall: Еще один тип препятствия для движения робота.
  • simbad.gui : Классы из данного пакета отображают самого робота и позволяют его контролировать. Основным классом являются следующий:
    • Simbad: Окно, отображающее картину мира робота, информацию, поступающую с его сенсоров, а так же управляющие элементы.

Реализация архитектуры поглощения с помощью Simbad

Румба

В то время как я пишу эти строки, Румба (Roomba) пылесосит ковер у меня под ногами (при этом периодически наталкиваясь на котенка). Румба – это робот, разработанный компанией iRobot, основанной тремя выпускниками MIT: Родни Бруксом, Колином Энглом (Colin Angle) и Хелен Грейнер (Helen Greiner). Он был создан в согласии с принципами архитектуры поглощения и предоставляет открытый интерфейс, позволяющий менять его поведение самым произвольным образом. Книга Тода Курта (Tod E. Kurt) “Взламывая Румбу” рассказывает о множестве таких возможностей (см. ).

Реализовывать архитектуру поглощения на основе Simbad мы начнем с объявления класса-потомка Agent под названием BehaviorBasedAgent . Каждый экземпляр данного класса будет содержать массив поведений (объектов типа Behavior), а так же булеву матрицу, хранящую информацию об их попарном поглощении.

private Behavior behaviors; private boolean suppresses;

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

Листинг 1. Цикл для поочередной активации поведений и разрешения конфликтов
protected void performBehavior() { boolean isActive = new boolean; for (int i = 0; i < isActive.length; i++) { isActive[i] = behaviors[i].isActive(); } boolean ranABehavior = false; while (!ranABehavior) { boolean runCurrentBehavior = isActive; if (runCurrentBehavior) { for (int i = 0; i < suppresses.length; i++) { if (isActive[i] && suppresses[i]) { runCurrentBehavior = false; break; } } } if (runCurrentBehavior) { if (currentBehaviorIndex < behaviors.length) { Velocities newVelocities = behaviors.act(); this.setTranslationalVelocity(newVelocities .getTranslationalVelocity()); this .setRotationalVelocity(newVelocities .getRotationalVelocity()); } ranABehavior = true; } if (behaviors.length > 0) { currentBehaviorIndex = (currentBehaviorIndex + 1) % behaviors.length; } } }

Отметьте, что метод performBehavior() перегружает аналогичный метод в классе simbad.sim.Agent .

В классе поведения Behavior объявлено два абстрактных (abstract) метода:

  • isActive() : Метод возвращает булево значение, показывающее, должно ли данное поведение быть активировано в данный момент времени, учитывая информацию, поступающую от сенсоров. При этом все экземпляры класса Behavior имеют доступ к общему набору сенсоров.
  • act() : Метод возвращает новые значения поступательной и вращательной скорости (именно в таком порядке), являющиеся результатом активации поведения.

Пример блуждающего робота, притягивающегося к источникам света

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

  • Avoidance: Изменяет направление движения после столкновения или в попытке предотвратить столкновение.
  • LightSeeking: Направляет движение в сторону источника света.
  • Wandering: Периодически меняет направление движения произвольным образом.
  • StraightLine: Направляет движение по прямой.
Листинг 2. Класс Avoidance (на основе демонстрационного примера SingleAvoiderDemo.java из поставки Simbad)
public boolean isActive() { return getSensors().getBumpers().oneHasHit() || getSensors().getSonars().oneHasHit(); } public Velocities act() { double translationalVelocity = 0.8; double rotationalVelocity = 0; RangeSensorBelt sonars = getSensors().getSonars(); double rotationalVelocityFactor = Math.PI / 32; if (getSensors().getBumpers().oneHasHit()) { // Произошло столкновение translationalVelocity = -0.1; rotationalVelocity = Math.PI / 8 - (rotationalVelocityFactor * Math.random()); } else if (sonars.oneHasHit()) { // Считывание показаний эхолокаторов double left = sonars.getFrontLeftQuadrantMeasurement(); double right = sonars.getFrontRightQuadrantMeasurement(); double front = sonars.getFrontQuadrantMeasurement(); // Препятствие близко if ((front < 0.7) || (left < 0.7) || (right < 0.7)) { double maxRotationalVelocity = Math.PI / 4; if (left < right) rotationalVelocity = -maxRotationalVelocity - (rotationalVelocityFactor * Math.random()); else rotationalVelocity = maxRotationalVelocity - (rotationalVelocityFactor * Math.random()); translationalVelocity = 0; } else { rotationalVelocity = 0; translationalVelocity = 0.6; } } return new Velocities(translationalVelocity, rotationalVelocity); }
Листинг 3. Класс LightSeeking (на основе демонстрационного примера LightSearchDemo.java из поставки Simbad)
public boolean isActive() { float llum = getSensors().getLightSensorLeft().getAverageLuminance(); float rlum = getSensors().getLightSensorRight().getAverageLuminance(); double luminance = (llum + rlum) / 2.0; // Активизироваться если источник света неподалеку return luminance > LUMINANCE_SEEKING_MIN; } public Velocities act() { // Повернуть в сторону источника света float llum = getSensors().getLightSensorLeft().getAverageLuminance(); float rlum = getSensors().getLightSensorRight().getAverageLuminance(); double translationalVelocity = 0.5 / (llum + rlum); double rotationalVelocity = (llum - rlum) * Math.PI / 4; return new Velocities(translationalVelocity, rotationalVelocity); }
Листинг 4. Класс Wandering
public boolean isActive() { return random.nextDouble() < WANDERING_PROBABILITY; } public Velocities act() { return new Velocities(0.8, random.nextDouble() * 2 * Math.PI); }
Листинг 5. Класс StraightLine class
public boolean isActive() { return true; } public Velocities act() { return new Velocities(0.8, 0.0); }

В листинге 6 показано поглощение одних поведений другими.

Листинг 6. Объявление булевой матрицы, описывающей попарное поглощение поведений
private void initBehaviorBasedAgent(BehaviorBasedAgent behaviorBasedAgent) { Sensors sensors = behaviorBasedAgent.getSensors(); Behavior behaviors = { new Avoidance(sensors), new LightSeeking(sensors), new Wandering(sensors), new StraightLine(sensors), }; boolean subsumes = { { false, true, true, true }, { false, false, true, true }, { false, false, false, true }, { false, false, false, false } }; behaviorBasedAgent.initBehaviors(behaviors, subsumes); }

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

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

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

Лабиринты

"Ну, наконец-то! Я так и знала, что из этого лабиринта можно выбраться, действуя по алгоритму Тремо!" — Лиза Симпсон

Из всей массы алгоритмов выхода из лабиринтов, два выделяются тем, что используют объем памяти, не зависящий от размера самого лабиринта. Они известны под названиями “следование вдоль стены” (wall-following) и алгоритм Пледжа . Последний был назван в честь Джона Пледжа (Jon Pledge) из Эксетера, который изобрел алгоритм в возрасте 12 лет. Кроме этого есть еще великолепный алгоритм Тремо (Tremaux algorithm) – любимый алгоритм Лизы Симпсон – но в целях упрощения мы рассмотрим только первые два.

Алгоритмы генерации лабиринтов

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

Следование вдоль стены

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

Алгоритм Пледжа

Алгоритм Пледжа более сложен, но зато способен находить выход из большего числа лабиринтов за счет возможности переходов от одного острова к другому. Идея алгоритма заключается в том, что надо выбрать некое абсолютное направление (север, юг, запад или восток) и всегда стараться ему следовать. Назовем его предпочтительным направлением . В случае если вы упираетесь в стену, вы поворачиваете направо и движетесь в соответствии с алгоритмом “следование вдоль стены” до тех пор, пока не выполнится два условия. Первое – это поворот в предпочтительном направлении, а второе – сумма всех ранее сделанных поворотов равна нуля (при этом каждый поворот против часовой стрелки принимается за единицу, а по часовой стрелке, соответственно, за минус единицу). После этого вы продолжаете двигаться в предпочтительном направлении пока это возможно и так далее. Условие на нулевую сумму поворотов необходимо для избегания разного рода ловушек, например, участков лабиринтов, имеющих форму G (нарисуйте ее на бумаге и сразу поймете, о чем я).

Алгернон: робот, выбирающийся из лабиринтов

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

Проектирование робота

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

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

Реализация алгоритма следования вдоль стены

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

Мы сделаем еще одно допущение в целях упрощения примера: будем считать, что все стены пересекаются под прямыми углами. Другими словами, все повороты налево и направо осуществляются исключительно на 90 градусов.

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

  • Идти прямо.
  • Упершись в стену, повернуть направо.
  • Встретив ответвление влево, повернуть.
  • Остановиться при нахождении выхода.

Поведениям необходимо присвоить приоритеты. В данном примере, мы их выберем в том же порядке, в каком они перечислены выше. В итоге нам понадобятся четыре класса-наследника Behavior:

  • GoStraight
  • TurnRight
  • TurnLeft
  • ReachGoal

В листинге 7 показан код класса GoStraight , в котором TRANSLATIONAL_VELOCITY – это константа, равная 0.4:

Листинг 7. Реализация поведения для движения по прямой
public boolean isActive() { return true; } public Velocities act() { double rotationalVelocity = 0.0; return new Velocities(TRANSLATIONAL_VELOCITY, rotationalVelocity); }

Код класса TurnRight показан в листинге 8. Метод getRotationCount() возвращает количество временных интервалов, необходимых для поворота на 90 градусов при данной скорости вращения.

Листинг 8. Реализация поведения для поворота направоBehavior code for turning right
public boolean isActive() { if (turningRightCount > 0) { return true; } RangeSensorBelt bumpers = getSensors().getBumpers(); // Проверка переднего бампера. if (bumpers.hasHit(0)) { backingUpCount = 10; turningRightCount = getRotationCount(); return true; } else { return false; } } public Velocities act() { if (backingUpCount > 0) { // Робот уперся в стену. Надо чуть отойти назад перед поворотом backingUpCount--; return new Velocities(-TRANSLATIONAL_VELOCITY, 0.0); } else { turningRightCount--; return new Velocities(0.0, -Math.PI / 2); } }

Для поворота налево, Алгернон должен сначала чуть продвинуться вперед так, что стена слева от него закончится. Затем он поворачивается налево и проходит еще немного вперед так что, по его левую сторону опять находится стена. Код показан в листинге 9.

Листинг 9. Реализация поведения для поворота налево
public boolean isActive() { if (postGoingForwardCount > 0) { return true; } RangeSensorBelt sonars = getSensors().getSonars(); // Проверка эхолокатора слева if (sonars.getMeasurement(1) > 1.0) { // Слева коридор preGoingForwardCount = 20; postGoingForwardCount = 40; turnLeftCount = getRotationCount(); return true; } else { return false; } } public Velocities act() { if (preGoingForwardCount > 0) { preGoingForwardCount--; return new Velocities(TRANSLATIONAL_VELOCITY, 0.0); } else if (turnLeftCount > 0) { turnLeftCount--; return new Velocities(0.0, Math.PI / 2); } else { postGoingForwardCount--; return new Velocities(TRANSLATIONAL_VELOCITY, 0.0); } }

Код класса ReachGoal показан в листинге 10.

Листинг 10. Поведение при обнаружении выхода из лабиринта
public boolean isActive() { RangeSensorBelt sonars = getSensors().getSonars(); // Впереди открытое пространство? Другими словами, нашли ли мы выход из лабиринта? double clearDistance = 1.2; return sonars.getMeasurement(0) > clearDistance && sonars.getMeasurement(1) > clearDistance && sonars.getMeasurement(3) > clearDistance && sonars.getMeasurement(2) > clearDistance; } public Velocities act() { // Остановка return new Velocities(0.0, 0.0); }

Главный метод, определяющий поведение Алгернона приведен в листинге 11.

Листинг 11. Код управления поведениями Алгернона
private void initBehaviorBasedAgent(algernon.subsumption.BehaviorBasedAgent behaviorBasedAgent) { algernon.subsumption.Sensors sensors = behaviorBasedAgent.getSensors(); algernon.subsumption.Behavior behaviors = { new ReachGoal(sensors), new TurnLeft(sensors), new TurnRight(sensors), new GoStraightAlways(sensors) }; boolean subsumes = { { false, true, true, true }, { false, false, true, true }, { false, false, false, true }, { false, false, false, false } }; behaviorBasedAgent.initBehaviors(behaviors, subsumes); }

На рисунке 1 показано, как Алгернон движется по лабиринту.

Рисунок 1. Алгернон, двигающийся по лабиринту

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

Заключение

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

Обратите внимание на инструментарий LEGO Mindstorms, если вы заинтересовались проектированием и программированием роботов. В качестве альтернативы, можно поработать с роботами BEAM (Biological Electronic Aesthetics Mechanics). BEAM далее развивает идею поведенческой робототехники, вообще убирая программирование как таковое. Глобальное поведение робота определяется жестко заданными соединениями поведенческих узлов, работающих на рефлексах. Заплатив не более $30 вы сможете построить своего первого BEAM-робота. Также можно спроектировать робота по чертежам, которые вы найдете в книге Гарета Бранвина (Gareth Branwyn) “Создание роботов для абсолютных новичков” (см. ). Ну и, наконец, всегда можно купить Румбу и взломать его.

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

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

Программирование промышленных роботов в SprutCAM

Николай Конов,
директор компании KROKK, d.o.o., Словения, г.Любляна (www.krokk.si)

Индустриальные роботы в современной промышленности

Мировой рынок роботов

Применение индустриальных роботов во всем мире каждый год увеличивается. К 2018 году более 1,3 млн роботов будут введены в эксплуатацию по всему миру. Средний показатель плотности применения роботов в производстве, по данным 2014 года, равен 66 единицам на 10 тыс. работников. В 21 стране этот показатель выше среднего (рис. 1).

В них входит большинство индустриально развитых страх Европы, США, Канада и Азиатский регион (Южная Корея, Япония, Тайвань). Словения занимает в этом списке не последнее место и с показателем 100 роботов на 10 тыс. человек занимает лидирующие позиции по автоматизации производства. Наибольшее применение роботы находят в автомобильной промышленности, где наблюдается более высокая плотность роботизации производства (рис. 2).

Области применения роботов

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

Робот, благодаря наличию шести степеней свободы, может также делать сложные многоосевые перемещения вдоль необходимой траектории, выполняя, таким образом, любую обработку, которая до этого была возможна только на специализированных станках. Это становится реальным прежде всего вследствие многолетней эволюции индустриальных роботов и контроллеров. Индустриальные роботы стали более точными и жесткими — возможно позиционирование робота с точностью до нескольких сотых долей миллиметра. Совершеннее стали и контроллеры роботов — они позволяют управлять несколькими роботами одновременно, а также интерполировать перемещения робота с дополнительными линейными и поворотными осями. Всё это создало предпосылки для использования роботов в тех отраслях, где до сих пор было возможно применение только специализированных станков с ЧПУ.

Возможности индустриальных роботов в обработке материалов

Тенденция применения индустриальных роботов для различных видов обработки материалов приобретает всё большую популярность в мировой промышленности. И этому есть объяснение: роботы имеют ряд преимуществ перед классическими станками с ЧПУ, такие как: шесть степеней свободы; большая зона обработки; использование того же робота для захвата заготовки; более низкая стоимость; использование дополнительных осей позиционирования детали.

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

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

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

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

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

Большая зона обработки

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

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

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

Многоцелевое использование робота

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

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

Дополнительные степени свободы

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

Для сварки бака со всех сторон используется дополнительная поворотная ось, которая управляется синхронно с осями робота и позволяет выполнить операцию сразу со всех сторон.

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

SprutCAM для программирования роботов

Стандартные возможности создания программ

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

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

Применение CAM-системы для программирования

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

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

Компания «СПРУТ-Технология» уже более 20 лет занимается разработкой программного обеспечения SprutCAM. Одной из опций данного продукта является возможность создания программ для промышленных роботов на основе загружаемой 3D-модели изделия.

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

Функции SprutCAM

Стратегии обработки

Будучи многофункциональной CAM-системой, SprutCAM содержит большое количество стратегий для любых видов обработки: фрезерования (черновые, чистовые, многоосевые операции); резания; сварки (рис. 7).

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

Поддержка

В SprutCAM уже реализована поддержка большинства известных производителей роботов: известны кинематические модели и готовы постпроцессоры. Уже выполнено и полностью отлажено для пользователя взаимодействие с роботами ведущих производителей (рис. 8). Внедрение продукта под конкретную задачу занимает минимальное количество времени.

Преимущества использования SprutCAM для программирования роботов

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

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

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

С 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;

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

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

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

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

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

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

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

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

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

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

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

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

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

Ну и конечно в конце статьи вас ждёт .

LEGO Education WeDo

(Цены обновлены 27.01.2016) Начнём, пожалуй, с самого известного датского брэнда - LEGO . Компания производит два типа конструкторов с возможностью программировать для образовательных целей для разных возрастов. Для детей возраста от 7 лет LEGO выпускает серию LEGO Education WeDo . Здесь вы можете купить стартовый набор «ПервоРобот » (арт. 9580) (около 9000 руб.) и ресурсный набор (арт. 9585) (около 4000 руб.), если деталей вам не хватило. Также дополнительно можно приобрести датчики движения и наклона, мультиплексоры, моторы и лампочки. Отдельно можно приобрести комплект учебных проектов на компакт диске (арт. 2009585) (примерно 5800 руб.).

Программное обеспечение LEGO Education WeDo (арт. 2000097) для программирования роботов этой линейки с комплектом заданий приобретается отдельно и стоит порядка 7000 руб. Программирование здесь визуальное. Вы просто соединяете друг с другом нужные блоки-действия и таким образом составляете программу.

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

LEGO Education WeDo 2.0

(Описание добавлено 27.01.2016) Это вторая версия конструктора LEGO Education WeDo , которая была впервые представлена на выставке CES 2016 . Конструктор также адаптирован для детей в возрасте от 7 лет. Но, в отличие от первой версии, здесь уже можно собирать автономных роботов, ведь готовый робот работает на двух батарейках AAA, а взаимодействие с ПК происходит по Bluetooth.

Стартовый набор стоит от 14600 руб. (арт. 45300). Из него можно собрать следующие модели: Майло (научный вездеход), Тягач, Гоночная машина, Землетрясение, Лягушка, Цветок, Шлюз, Вертолёт и Мусоровоз. В комплект набора входит СмартХаб, средний мотор, датчик движения, датчик наклона и 280 разнообразных деталей. Если вам не хватает каких-либо электронных компонентов, вы можете докупить их отдельно. Дополнительно можно приобрести аккумулятор (арт. 45302), который обеспечит более продолжительное время работы (я нашел такой аккумулятор только в одном магазине за 6100 руб.). Ещё учтите, что адаптер для зарядки аккумулятора (ар. 45517) продаётся отдельно (адаптер используется такой же, как и для конструкторов LEGO MINDSTORMS Education EV3 и NXT, см. ниже).

Также вы можете приобрести комплект учебных материалов (арт. 2045300), с помощью которого вы можете реализовать 17 проектов по физике, биологии, географии, исследованию космоса и инженерному проектированию, работа над которыми в сумме может занять более 40 академических часов. Этот комплект я тоже нашёл только в одном магазине за 30000 руб.

Микрокомпьютера здесь как такового нет. Вместо него здесь есть СмартХаб, который играет роль связующего звена между ПК/планшетом и электроникой робота. Т.е. все программы, которые вы напишите, будут работать на ПК или планшете. У СмартХаба здесь всего два порта для подключения датчиков и моторов, один индикатор и всего одна кнопка - кнопка питания. Электроника и ПО первой и второй версий конструкторов несовместимы.

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

В стартовый набор уже включено бесплатное базовое ПО, в состав которого входят стартовые проекты. Русский язык есть. ПО работает на Windows (7, 8.1 и RT), MacOS, iPad, Android-планшетах и взаимодействует с микрокомпьютером через Bluetooth 4.0. Программирование здесь визуальное, аналогичное первой версии конструктора. Скачать ПО можно . Кроме того есть возможность программировать с помощью Scratch 2. А для особо желающих, есть SDK с открытым исходным кодом, позволяющий взаимодействовать со СмартХабом через Bluetooth.

LEGO Mindstorms Education EV3

(Цены обновлены 27.01.2016) Этот конструктор роботов подходит для детей от 10 лет, хотя и взрослые используют его достаточно активно. Начинающим можно купить стартовый образовательный набор (арт. 45544) примерно за 30000 руб. (см. картинку), из которого вы сможете собрать балансирующего робота, щенка, ступенехода, сортировщика деталей по цветам и многое другое, что вам подскажет фантазия. В стартовый набор входит 541 деталь LEGO Technic и два лотка для их хранения, микрокомпьютер EV3 (с поддержкой Wi-Fi и Bluetooth ), аккумулятор, три сервомотора (2 больших и один средний), ультразвуковой датчик, датчик цвета, гироскопический датчик и два датчика касания. В набор не входят программное обеспечение LEGO Mindstorms EV3 и зарядка для аккумулятора.

Отдельно хочу заметить, что EV3 – это уже третья версия конструктора. Предыдущие версии назывались NXT (вторая версия) и RCX (первая версия). Версия NXT до сих пор продаётся наравне с EV3 версией, но о старых версиях я не буду здесь писать.

Внутри микрокомпьютера EV3 прячется процессор ARM 9 с операционной системой Linux . Здесь есть 4 входных порта и 4 выходных. В вашем распоряжении 16 Мб флеш-памяти и 64 Мб RAM. Для расширения памяти есть слот для карт Mini SDHC объёмом до 32Гб. На блоке имеется шестикнопочный интерфейс с подсветкой тремя цветами и чёрно белый дисплей разрешением 178x128. Здесь же есть динамик. Микрокомпьютер поддерживает Wi-Fi (встроенного Wi-Fi нет, рекомендуется использовать адаптер NETGEAR WiFi dongle WNA1100 Wireless-N 150 ) и Bluetooth (Bluetooth встроенный) для взаимодействия с роботом. Питание происходит от шести пальчиковых батареек (размера AA) или от литиевого аккумулятора ёмкостью 2050 мАч. От аккумулятора робот проработает дольше, чем от батареек. Заряжается аккумулятор 3-4 часа.

При желании вы можете купить дополнительный ресурсный набор (арт. 45560) примерно за 9000 руб., в комплект которого входят 853 дополнительные детали LEGO Technic . С таким набором вы сможете собрать робота-слона (см. фото), танкобота, фабрику игрушек и многое другое.

Для любителей космоса есть ещё один дополнительный образовательный набор "Космические проекты " (арт. 45570) стоимостью примерно 14000 руб. Чтобы использовать этот набор вам понадобятся стартовый и ресурсный наборы, о которых написано выше. К этому набору дополнительно можно приобрести комплект заданий (арт. 2005574) стоимостью около 11000 руб., в который входят тематические и обучающие миссии, а также исследовательские проекты.

Кроме перечисленных здесь комплектов вы можете найти в продаже домашнюю версию набора LEGO Mindstorms EV3 (арт. 31313) примерно за 21000 руб. (см. картинку ниже). Из этого набора можно собрать 5 базовых роботов и 12 бонусных моделей. В этом наборе немного другой набор деталей и датчиков, в отличае от стартового образовательного набора LEGO Mindstorms Education EV3 . Здесь есть пульт управления, а вместо ультразвукового датчика - инфракрасный (который, кроме изменения расстояний, принимает сигнал от пульта) и отсутствует гироскоп. Будьте внимательны: в наборе отсуствует аккумулятор и вам придётся использовать 6 пальчиковых батареек (AA) или покупать аккумулятор отдельно, а он не дешёвый. Кстати, для пульта тоже понадобятся батарейки: 2 мизинчиковые батарейки (AAA).

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

Каждый микрокомпьютер EV3 имеет четыре входных порта для датчиков и четыре выходных порта для сервомоторов, лампочек и пр. Если вам этого не хватает, вы можете соединить вместе («в гирлянду») до 4-х микрокомпьютеров с помощью дополнительных USB -кабелей. В этом случае управление ложится на плечи главного микрокомпьютера и вы получаете до 16-ти входных портов и до 16-ти – выходных.

Программируются роботы этой серии с помощью программного обеспечения LEGO Mindstorms EV3 . Для домашнего набора ПО скачивается бесплатно . Для образовательных наборов ПО стало бесплатным с 1 января 2016. Программирование здесь тоже визуальное блочное основанное на графическом языке программирования LabVIEW , который позволяет создавать как простые, так и сверхсложные программы. Можно создавать свои блоки с помощью инструмента MyBlocks . Максимальный размер программы – 16 блоков не считая блок начала программы и цикла. Работает ПО на Microsoft Windows или Apple Macintosh . Русский язык поддерживается.

Образовательная версия ПО LEGO Mindstorms EV3 , кроме программирования, позволяет собирать статистические данные с датчиков и записывать их в память микрокомпьютера или в реальном времени передавать их через USB кабель, Wi-Fi или Bluetooth . Собранные данные можно анализировать, строить по ним графики. Здесь есть мультимедийные уроки в помощь ученикам и преподавателям.

Если вас интересует альтернативная среда программирования, то кроме LEGO Mindstorms EV3 вы можете программировать с помощью сред разработки LabVIEW (требуется дополнительный модуль LabVIEW LEGOMINDSTORMS) и RobotC (язык программирования C , RobotC версии 4.x поддерживает серии EV3 и NXT ). Обе среды программирования платные. В RobotC вы даже сможете тестировать робота с вашей программой в виртуальном мире, см. картинку. Виртуальные миры можно скачать . Из бесплатных посмотрите ev3dev . Здесь есть официальная поддержка языков C++ , Lua , Node.js , Python и поддержка сторонними разработчиками языков Google Go , C и Clojure . А установив виртуальную Java-машину leJOS в микрокомпьютер EV3 вы сможете программировать на Java с помощью Eclipse или с помощью Scratch 2 (о том как настроить Scratch 2 читайте в статье «Программирование робота Lego Mindstorms EV3 с помощью Scratch 2.0 »). Для поклонников .NET есть проекты LEGO MINDSTORMS EV3 API и MonoBrick . А для поклонников Basic есть расширение для бесплатной среды разработки Small Basic .

А совсем продвинутые изобретатели могут приобрести датчики сторонних компаний, таких как HiTechnic , и Vernier . Например, вы можете дополнительно приобрести инфракрасный датчик для обнаружения людей и животных, компас, барометр, датчик силы, датчик обнаружения объектов на небольшом расстоянии, датчик угла (измеряет углы и скорость поворота) и другие. Компания HiTechnic предлагает датчики непосредственно адаптированные для EV3 и NXT и к каждому датчику можно скачать программные блоки для ПО LEGO Mindstorms EV3 . Компания Vernier предлагает приобрести адаптер , позволяющий использовать их датчики в конструкторе, и дополнительно предлагает скачать программный блок для ПО LEGO Mindstorms EV3 .

TETRIX

MATRIX

Robotis OLLO

(Цены обновлены 05.05.2015) Корейская компания Robotis , основанная в 1999 году, предлагает конструктор OLLO для самостоятельной сборки роботов. Этот конструктор продаётся в виде наборов, рассчитанных на разный возраст. Из набора Figure (7+) можно создавать фигурки животных, но здесь нет ни моторов, ни датчиков, ни контроллеров. Из наборов Action (8+) и Starter (8+) уже можно создавать подвижные непрограммируемые модели. Здесь есть моторчик, но также нет ни датчиков, ни контроллеров. А вот наборы Explorer (10+), Inventor (10+) и Bug (10+) уже позволят конструировать и программировать роботов. Для набора Explorer есть расширяющий набор Inventor Expansion Set (около 9000 руб.), который превращает набор Explorer в набор Inventor . Стоимость набора Explorer около 16000 руб., Inventor (в 2015 году пропал из розничной продажи), Bug – около 9000 руб.

Из набора Explorer вы сможете сделать 12 моделей, а из набора Inventor - 24 модели по инструкции, но ничего не мешает вам сконструировать свои собственные модели роботов. Максимальный набор Inventor содержит контроллер, два двигателя, два сервомотора, два ИК-датчика, ИК-приемопередатчик, тактильные датчики, светодиодный модуль. В контроллере есть четыре порта для подключения приводов, два многофункциональных порта для подключения датчиков, приводов и порт для дистанционного управления и загрузки программ.

Из набора Bug вы сможете собрать 4 робота-жука, которыми можно управлять с помощью контроллера, они смогут ходить по линии (карточки для создания маршрута в комплекте) и обнаруживать объекты. Здесь в комплекте нет адаптера USB Downloader LN-101 для подключения к компьютеру, а он нужен, если вы собираетесь программировать.

Программируются роботы Robotis OLLO , как и все другие роботы компании, с помощью фирменного программного обеспечения RoboPlus . Для программирования используется C -подобный язык. В состав ПО входят RoboPlus Task (редактор программ, см. картинку), RobotPlus Manager (настройка оборудования), RoboPlus Motion (программирование сложных движений робота), RoboPlus Terminal (терминал) и Dynamixel Wizard (настройка и калибровка сервоприводов).

После написания вашей программы её нужно загрузить в контроллер соединив его с компьютером (см. рисунок) и, после включения робота, ваша программа начнёт выполняться. Скачать программу можно , почитать инструкцию - . Продвинутые программисты могут написать свою собственную прошивку для роботов Robotis OLLO на Embedded C .

Для роботов компании Robotis можно также писать программы прямо на смартфоне или планшете под управлением Android 2.3 и выше с помощью приложения R+ m.Task .

Robotis Bioloid

(Цены обновлены 05.05.2015) С этой серией той же корейской компании Robotis с помощью наборов Premium Kit (около 98000 руб.) и GP (около 234 тыс. руб.) вы сможете собрать человекоподобных роботов. Также в серии есть и другие наборы: STEM Standard (10+) (стоит около 26000 руб.), STEM Expansion (10+) (дополняет набор STEM Standard , стоит около 21000 руб.), Beginner (стоит около 34000 руб.).

Из набора STEM Standard можно сделать 16 различных роботов по схемам, а с набором STEM Expansion можно сделать ещё 9 моделей. В наборе идёт также 48 заданий. Этот набор частично состоит из комплектующих серии Robotis OLLO , а частично – из комплектующих Robotis Bioloid . Т.е. с этим набором вы можете использовать уже имеющиеся у вас наборы обеих серий. Это единственный набор совместимый с сериями OLLO и Bioloid . В наборе микроконтроллер CM-530 , матрица ИК-датчиков (позволяют бежать роботу по линии), 3 ИК-датчика (обнаружение препятствий) и пульт управления RC-100A .

Набор Beginner позволит вам создать роботов 14-ти различных конструкций. В наборе микроконтроллер CM-5 , 4 сервомотора DYNAMIXEL AX-12A и сенсорный модуль AX-S1 .

С набором Premium Kit вы сможете собрать человекоподобного робота в одной из трёх модификациях или 26 простых роботов (см. картинку). Человекоподобный робот из этого набора обладает системой стабилизацией тела благодаря двухосному гироскопу, что позволяет ему ловко удерживаться на ногах при ходьбе.

В наборе контроллер CM-530 (32-битный ARM Cortex, 6 кнопок, микрофон, датчик температуры, датчик напряжения, 6 входных/выходных OLLO-совместимых портов, 5 коннекторов для сервомоторов AX/MX-Series DYNAMIXEL ), 18 сервомоторов, двухосный гироскоп, 2 ИК-датчика, пульт управления RC-100A .

(Описание добавлено 08.06.2015) Этот конструктор я решил добавить сюда, потому что из него, кроме человекоподобного робота можно собрать ещё порядка 26 различных моделей роботов и механизмов. – это детище корейской компании DST Robot (до марта 2015 года компания называлась Dongbu Robot ). Пластмассовые элементы конструктора могут быть одного из следующих цветов: зелёного (по умолчанию), красного, жёлтого или синего. Есть приятный бонус – детали можно распечатать на 3D-принтере. Страничка конструктора находится , а вся документация и 3D-модели . Стоимость в магазинах от 65000 руб.

В наборе микроконтроллер (ATmega128 MCU , в микроконтроллер встроены датчики звука и света), датчик расстояния, IR-пульт дистанционного управления и IR-приёмник для него. Гироскоп/акселерометр и Bluetooth-модель нужно покупать отдельно.

VEX EDR

Конструкторы серии VEX EDR или просто VEX производит компания VEX Robotics . Предназначены они для возраста от 10 лет. Серия подходит как для школ, институтов, так и для продвинутых роботостроителей. В этой серии вы найдёте как наборы, так и отдельно продающиеся запчасти, объекты и поля для соревнований. Программируемые наборы (с микроконтроллером в комплекте) делятся на стартовые (Programming Control Starter Kit и Dual Control Starter Kit ) и наборы для соревнований (Classroom and Competition Mechatronics Kit , Classroom and Competition Programming Kit и Classroom and Competition Super Kit ). Цены на наборы варьируются от 400 до 1000 долларов на сайте производителя . Из каждого наборы вы сможете собрать робота на колёсах с клешнёй, см. картинку. Остальные модели вы можете придумывать самостоятельно, полагаясь на свою фантазию.

Вообще в серии VEX EDR очень широкий перечень компонентов. Вы всегда сможете отдельно приобрести датчики для следования по линии, датчики обнаружения препятствий и измерения расстояния до препятствий, датчики света, оптические датчики положения осей (измерение углового перемещения, направления вращения оси, пройденного расстояния и пр.), потенциометры (определение местоположения и направления при вращении), гироскопы, датчики касания, ограничители движений, акселерометры (измерение ускорения), светодиодные фонарики. Из механики нужно обратить внимание на возможность приобретения шестерёнчатых коробок передач (в том числе и червячную), гусениц, Omni-колёс, колёса Илона.

Программируются роботы этой серии с помощью RobotC , easyC (программирование на языке C с помощью перетаскивания блоков, см. первую картинку снизу), Flowol (программирование с помощью блок-схем, см. вторую картинку снизу) или Modkit (визуальное программирование с помощью блоков). Все среды разработки платные.

VEX IQ

Эта серия тоже производится компанией VEX Robotics и она тоже позволяет создавать программируемых роботов, но рассчитана она на возраст от 8 лет. Стартовые наборы этой серии стоят около 250 долларов на сайте производителя. Всего в серии 3 основных набора (Starter Kit with Controller , Starter Kit with Sensors , Super Kit ), расширяющие наборы, объекты и поля для соревнований, а также комплектующие по отдельности. Все позиции хорошо описаны на сайте производителя . В наборы Starter Kit with Sensors и Super Kit входят датчик цвета, гироскоп и датчик расстояния. Управление с пульта возможно в наборах Starter Kit with Controller и Super Kit . Во все наборы входят датчики касания. Хочется отметить, что в соревновательных наборах вы получите кроме дополнительных деталей Omni-колёса и гусеницы. Микроконтроллер VEX IQ оборудован 12-ю универсальными портами для подключения датчиков и моторов.

Программируются роботы серии VEX IQ с помощью Modkit (визуальное программирование с помощью блоков, см. картинку), а также Flowol и RobotC .

Интересна также виртуальная среда проектирования конструкции вашего робота VEX Assembler (см. картинку). С помощью этого ПО вы сможете виртуально изготовить и опробовать вашу конструкцию ещё на этапе проектирования. В программу уже загружено более 110 деталей конструктора VEX IQ , объекты для соревнований и даже целиком робот Clawbot IQ (робот с клешнёй). Программа доступна для свободного скачивания (заполните форму справа и получите ссылку для скачивания по электронной почте).

VEX PRO

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

Технолаб

(Цены обновлены 05.05.2015) Под этой торговой маркой скрываются всё те же наборы от компаний Robotis и VEX Robotics , о которых было написано выше. Наборы локализованы и собраны для желающих заниматься робототехникой в зависимости от возраста и степень подготовленности и называются модулями. Всего модулей семь. Это модули предварительного , начального , базового , базового соревновательного , профессионального , исследовательского и экспертного уровней. Подробности о комплектации по всем модулям представлены на сайте ООО «Экзамен-Технолаб» . Компания занимается поставкой модулей для образовательных учреждений, но при желании модули можно найти и в розничной продаже по цене от 65000 руб. за модуль предварительного уровня рассчитанного на возраст 5-8 лет до 398 тыс. руб. за модуль экспертного уровня (14+). Программирование роботов доступно во всех модулях кроме модуля предварительного уровня.

Arduino

Торговая марка Arduino – это инструменты для создания не только роботов, но и множества различных гаджетов. Для роботостроителей здесь есть микроконтроллеры, всевозможные датчики, двигатели, сервомоторы, платы расширений, LCD дисплеи, светодиоды. Но под этой торговой маркой не производятся элементы корпусов или каркасов для сборки роботов. Здесь также нет элементов для монтажа. Единственное исключение - (см. картинку).

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

Программировать микроконтроллеры Arduino можно с помощью бесплатной среды разработки Arduino IDE с открытым исходным кодом (см. первую картинку снизу). Написана Arduino IDE на Java и работает на компьютерах под управлением Windows , Mac OS X и Linux . В Arduino IDE используется язык программирования Processing (язык основанный на Java ). Кроме того некоторые микроконтроллеры Arduino можно запрограммировать с помощью RobotC , Flowol , Minibloq (графический язык программирования, бесплатно, см. вторую картинку снизу), Ardublock (графический язык программирования, встраивается в Arduino IDE , есть перевод инструкции на русский язык, бесплатно), Physical Etoys (бесплатный графический язык программирования для Windows и Linux с открытыми исходниками, русификации нет) и Modkit .

Также для программирования некоторых контроллеров Arduino можно воспользоваться плагином Visual Micro (платный), который встраивается в Microsoft Visual Studio 2008-2013 или в Atmel Studio 6.1-6.2 .

#Структор

(Описание конструктора обновлено 12.09.2016) Компания «Амперка» предлагает собственное решение для сборки Arduino -совместимых роботов – это #-образные панели, рейки и крепления для плат, датчиков и моторов под названием #Структор . Детали изготавливаются фрезеровкой из листов белого вспененного ПВХ толщиной 5 мм. За счёт использования такого материала у вас есть возможность красить детали красками. Прочность элементов достаточная для того чтобы создавать конструкции небольшого размера. В то же время материал податливый и вы можете легко просверливать в деталях отверстия, вкручивать шурупы или менять геометрию деталей канцелярским ножом.

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

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

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

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

Multiplo

(Описание конструктора добавлено 15.05.2015) Multiplo – это Arduino -совместимый конструктор созданный аргентинской компанией RobotGroup . Конструктор полностью открытый, т.е. доступны как исходники ПО, так и чертежи конструктивных элементов (детали можно распечатать на 3D-принтере или нарезать на лазерном станке с ЧПУ). Основные детали пластиковые, уголки и некоторые другие элементы - аллюминиевые, винты, гайки, шайбы и оси - металлические. Эта же компания разработала программу для графического программирования Minibloq , о которой уже было написано выше (один из директоров компании, Хулиан да Силва, является автором этой программы). Официальная страница конструктора , а все инструкции, чертежи и ПО можно скачать .

Конструктор представлен наборами Starter Kit (134 долл.), Building Kit (269.90 долл.) и Monster Kit (479,90 долл.). В наборе Starter Kit контроллер DuinoBot , батарейный отсек (для трёх батареек AA), два инфракрасных сенсора, два двигателя, пульт управления и приёмник сигнала от него, провода и механические детали для постройки простой тележки. В наборе есть отвёртка и ключи, так что дополнительный инструмент вам не понадобится. В наборе Building Kit дополнительно появляются ультразвуковой датчик, 2 сервомотора, 2 датчика света, 2 светодиодные лампочки, а также дополнительные детальки, в том числе и для сборки клешни.

Набор Monster Kit самый большой. В этом наборе целых два микроконтроллера (можно делать сразу двух роботов из одного набора), а также 4 обычных мотора, 6 сермоторов, батарейные отсеки, один ультразвуковой датчик, 4 инфракрасных датчика, два комплекта дистанционного управления (пульт и датчик для приёма сигнала от него), много механических деталей, в том числе и для сборки двух клешней.

Ещё в официальном магазине есть набор Mechanical Kit (159 долл.), содержащий только механические детали, без электронной части. Также можно приобрести по отдельности микроконтроллер DuinoBot с батарейным отсеком (по цене 59.90 долл.), различные датчики и механические детали. И можно бесплатно скачать файлы для печати полей для соревнований. Магазин Multiplo находится .

Поскольку конструктор Arduino-совместимый, то программировать можно с помощью аналогичных средств разработки: Arduino IDE , Minibloq , Ardublock , Physical Etoys и Modkit .

Makeblock

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

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

Количество как самодостаточных, так и ресурсных наборов в магазине на официальном сайте огромное. Отдельно здесь можно купить датчики, платы, конструктивные элементы и пр. Из тематических наборов хочется выделить наборы для сборки 3D-принтера (набор Makeblock Constructor I 3D Printer Kit , 699,99 долл.), плоттера (XY-Plotter Robot Kit v2.0 , 299,99 долл.), робота играющего на ксилофоне (набор Music Robot Kit , 199,99 долл.), конструктор для сборки робота-художника различных модификаций рисующего фломастерами или выжигающего лазером (набор mDrawBot with Bluetooth and Laser Kit – Blue , 349,99 долл.) и робот-тележка mBot с большим набором датчиков, шасси которого совместимы с деталями LEGO и Makeblock (Bluetooth -версия стоит 74,99 долл., Bluetooth и Wi-Fi версия – 79,99 долл.).

Про набор mDrawBot я хочу написать отдельно. Из него можно собрать одного из 4-х роботов-художников:

mScara – это роботизированная рука, рисующая ручкой или фломастером, а с дополнительным набором Laser Kit (в комплекте есть даже очки для защиты глаз), ручку можно заменить на лазер, который будет выжигать рисунок, например на фанере.

mSpider – паук-художник, который висит на двух верёвочках и рисует на вертикальных поверхностях.

mEggBot – робот, рисующий на яйцах или шариках для пинг-понга.

mCar – трёхколёсный робот-машинка, рисующий на листе бумаги, по которому он ездит.

Но и это ещё не всё. Специально для набора mDrawBot компания Makeblock разработала программу с помощью которой вы сможете импортировать векторный рисунок формата SVG , конвертировать BMP в SVG и масштабирование рисунка. При нанесении рисунка с помощью лазера поддерживаются разные оттенки.

Наборы-конструкторы общего назначения следующие: Starter Robot Kit (Bleutooth -версия стоит 149,99 долл., IR -версия - 119.99) и Ultimate Robot Kit (399,99 долл.). Есть аналогичные наборы без электроники.

Для дистанционного управления роботом есть бесплатное приложение для Android и iOS - Makeblock . Некоторые наборы комплектуются пультами дистанционного управления, например, IR -версия набора Starter Robot Kit .

Программируются роботы Makeblock с помощью программы собственной разработки mBlock , основанной на редакторе Scratch 2.0 , с помощью Arduino IDE или ArduBlock . Чтобы работать в Arduino IDE или ArduBlock необходимо дополнительно установить библиотеку Makeblock . Примеры, инструкции, драйверы и ПО можно найти .

HUNA-MRT

(Цены обновлены 05.05.2015) Под корейским брендом «HUNA-MRT » скрываются наборы для конструирования механизмов и роботов. Наборы FUN&BOT (MyRobotTime ) и KICKY (MRT2 ) – это наборы для начинающих (на возраст 6-8 лет) из пластмассовых деталей и здесь нет программирования. А вот в наборах серий CLASS (MRT3 ) (на возраст 7-11 лет) и TOP (на возраст 9-11 лет) уже есть программируемая плата и есть возможность программировать роботов с помощью простой графической среды программирования. Отличие двух последних серий в том, что в серии CLASS (MRT3 ) детали пластмассовые, а в серии TOP – металлические. Во всём остальном – это полностью совместимые наборы. Детали из одной серии можно использовать вместе с деталями других серий этого брэнда. Есть также более продвинутый набор HUNITRONIC (для возраста 12-18 лет), который укомплектован аналогом микроконтроллера Arduino UNO и платой Extension IO Shield , для подключения датчиков. Все наборы комплектуются графической средой программирования. Получить больше информации по конструкторам можно на сайте ООО «Брейн Девелопмент» . Официальная страничка серии MRT3 .

Цены на программируемые наборы в магазинах начинаются от 15000 руб. (за Huna MRT3 1+2 ) до 36000 руб. (за TOP FULL KIT 2 ). Набор HUNITRONIC мне найти в продаже не удалось.

RoboRobo

Корейская компания RoboRobo предлагает 5 образовательных наборов для сборки программируемых роботов. Они так прямо и нумеруются Robo Kit №1 , Robo Kit №2 , Robo Kit №3 , Robo Kit №4 , Robo Kit №5 . Различаются они количеством деталей, количеством возможных модификаций роботов, которые вы сможете из них собрать по инструкциям, и сложностью. Чем больше цифра, тем больше деталей и тем сложнее. Обязательно обратите внимание, что набор 2 содержит в себе набор 1, набор номер 3 - содержит набор 2 и так далее. Поэтому если у вас уже есть набор Robo Kit №1 , то вы можете расширить его с помощью набора Robo kit №1-2 до набора Robo Kit №2 и тем самым сэкономить. Всего расширяющих наборов 4: Robo kit №1-2 , Robo kit №2-3 , Robo kit №3-4 и Robo kit №4-5 . Официальная страничка конструктора .

В максимальном наборе вы найдёте ИК-сенсор, ИК-пульт управления, датчик звука, датчики касания.

Программируются роботы этой компании с помощью графического интерфейса в программе Rogic Program (см. картинку).

Ещё компания RoboRobo предлагает наборы для очень маленьких детей (5-7 лет): Robo Kids №1 и Robo Kids №2 . Второй набор – дополнительный к первому. Из первого набора можно собрать 16 роботов, а из второго – ещё 16. В этих наборах производитель предлагает интересный подход к управлению роботами. В распоряжении маленьких программистов есть набор карточек, которые проводятся через сканер (см. картинку), который в свою очередь, даёт команды роботу.

fischertechnik

(Цены с сайта дилера обновлены 05.05.2015) Конструкторы fischertechnik выпускает немецкая фирма. Детали конструктора пластмассовые. Разные наборы конструктора рассчитаны на разный возраст. Наборы серии JUNIOR (5+) не имеют ни моторов, ни батареек, это просто конструкторы для малышей. С наборами серии BASIC (7+) и ADVANCED (7+), PROFI (8+) вы можете собирать различные машины и механизмы, они уже могут комплектоваться моторами, солнечными батареями, блоками питания и др. А вот сборка роботов и их программирование начинается в наборах серии ROBOTICS (8+).

В серии ROBOTICS шесть наборов: ROBOTICS LT Beginner Set (ROBOTICS LT Стартовый набор ) (стартовый набор для создания 8-ми автоматических устройств стоимостью 11130 руб.), ROBOTICS TXT Discovery Set (ROBOTICS TXT Набор первооткрывателя ) (для создания 11-ти механизмов и автономных роботов стоимостью 28500 руб.), ROBO TX Automation Robots (ROBO TX Автоматические роботы ) (для создания реалистичных промышленных роботов стоимостью 15300 руб.), ROBO TX ElectroPneumatic (ROBO TX ЭлектроПневматика ) (для сборки 4 пневматических конструкций стоимостью 13150 руб.), ROBO TX Explorer (ROBO TX Исследователь ) (для создания робота на гусеничном ходу в шести модификациях стоимостью 13150 руб.) и ROBO TX Training Lab (ROBO TX Учебная лаборатория ) (для конструирования автоматических устройств и мобильных роботов стоимостью 25500 руб.). Отдельно к наборам можно приобрести аккумуляторный набор, набор для дистанционного управления, набор свет и звук (для создания светозвуковых эффектов), наборы с дополнительными моторами, ресурсный набор и ящики для хранения. При совмещении наборов друг с другом вы сможете значительно расширить возможности в создании роботов.

Часть наборов серии ROBOTICS комплектуются контроллером ROBO TX (кроме стартового набора, который комплектуется контроллером ROBO LT), часть – контроллером ROBOTICS TXT . Из датчиков в наборах попадаются следующие: фотодатчик, датчик температуры, датчик цвета, ультразвуковой датчик расстояния, ИК-датчик следования по линии.

Характеристики контроллера ROBO TX следующие: 32-битный процессор ARM9 , монохромный дисплей разрешением 128х64, объём памяти 8 MB RAM, 2 MB Flash. Размер контроллера – 90 х 90 х 15 мм, вес - 90 г. Здесь 4 выхода для подключения моторов, 8 универсальных входов, 2 разъёма расширений I2C, RS485 для объединения с другими контроллерами, 4 входа и USB для подключения к компьютеру. Также здесь присутствует встроенный Bluetooth . Можно приобрести дополнительный микроконтроллер ROBO TX за 15300 руб.

Отдельно можно приобрести более продвинутый контроллер ROBOTICS TXT за 20250 руб. Вот его характеристики: ОС Linux , два процессора ARM Cortex A8 (32bit/600MHz) + Cortex M3 , память 128 Мб DDR3 RAM, 64 Мб Flash, слот для карт Micro SD , цветной сенсорный дисплей 2.4" разрешением 320 x 240, 8 универсальных входа, 4 высокоскоростных цифровых входа, 4 выхода на моторы, комбинированный модуль Bluetooth /Wi-Fi , ИК-приёмник (для приёма сигнала от пульта), USB 2.0 для подключения к ПК, USB Host (USB A для подключения USB-камеры fischertechnik или USB-свистков), 10 контактный разъём для входа или выхода по I2C интерфейсу, встроенный динамик, встроенные часы с собственной батарейкой. Размер контроллера – 90 x 90 x 25 мм. Контроллеры могут быть спарены. Все подробности о микроконтроллере .

Во все наборы входит ПО для программирования ROBO Pro (см. картинку) (в стартовом наборе вы найдёте облегчённую версию этого ПО). Свежую версию ПО и русификацию всегда можно скачать на сайте производителя .

Контроллер ROBOTICS TXT программируется с помощью ROBO Pro , C-Compiler , PC-Library , MS-RDS . C-Compiler можно скачать на той же странице, что и ROBO Pro .

Engino Robotics Platform

(Описание конструктора добавлено 01.05.2015) Engino Robotics Platform (ERP ) – это разработка кипрской фирмы Engino . Сейчас эта робототехническая платформа представлено только одним набором , из которого вы сможете собрать 6 моделей. Стоимость набора в рознице – около 17000 руб. Набор рассчитан на учеников школы (7+) и студентов.

В наборе микрокомпьютер, программное обеспечение (для частного и образовательного использования), провода, 3 мотора, 3 светодиода, 2 инфракрасных датчика, 1 датчик касания и разнообразные детали.

А вот спецификация микрокомпьютера ERP:

      • 32-битный микроконтроллер ARM CORTEX-M2.
      • 256 КБ FLASH, 64 КБ RAM.
      • USB-порт 12 Mbit/s.
      • 3 порта для моторов и 4 - для датчиков (светодиоды можно подключать к любым портам).
      • Встроенный зуммер.
      • Питание от 6-ти батареек AA.
      • Встроенный Wi-Fi модуль.

Программировать собранные модели можно непосредственно на самом блоке или с помощью программного обеспечения ENGINO ERP . Дистанционно управлять роботами возможно с помощью приложения Engino ERP Remote Control , которое доступно в Google Play и Apple store .

Все подробности о конструкторе можно найти .

ТРИК

(Описание конструктора добавлено 01.05.2015) Кибернетический конструктор ТРИК – это российский конструктор, металлические детали которого совместимы с "совметалконструктором" (та же перфорация M4 c шагом 10мм). Возраст - 12+. Конструктор только появился, но я уже нашёл его в одном магазине. Цены примерно следующего порядка: стартовый набор - 25000 руб., образовательный – 35000 руб., школьный – 45000, соревновательный – 58000 руб. Разница между наборами в количестве датчиков и деталей, но в каждом наборе есть контроллер ТРИК , видеокамера и микрофон. Все наборы (кроме стартового) комплектуются пластиковой коробкой с отделениями для хранения деталей. В максимальном наборе имеются следующие датчики: 2 датчика освещённости, 2 датчика расстояния, 2 датчика касания. Кроме того здесь есть омни-колёса, светодиодные ленты, аккумуляторы, зарядное устройство.

Вот технические характеристики контроллера ТРИК:

      • Операционная система: Linux.
      • Центральный процессор: OMAP-L138 C6-Integra™ DSP+ARM® SoC, 375 МГц, Texas Instruments.
      • Ядро центрального процессора: ARM926EJ-S™ RISC MPU.
      • Оперативная память: 256 Мбайт, 6 Мбайт FLASH.
      • Периферийный процессор: MSP430F5510, 24 МГц, Texas Instruments.
      • Интерфейсы пользователя: USB 2.0, WiFi b/g/n, BlueTooth, 2xUART, 2xI2C, Micro-SD, Mic in (stereo), Line out (mono).
      • Интерфейсы двигателей постоянного тока: 4 порта двигателей 6-12V DC, с индивидуальной аппаратной защитой от перегрузки по току (до 2А на двигатель).
      • Интерфейсы периферийных устройств: 19 сигнальных портов общего назначения (6 одноканальных и 13 двухканальных) с питанием 3.3-5V, из них 6 могут работать в режиме аналогового входа.
      • Интерфейсы видео сенсоров: 2 входа BT.656 VGA 640*480, поддержка режима стерео.
      • Встроенный цветной сенсорный LCD монитор 2.4” TFT разрешением 320x240 пикселей.
      • Встроенный динамик номинальной мощностью 1W, пиковой 3W.
      • 2-цветный, программно-управляемый светодиодный индикатор.
      • Слоты расширения: два 26-контактных «щелевых» разъема модулей расширения.
      • Дополнительное оборудование (входит в состав контроллера): 3-х осевой акселерометр, 3-х осевой гироскоп, аудиокодек, усилитель, конвертеры и схемы управления питанием, схемы защиты входов от перегрузок по напряжению и току.
      • Электропитание 6-12V DC, внешний сетевой адаптер либо LiPo аккумулятор RC 3P (11,1V) / 2P (7,4V).

Программирование возможно на С , С++/Qt , JavaScript , С#/F# (.NET) , Python и Java. Есть также собственная среда разработки - которая работает на Windows и Linux, см. картинку.

Для дистанционного управления разработано приложение для Android . Подключение к контроллеру происходит через Wi-Fi .

Подробности о конструкторе на официальном сайте .

MOSS

(Описание конструктора добавлено 02.06.2015) Конструктор MOSS , созданный американской компанией Modular Robotics , на мой взгляд, самый необычный конструктор из всех здесь перечисленных. Здесь нет ни проводов и ни привычных способов соединения деталей. Весь конструктор состоит из модулей кубической формы с гранями разных цветов и различных соединительных элементов, таких как, скобы и уголки. Все они крепятся друг к другу с помощью шариков-магнитов, которые позволяют создавать жёсткие или шарнирные соединения.

Разные цвета граней модулей сделаны не только для красоты, они ещё обозначают характеристики. Зелёные грани проводят электричество. У модуля аккумулятора все грани зелёные и основная цель этого модуля – поставлять энергию всем остальным модулям. Например, чтобы запитать модуль с мотором, вы должны соединить одну из его зелёных граней с зелёной гранью аккумулятора. Красные и коричневые грани проводят данные: красный – выход данных, коричневый – вход данных. Например, если вы хотите, чтобы датчик расстояния управлял скоростью вращения мотора вам нужно соединить красную грань модуля датчика расстояния с коричневой гранью модуля мотора. Голубые грани – передающие, через них передаётся энергия и/или данные. Например, если вам нужно запитать какой либо модуль, который находится на расстоянии от батареи, вы можете использовать голубые грани гибкого модуля или несколько простых модулей.

Что касается аудитории, на которую рассчитан конструктор MOSS , то разработчики уверяют, что он подойдёт как детям в возрасте от 8-х лет, так и взрослым. Есть ещё наборы Cubelets для детей в возрасте от 4-х лет, в которых нет шариков.

К сожалению, конструктор не продаётся в России и нельзя заказать доставку в Россию при заказе на официальном сайте конструктора .

Robo Wunderkind

(Описание конструктора добавлено 05.10.2015) А вот ещё один кубический конструктор совместимый с конструктором LEGO . Конструктор Robo Wunderkind так же как и конструктор MOSS состоит из модулей в форме куба, за исключением микроконтроллера, который состоит как бы из сдвоенных кубиков (на фото микроконтроллер оранжевого цвета). Модули соединяются друг с другом без проводов с помощью специальных соединительных элементов.

Сейчас на сервисе Kickstarter вы можете предзаказать следующие варианты наборов: стартовый (STARTER KIT , за 149 долларов), расширенный (ADVANCED KIT , за 249 долларов) и профессиональный (PROFESSIONAL KIT , за 499 долларов). Первые поставки начнутся в июле 2016 года. Наборы рассчитаны на детей от 5 лет и взрослых. В стартовом наборе есть системный модуль (микроконтроллер), модуль с датчиком расстояния (красного цвета), модуль Bluetooth (голубого цвета), аккумуляторный модуль (зелёного цвета), модуль-сервомотор (жёлтого цвета), пустой модуль, 2 модуля-мотора (синего цвета), 2 колеса, 7 соединительных элементов, 2 адаптера LEGO (для присоединения стандартных деталей LEGO, например, человечков, как показано на картинке) и одно пассивное колёсико. В расширенном наборе добавляется ещё 2 пустых модуля, модуль с LED-дисплеем, модуль с датчиком света, модуль с метеодатчиком, ещё 6 соединительных элементов и ещё 2 адаптера LEGO. В профессиональном наборе , по сравнению к расширенному, добавляется ещё 1 аккумуляторный модуль, ещё один модуль-сервомотор, ещё 3 пустых модуля, модуль с инфракрасным датчиком, модуль с лазерной указкой, модуль с экраном на основе электронных чернил, модуль с камерой, модуль с акселерометром, ещё 9 соединительных элементов, ещё 4 адаптера LEGO, и ещё одно пассивное колёсико.

А вот характеристики конструктора: процессор Allwinner A13 SoC, оперативная память RAM 256 Мб DDR3, Storage eMMC Flash Memory 4 GB, WiFi 802.11 b/g/n, Bluetooth 2.1/3.0/4.0. В системный модуль встроены микрофон и динамик.

Программировать готового робота можно с помощью специального приложения, доступного для iOS и Android . В планах разработчиков есть создание приложения для Windows , правда только к сентябрю 2016 года. Программирование здесь графическое. Кроме того поддерживается Scratch . Также создатели конструктора предоставляют API для разработки, как они пишут, на любом языке программирования.

Какой конструктор программируемых роботов покупать?

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

Хорошей базой всевозможных датчиков обладает конструктор LEGO , но у микроконтроллера LEGO мало портов (всего 4 на вход и 4 на выход). Можно конечно соединять микроконтроллеры вместе, но тогда встаёт вопрос, куда девать такое количество контроллеров в автономных моделях (несколько контроллеров – это довольно объёмно). Также нужно отметить возможность создания роботов на основе LEGO из металла с помощью наборов TETRIX и MATRIX . Кроме того у LEGO большая армия поклонников, в том числе и в России.

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

Если вы не собираетесь разрабатывать свою собственную конструкцию робота и вам не жалко денег, то обратите внимание на набор Premium Kit конструктора Robotis Bioloid . С этим набором вы можете собрать человекоподобного робота и запрограммировать его на свой вкус. Но стоит обратить внимание, что разновидность датчиков мала.

Если выбирать конструктор по контроллерам, то наиболее продвинутым выглядит конструктор fischertechnik . Здесь самый мощный контроллер с самым большим количеством портов, с возможностью подключения камеры и со встроенными Wi-Fi и Bluetooth модулями.

Если же вы хотите практически безграничных возможностей, то вам нужно обратить внимание на торговую марку Arduino . Здесь всё по-взрослому: много сред разработки, много совместимых аналогов, но нужно самостоятельно придумывать конструкции ваших роботов. Не удивительно, что с использованием этой платформы часто делают роботов из фанеры или картона или печатают детали на 3D принтере. Не забывайте также про Arduino-совместимые конструкторы, например, Multiplo и Makeblock .

Отечественный конструктор ТРИК также даёт большие возможности для творчества, т.к. здесь в комплекте есть камера, микрофон, акселерометр. Здесь также, как в конструкторе fischertechnik есть цветной сенсорный экран. К тому же за основу взят крепкий металлический конструктор.

А если вы присматриваетесь к конструкторам без проводов, то обратите внимание на конструкторы MOSS и Robo Wunderkind .

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

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

Железные люди Анри Дро

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

Созданию первых автоматических механизмов с программным управлением положили начало в конце XVΙΙΙ века европейские часовые мастера. Наиболее преуспели на этом поприще швейцарские специалисты отец и сын Пьер-Жак и Анри Дро. Ими создана целая серия ("пишущий мальчик", "рисовальщик", "музыкантша") в основе управления которыми лежали часовые механизмы. Именно в честь Анри Дро в дальнейшем все программируемые человекоподобные автоматы стали называть "андроидами".

У истоков программирования

Основы программирования промышленных роботов были заложены на заре XIX века во Франции. Здесь же и были разработаны первые программы для автоматических текстильных станков (прядильных и ткацких). Стремительно растущая армия Наполеона остро нуждалась в обмундировании и, следовательно, тканях. Изобретатель из Лиона Жозеф Жаккар предложил способ быстрой перенастройки ткацкого станка для производства различных видов продукции. Нередко эта процедура требовала огромного количества времени, колоссальных усилий и внимания целого коллектива. Суть нововведения сводилась к использованию картонных карточек с перфорированными отверстиями. Иглы, попадая в просеченные места, необходимым образом смещали нити. Смена карт быстро проводилась оператором станка: новая перфокарта - новая программа - новый тип ткани или узора. Французская разработка стала прообразом современных автоматизированных комплексов, роботов с возможностью программирования.

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

  • Начальник статистического управления С. Н. Корсаков (Россия, 1832 г.) - в механизме для сравнивания и анализа идей.
  • Математик Чарльз Бэббидж (Англия, 1834 г.) - в аналитической машине для решения широкого круга математических задач.
  • Инженер (США, 1890 г.) - в устройстве для хранения и обработки статистических данных (табуляторе). Для заметки: в 1911 году компания. Холлерита получила название IBM (International Business Machines).

Перфокарты были основными носителями информации вплоть до 60-х годов прошлого века.

Своим названием интеллектуальные машины обязаны чешскому драматургу В пьесе "R.U.R.", увидевшей свет в 1920 году, писатель назвал роботом искусственного человека, созданного для тяжелых и опасных участков производства (robota (чешск.) - каторга). А что отличает робота от механизмов и автоматических устройств? В отличие от последних, робот не только выполняет определенные действия, слепо следуя заложенному алгоритму, но и способен более тесно взаимодействовать с окружающей средой и человеком (оператором), адаптировать свои функции при изменении внешних сигналов и условий.

Принято считать, что первый действующий робот был сконструирован и реализован в 1928 году американским инженером Р. Уэнсли. Человекоподобный "железный интеллектуал" получил имя Герберт Телевокс. На лавры пионеров претендуют также ученый-биолог Макото Нисимура (Япония, 1929 г.) и английский военнослужащий Уильям Ричардс (1928 г.). Созданные изобретателями антропоморфные механизмы имели схожий функционал: способны были двигать конечностями и головой, выполнять голосовые и звуковые команды, отвечать на простые вопросы. Основным предназначением устройств была демонстрация научно-технических достижений. Очередной виток в развитии технологий позволил в скором времени создать и первых индустриальных роботов.

Поколение за поколением

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

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

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

И наконец, третье поколение - интеллектуальные роботы, которые способны:

  • Обобщать и анализировать информацию,
  • Совершенствоваться и самообучаться, накапливать навыки и знания,
  • Распознавать образы и изменения ситуации, и в соответствии с этим выстраивать работу своей исполнительной системы.

В основе искусственного интеллекта лежит алгоритмическое и программное обеспечение.

Общая классификация

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

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

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

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

В соответствии с решаемыми задачами управления выделяют четыре уровня такого специально созданного языка:

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

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

Языковые нюансы

В современной робототехнике программирование роботов развивается по двум векторам: роботоориентированное и проблемно ориентированное программирование.

Наиболее распространенные роботоориентированные языки - AML и AL. Первый разработан фирмой IBM только для управления интеллектуальными механизмами собственного производства. Второй - продукт специалистов Стэндфордского университета (США) - активно развивается и оказывает существенное влияние на формирование новых языков этого класса. Профессионал легко разглядит в языке характерные черты Паскаля и Алгола. Все языки, ориентированные на роботов, описывают алгоритм, как последовательность действий "умного" механизма. В связи с этим программа зачастую выходит очень громоздкой и неудобной в практической реализации.

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

Обучение роботов

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

Весьма перспективной выглядит программа для программирования роботов, представленная разработчиками Лаборатории информационных технологий при Массачусетском технологическом институте (CSAIL MIT) на международной конференции промышленной автоматизации и робототехники ICRA-2017 (Сингапур). Созданная ими платформа C-LEARN обладает достоинствами обоих методов. Она предоставляет роботу библиотеку элементарных движений с заданными ограничениями (например, усилие хвата для манипулятора в соответствии с формой и жесткостью детали). В то же время, оператор демонстрирует роботу ключевые движения в трехмерном интерфейсе. Система, исходя из поставленной задачи, формирует последовательность операций для выполнения рабочего цикла. C-LEARN позволяет переписать существующую программу для робота другой конструкции. Оператору при этом не требуются углубленные знания в области программирования.

Робототехника и искусственный интеллект

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

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

В этом году на выставке роботов в Женеве самый совершенный андроид София заявила, что учится быть человеком. В октябре София впервые в истории искусственного интеллекта была признана гражданкой Саудовской Аравии с полноценными правами. Первая ласточка?

Основные тенденции робототехники

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

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

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

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

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