Алекс Лочер
02:25 23-06-2004
Блин.
Хрень какая-то с интернетом творится. Бесит
Не работает ни почта, ни ftp. При этом я не могу отправить почту через web интерфейс, upload файлов любыми формами тоже не работает.
И это при том, что обычный web работает, и аська. Только провайдер по аське молчит, гад.

В комментариях - текст письма, которое я должен был отправить. Но из-за глюков почты пришлось пользоваться столь экзотическим методам передачи данных, как комменты собственного дневника
Комментарии:
Алекс Лочер
02:33 23-06-2004
Имеются следующие три варианта построения роботизированных систем:

• Решения на базе роботов AIBO комании SONY,
• Решения на базе конструкторов компании LEGO
• Самостоятельная сборка роботов посредством покупки микроконтроллеров, электромоторов, сеснсоров и тому подобного оборудования



1. AIBO, SONY

Данный вариант является наиболее технологичным. Роботы Айбо несут на себе наиболее полный набор оборудования, которое можно использовать в работе (в последней модели это - 64битный RISK процессор частотой 576 МГц, 64 MB RAM, 20 электромоторов в различных частях тела, видеокамера с матрицей 350 000 пикселей, встроенное устройство Wireless LAN 802.11b, миди-синтезатор, микрофон, динамик, сенсоры: температурный, инфракрасный для определения расстояния, для определения ускорения, электростатический, сенсоры давления и вибрации). Таким образом, набор аппаратных компонентов достаточен для решения практически любых задач в рамках лабораторных исследований.
Тем не менее, робот является закрытой системой – «черным ящиком», не предназначенным для вскрытия, изучения или видоизменения состава оборудования. Единственная возможность для расширения – это подключения дополнительных карт памяти Memory Stick (в наличии один свободный слот). Таким образом, координальное изменение функциональности робота практически невозможно – сделать из собачки, например, робот-вездеход на гусечном ходу не получится.
Что касается программного обеспечения, то компания Сони предлагает довольной большой набор средств для программирования своих роботов.
Есть три основных средства для программирования AIBO: это R-CODE, OPEN-R и RemoteFrameWork.
R-CODE – это высокоуровневый интепретируемый скриптовый язык, позволяющий выполнять базовые операции над роботом – такие как движение, изменение поз, запуск встроенных процедур (типа игр с мячиком или танцев под музыку), поспроизведения музыкальных файлов, прием/передача картинок с камеры, опрос сенсоров и т.п. Данный язык довольно удобен для того, чтобы, не вдаваясь в глубокую реализацию управления моторчиками, иллюстрировать учебные различные задачи. Так, например, в R-CODE SDK входит AIBO-реализация классической логической задачи поиска пути в лабиринте.
Open-R SDK – низкоуровневое средство, основанное на с++ компиляторе (gcc), предоставляющее инструменты для прямого доступа ко всем узлам робота, позволяющие программно управлять такими параметрами, как положение различных суставов, состояние лампочек, работа по WiFi через TCP/IP и т.п. С использованием этого средства можно писать сложные программы – стили передвижения и поведения. Это позволит создать роботу более ярковыраженную индивидуальность – например заменить стандартный стил перемещения робота на какую-то свою походку (как вариант, после долгой беготни робот может «устать» и еле поднимать ноги, или прихрамывать и т.п.). Данное средство имеет смысл использовать для глубокого изучения функций робота.
RemoteFrameWork – среда для создания приложений для настольного PC, способного управлять роботом по Wireless LAN. На сколько я успел разобраться, эти приложения по возможностям аналогичны написанным на R-CODE – т.е. происходит вызов встроенных функций робота, хотя возможны и некоторые расширения (однако полной совместимости нет – это разные среды – нет возможности вызывать функции R-Script через RFW) . Данная среда особо предпочтительна для обучения, ибо позволяет совместить классическое программирование с программировнаием для AIBO. Так как разработка основана на Visual C++, то данная среда интегрируется со средой разработки VisualStudio(как 6й версии, так и VS.Net 2003) – что реально очень удобно для обучения.

Следует заметить, что компания Sony очень активно поддерживает разработчиков для AIBO – все SDK доступны для свободного скачивания, многие доступны в Open Source, широко развита обратная связь. Sony регулярно проводит конкурсы среди разработчиков, часто покупает у них программы или помогает в реализации готовых продуктов. Широко известен тот факт, что знаменитая программа AIBO-Dance, научившая собачку танцевать, была написана именно сторонними разработчиками-энтузиастами и лишь потом выкуплена у них компанией.
Существует практика, когда компания предоставляла разработчикам оборудование и программы бесплатно на условиях, что весь разработанный ими софт становится собственностью компании. На сколько нам известно, было несколько случаев заключения подобных договоров с университетами. Было бы здорово, если бы мы смогли пополнить этот список

Резюме по AIBO:
Плюсы:
1. Исчерпывающий набор аппаратных компонентов.
2. WiFi предоставляет возможность роботу поддерживать связь с PC во время выполнения программы, значительно упрощая отладку, повышая наглядность работы и сильно расширяя круг возможных задач – в том числе и в плане взаимодействия с другими роботами.
3. Многоуровневая и очень мощная система разработки программ управления.
4. Большое количество документации и примеров в свободном доступе.
5. Поддержка разработчиков со стороны компании
Минусы:
1. Отсутствие возможности изменения аппаратной конфигурации
2. Общая «игрушечность» системы
3. Высокая цена
Алекс Лочер
02:33 23-06-2004
2. Mindstorms, LEGO

