«Лига роботов»: как заработать на обучении детей робототехнике. Программирование роботов

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

Как строится обучение?

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

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

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

Что получает ребенок от обучения

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

Позднее дети начинают знакомиться с основами программирования.

Возраст детей

В кружках робототехники могут обучаться дети примерно от 5 лет и до 15-17. Разумеется, программы у них разные.

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

Ребята постарше пользуются конструктором LEGO Mindstorms; он более сложный, с другим принципом крепления. Этот конструктор позволяет создать более сложную модель, нежели в LEGO WeDo. На занятиях вводятся элементы программирования на языке Scratch, С++, либо визуальном языке программирования.

Робототехникой занимаются и студенты, и взрослые. Но платформы и задачи, которые ставят перед собой взрослые, отличаются от детских занятий.

Что представляет собой конструктор

Конструкторы, с которыми работают дети в кружке робототехники, включают в себя:

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

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

Конструкторы LEGO удобны тем, что их нетрудно приобрести (хотя они довольно дороги, от 10 до 30 тысяч рублей. Например, в интернет-магазине OZON.ru можно купить конструктор Mindstorms) и они используются в большинстве международных соревнований и конкурсов по робототехнике. В большинстве кружков робототехники для детей пользоваться таким комплектом слушатели могут бесплатно.

Другие платформы

LEGO — не единственная платформа, на которой занимаются робототехникой. Есть и другие «железки»: Fishertechnic, Arduino, Raspberry Pi, Multiplo. Перед тем, как записаться в кружок, уточните, на какой базе там проходит обучение.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что общего у программиста, занимающегося андроидами, погруженного в психологию и бихевиористику, и инженера, который пишет алгоритмику индустриальных роботов и изучает мехатронику и высшую математику? Оба они занимаются робототехникой - самой востребованной отраслью в ближайшем будущем. Сейчас роботостроение в России - непаханое поле: потребность в разных роботах (промышленных, домашних, мобильных, боевых, антропоморфных) довольно высокая, а специализируются на их производстве всего несколько компаний. Что нужно знать о профессии робототехника и чему начинать учиться уже сегодня, Look At Me узнал у экспертов.

Эланд Инбар о недостатках американского
образования и о том, чем полезен конструктор Lego

«У создания роботов есть две важных составляющих: инженерные решения и железо, с одной стороны, и обработка данных и софт - с другой. Чтобы быть робототехником, нужно понимать и разбираться в обоих вопросах, там как они одинаково важны. Роботы - это те же самые компьютеры, только с моторами и сенсорами. Думайте о них как об информатике, воплощённой в жизнь. В любом случае, чтобы постигнуть эту науку, вам придётся начать с разработки программного обеспечения, а значит, придётся выучить языки программирования. Например, Python широко поддерживается многими платформами. ROS (Robot Operating System ) сейчас тоже набирает популярность, хотя их создателей Willow Garage больше не существует. Начинающим робототехникам я рекомендую приобрести конструкторы LEGO EV3 или Robotis Bioloid для тренировок, они помогут погрузиться в детали. Добейтесь уверенности при работе с этими конструкторами, разработайте основные алгоритмы (простейшую навигацию, захваты и т. д.). Это даст вам базу. Потом надо обязательно устроиться интерном в робототехническую компанию - там вас научат всему. Кстати, если вы решили учиться робототехнике в американском вузе, то помните, что там основное внимание уделяется машиностроению, а вам никак нельзя забывать про софт.

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

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

Владимир Белый о том, почему роботов
стоит создавать в человеческом обличии

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

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

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

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

Сегодня антропоморфная робототехника пока ещё находится в зарождающейся стадии: областей для применения таких роботов много, а нерешённых проблем - ещё больше. Наша компания старается развивать эту отрасль. Мы специально создали экосистему, в которой разработчикам ПО даётся возможность делать приложения для наших роботов, то есть фактически организовали рабочие места для программистов. Кроме того, это хорошо и для потребителя. Покупая нашего робота Alphabot или арендуя его, он получает некую машину, которую можно «приспособить» под конкретные нужды. Здесь можно провести аналогию с App Store. Мы покупаем IPAD, загружаем нужные программы и получаем персонифицированное устройство.

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

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

Сергей Мельников о том, как самостоятельно изучить робототехнику и собрать своё первое устройство

Сергей Мельников

Разработчик автоматизированных систем, программист, преподаватель робототехники, администратор servodroid.ru

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

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

Я специализируюсь не только на BEAM-робототехнике, но и на сложных вычислительных системах, комплексах и, конечно же, программном обеспечении. Например, я сотрудничаю с МЧС и занимаюсь роботами для спасательных и разведывательных работ. Но в основном моя любимая часть - это BEAM («биология, электроника, эстетика, механика») . С этого всё начинается: с простейших роботов из доступных компонентов без сложного программирования. Собирая BEAM-робота, мы стараемся подходить к выполнению задачи с разных ракурсов, даже не имея большого числа электронных компонентов и логических цепочек. Собирая такого робота, мы в конце концов можем ткнуть пальцем в любую его часть и рассказать о ней всё от А до Я. Рассказать, как идёт сигнал от фотодатчика, как он обрабатывается микросхемой, и что получается в конце. Мы всегда можем по цепочке выявить причину, из-за которой не работает робот. Это лучшая база для новичков.

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

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

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

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

Созданию первых автоматических механизмов с программным управлением положили начало в конце 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 заявили о старте разработок собственного "беспилотника". Все больше фирм выражают свою заинтересованность в создании машин, способных самостоятельно перемещаться по пересеченным трассам, сохраняя грузы и оборудование.

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

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