31 Март 2008 г.

Еще разок: киборги

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

Александр Венедюхин (блог dxdt) неоднократно писал о киборгах. Например, общеизвестная недавняя новость - о насекомых-киборгах, описана и на его блоге. Причем Александр заостряет внимание на том, что производство киборгов на сегодняшний момент может оказаться намного выгоднее и дешевле, нежели чем производство роботов. На самом деле мысль глубокая и заслуживает внимания. Видимо поэтому Александр недавно написал еще одну статью по этой теме - «Нашествие киборгов». Интересно почитать, рекомендую.

Статья «Воплощенные киборги» с сайта крымского клуба биоэтики и экологии порадовала своей глубиной и количеством собранного материала. Там упоминается о многом, о чем я писал здесь в блоге, а также, например, рассматривается такой интересный момент, как техника сопряжения нейронов с компьютерным чипом. Детально в статье рассмотрено устройство искусственных органов. Жаль, не указана дата статьи.

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

Ну и напоследок, тематическое видео, как раз о насекомых-киборгах:

30 Март 2008 г.

КПК Palm. Программирование COM-порта

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

Выкраивая буквально по 10-15 минут, написал-таки я статью «Palm. COM-порт (RS232). Программирование. IDE CodeWarrior» - про тестирование работы COM-порта, и программирование этого порта применительно к КПК Palm. Статья, написанная в рамках серии статей по созданию марсохода, правда, получилась слишком большая для блога, поэтому я выложил ее на еще не до конца готовом сайте моего нового проекта RobotLab.Ru.

Пара слов о RobotLab.Ru. Проект «Лаборатория робототехники» будет посвящен практике и только практике! Он будет иметь намного более общую направленность, нежели чем сайт «Самодельный робот», но в определенном отношении будет является продолжением и развитием идеи этого моего старого сайта. Кратко темы, которые я буду стараться на сайте осветить:

  • Эффективные конструкторские и электронные решения
  • Организация рабочего места робототехника
  • Где достать материалы, компоненты, платформы
  • Программирование поведения роботов
  • Описания готовых проектов, в основном в виде пошаговых руководств
  • С чего начать? Выбор направления, проектирование

Кстати, кратенько поделюсь успехами и достижениями по другим моим проектам:

  • «Самодельный робот» установил 21го марта скромный рекорд по посещаемости - 150 человек в сутки! Месячная посещаемость стремительно приближается к порогу в 3 000 уникальных посетителей.
  • Блог «Роботы и робототехника» - количество подписчиков наконец-то превысило пять десятков!

В общем и целом, такие дела!

24 Март 2008 г.

Оригинальные конструкции роботов

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

Обсудим шаробот - вот такое название имеет одна из тем на РобоФоруме. Тема, конечно, старенькая, но на саму конструкцию не обратить внимания было бы неправильным. Тем более, что некто Grover воплотил идею в жизнь, очень оригинальным и простым способом (смотрите сами). Минусы упомянутой конструкции - трудность в управлении, неудобно разбирать и вносить поправки, малая проходимость, малая скорость.

Еще одна оригинальная затея описана в другой теме РобоФорума - энтузиаст пытается изготовить робота из компьютерной мышки :)

Очень оправдывающий свой никнейм MegaBIZON паяет из скрепок очень замысловатых роботов!

Кстати, изготовлением обычного (по сравнению с MegaBIZON'овским) шасси для микро- и нанороботов занимается, например, европейская компания Robot Maker.

Ну и наконец, хочу привести видео с YouTube - о том, как робототехники любят собак :)

21 Март 2008 г.

Реализация марсохода. Диаграмма развертывания

В рамках серии статей «Изготовление аналога марсохода ПрОП-М».

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

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

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

От механическо-электронной основы робота зависят способы и возможности реализации программной части.

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

Рассмотрим процесс построения диаграммы подробно. Сгруппировав все предыдущие наработки, мы получили наличие следующих систем в роботе:

  1. Двигательная система
  2. Система датчиков
  3. Система управления

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

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

