Перед тем, как начать. В процессе подготовки этой статьи наконец-то нашел брата по разуму...
А точнее - блог про роботов, автором которого является некто Клебан Виталий.
Блог посвящен, цитирую «разработке инструментария-конструктора для создания мобильных роботов».
Единственное, что не очень понравилось - пишет автор больше для себя, чем для людей, повторяя, к сожалению, ошибку многих очень грамотных и образованных людей.
Ну и раскрутить этот блог не мешало бы...
Итак, на этот раз хочется осветить очень серьезным образом тему использования КПК в качестве мозгов робота.
В этой статье я опишу возможности создания робота на основе КПК, и укажу причины, почему я лично выбрал все-таки не КПК, а ноутбук (или компьютер).
Для начала рассмотрим, какие основные преимущества дает КПК или коммуникатор:
- Минимальные вес и размер - это на самом деле, одно из важнейших достоинств
- Возможность использования мощи языка C++ для программирования поведения робота
- Графический интерфейс для наладки робота
- На новых моделях - возможность проигрывания звуковых сообщений, использования фото- и видеокамеры
- На новых моделях - возможность использования современных технологий, как например SMS, GPRS, Wi-Fi, Bluetooth, GPS...
На самом деле робот на основе КПК - это реальность, причем достаточно «древняя». Например, существует иностранный проект создания простого робота на основе КПК Palm, с детальными описаниями процесса изготовления такого робота.
Проект называется PPRK - Palm Pilot Robot Kit, попросту говоря - это комплект готовых модулей для создания робота на основе КПК Palm.
Привожу сразу же список необходимых для сборки проекта PPRK компонентов, с указанием примерных цен (цены взяты с сайта разработчиков, и скорее всего существенно отличаются от цен тех же компонентов в России):
| Количество | Компонент | Производитель | Цена |
| 3 | колесики диаметром 4см | Acroname Inc. или MrRobot |
$32 или $29.85 |
| 3 | сервомоторы MS492MH, модифицированные с помощью метода компании Mekatronix (производитель роботов) | MrRobot | $56 |
| 3 | инфракрасные дальномеры Sharp GP2D12 | Acroname Inc. | $40 |
| 1 | микросхема SV203 | Pontech | $59.99 |
| 1 | кабель для синхронизации с Palm Pilot | Palm Computing | $19.99 |
| 1 | плоская батарейка Hobbico HydriMax 6.0V 2000 4/5A (компонент #LXLX50) | Tower Hobbies | $31.99 |
| 2 | Акриловый диск диаметром 15.24 см, и толщиной 32 мм (компонент #8581K26) | McMaster-Carr | $6 |
| 1 | 256 x 1 полиэтиленовые губчатые ленты (компонент #75785T87) | McMaster-Carr | $8.50 |
| 1 | суперклей (цианоакриловый клей) | Любой компьютерный магазин | $2 |
| 1 | Коннектор RS232 9-пин "папа" | Любой магазин электроники | $2 |
Всего получается порядка 260$ = 6500 руб. Еще прибавьте собственно КПК Palm III/V/m100, который конечно стоит копейки (думаю, такая б/у машинка стоит около 1000 рублей, я свой m505 покупал за 1500 рублей), но найти его трудновато.
Но дело даже не в цене.
PPRK - старинный проект, и не российский, и достать для него компоненты в полном объеме практически не представляется возможным.
Кое-что, правда, можно заменить, причем без особой потери качества. Каркас сооружается даже из детского конструктора. Батарейку подобрать и прикрутить свои колесики - тоже несложно. Сервоприводы заменить моторчиками, инфракрасные дальномеры подобрать любые. Но что делать со схемой? Ведь под нее - все драйвера. Может быть, кто-нибудь имеет мысли на этот счет?
Другим недостатком PPRK является очень ограниченное количество функций, которые может выполнять полученный робот, т.к. практически не используются алгоритмические возможности современных языков программирования. Снова, в который уже раз, объезд препятствий согласно показаниям дальномеров - это максимум, на что способны умы разработчиков. О своем отношении к такому безобразию я уже писал в статье «Робот и искусственный интеллект». Вкратце напомню - отношение у меня к этому безобразию не самое доброжелательное... Возвращаясь к PPRK - похоже, на написании драйверов запал разработчиков этого очень интересного проекта кончился.
Кстати, как раз создание драйверов - в данном случае наиболее весомая проблема. Мы можем, конечно, позаимствовать из проекта PPRK уже готовые тексты программ (и драйверов), благо они OpenSource. Однако проблема вырастает и здесь - ведь драйвера написаны специально под микросхему SV203, которую в России достать сложновато.
В случае использования более новых и более мощных КПК или коммуникаторов процесс немного упрощается и обрастает некоторыми "вкусностями". Например, такими "вкусностями" может стать применение в роботе технологий GPS, GPRS, Bluetooth, WiFi и т.д. Только представьте - как только у робота кончается зарядка, он пуляет вам SMS-ку... Внешние устройства также сейчас подключать проще, нежели чем в доисторических Palm-ах. В конце концов, уже есть USB host и некоторые готовые драйвера к нему.
Первыми идею об использовании современных КПК в качестве основы для роботов реализовала сама фирма Microsoft, сделав робота на основе КПК с ОС Windows Mobile на борту.
Проект получил название WiMo, в честь названия операционной системы.
Этот робот предназначен главным образом для тестирования новых интерфейсов голосового управления Windows - отсюда и его основная функция: робот понимает голосовые команды и просто обращенные к нему фразы.
Кроме того, робот умеет шутить, петь, танцевать - ну и прочие приятные мелочи.
Заинтересовавшимся рекомендую посмотреть видеопрезентацию WiMo.
В любом случае, хочется рассмотреть недостатки использования КПК, которые, на мой взгляд, имеют место быть! Я занимался этим вопросов вполне профессионально, и старенький КПК прикупил тоже неспроста. Итак, что я обнаружил из минусов:
- КПК, их внутренняя структура и техника их программирования - документированы в десятки раз хуже, чем знакомая всем до боли структура настольных персоналок :(
- КПК имеют совершенно другую элементную и процессорную базу, нежели обычные компьютеры и ноутбуки. Отсюда - невозможность использования наработок и многих библиотек, сделанных на компьютере, в программах для КПК.
- Достаточно сложно отлаживать программы для КПК. Есть эмуляторы на компьютере - но частенько бывает, что одна и та же программа работает на компьютере прекрасно, а на КПК просто не хочет запускаться. Можно убить много часов, прежде чем поймешь, в чем собственно дело.
- Сложность написания драйверов нестандартных устройств. Низкоуровневое программирование для КПК в несколько раз меньше документировано, и намного менее развито, нежели чем программирование низкого уровня (уровня "ядра") для компьютера. Например, подключение пульта дистанционного управления к компьютеру заключается в скачивании WinLIRC и калибровке пульта. Ни для Palm, ни для Windows Mobile - аналогов WinLIRC я не встречал. Так как все мы здесь - энтузиасты (по крайней мере, мои статьи и проекты - предназначены в основном для таких же как я - любителей робототехники), то наша главная задача - сосредоточиться на главном, а именно - программировании поведения роботов. А необходимость писать низкоуровневые и сложные в отладке драйвера - может очень сильно убавить энтузиазма.
- Сложность при подключении дополнительных внешних устройств. У обычного компьютера, или ноутбука - гораздо больше периферии и внешних портов. В случае КПК приходится часто идти на своего рода "извращения", чтобы хоть что-то к нему подключить. Если же подключать много устройств - это вырастает в практически непреодолимую проблему.
- КПК славятся тем, что достаточно долго живут без подзарядки. Реально - они живут долго когда нет нагрузки. Если же будет постоянно крутиться программа управления роботом, постоянно осуществлять связь с внешним миром, управлять двигателями, принимать показания датчиков - то максимальное время работы без подзарядки сразу же урезается до 2-5 часов, в зависимости от модели КПК. При управлении внешними устройствами через USB host это время сокращается еще в 2-3 раза.
Подводя итог: строительство робота на основе КПК - это реально. Но - лучше не заниматься этим в домашних условиях и на голом энтузиазме. Если все-таки очень хочется - лучше купите готовый к сборке комплект (если удастся найти).
Ссылки по теме:
- Сборка PPRK не слишком сложна, ее процесс детально описан на сайте разработчиков. Если кому-то нужен перевод - пишите в комментариях, и в течение пары дней увидите пост с русским переводом. Хотя, на мой взгляд, из картинок итак все понятно.
- Несмотря на простоту сборки - история о том, как собирали робота из комплекта PPRK (на английском). С фотографиями и видео. Если интересен перевод - опять же обращайтесь, сделаем.
- Тема GPS-навигации освещается на сайте «Ты здесь!». Можно найти много интересных подробностей, в частности, и про использование GPS с коммуникаторами, и про возможности GPS-навигации, нy и так далее. Полезно, чтобы оценить, стоит ли использовать GPS и робота вместе.
- PalmBot - проект домашней сборки робота на основе КПК Palm.
-
Книга Программируемый робот, управляемый с КПК (5Мб) - на самом деле книжка немного не по теме, но тоже полезно. Речь идет о дистанционном управлении роботами с помощью КПК, через ИК-соединение.
На самом деле, сам не читал, но как представлю себя, бегающего за роботом с КПК... В общем, иначе чем сборником анекдотов, пока что книжка не воспринимается. Но - скачал, буду читать, результаты изложу в следующем выпуске «Чтива».
К сведению: судя по собственному опыту, инфракрасник Palm-а в несколько раз хуже по части дальнобойности, чем любой пульт ДУ (ака лентяйка).
Перевод любого из англоязычных сайтов, упомянутых в ссылках, я могу осуществить, если кому-то интересно, и запостить сюда. Пишите в комментариях или на .

4 комментария(ев):
Прикольно, интересная заметка и вообще блог. Даже сам загорелся сделать робота на основе старенкого компа. Как будет время - хочу заняться. Было бы здорово сделать что-нибуть с упралением через интернет, с веб-камерой и т.д. Посещаемость сайта с возможностью порулить чем-то и сразу видеть отклик мне кажется будет отличная ;-) Запчасти: старенький комп или КПК - не проблема, сервомоторы, вебкамера - это все недорого. Время только надо много на программирование и на сайте и на роботе - а времени нет пока к сожалению. Как будет возможность - займусь обязательно;-) Видел где-то давно в инете ссылку на проект - там роботизированная рука, ей можно управлять через инет. Есть банка с семенами, горшок с землей и емкость с водой. Этой рукой можно посадить семечко, потом ходить на сайт его поливать и т.д. - здорово. Когда я читал про этот проект, даже не рассматривал, что смогу сам что-то такое сделать. А ведь на самом деле, никаких неподьемных проблем нет. Запчасти как я уже говорил выйдут недорого, запрограммировать я это смогу. Я когда-то на на одной работе программировал ЦАП, ADAM-201 вроде бы назывался. Так вот его подключить к com-порту, а к нему уже сервоприводы. Паять я тоже когда-то умел. В общем спасибо за мотивацию, даже если сейчас забью, потом обязательно займусь когда будет время.
Большое спасибо за комментарий! Как я не раз говорил, любые отзывы очень хорошо мотивируют авторов сайтов на их дальнейшее развитие и усовершенствование.
Идея действительно очень интересная - насчет публичного управления через интернет. Вопрос в реализации. Для реализации этого понадобится, как минимум: сервер + выделенная линия с весьма хорошей пропускной способностью - в непосредственной близости от робота. У меня лично такой возможности, к сожалению, нет. Но москвичи и питерцы вполне смогут проделать такой финт.
Далее: неясно, что делать, если роботом захочет управлять 2 и более человека одновременно...
Ну и финальный вопрос - в отличие от роботизированной руки, у меня робот мобильный, он может максимум поездить, подудеть что-нибудь, помигать светодиодами... Это разве интересно? :)
В любом случае, я еще подумаю над этим, и, вполне возможно, распишу подробно в отдельном посте. Честно говоря, никогда о подобной идее именно публичного управления роботом через интернет - не слышал и не думал...
Кстати, если что-то получится, сообщай обязательно.
Интересная статья, уже месяц думаю из чего сделать "мышцы" для робота, робот на колесах это хорошо, но интересно как сделать "рукастого" =)
кпк можно использовать для дистанционного управления мобильным роботом (домустим через wi-fi), который уже "тащит на себе" АСУ на базе того же самого ноутбука
Отправить комментарий