Как сделать интеллектуального робота
Как создают искусственный интеллект: от кода до робота
Программирование искусственного интеллекта – мечта многих начинающих программистов. Мы собрали самую важную информацию, чтобы рассказать, как создают искусственный интеллект. Никаких скучных терминов — только факты.
Что скрывается за словосочетанием «искусственный интеллект» или AI (Artificial Intelligence), знает далеко не каждый. Большинство людей, вероятно, представляют себе ИИ как компьютер, который был запрограммирован на то, чтобы «думать» самостоятельно, принимать разумные решения и реагировать на раздражители. Эта идея не совсем верна. Никакой компьютер и никакая машина не могут действительно думать — потому что это требует наличия сознания, которого нет у «бездушной машины». Компьютер может делать только то, что скажет ему человек.
Кратко о программировании AI
Программирование искусственного интеллекта заключается не в обучении компьютера тому, как думать. Скорее, он будет запрограммирован так, чтобы обучаться и самостоятельно решать конкретные проблемы на основе своего опыта. Но и здесь речь идет не о собственном мышлении, а о подражании. Это также относится к решениям, которые принимает AI. Искусственный интеллект может взвешивать варианты, а затем делать выбор. Однако его выбор всегда будет исходить из тех параметров, которые были запрограммированы ранее.
Таким образом, искусственный интеллект может делать только то, что было предопределено для компьютера, но лучше, точнее и быстрее, чем человек. Кстати, если вы хотите научиться программировать, обратите внимание на нашу статью с советами для начинающих программистов.
Использование искусственного интеллекта
Искусственный интеллект уже используется во многих областях, например в сложных компьютерных играх и поисковых системах. При программировании AI важную роль играет комплекс дисциплин, а не только информатика или математика. Большое значение имеют философия, психология, неврология и лингвистика.
Искусственный интеллект разделяется на нейронный и символический (сильный и слабый). Первый пытается имитировать структуры и функции человеческого мозга. Последний ориентируется на соответствующую проблему и результат.
В повседневной жизни, например, искусственный интеллект программируется и используется в робототехнике. Он служит для управления производственными процессами или просто выполняет бытовые задачи. Искусственный интеллект также используется для визуализации. Самый популярный пример — распознавание лиц или отпечатков пальцев.
Еще один шаг в создании искусственного интеллекта — это системы, основанные на знаниях. Тогда в программу вводятся данные, связанные с программированием. Это позволяет искусственному интеллекту логично и самостоятельно давать ответы на заданные вопросы. Однако и эти «самостоятельные ответы» основаны только на тех знаниях, которыми изначально наделен искусственный интеллект.
Роботы среди нас: как создать интеллектуального помощника по дому
Недавно я была на одной выставке и “познакомилась” там с очень милым роботом. Он поболтал со мной о погоде, рассказал немного о себе, мы поговорили о литературе и кинематографе, а на мой вопрос про фильм “Крым” робот замялся и ответил, что политические темы он не обсуждает. Моему восторгу не было предела — я сразу подумала о пожилых одиноких людях, которым такой сообразительный собеседник скрасил бы досуг, о помощниках по дому и работниках сферы услуг, которых бы такие интеллектуальные изобретения смогли бы во многом заменить. Я решила познакомится с создателем этого робота, но, подойдя к стенду, была сильно разочарована (это мягко говоря), увидев, что за монитором сидит девушка с гарнитурой и открытым гуглом и общается от лица этого робота с очередным посетителем выставки.
Бороздя просторы интернета на предмет обучающего контента, нашла для себя несколько интересных курсов на тему робототехники и программирования. Оказывается, можно многому научится не выходя из дома и даже собрать собственного робота, используя буквально подручные средства. Представляю несколько бесплатных онлайн-курсов о роботах.
Курс от одного из лучших специалистов в области приборостроения и информатики, заместителя директора ЦТПО Московского государственного университета приборостроения и информатики (МГУПИ), вице Президента Ассоциации спортивной робототехники Андрея Будняка рассчитан на начинающих осваивать электронные устройства, работающие под управлением микро-ЭВМ. Он подойдет не только ИТ-специалистам, но и для людей далеких от электроники профессий, например, дизайнеров, архитекторов, звукорежиссеров, врачей и других специалистов, которые смогут применить микроконтроллеры в своей работе.
Несмотря на то, что робототехника стремительно вошла в повседневную жизнь, далеко не каждый человек обладает достаточными знаниями в этой области. Курс лекций преподавателей МГТУ им. Баумана познакомит вас с основами робототехники и мехатроники, а также особенностями применения мехатронных устройств в быту. Кроме того, в программу курса входит разработка проекта простейшего бытового мехатронного устройства.
Уровень подготовки слушателей курса предполагает базовые знания математики и физики, а также владение простейшими технологическими приемами механических и электрических сборочных работ.
В рамках курса вы познакомитесь с концепцией “Умного дома”, в котором все устройства (бытовая техника и электроника, свет, жалюзи и другие) управляются со смартфона. «Умный дом» и, как следствие, «умный город» являются одними из самых перспективных направлений развития информационных технологий. Как считает «отец интернета» Винтон Серф, база для популяризации «умных домов» уже создана, и через 15-20 лет они станут нашей повседневностью. Изучая основы концепции сегодня, вы оказываетесь в дне завтрашнем.
Стремительное развитие подводных технологий и робототехники последних десятилетий привело к созданию удивительных технологий глубинного исследования водного пространства. Автономные необитаемые подводные аппараты (АНПА) занимают важное место среди них. Доктор технических наук Дальневосточного федерального университета расскажет о новейших разработках НПА в рамках международного студенческого соревнования, а также о значении молодой отрасли АНПА для современных подводных исследований. Слушатели курса также познакомятся с основными типами необитаемых подводных аппаратов, с наиболее важными их системами, а также узнают об областях их использования в современных морских научных исследованиях и инженерно-технических работах.
Вы когда-нибудь мечтали иметь собственного робота, который любит темноту, объезжает препятствия и не падает со стола? Курс лекций по практической электронике дарит вам уникальную возможность создать свою модель робота! Ведущие специалисты познакомят вас с основополагающими принципами электроники и научат их применять на практике. Курс рассчитан на любую возрастную категорию, поскольку к каждому модулю прилагаются обширные руководства, наглядные пособия и полезные ссылки.
Культовый японский робототехник, создатель и генеральный директор компании ROBO GARAGE Такахаси Томотака рассказывает о том, как он делает своих роботов и где черпает идеи и вдохновение. Нескольких роботов – в том числе знаменитого малыша EVOLTA, совершившего подъем на вершину Большого каньона, – Такахаси привез с собой, чтобы показать в действии.
Мечты о роботах, которые делали бы за нас всю домашнюю работу, пока так и остаются мечтами. (роботы-пылесосы не в счет:)). Удивительно, что люби научились путешествовать на другие планеты, а вот сделать робота-домохозяйку до сих пор не смогли. Как создать собственного робота? И возможно ли это? В рамках лекции вы получите пошаговое руководство как создать робота управляемого голосом, обзор хардварных и софтовых решений для разработки роботов, узнаете о подводных камнях при разработке роботов и способы, как их обойти, а также источники, в которых можно найти информацию и компоненты для роботов. Если после данного курса вы сможете собрать своего робота-помощника, я готова стать первым покупателем:)
Программируем роботов — бесплатный робосимулятор V-REP. Первые шаги
Программирование роботов — это интересно.
Многие наверное видели японских гуманоидных роботов, или французский учебный робот NAO, интересным выглядит проект обучаемого робота-манипулятор Baxter. Промышленные манипуляторы KUKA из Германии — это классика. Кто-то программирует системы конвейерной обработки (фильтрации, сортировки). Дельта роботы. Есть целый пласт — управление квадрокоптером/алгоритмы стабилизации. И конечно же простые трудяги на складе — Line Follower.
Но всё это как правило — не дешевые игрушки, поэтому доступ к роботам есть в специализированных лабораториях или институтах/школах где получили финансирование и есть эти направления. Всем же остальным разработчикам (кому интересна робототехника) — остаётся завистливо смотреть.
Некоторое время назад я вышел на достаточно интересную систему — 3д робосимулятор V-REP, от швейцарской компании Coppelia Robotics.
Поработав некоторое время с этой системой, я решил рассказать про неё читателям хабра.
Да, и на картинке скриншот из V-REP, и модели роботов — которые вы можете программировать, и смотреть поведение, прямо на вашем компьютере.
Установка
Установим на компьютер эту систему, в разделе Download:
Видим три варианта: образовательный (EDU), триальный (EVAL), и плеер (player).
Плеер — это программа с помощью которой можно проиграть сцены созданные в полноценной версии (то есть нет возможности редактирования) — бесплатная.
Триальная — это полнофункциональная версия, в которой нет возможности сохранить. Нет лицензионных ограничений.
Образовательный — это полнофункциональный пакет, имеющий лицензионные ограничения, текст лицензии можно прочитать здесь. Суть его в том, что институты, школы, хоббисты — могут использовать бесплатно это программное обеспечение. При том, что использование не коммерческое (а образовательное).
Мы с вами вполне подходим под определение хоббистов (т.к. хотим образовательно по-программировать роботов), поэтому смело скачиваем версию EDU PRO для своей операционной системы.
В данный момент версия 3.2.0, вот прямая ссылка на windows вариант: V-REP_PRO_EDU_V3_2_0_Setup (98 Mb)
Старт
После установки, и старта мы увидим экран:
Здесь мы видим следующие объекты:
— сцена — здесь и происходит всё действо, на данный момент она пуста (есть только пол)
— слева видим блок с библиотекой моделей — сверху папки, и под ней — отображается содержимое выбранной папки (выбраны robots/non-mobile — то есть стационарные роботы — манипуляторы)
— далее отображается иерархия мира
Иерархия включает в себя — корневой объект (мир), в котором находятся все объекты.
В нашем примере это:
Видим источники света, видим объект для реализации пола (а это твердая поверхность, с текстурой), и группу для камер.
Есть главный объект скрипт, контролирующий сцену и всех объектов на ней, и у каждого объекта может быть свой скрипт — внутренние скрипты реализованы на языке Lua.
Вверху и слева мы видим toolbar — меню. Самой главной кнопкой является кнопка Play (Start Simulation) — после которой стартует симуляция сцены:
Сценарий работы следующий:
— мы перетаскиваем с помощью DragAndDrop объекты из библиотеки моделей.
— корректируем их местоположение
— настраиваем скрипты
— стартуем симулятор
— останавливаем симулятор
Попробуем что-нибудь на практике.
Быстрый старт
Попробуем оживить робота.
Для этого выбираем слева папку robots/mobile и в списке выбираем Ansi, захватываем, переносим на сцену и отпускаем, робот появляется на нашей сцене и появляется информация об авторе:
Теперь нажимаем на Start Simulation, и видим движение робота, и можем управлять положение головы, рук (реализовано через Custom User Interface), вот видео:
Далее останавливаем симуляцию:
Скрипт управления
Можем открыть и увидеть код, который научил робота идти (управляет автономным передвижением робота). Для этого на иерархии объектов, напротив модели Asti, дважды кликаем на иконке «файл»:
Вот Lua программа, которая осуществляет движение робота:
Другие модели
Вы можете удалить модель — для этого надо её выбрать, и нажать на Del. И можете попробовать посмотреть другие модели в работе, у некоторых есть скрипты для автономной работы.
Мобильные роботы
Стационарные роботы (манипуляторы)
Примеры сцен
Так же есть большое количество примеров (сцен), которые поставляются сразу с программой. Для этого надо выбрать в меню «File/Open scenes» и там перейти в папку: «V-REP3/V-REP_PRO_EDU/scenes».
Вот примеры сцен (файлы с расширением *.ttt):
Ссылки
Чтобы поддержать популяризацию этой интересной системы на русском языке — создана русскоязычная группа по V-REP.
Применение в учебном процессе
На мой взгляд, у V-REP есть хороший потенциал применения в учебных процессах. Если вас интересует применение системы в учебном процессе — в школе, институте, в клубе робототехники и т.п. — то можете заполнить анкету. Может быть получиться консолидировать усилия и сделать учебные русскоязычные материалы.
Хочу стать инженером и собрать робота. У меня получится?
Можно подумать, что робототехника — занятие для умников и выпускников физтеха, но это не так. На самом деле простых роботов строят даже младшие школьники, поэтому вам это тоже под силу. Вместе с благотворительным фондом Олега Дерипаски «Вольное дело», реализующим программу по робототехнике для школьников, подростков и студентов, мы сделали простой гид для начинающих инженеров (впрочем, взрослым он тоже вполне может пригодиться). Объясняем, как собрать своего первого робота.
Что мне потребуется?
В первую очередь — микроконтроллер. Он станет мозгом будущего робота. Можно сказать, что микроконтроллер — это крошечный компьютер, размещенный на одной микросхеме. У него есть процессор, оперативная и постоянная память и даже периферийные устройства: интерфейсы ввода и вывода данных, различные таймеры, передатчики, приспособления, которые инициируют работу двигателей. Набор устройств зависит от конкретной модели. Именно микроконтроллер будет получать информацию от внешнего мира через датчики движения, фотокамеры и прочие приспособления, анализировать ее и побуждать робота совершать в ответ какие-то действия.
Микроконтроллер нужно будет установить на печатную плату, запитать его, подсоединить все необходимые устройства (датчики, лампочки, двигатели), а еще собрать из подручных материалов корпус робота. Все детали, которые для этого нужны, можно купить в любом магазине радиотехники.
Если у вас нет профильного образования или опытного наставника, который подробно объяснит, что именно и в какой последовательности устанавливать (и как пользоваться паяльником!), готовьтесь к долгой и кропотливой работе: придется перерыть интернет вдоль и поперек и испортить множество деталей.
Я в ужасе и собираюсь передумать. Нельзя попроще?
Можно. Специально для тех, кто никогда не держал в руках паяльник, но очень хочет попробовать себя в робототехнике, существуют специальные наборы-конструкторы, позволяющие сделать всё то же самое, но быстрее. Самый известный и популярный — Arduino. Его главное преимущество в том, что это не просто игрушка, а целая экосистема: множество обучающих материалов и инструкций, видеокурсы, огромное пользовательское комьюнити — можно задать любой вопрос от новичкового до самого продвинутого. Есть и другие платформы — например, совсем простой конструктор Mindstorms от Lego.
Составы наборов могут быть очень разными, но в каждом есть готовая печатная плата с уже установленным микроконтроллером и всеми дополнительными деталями, которые нужны для решения простых типовых задач. Обычно плату можно напрямую подключить к компьютеру через USB. А дальше среда разработки от производителя поможет сразу же сделать первые шаги в программировании роботов. Например, заставить мигать лампочку на плате.
Теперь всё зависит от вас. Можно, используя готовую плату, реализовать собственный несложный проект: например, сделать машинку, которая движется и останавливается по команде, или гирлянду для новогодней елки. Можно купить набор, уже включающий в себя всё, что нужно для постройки робота определенного типа, и потренироваться на нем. Плюс этого варианта: все детали в наборе подготовлены так, чтобы вы могли соединить их без паяльника или других инструментов.
Участники программы «Робототехника», которую поддерживает фонд Олега Дерипаски «Вольное дело», уже через несколько лет обучения могут создавать куда более сложные проекты и придумывают инженерные решения для самых разных задач. Например, разрабатывают системы для автоматической сортировки мусора. Если вам кажется, что всё это очень сложно, вы правы, но научиться этому может каждый.
У меня в школе была двойка по физике, и вообще я гуманитарий. Мне нужно что-то выучить, прежде чем приступать?
Штурмовать учебники необязательно. Конечно, школьная физика пригодилась бы, но если вы ее забыли, не переживайте — вспомните по ходу дела. Для начала просто погуглите, что такое ток, сопротивление, закон Ома, конденсатор, транзистор — пара десятков статей дадут вам базовые представления о радиотехнике, и этого хватит на первое время. Позже вы легко найдете в сети всю информацию, которая вам понадобится. И усвоите ее на практике — гораздо лучше, чем из учебника.
А программировать надо уметь?
Если умеете, создание первого робота окажется, возможно, даже слишком легким делом. Если не умеете — отличный повод научиться. Дело в том, что программирование робота — штука очень наглядная: вот вы написали код и сразу же загорелась лампочка. Вам нужно, чтобы ваш робот разворачивался, когда до стены осталось меньше 5 см, значит, в программе надо прописать такое условие, всё логично. Именно поэтому детей часто начинают учить программированию на примере робототехники: здесь вместо скучных абстракций сразу получается осязаемый результат в реальном мире. На этом принципе строится обучение по программе «Робототехника». Все участники сразу же могут применить полученные знания на практике.
Меня случайно не убьет током?
Самая вероятная неприятность — некоторое количество испорченных деталей, которые вы попытаетесь подсоединить не так и не туда. Но переживать не стоит: все необходимые расходники недороги, а их поломка тоже важная часть обучения.
Мой робот сможет защитить меня от врагов? Ну или хотя бы тапочки принести?
Самый первый — вряд ли. Точнее, нет ничего невозможного, но для начала лучше поставить перед собой цель попроще. Например, на базе того же Arduino можно собрать самых разных движущихся роботов: они могут ездить просто вперед-назад, по сложной заданной траектории или по нарисованной линии. Робот, который самостоятельно объезжает препятствия или как-то еще меняет свое поведение при приближении к разным объектам, тоже посильная задача. Еще первый робот вполне сможет включать и выключать что-нибудь, ориентируясь на уровень освещенности, совершать какие-то действия в определенный момент, заданный таймером, или по нажатию кнопки.
Умение собирать роботов как-то пригодится мне в жизни?
Да, еще как. Вы неизбежно научитесь программировать. Причем будете в состоянии не просто писать код, который что-то как-то делает, но и понимать всю цепочку, по которой набранные вами на клавиатуре символы преобразуются в действия целого механизма. Уметь программировать в наше время почти так же полезно, как знать английский язык: пригодится, даже если вы маркетолог или продавец мороженого.
Знание робототехники при желании позволит вам здорово усовершенствовать быт и даже сделать свое жилище «умным», не покупая дорогих готовых решений. Световой будильник? Запросто. Лампы с датчиками движения? Да легко. Чайник, который начинает кипятиться, получив СМС, и передает кондиционеру сигнал охлаждать, а пылесосу пылесосить? Не так легко, но вполне реализуемо.
Где можно узнать больше о роботах?
Можно пройти один из многочисленных, в том числе совершенно бесплатных онлайн-курсов. Можно выбрать курс, посвященный Arduino, — как, например, этот от МФТИ, или начать с Lego. А можно не привязываться к конкретной платформе и учиться робототехнике в целом — например, на этом курсе от Бауманки. Ну а если вы знаете английский, буквально вся Coursera с программами по робототехнике от ведущих мировых университетов к вашим услугам.
А если мне понравится и я захочу сделать это своей профессией? Куда податься?
Самое очевидное решение — в программисты. Причем не обязательно туда, где работают непосредственно с «железом»: навыки, полученные во время занятий робототехникой, пригодятся в любой сфере — от промышленного до веб-программирования.
Если возникнет желание связать свою дальнейшую судьбу именно с роботами, придется получить соответствующее высшее образование. Специальность «Робототехника и мехатроника» уже появилась во многих технических вузах — в Москве это МГТУ имени Баумана, МИФИ, МЭИ, МИРЭА. Подойдет и факультет радиотехники: большинство нынешних специалистов по робототехнике получали именно такое образование.