Система управления, напомню, должна обеспечивать следующие возможности: ведение логов состояний и выдача их по запросу, дистанционное проводное управление роботом, автономный объезд препятствий. Ограничения при выборе реализации системы управления: соблюдение заявленного общего веса марсохода в 4.5 кг, и указанных размеров - 22х25х4см. Компьютер в качестве системы управления отбрасываем сразу - слишком громоздко. Есть, правда, вариант с mini-ITX, такая карточка бы в наш корпус влезла, но карточки mini-ITX у меня нет, а я поставил задачу обойтись имеющимися средствами. Конечно, почти идеально подошел бы для описанных функций микроконтроллер. Он, помимо всего прочего, имеет больше всего шансов пережить креш-тесты. Однако, микроконтроллера у меня тоже нет. Зато, есть КПК Palm m505...

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

  • Минимум - 2 кнопки в бампере, 2 кнопки для датчиков обратной связи, итого 4 датчика (4 входящих бинарных сигнала); 2 мотора, каждый может вращаться в двух направлениях - итого 4 исходящих бинарных сигнала.
  • Максимум - 2 кнопки в бампере, 4 кнопки и две ИК-пары для датчиков обратной связи, термометр, датчик давления, 4 фотодатчика, фотокамера (управляющие исходящие сигналы на включение/выключение/съемку + сложный входящий сигнал на получение фотографии), видеокамера (аналогично фотокамере), 4 управляющих исходящих бинарных сигнала для моторов.
  • Ожидаемо - 2 кнопки в бампере, 4 кнопки для датчиков обратной связи, фотокамера, 4 управляющих исходящих бинарных сигнала для моторов.

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

На КПК Palm, и на многих других КПК, в том числе и современных - реализован, как минимум частично, интерфейс RS232, обеспечивающий последовательную передачу данных. Программно COM-порт на Palm управляется достаточно тривиально, почти как на компьютере. Это - как раз то, что нам и нужно!

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

Такие схемы есть в готовом виде, например, комплект PPRK (Palm Pilot Robot Kit) использует одну из них - SV203. Но здесь важно вовремя остановиться! Наша цель - всего лишь построить диаграмму развертывания, а в детали реализации углубляться можно бесконечно...

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

Вот диаграмма, которая получилась у меня:

Пакет «Система управления»:

Пакет «Двигательная система»:

Пакет «Система датчиков»:

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

Продолжение следует...

20 Март 2008 г.

Обоснование выбора проекта робота

В рамках серии статей «Изготовление аналога марсохода ПрОП-М».

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

У человечества всегда было только два всеобъемлющих инстинкта: сохранение рода и любопытство. Любопытство, эксперименты, изобретательство, стремление познать неизведанное - это одна из важнейших целей нашей жизни. Иначе, согласитесь, жить было бы скучновато :)

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

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

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

Вот что пишет А.Л. Кемурджиан в книге «Планетоходы» об особенностях проектирования передвижных аппаратов для использования на иных планетах:

«самым характерным качеством планетохода является его способность перемещаться по поверхности планеты»

«Характерным для конструкции узлов планетохода является применение легких сплавов, ажурность конструкции, оптимальность форм отдельных узлов, позволяющая весь материал конструкции включить в силовую систему нагружения.»

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

Вот, например, какие условия рельефа могут ждать подобный аппарат на других планетах (фото с официального сайта NASA, получено в рамках экспедиции Mars PathFinder):

А вот камешек по имени Yogi в сравнении с марсоходом Sojourner (который малявки ПрОП-М-а больше во много раз):

Сроки изготовления данного робота я оцениваю примерно в 2-3 месяца. Так что сиюминутного финала не ждите, хотя информации буду выкладывать предостаточно, и далеко не только теоретической. Наработки уже есть, и много :) Весь собранный материал в конечном итоге выложу на отдельный сайт.

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

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

Между прочим, ПрОП-М и привлек меня именно своей простотой, ведь марсоходов разных моделей - очень много. И PathFinder, и наш Марс-96 - очень интересные проекты, полные оригинальных решений и прекрасных идей. Но на их реализацию, боюсь, лично у меня не хватит ни времени, ни сил.

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

