- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF111:Interview2
Материал из Linuxformat.
- Интервью Практическая робототехника
Повелитель машин
- Linux, конечно, не NetBSD, но тоже может работать на всем, у чего есть процессор. Например, на самодвижущемся роботе, как выяснил Антон Борисов.
Если вы – поклонник изобретательства и конструирования, то наверняка в курсе, что передвижные установки в виде радиоуправляемых машин делаются давно и вполне успешно. Взять хотя бы конкурс под названием Grand Challenge, спонсируемый DARPA. Ежегодно несколько научных заведений выпускают на турнир свои радиоуправляемые установки. Цель машин – автоматически, насколько это вообще возможно для искусственного интеллекта на сегодняшний день, пройти всю трассу турнира. Люди, выступают лишь в качестве зрителей. Шасси, на которых сконструированы машины, представлены разными автомобильными компаниями и несут на себе различное оборудование – от сенсоров движения до солнечных батарей.
Впрочем, для домашних экспериментов нет смысла изобретать велосипед, в смысле, подобного монстра, в виде настоящей автомашины: можно сконструировать нечто подобное из доступных компонентов, как сделал Джон Гэллоуэй [John Galloway], основатель проекта Toasterfish (http://www.toasterfish.com).
LXF: Джон, как вы пришли к мысли сконструировать вашего робота?
Джон Гэллоуэй (ДГ): Так получилось, что однажды я купил пару web-камер от Apple – Apple iSight – и воспользовался ими для организации видеоконференции на двух моих домашних компьютерах. Через некоторое время мне в голову пришла мысль, что если одну из этих web-камер установить на некое подобие робота, то может получиться отличный эксперимент. Представьте: вы сидите дома, а путешествующий робот передает вам изображение того, что он видит. Я могу услышать и увидеть то, что видит робот, а он, в свою очередь, передаст мои изображение и голос тем людям, что находятся поблизости. Эта идея захватила меня, и я стал думать, как реализовать ее на практике.
Поначалу кажется, что стоит купить роботизированную платформу и установить на ней пакет программ, которые организуют телеприсутствие. Что может быть проще? Но все оказалось немного сложнее. Такого проекта, что совмещает как аппаратную, так и программную части, не существует. Решения, что есть на рынке, начинаются от суммы в $3000 – они предназначены в основном для образовательных целей. Для более серьезных академических исследований суммы, конечно же, еще серьезнее. Понятно, что не каждый может позволить себе удовольствие потратить такую сумму на «игрушечный» проект. Более того, оказалось, что даже те дорогие продукты не предназначены для какой-либо сложной экспериментальной базы. В их дизайн не была заложена возможность масштабирования, т.е. получалось, что у вас есть конструктор, из которого можно собрать только один-единственный вариант. Поэтому я и решил произвести свой собственный конструктор.
Отправной точкой для начала экспериментов стали радиоуправляемые машины. Слегка продвинувшись в данном направлении, я выяснил, что оно отнюдь не является целиной, и многие наработали определенный опыт в этой сфере: например, проект MARS в университете Пенсильвании [1]. Они начинали с радиоуправляемой игрушки Cloudbuster, что производит компания Tamiya. Я купил пару таких же моделей на аукционе E-bay и приступил к изучению их схематики. Вскоре выяснилось, что они выглядят здорово только внешне, а для применения в роботе требуется серьезная переделка.
К счастью, индустрия радиоуправляемых моделей полностью имитирует рынок полноформатных автомобилей – в том плане, что в ней есть конкуренция. Кроме основных игроков, таких как Tamiya, есть и серия мелких производителей, которые занимаются «тюнингом», если можно так выразиться. Одна из них – ThunderTech Racing [2]. В разговоре с Дарреном (как выяснилось, эта компания состоит, по сути, из одного человека) по поводу моего проекта, он упомянул что недавно общался с ребятами из западного кампуса университета Карнеги-Меллона относительно деталей аналогичного проекта, и пригласил меня в университет на первую презентацию.
В сотрудничестве с университетом Даррен изготовил несколько платформ, которые состояли из компонентов Cloudbuster, таких как колеса, покрышки, мотоподвес, тормозные механизмы. Однако, в тоже время, на этой платформе можно было разместить и материнскую плату формата mini-ITX. Окончательная версия этой платформы используется университетом в RoboCamp [3] – событии, устраиваемом университетом для старших школьников, интересующихся робототехникой. Я попросил Даррена внести небольшие изменения в разработанную платформу, что позволило бы мне прикрепить LCD- экран и web-камеру.
LXF: Как я понимаю, под впечатлением от большого автопрома вы и назвали своего робота?
ДГ: Да. Сначала я назвал его Monsterbot, т.к. он выглядел как маленький Monster Truck – это такие огромные машины, которые вы можете видеть на специализированных автошоу. Там они перепрыгивают через легковушки и крушат их. Однако затем у компании Monster Cable Products, что организовывает эти шоу, возникли претензии к имени «Monster», поэтому я выбрал «Toasterfish». У него нет никакого определенного значения; меня навел на него знакомый, когда мы занимались дайвингом и он пытался описать мне рыбу, похожую на тостер (на самом деле он имел в виду кузовка [4], очертания которого достаточно угловаты, как и у моего робота).
LXF: Из каких компонентов состоит робот?
ДГ: Центральная мозговая система устройства – материнская плата VIA EPIA MII-10000 формата mini-ITX (в разработке Карнеги-Меллон использовалась другая модель, но того же производителя). Управление сервоприводами, контролирующими колеса, поворотом камеры и скоростью движения осуществляется через дополнитель- ную плату Phidget [5], подключенную к USB-порту VIA. Вторая плата, что входит в комплект – это карта 802.11 WiFi в формате PCMCIA. Она обеспечивает сетевое управление роботом и передачу видеосигнала. Плюс пара конвертеров постоянного тока DC-DC, которые преобразуют напряжение аккумулятора в требуемое материнской плате и сервомеханизмам. Управление передними и задними колесами, а также вращение камеры происходит через радиоканал. Сигнал поступает на приемный тракт WiFi-карты, затем происходит его обработка внутри «мозга» с помощью программного обеспечения, и через USB-разъем подается нужный импульс на плату расширения (в моем случае – Phidget), а уж с нее нужные команды поступают на двигатели. Таким вот образом осуществляется движение робота.
LXF: Можно ли рассказать более подробно о программной составляющей робота?
ДГ: Я использовал урезанную версию Linux от Red Hat, на основе ядра 2.6. Вся операционная система уместилась на 2-ГБ карточку CompactFlash; она подключается к материнской плате через переходник CF–IDE. Разработка Университета Карнеги-Меллона (она отлична от моей) основана на версии Linux от MathLab. Все необходимое ПО было написано мною – в общем-то, ничего сложного. Интерфейс управления серво-механизмами – разделяемая память. Каждый виртуальный сервопривод контролируется демоном, который пишет в определенный участок памяти нужное содержимое. И затем сигнал, через описанную выше схему и USB-разъем, приходит непосредственно на физический двигатель.
Затем я подготовил web-интерфейс, чтобы выставлять нужные значения на HTML-странице и с помощью CGI-скриптов передавать их демону сервоприводов. Web-интерфейс доступен по WiFi-сети, поэтому у себя на рабочей машине в браузере я выбираю значения, а робот изменяет траекторию своего движения. Должен признать, что управление через интерфейс во время движения робота немного замедленное, т.к. ширину канала забивает передача видеоизображения. Поэтому я сделал альтернативный вариант, с намного меньшей задержкой, используя RPC (Remote Procedure Call, удаленный вызов процедур).
Всего этого оказалось достаточно, чтобы начать предметный разговор о телеприсутствии робота, что, в общем-то, и было моей конечной целью в разработке. Пока робот, правда, не умеет самостоятельно передвигаться, но это вопрос разработки ПО с искусственным интеллектом и распознавания образов. Разработанный вариант – хорошая база для отладки систем контроля, которая позволит создать функции автономного перемещения значительно быстрее.
LXF: А почему вы выбрали Linux, а, скажем, не QNX, VxWorks или какую-либо другую встраиваемую систему?
ДГ: В основном потому, что Linux – открытая и свободная система. И является основным инструментом для многих исследователей, «хакеров» и энтузиастов своего дела. У Linux существует ряд проблем для данного применения – в первую очередь, отсутствие настоящего «реального времени», т.е. гарантий, что любая задача при необходимости будет обслужена в течение 10 миллисекунд. На настоящий момент данное условие жестко гарантировать нельзя. Однако, благодаря открытости Linux, эти вопросы разрешатся, если будет достаточная заинтересованность в данном направлении.
Не последнюю роль играет и стоимость операционной системы. Т.к. целевая аудитория, как я уже упомянул, это исследовательские, научные и учебные кадры, то использование лицензируемых систем, на мой взгляд, кажется совсем не оптимальным решением.
LXF: Каковы, на ваш взгляд, возможные сферы применения данного робота?
ДГ: Применение объектов телеприсутствия может быть очень разнообразным. В качестве примера – представьте, что робот расположен рядом со школой вашего ребенка. Вы можете присоединиться к нему из своего рабочего офиса, с помощью телеметрии управлять его движением, найти малыша и передать ему привет. Или такой пример. Вы находитесь в отпуске и хотите проконтролировать ситуацию дома: например, как себя ведут домашние питомцы. В целом, это тоже возможно.
Однако цель, которую я себе поставил, начав разрабатывать робота – это привлечение большего внимания к данной области. Проблемы, которые возникают при разработке мобильных сервисов, почти всегда касаются программ, а не механики или электроники. Чтобы привлечь максимальное внимание к робототехнике, необхо- димо в то же время отвлечь внимание программистов от ненужной суеты с механикой. Посмотрите: чтобы запустить роботизированную платформу, программистам придется для начала изготовить опытный образец, и лишь затем приступить непосредственно к программированию – навигации, управлению задачами, распознаванию образов и т.д. Данное условие сильно сокращает число желающих поработать в области роботостроения. Так что главным условием было предложить готовую платформу, где технические вопросы – например, управление скоростью передвижения – давно решены, и можно полностью сосредоточиться на чисто программной части.
Мой созданный прототип нельзя назвать полностью расширяемым. Для создания объектов телеприсутствия, а именно этой целью я изначально задавался, он подходит замечательно. Но чтобы быть действительно универсальной платформой для разработки, нужно представить новое шасси, новую электронику и новое ПО. К сожалению, привлечь внешнее финансирование мне пока не удалось, поэтому проектом занимаюсь в свободное время, а на следующий прототип явно придется потратить больше времени.
LXF: Участвовал ли ваш робот в ралли с искусственным интеллектом?
ДГ: Вы, наверное, имеете в виду RoboMagellan – микроверсию ралли Grand Challenge, которое устраивает агентство DARPA? К сожалению, нет. В ралли RoboMagellan роботам раздаются координаты конусов, расположенных в 20 метрах друг от друга, и задача участников – объехать эти препятствия в автоматическом режиме. Как я уже упомянул ранее, ПО для автономного поведения моего робота только предстоит создать. По всей видимости, эту задачу придется реализовывать в следующей версии прототипа.
LXF: Джон, насколько я вижу, вы также используете в своем роботе GPS-модуль. Насколько он точен в получении координат со спутника? И еще вопрос по поводу телеприсутствия: какова полоса пропускания для передачи изображения с камеры по Wi-Fi? Потому что сразу возникает вопрос: а удастся ли создать группу из, скажем, 5 или 10 монстр-ботов, объединенных медленной радиосвязью? Они могли бы обмениваться своими координатами и «знать», где именно находится ближайший сосед — этакая команда разведки ExploreTeam в пустыне. Каковы ваши идеи на этот счет?
ДГ: Применение GPS очень заманчиво, но в тоже время у этой системы есть определенные ограничения. Не впадая в подробности, скажу, что с одного модуля GPS можно на местности получить точность до 7 м. При использовании 2 и более модулей, разнесенных в пространстве, эта точность повышается до 2 метров. При передвижении точность можно еще повысить. В теории, точность на местности можно повысить вплоть до 2 см, но для этого придется использовать направленную спутниковую антенну диаметром в 20 см и стоимостью от 10000 долларов США. Такие антенны обычно используют для создания точных дренажных систем в сельском хозяйстве.
Правда, я видел и очень точные измерения, где с помощью дифференцирования получали отклонение в 1 метр с использованием обычных GPS-датчиков. Так что факторов, которые влияют на GPS, очень и очень много. Со временем результаты измерений улучшатся – с появлением новой европейской системы и следующего поколения GPS-спутников. Правда, это случится не ранее следующих 5–10 лет.
Для видео требуется удивительно малая полоса пропускания. С использованием современных кодеков полосы в 200 Кбит/с хватает за глаза, в то время как стандарт 802.11 позволяет передавать даже 10 Мбит/с (для стандарта 802.11g от 30 Мбит/с и выше). Так что для «общения» роботов друг с другом вполне хватит. Сегодняшний вариант робота передает видео в виде потока MPEG, но я считаю это не совсем оптимальным решением и думаю сделать передачу видео на основе JPEG2000. К тому же, этот кодек менее требователен к ресурсам процессора.
Исследования в области обмена информацией для построения объемной карты местности, собранной из нескольких независимых источников, на данный момент являются очень актуальными. И скорее всего, в ближайшее время появится много продуктов, где будут применяться данные технологии. Стоит отдавать себе отчет в том, что синтезированное изображение получается более четким, нежели полученное от любого единичного робота. С помощью протоколов и ПО для создания ad-hoc сетей, боты могут поддерживать соединения между собой даже при отсутствии сообщения с некоторыми соседями. Беспроводные карты не могут похвастаться большой дальностью связи. Чтобы обойти это ограничение, используют такую комбинацию: направленные антенны Яги – для дальней связи; ненаправленные, прикрепленные рядом с видеокамерой на крыше – для ближней. Боты изучают местность, затем через определенный момент времени останавливаются, «находят» друг друга, обмениваются информацией и путешествуют дальше. Применений – бесконечное количество.
LXF: Вы упомянули, что следующий прототип будет немного отличаться от сегодняшней версии. Каковы основные различия?
ДГ: Сконструированная версия робота – на самом деле эксперимент, имеющий целью убедиться, что выбранный форм-фактор является правильным. И он полностью себя оправдал. Давайте посмотрим еще раз, из чего состоит робот: передаточный механизм взят от Tamiya CloudBuster, шасси было изготовлено по спецдизайну компанией ThunderTech. Сервоприводы управляются через контроллер Phidget. Используется камера Apple iSight. Робот питается от двух Ni-MH батарей емкостью 3000 мА-ч – 4 секции предназначены для питания электроники и 2 секции – для питания двигателей. Скорость двигателей изменяется контроллером SuperRooster.
Следующий прототип видоизменится. Во-первых, все четыре колеса будут управляться независимо друг от друга, в том числе можно будет выставлять разную скорость вращения колес. Во-вторых, сам корпус материнской платы будет немного побольше, чтобы можно было вставить PCI-карту для управления всеми сенсорами и электромоторами. Шасси будет нести уже закрытый компьютерный корпус, а не полностью открытый, как сделано сейчас. Батареи заменятся на специализированные литий-ионные, с вдвое большей емкостью.
Конечно, для российского рынка трудно равняться на те возможности, что существуют, например, в той же Кремниевой долине в Калифорнии или индустриальном районе в одной из провинций Китая, где не требуется прикладывать определенных усилий, чтобы найти именно то, что нужно, и главное, потом доставить это на дом. С другой стороны, когда вы точно знаете те устройства, что нужны вам, и где их найти, то считайте, что половина дела уже сделана. Не думаю, что доставка из Германии, а именно там я нашел представителя от Phidget, будет стоить астрономических денег. Да и продукты компании Tamiya в РФ тоже доступны, например, здесь [6–8]... Ну, это если вы совсем уж «бородатый хакер» и хотите знать все, вплоть для мельчайших деталей. Для тех же, кому больше по душе программирование и некогда заниматься логистикой компонентов, могу посоветовать обратиться к автору оригинального дизайна. В любом случае, в выигрыше остаются все. Если есть аппаратный объект моделирования, то ждать новых идей из академических кругов долго не приходится. Стоит только оглядеться. LXF
Полезные ссылки
- Проект MARS – http://www.cis.upenn.edu/mars
- ThunderTech Racing – http://www.thundertechracing.com
- RoboCamp – http://west.cmu.edu/west_connect/robocamp
- Кузовок, он же рыба-тостер – http://www.freshmarine.com/longhorn-cowfish.html
- Phidgets – http://www.phidgets.com
- Модели Tamiya в России – http://xmodels.ru/catalog/87/3691
- Еще модели Tamiya в России – http://smartmodels.ru/product_info.php?products_id=193
- И снова Tamiya – http://superhobby.ru/index.php?section=news&id=106