Мозги робота
Известно, что единой классификации роботов пока нет, хотя самих этих устройств существует громадное количество. Из основных целей их применения следует упомянуть военные, домашние, индустриальные, планетарные, исследовательские и социальные.
Кроме того, роботы делятся на стационарные и мобильные. Мобильные бывают наземные, воздушные и морские (надводные и подводные). Индустриальных же роботов около двух десятков видов.
По принципу работы такие устройства делятся на колесные, гусеничные, ползающие (роботы-змеи), шагающие (роботы-андроиды), биороботы и роботы-пауки. По управлению – радиоуправляемые, автономные и полуавтономные. Есть еще один класс – симуляторы роботов, то есть их компьютерные модели.
Одни из направлений развиваются быстрее (в силу потребностей рынка или моды), другие неспешно, но важнейшей частью любого робота остается программное обеспечение, его мозги. И вот в этой сфере за последние годы достигнут существенный прогресс. Можно даже сказать, что третья волна интереса к системам искусственного интеллекта (ИИ) возникла именно на волне развития робототехники и компьютерных игр.
Программная начинка робота
Программное обеспечение робота определяется его типом и решаемыми задачами. Но есть и общие компоненты: операционная система, система машинного зрения, технологии распознавания образов, работы с датчиками, прокладки маршрута, программирования поведения и др. Многие пакеты для этих задач предлагаются как свободно распространяемое ПО (freeware и open source). Хотелось бы отметить открытую операционную систему ROS (www.ros.org/wiki/), работа над которой ведется с 2007 года. Она установлена на очень широком спектре роботов и активно развивается. Система написана на C++, а кроме того, поддержана очень большим количеством библиотек драйверов, систем управления моторами и др.
Есть и менее открытые ОС, в частности URBI (www.urbiforge.org), управляющая известным роботом Aibo корпорации Sony. Сообщается также, что Пентагон разрабатывает единую ОС для управления боевыми роботами.
Для симуляции роботов обширный пакет выпустила корпорация Microsoft – Microsoft Robotics Developer Studio (MRDS, www.microsoft.com/robotics/). На его основе программируются приложения, в частности один из мобильных роботов, участвовавших в соревнованиях DARPA Grand Challenge, полностью запрограммирован в этой среде.
Cамая распространенная свободная библиотека для систем технического зрения – OpenCV (http://docs.opencv.org/). Для работы с векторной картой с возможностью добавления на нее информации от сенсоров по ходу движения, а также для поиска оптимального пути можно использовать пакет PolyMap (http://polymaps.org/), бесплатный для некоммерческих применений.
Созданием роботов в России занимаются сотни команд – от школьников до зрелых специалистов. Разработка ПО занимает в этом процессе больше всего времени и усилий. Их можно существенно снизить, если воспользоваться уже накопленным международным опытом. Конечно, следует и самим более активно участвовать в таких проектах. И здесь очень пригодился бы интернет-ресурс, посвященный данной теме.