19 Март 2008 г.

«Чтиво» - 2

Представляю второй выпуск «Чтива» - серии статей о том, что можно почитать о роботах, робототехнике и по смежным тематикам.

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

Первая и очень серьезная книга, о которой хотелось бы сказать - «Планетоходы» А.Л. Кемурджиана. Эту книгу я прочитал «от корки до корки», и вам рекомендую. Книга написана очень грамотно, хорошо освещены технические аспекты, и при этом большая часть книги читается буквально как художественная литература. Рассказывается о характерных особенностях среды пребывания планетоходов, расписаны наиболее важные их характеристики, большое внимание уделено рассмотрению достоинств и недостатков устройства шасси различных планетоходов. Приведены формулы расчета планетоходов. Описаны методы и средства для испытания (отработки) готовых аппаратов на Земле. Скачать можно с AstoLib.Ru, копия выложена на моем сайте (DJVU; 6,44 Mb). Просмотрщик DjVu-файлов прилагается.

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

Еще одна книга, которую я прочитал за последнее время - это справочник Барсукова А. П. «Компоненты и решения для создания роботов и робототехнических систем». В первой части книги подробно рассматривается применение солнечных батарей - преимущества и недостатки, схемы их подключения, варианты использования, типы и характеристика существующих батарей. Вторая глава книги посвящена описанию подводных роботов. Третья, и последняя глава называется «Видеоконтроль в системах дистанционного управления», и повествует о видеоизображениях, интерфейсах, типах дисплеев и экранов. Не скажу, что книжка привела меня в безумный восторг, однако почитать стоит, особенно интересна лично мне была первая глава. Скачать можно с моего сайта (PDF; 3,83 Mb).

Очень много полезной и научной информации в простом для понимания виде часто предоставляют всем известные научно-популярные журналы. Моя мама работает в библиотеке, поэтому сам я очень много читал журналы, особенно «Науку и жизнь», «Юный техник», и некоторые другие. Совсем недавно наткнулся на группу В Контакте, где нашел список ссылок на электронные архивы и официальные сайты большинства наиболее известных научно-популярных журналов. Список был собран в основном Артемием Трапезниковым, также свой вклад внес Александр Королев. С удовольствием привожу этот список здесь:

Кстати, са-амый первый «робот», которого я пытался собрать, описан как раз в журнале «Юный техник», в номере, который можно скачать по адресу http://jt-arxiv.narod.ru/DjVu/ut8906.djvu, статья называется «Жук-усач, почти что настоящий».

17 Март 2008 г.

Создание аналога марсохода ПрОП-М. Изготовление корпуса

В рамках серии статей «Изготовление аналога марсохода ПрОП-М».

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

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

Первым делом необходимо достать где-нибудь листового железа. Оно потребуется для изготовления лыж и корпуса будущего робота. Размер требуемого листа - 75х30 см. Листовое железо продается в строительных и хозяйственных магазинах. Мне повезло - один мой родственник занимается ремонтом, и у него нашелся для меня лист оцинкованного железа требуемого размера бесплатно.

Также вам потребуются ножницы по металлу (примерная стоимость - 300-500 рублей), рулетка, карандаш, линейка, молоток, гвоздь, саморезы, дрель с тонким сверлом по металлу, отвертка, плоскогубцы, и немного холодной сварки (я купил колбаску холодной сварки со стальным наполнителем в хозяйственном магазине за 38 рублей). Также, некоторые типы холодной сварки требуют использования перчаток, резиновые перчатки можно купить в аптеке за 5 рублей.

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

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

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

Размеры здесь аналогичны размерам марсохода - 22х25х4 см. Вырезать заготовку не составит труда. Результат будет примерно таким:

Теперь заготовку нужно согнуть. С первыми тремя загибами (по краям) справиться достаточно легко, это делается примерно так: лист зажимаем между двумя брусками, загибаем сначала руками, затем подбиваем молотком.

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

Вот что получилось у меня в итоге:

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

Принимаемся за лыжи, беря самый большой обрезок. Вырежьте две заготовки, как показано на рисунке (они обязательно должны быть зеркальными, не ошибитесь!):