Здесь используется принципиально иной подход к созданию робота – данная система создавалась как игровая и обучающая, поэтому изначальный набор опций довольно мал. В комплекте микропроцессорный блок (по неофициальной информации в составе этого блока CPU частотой в 16 МГц, 512K RAM и 16K ROM), датчики света и прикосновения, два электромотора – и большое количество различных соединительных деталей – как обычных кубиков лего, повзоляющих строить корпус конструкции, так и всевозможных осей, поршней, колес и т.п – для конструирования подвижны частей механизма робота.
Таким образом, при вообщем-то небольшом наборе базовых функций, которые может выполнять робот-конструктор, сама возможность собирать на базе данного набора компонентов различные конструкции существенно повышает функциональность системы. Из робота на гусеничном ходу легко сделать робота-скалолаза и т.п.
Имеющийся в комплекте язык программирования робота весьма беден – сказывает изначальная игрушечность системы. Однако существует большое количество неофициальных систем программирования Mindstorms – после того, как LEGO открыла исходные коды своих программ, большое количество сторонних разработчиков взялось за создание языков программирования Mindstorms. Среди них можно выделить LegOS, Lego::RCX.pm, Not Quite C (NQC), pbForth, TinyVM и leJOS.
LegOS - наиболее мощная из систем. Это полноценная многозодачная операционная система, позволяет управлять роботом при помощи самого обыкновенного языка С/С++. Довольно сложна в изучении и эксплуатации, зато предоставляет максимум возможностей.
RCX.pm - это простая библиотека на языке perl, предназначенная для удаленного контроля над роботом через ИК-устройство. Простой, быстрый и очень эффективный способ управления роботом – вызов обыкновенного perl скрипта. Соответственно, возможности и инструментари не сильно велики, но для простых задач – идеально подходит.
NQC - это компилятор Си-подобного языка, повзоляющий скомпилировать программу в байт-код, передаваемый роботу стандартными средствами Lego Mindstorms – по сути замена встроенного языка программирования на более совершенный.
pbForth - использует для программирования робота язык Forth, что делает эту систему довольно привлекательной. Работа в этой системе очень проста и не требует никаких внешних программ.
TinyVM, leJOS – это виртуальные машины JAVA, загружаемые в робота и позволяющие интерпретировать байт-код Java, на котором пишется программа. leJOS – более полная система, содеражщая ряд расширенных функций. В виду популярности Java данные истемы весьма перспективны.

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


Резюме по Mindstorms:
Плюсы:
1. Робот-конструктор – есть возможность полной перестановки любых деталей и изменения функциональности всей системы.
2. Большое количество различных систем разработки программ на любой вкус и опыт программиста.
3. Возможность интеграции нескольких наборов в одной системе и расширения возможностей засчет других наборов LEGO.
4. Низкая цена
Минусы:
1. Очень небольшое количество различающихся функциональных блоков и, как результат, функциональые ограничения. Невысокая вычислительная мощность -сложные вычисления должны производится предварително на PC
2. Связь с ПК происходит только на этапе программирования,а значит не возможен любой обмен данными между роботом и компьютером в ходе выполенения программы (соответственно сильно затруднена отладка программ, так же невозможны командные действия роботов – обмениваться данными друг с другом они не смогут).
3. Отсутствие поддержки систем программирования со стороны производителя – имеющиеся системы являются любительскими со всеми вытекающими последствиями.
4. «Игрушечность» системы даже выше чем у AIBO.

отредактировано: 23-06-2004 02:44 - Алекс Лочер

Алекс Лочер
02:34 23-06-2004
3. Самостоятельная сборка

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

Поэтому предлагаю отказаться от этой идеи.


Выводы:

По сути, роботизированные системы могут использоваться нами для двух задач – для моделирования AI с достаточно реалистичным поведением (обучаемость, сложные взаимодействия со внешним миром, моделирования «характера» и привычек и т.п.) и для иллюстрирования логических задач (поиск пути в лабиринте и т.п.), выполнения простых алгоритмов («черепаший язык» в стиле LogoWriter или роботизированная модель машины Тьюринга) и тому подобные вещи. С первой задачей из двух пердставленных систем могут справится только AIBO – у Mindstorms не хватит ни функциональных блоков ни вычислительной мощности для этого. Со второй – обе справляются примерно одинаково, однако Mindstorms, в виду возможности видоизменения конструкции, могут делать это более наглядно (можно попытаться собрать из конструктора сделать руку, рисующую карандашом картинку, а собачка сможе только перемещать кубики) (отчетливо представил себе модель машины Тьюринга в исполнении AIBO – собака, рычащая и виляющая хвостом, азартно перетаскивает по полу кубики с нарисованными на них черточками да палочками – выглядит забавно 

Соответственно, могу предложить следующее:
• организованно посетить студию Сони и оценить реальные возможности роботов Айбо и их SDK - как в плане функциональности, так и в плане удобства – наиболее больной вопрос – это то, как реализованы высокоуровневые функции управления.
• Скачать из интернета примеры программ как для AIBO так и для Mindstorms – так же с целью оценки сложности.
• На основании этого принять окончательное решение о выборе платформы.

Если будет выбрана Айбо, то можно будет попытаться организовать переговоры руководства лаборатории/кафедры/института с Сони с целью попробовать заключить контракт на бесплатное предоставление оборудования в обучающих целях (см. выше в тексте про Айбо).
Если будет выбрана LEGO, то помимо самого комплекта Robotics Invention System 2.0 имеет смысл приобрести дополнительный набор компонентов для расширения возможностей робота. Покупать два или более роботов MindStorms смысла не вижу, так как они все равно не смогут общаться друг с другом.
Gernsback
07:39 23-06-2004
Другие модели не рассматривались?
Алекс Лочер
12:50 23-06-2004
Gernsback - а именно?