Размер одной лыжи - 8.5х30 см. После вырезки загните каждую лыжу. Работать с лыжами гораздо легче, они маленькие, и загибать их можно плоскогубцами. У вас должно получиться что-то, похожее на лыжу оригинального марсохода:

Вторая лыжа изготовляется по той же заготовке, отраженной зеркально по горизонтали. Вот какая лыжа получилась у меня:

Вернемся к корпусу. Давайте закрепим его и замажем щели. Лично я сделал вот что: вырезал из обрезков нашей заготовки импровизированные уголки размером 4х3 см каждый, согнул их вдвое под углом в 90 градусов, далее накернил гвоздем и просверлил дырки в заготовке и в уголках, ну и наконец скрутил уголки с заготовкой короткими саморезами - по 4 самореза на каждый уголок. Если дрели под рукой нет - то дырки можно даже не сверлить, а просто пробить гвоздем.

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

Продолжение следует...

15 Март 2008 г.

Создание аналога марсохода ПрОП-М. Проектирование

В рамках серии статей «Изготовление аналога марсохода ПрОП-М».

Самое важное перед началом любого действия - немного подумать. Как раз для этого нужно проектирование! Здесь я кратко приведу описание этого очень полезного процесса.

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

Отличия создаваемого робота от оригинала следующие:

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

Прежде всего, рассмотрим, кто и что будет взаимодействовать с роботом, и как это взаимодействие будет происходить. Для описания функций системы используется стандартная диаграмма UML (так называемых прецедентов, или use cases):

Отсюда понятны основные функции и возможности робота:

  1. Движение по командам оператора: Стоп, Назад, Вправо, Влево, Вперед
  2. Ведение лога состояний, и передача оператору списка своих состояний, начиная с заданного шага
  3. Обратите внимание! Возможность замены прошивки робота. Важный пункт, реализуемый почти на всех космических аппаратах и планетоходах
  4. В процессе движения - объезд препятствий, определенных с помощью тактильного бампера
  5. Включение/выключение с помощью проводного пульта дистанционного управления
  6. Подача питания по проводу

Исходя из функций и возможностей, определяем, что потребуется для физической сборки робота:

  1. Корпус, лыжи, крепления лыж.
  2. Два мотора с понижающими редукторами, способные поднять вес робота.
  3. Передний бампер с двумя датчиками касания.
  4. Устройство размотки провода и 15 метров провода.
  5. Устройство управления, реализующее алгоритм объезда препятствий, и возможность дистанционного управления.
  6. Пульт дистанционного управления по проводу.
  7. Блок питания, обеспечивающий подачу нужного напряжения для питания робота по проводу.

Как видно, система разделилась на две основных части - сам робот, и проводная система управления для него.

В свою очередь, робот состоит из аппаратной и программной частей.

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

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

14 Март 2008 г.

Язык VRML

Язык VRML предназначен для описания векторных 3D-моделей. Почему я заговорил об этом? Все очень просто, я постепенно движусь в направлении создания генератора RoboML-файлов. Генератор будет использоваться мной для создания раздела Модели роботов моего каталога Robotics.Ru, а также для кое-каких еще целей (об этом позже). И часть RoboML-файла, ответственная за описание геометрии робота - очевидно, должна с легкостью импортироваться и экспортироваться в наиболее распространенные форматы файлов. VRML - первый кандидат.

Вообще на VRML модели я впервые наткнулся на практике совсем недавно - когда искал схемы или хорошие фотографии первого марсохода ПрОП-М - на страницах Виртуального Музея Космонавтики (именно эта модель представлена на рисунке вверху).

Из браузеров я предпочитаю Opera, поэтому не сразу удалось посмотреть эту модель. А вот Internet Explorer 7 открыл файлик без проблем, самостоятельно установив нужный плагин. На экране я увидел вот такую 3D-модель, которую можно вращать и осматривать с любого ракурса:

Другие космические роботы также доступны - как на страницах Виртуального Музея Космонавтики, так и, например, на сайте NASA. Очень интересно посмотреть, тем более что некоторые модели там - интерактивные!

Вернемся к VRML. Язык не XML-серии, несмотря на характерное "ML"-окончание. Спецификация мне показалась не самой доступной, однако возможностей у языка немало. Например, очень интересная возможность - интеграция с Java и JavaScript, что позволяет создавать интерактивные и презентационные модели. Примеры VRML-кода можно посмотреть на том же сайте.

Вообще, следует сказать, что главное преимущество VRML - в том, что этот формат открытый, и существует много наработок для него. Например, есть веб-интерфейс генератора VRML, хотя он мне очень не понравился, т.к. там все наполовину на японском. Есть обычные оффлайн-редакторы, например, RenderSoft (бесплатный) и Spazz3D (30-ти дневный Trial). Есть также библиотеки для работы с VRML, которые я обязательно буду использовать при создании конвертера.

13 Март 2008 г.

Настоящее и будущее

В этом сообщении я постараюсь подвести краткий итог под тем, что есть сейчас, каких успехов я достиг, и в каком направлении я намерен двигаться.

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

А что, собственно, есть сейчас?

Блог «Роботы и робототехника» - это мое творение меня очень порадовало. Начиная вести его, я никак не ожидал, что блог станет более менее популярным, и что мне удастся собрать такое количество полезной и занимательной (как мне кажется) информации по робототехнике.

На настоящий момент в данном блоге публикуются сообщения по следующим основным направлениям:

  1. Роботы и человеческие чувства
  2. Существующие модели роботов
  3. Создание робота своими руками
  4. Программное обеспечение для роботов
  5. Искусственный интеллект и общение с роботами
  6. Интернет о роботах и робототехнике
  7. Обсуждение и новости собственных проектов автора (т.е. меня)
  8. Раскрутка и продвижение вашего сайта о роботах

Будущее блога я вижу проходящим под лозунгом «Больше практики»! Теорию, оффтопиковые сообщения, обзоры интернет сайтов никуда конечно я не дену, но упор все равно будет на публикацию грамотных практических статей. Если статья получается серьезной - буду выкладывать ее на каком либо сайте со статическим содержимым, а в блог помещать ссылку и краткое описание. Под практикой, надо отметить, я понимаю конструкторские решения + описания создания программ или реализации алгоритмов. И именно последнему - программированию - постараюсь отныне посвящать достаточно много времени и сил, так как тема пока не слишком освещена, а опыт в программировании имеется серьезный.

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

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

Да, кстати, зарегистрировал тут доменное имя RobotLab.Ru, это будет мой новый проект, о нем подробно расскажу чуть позже, в отдельном сообщении. Хотя, в общем и целом, название домена само за себя говорит... :)

Такие пироги, господа читатели! Оставайтесь, как говорится, с нами :)

12 Март 2008 г.

Необычные разработки шасси для роботов.

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

  • мобильные
  • шагающие

И вроде как все... А вот и нет! Типов шасси - десятки.

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

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

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

Робот ездит на велосипеде.

Робот прыгает. Обратите внимание, как сделаны его ноги. Очень серьезная разработка - на мой взгляд.

11 Март 2008 г.

Первый марсоход (ПрОП-М). Устройство шасси

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

Я затронул эту тему, но она оказалась еще более интересной, чем на первый взгляд. Во-первых, на сайте Space-Ru.Com я нашел детальное описание аппарата Марс-2, особенно хорошо описан состав научных приборов и сведения, собранные КА Марс-2 во время полета. Во-вторых, сайт Austronaut.ru предоставил очень хорошее описание спускаемого модуля аппаратов Марс-2 и Марс-3, вместе с его подробной схемой. Между прочим, в прошлом сообщении я совершил досадную ошибку, о чем уже написал в комментарии - ведь спускаемый модуль Марса-3 на самом деле все-таки достиг поверхности Марса, успешно приземлился, и даже начал передавать оттуда картинку (с очень хорошего сайта Teddy Stryk'а) - но через 20 секунд вышел из строя, предположительно, из-за сильной пылевой бури.

Марсоходы ПрОП-М

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

Здесь я натолкнулся на ряд проблем. А конкретно - не смог найти четкой схемы ПрОП-М. Только несколько не самых детализированных изображений и немножечко информации... Отправил запрос во «ВНИИтрансмаш», где были разработаны эти марсоходы - но ответа пока не получил. Но, все по порядку - и вы поймете, почему я так заинтересовался этими марсоходами!

История

Как сообщает сайт Института истории естествознания и техники РАН, во время подготовки аппарата Марс-3, ведущий специалист «ВНИИтрансмаш» В.В. Громов предложил заменить балансировочный груз на прибор оценки проходимости. Эта идея была поддержана, и достаточно быстро реализована, хотя и потребовала дополнительных усилий: реализации самого марсохода, его наземной отработки, реализации устройства выноса марсохода на поверхность, обеспечения его электропитания и связи с посадочным модулем, и т.п.

Вот фотография устройства для спуска аппарата ПрОП-М:

Именно из-за того, что марсоход заменил балансировочный груз - его масса согласно техническим требованиям не должна была превышать 5 кг. Поэтому сам марсоход получился очень простым и, кстати сказать, вполне реализуемым в домашних условиях (к чему я собственно и веду!!).

После завершения миссий КА Марс-2 и Марс-3, когда два марсохода были безвозвратно потеряны, неожиданно нашли третий - на Земле. Ведь стоили эти аппараты не так много, и произвести третий экземпляр для каких-либо проверочных нужд не представляло труда. Этот самый, третий экземпляр - находится поныне в музее ГДЛ Петропавловской Крепости в Санкт-Петербурге. Так что, кто будет в Питере - не забудьте заглянуть в этот музей, и полюбоваться на аппарат собственными глазами, потом мне расскажите :)

Устройство шасси

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

В книге Александра Леоновича Кемурджиана «Планетоходы» я нашел пару слов о преимуществах данного вида шасси (с. 318-319, доступна для скачивания, например, с AstroLib.Ru): «лыжно-шагающий движитель обеспечивает высокие тягово-сцепные свойства на сыпучих грунтах». Также, я подозреваю, подобный аппарат может ползти по очень тонкому льду и не проваливаться. Главный недостаток аппарата - бесспорно, малая скорость.

В любом случае, честно признаюсь, загорелся я реализовать это устройство в домашних условиях! Разве ж не интересно? - собрать дома прототип первого марсохода... К сожалению, четкой схемы устройства нет (все еще надеюсь получить ответ от «ВНИИтрансмаш»), но она, как я предполагаю, крайне простая. Далее идут мои предположения:

В самом «черном ящике» располагались, помимо научных приборов для собственно оценки проходимости грунта - следующие компоненты:

  • Микроконтроллер
  • Приемник устройства связи для управления марсоходом (связь производилась по кабелю спускаемого аппарата)
  • Приемник блока питания (тоже по кабелю) - питание шло как минимум на три схемы: схему управления и 2 схемы двигателей
  • Двигатели - по одному на каждую лыжу, причем, как видно на рисунке - лыжа крепилась к корпусу в трех местах. Я думаю, что только к двум передним креплениям были подведены редукторы двигателя, а заднее крепление было «холостым». Также хочу отметить, что моторчики должны были быть достаточно мощными, чтобы приподнимать и переносить всю массу марсохода.

Микроконтроллер был настроен на объезд препятствий и плюс выполнение команд либо последовательностей команд оператора. А вот как я представляю крепление лыжи и механизм ее присоединения к мотору:

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

7 Март 2008 г.

Своими руками

Попался на глаза интересный блог Lobzik, побудивший, собственно, написать это сообщение.

На этом блоге я нашел как минимум два очень интересных поста: про то, как француз делает радиолампы дома и про ретроноутбук. Советую почитать!

Кратко пройдусь по другим источникам информации по самодельному изготовлению чего-либо:

  • Очень много дельной информации по теме самодельного творчества можно найти в разделе «Статьи» сайта RCDesign.Ru. Там, правда, в основном речь идет о радиомоделях, но технологии изготовления корпуса, шас