Phantom's Brick Архив

Главная -> LEGO® Форум -> LEGO® Техника

Решение сложных задач на платформе mindstorms nxt от Dmitriy

Dmitriy, 2009-09-17 18:16:10 +00:00

Доброе время суток.

Тема как продолжение того что вышло в NXT 1.0 vs. NXT 2.0.

Возможно ли решать «взрослые» задачи на платформе (набор + сторонние расширения) mindstorms?

Примеры задач:

  • распознавание речи
  • генерация речи
  • распознавание объектов

Естественно (поправьте, если не прав) сам NXT не сможет решать эти задача, следовательно их как-то нужно переложить на что-то, а-ля КПК или нетбук, только вот вопрос как?

Из того что известно мне:

Это все? Например, интересует возможность увеличения количества портов для сенсоров.

Удалось найти конкурента mindstorms (по крайне мере, мне пока так кажется) – Bioloid (http://www.robotis.com/zbxe/bioloid_en). $349.00 за Beginner Kit.

Возможно ли из Lego сделать что-то подобное:

при тех же габаритах?

Заранее спасибо.

Dmitriy.

tkf, 2009-09-17 19:23:33 +00:00

Сам задумывался о похожем применении Mindstorm'a. Перегонять данные с компа на комп можно, при этом думаю есть какой нибудь аналог Eval'a или его можно сделать, которые позволит передавать сложные инструкции на выполнение(мне так кажется). Вот только коннект с компом у него не по bluetooth'у из за чего имеем очень неприятные эффект в плане скорости, так как памяти у nxt очень мало, то видео и звук надо будет транслировать напрямую в комп, а при скорости 8.2 кбпс это проблематично.

Разве что на него повесить камеру с микрофоном которая будет транслировать данные по wi-fi, а комп будет их обрабатывать и отдавать команды NXT. Такой вариант еще можно рассмотреть.

Насчет собачки с управление с кпк или телефона думаю возможно, причем навено даже в таких масштабах хоть и несколько тяжеловато. (не знаю нету ничего LEGO'шного моторизированного поэтому оценить не могу)

Так что для строительства роботов с одной стороны Robotics будет удобней. Но с NXT можно использовать все детали Lego :)

RaZeR, 2009-09-17 19:33:56 +00:00

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

Самый оптимальный вариант. Сам планирую купить беспроводную мини-камеру (не Wi-Fi вроде) с приёмником, обработку проводить на компе, а с компа отсылать данные в NXTшные мэйлбоксы (а можно и прямыми командами воспользоваться, что тоже удобно).

tkf, 2009-09-17 19:41:59 +00:00

Самый оптимальный вариант. Сам планирую купить беспроводную мини-камеру (не Wi-Fi вроде) с приёмником, обработку проводить на компе, а с компа отсылать данные в NXTшные мэйлбоксы (а можно и прямыми командами воспользоваться, что тоже удобно).

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

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

FatRat, 2009-09-17 21:25:56 +00:00

Возможно ли решать «взрослые» задачи на платформе (набор + сторонние расширения) mindstorms?

Примеры задач:

  • распознавание речи

Однозначно нет. Элементарно не хватит даже скорости оцифровки (1000 отсчетов/сек максимум)

  • генерация речи

Смотря что под этим понимать. Вроде, ни в одном из интерпретаторов, заливаемых в NXT, нет функций для проигрывания звука из памяти, только из файла. Но "точное время семнадцать пятьдесят две" можно, записав должное количество фрагментов. Звуковоспроизводящий тракт омерзительный, ШИМ фактически без сглаживания, динамик с очень нелинейной АЧХ. По звучанию немного хуже голосового сопровождения на PC Speaker-e в старых игрушках. Играть из переписываемого файла - ресурс флеша маленький.

  • распознавание объектов

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

>Естественно (поправьте, если не прав) сам NXT не сможет решать этизадача, следовательно их как-то нужно переложить на что-то, а-ля КПКили нетбук

В общем, хотите AIBO remote framework :-)

Если с КПК - лучше брать его звуковое оборудование.

Про беспроводную камеру: вай-фай камеры тяжелые, дорогие, много жрут и часто дерьмового качества. Для своих забав использую аналоговый приемо-передающий комплект на 2.4 ГГц от китайской беспроводной камеры, саму камеру - некую бескорпусную low-lux от SONY (у нее чувствительность соизмерима с ПНВ 1го поколения, чего для квартиры с большим избытком, не мажет и не шумит, но черно-белая), и ТВ тюнер. Вообще, с камерой проблема: у большинства нельзя защелкнуть выдержку-усиление-баланс белого, соответственно, с делением по цветам проблема. И светосилы всегда не хватает этим вебкамерам.

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

NXT - это такая плата ввода-вывода с блютусом. Имеет три 9вольтовых ШИМ выхода на моторы, три пары входов с датчиков вращения (не знаю, как правильно назвать, пара фототранзисторов и крыльчатка, как в оптомеханических мышах), считает импульсы отдельный контроллер, предельную частоту не мерял, но быстро. Для шима можно перестроить частоту, но как - не разбирался. Четыре входа IIC, четыре 10битных АЦП и один RS485 (конфигурируется вместо IIC). IIC и АЦП на одной дырке одновременно не работают. И еще экранчик 100x64 графический. Мне кажется, уже это за эти деньги очень неплохо.

На самом "кирпиче" можно предобработку, например, сделать. RobotC поддерживает многопоточность, но кривой. Например, нет указателей и странным образом реализованы локальные переменные, которые на самом деле не динамические, а просто объявлены внутри процедуры -> нельзя вызвать одну и ту же процедуру из параллельных потоков.

Да, жрет очень много, под 300 мА в покое без периферии и без блютуса, если память не изменяет.

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

Про мейлбоксы: гадость. Пакет маленький -> частые переключения прием-передача.

Про прямое управление: плохо по той же причине. Датчики так читать очень неудобно, тем более, что в ответе на команду "прочитать датчик" нет таймстампа.

Но для вялотекущих процессов можно. Лучше все-таки свой кастомный протокол.

Dmitriy, 2009-09-18 08:53:43 +00:00

Пришел к выводу что нужно делать «двухступенчатую» модель: NXT <-> БВ (блок вычислений).

  • передача данных возможно только Bluetooth? (может существует расширение, которое позволяет осуществить косвенное соединение, например, проводное или Wi-Fi?)
  • возможно ли передавать данные с NXT о датчиках, сервоприводах?
  • имеет ли смысл использовать NXT как систему получения данных с датчиков и серво? Может быть существую иные средства? Вообще, логично ли это?

По сути дела, отпадает надобность в программировании самого NXT, хотя можно сделать что бы БВ отправлял сложные команды, а NXT выполнял их самостоятельно. Что думаете по данному поводу?

Что лучше взять под БВ КПК или нетбук, а может вообще смартфон, тот же iPhone?

Дилемма на основании трех факторов: габариты, производительность и подключении периферии.

Нетбук – большой, но быстрый, да и c периферией все хорошо – usb.

КПК и смартфон – маленькие, не такие быстрые, а как к ним что подключать вообще непонятно.

  • Законный вопрос, а выдержит ли Lego подобные массы (NXT + БВ + аккумуляторы + камера + расширение + ...)?
  • Существуют ли серво иных габаритов, т.е. возможно ли собрать с точки зрения подвижности http://www.robotis.com/player/player.php?file=../../video/2_12.wmv ?
  • Возможно ли собрать действительно шагающую модель?
  • Возможно ли увеличении скорости, т.е. кто-нибудь пытался объединить несколько серво или использовать альтернативы?
  • Существует ли возможность увеличения количества портов датчиков?

Кто-нибудь знает что-нибудь о bioloid (на официальном сайте не нашел даже параметры главного блока)?

FatRat, 2009-09-25 20:50:37 +00:00

Прошу прощения за запоздалый ответ.

Пришел к выводу что нужно делать «двухступенчатую» модель: NXT <-> БВ (блок вычислений).

передача данных возможно только Bluetooth? (может существует расширение, которое позволяет осуществить косвенное соединение, например, проводное или Wi-Fi?)

По проводам:

USB: в RobotC полностью поддерживается Phantoms, в том числе и мейлбоксы. Производительности должно хватить (пока не пробовал).

RS485: есть, шустрый, глюков пока не заметил. Легко конверитруется в RS232

возможно ли передавать данные с NXT о датчиках, сервоприводах

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

При использовании "Фантомса" лучше все-таки перепрошить кирпич виртуальной машиной с RobotC, у нее ПИД-регуляторы для управления сервами быстрее и точнее настроены.

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

По сути дела, отпадает надобность в программировании самого NXT, хотя можно сделать что бы БВ отправлял сложные команды, а NXT выполнял их самостоятельно. Что думаете по данному поводу?

Мне кажется, имеет, для развлечения во всяком случае. NXT дешев и комфортно программируется. В частности, в RobotC есть отладчик (симулятора нет, а "внутрисхемный", так сказать - есть). В учебных целях - думаю, тоже хорошо, благодаря тому, что все уже написано, например, не придется в первый же момент настраивать регуляторы. А потом можно встроенные в драйвер отключить и использовать свой. Для "быстрого старта" очень хороший набор.

Что лучше взять под БВ КПК или нетбук, а может вообще смартфон, тот же iPhone?

А зачем его возить на самом роботе?

КПК - хорошо, программируется на VC++ или C#, операционка очень похожа на NT, железка весит мало.

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

Смартфон (на основе Windows CE) - смотри КПК.

Смартфон (на основе Symbian) - не щупал.

iPhone - "вещь в себе". Собственная ОС, со средствами разработки проблемы, блютус кривой, периферии нет. С тем же успехом можно взять, скажем, цифровой фотоаппарат под DigitaOS.

Про производительность КПК - она очень даже приличная, на обработку звука (фильтры+FFT+DTW) хватит любого. Многие имеют блютус, некоторые RS232 и USB хост. Часто есть встроенная камера, в Windows CE 6.1 есть API для работы со встроенным акселерометром. В общем, для возимого, на мой взгляд, оптимальна виндовая КПКшка, если нет ограничения по каким-то правилам - выносить вычисления на стационарный комп.

Законный вопрос, а выдержит ли Lego подобные массы (NXT + БВ + аккумуляторы + камера + расширение + ...)?

Килограмм где-то вполне увезет. Другое дело, конструктив из ЛЕГО - вещь неприятная. Собирается неудобно, с жесткостью совсем караул ("текник", на котором постороен NXT, собирается на упругих шпильках). по моему? скромному мнению, от NXT по возможности нужно оставлять только процессорный блок.

Существуют ли серво иных габаритов, т.е. возможно ли собрать с точки зрения подвижности http://www.robotis.c.../video/2_12.wmv ?

Штатных NXT - нет, для р/у моделей есть любые, в том числе очень маленькие (меньше пол-спичечного коробка) и многоооборотные для спецприменений. На любую мощность и скорость отрабортки, были бы деньги. Питание у них пятивольтовое, управляются "угол пропорционален ширине импульса". (это я не Вам, а к аудитории :-)

Возможно ли собрать действительно шагающую модель?

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

Возможно ли увеличении скорости, т.е. кто-нибудь пытался объединить несколько серво или использовать альтернативы?

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

Существует ли возможность увеличения количества портов датчиков?

На один порт можно повесить несколько IIC-Slave устройств с разными адресами. Все коммерческие датчики, насколько я знаю, совпадают по адресу с штатным ультразвуковым. IIC в RobotC имеет свойство зависать, выход из этого состояния - перезапуск кирпича.

Еще о неприятном: "кирпич" можно "разбудить" по USB или кнопкой включения, по событию внутри самого "кирпича" он просыпаться не умеет. Вкупе со зверским энергопотреблением очень неприятно. Если обесточить включенный "кирпич" и потом подать питание вновь, он сразу включится, но будет стоять в начальном меню и ожидать действий пользователя. Зачем тогда он запоминает, выключали его из "sleep" или из "on"?

Dmitriy, 2009-09-30 16:48:03 +00:00

Прошу прощения за запоздалый ответ.

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

По проводам:

USB: в RobotC полностью поддерживается Phantoms, в том числе и мейлбоксы. Производительности должно хватить (пока не пробовал).

RS485: есть, шустрый, глюков пока не заметил. Легко конверитруется в RS232

USB значит не только для записи программы, это хорошо.

А каким образом подключается RS485 (RS232)?

А зачем его возить на самом роботе?

Хочется же автономность.

КПК - хорошо, программируется на VC++ или C#, операционка очень похожа на NT, железка весит мало.

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

Смартфон (на основе Windows CE) - смотри КПК.

Смартфон (на основе Symbian) - не щупал.

iPhone - "вещь в себе". Собственная ОС, со средствами разработки проблемы, блютус кривой, периферии нет. С тем же успехом можно взять, скажем, цифровой фотоаппарат под DigitaOS.

Про производительность КПК - она очень даже приличная, на обработку звука (фильтры+FFT+DTW) хватит любого. Многие имеют блютус, некоторые RS232 и USB хост. Часто есть встроенная камера, в Windows CE 6.1 есть API для работы со встроенным акселерометром. В общем, для возимого, на мой взгляд, оптимальна виндовая КПКшка, если нет ограничения по каким-то правилам - выносить вычисления на стационарный комп.

С точки зрения программирования все просто – интересует все остальное, например, как подключать к USB что-нибудь, он же без питания, на сколько я знаю?

У Apple в этом плане все просто: у них сейчас поощряется разработка девайсов под их порт, хотя сами подписали договор по переходу на USB. Bluetooth они тоже поправили.

Symbian? Нет уж лучше Android.

Прочие ОС (кроме Windows, iPhone OS, Symbian, Android) даже не рассматриваю.

Существуют ли серво иных габаритов, т.е. возможно ли собрать с точки зрения подвижностиhttp://www.robotis.c.../video/2_12.wmv ?

Штатных NXT - нет, для р/у моделей есть любые, в том числе очень маленькие (меньше пол-спичечного коробка) и многоооборотные для спецприменений. На любую мощность и скорость отрабортки, были бы деньги. Питание у них пятивольтовое, управляются "угол пропорционален ширине импульса". (это я не Вам, а к аудитории :-)

А как ими управлять с NXT и КПК (ПК)?

Полез на официальный сайт RobotC, а там кроме NXT еще VEX, не сталкивались?

Кроме того есть TETRIX http://www.education.rec.ri.cmu.edu/content/lego/tetrix/index.htm, который взаимодействует с NXT, случайно о нем не знаете?

И до кучи, никак не прокомментировали bioloid.

Кроме них есть еще qfix http://qfix-shop.de/.

brawo, 2009-10-28 19:08:24 +00:00

тетрикс очень прикольная вещь=))

там такие вещи можно делать=)))

FatRat, 2009-11-02 22:42:48 +00:00

USB значит не только для записи программы, это хорошо.

А каким образом подключается RS485 (RS232)?

Каюсь, не найду никак флешки со схемой и печаткой.

>Хочется же автономность.

А зачем она?

>С точки зрения программирования все просто – интересует все остальное, например, как подключать к USB что-нибудь, он же без питания, на сколько я знаю?

USB хост - штука ну очень муторная.

А как ими управлять с NXT и КПК (ПК)? Bluetooth как эмуляция ком-порта, RS485 - отправка-прием символов. По bluetooth есть обмен файлами штатными средствами.

>Полез на официальный сайт RobotC, а там кроме NXT еще VEX, не сталкивались?

Нет

Кроме того есть TETRIX http://www.education...etrix/index.htm, который взаимодействует с NXT, случайно о нем не знаете?

> набор прочных железяк и блок сопряжения с моделистскими сервомашинками. Своих "мозгов" нет. Хорошая и дорогая вещь.

>И до кучи, никак не прокомментировали bioloid.

>Кроме них есть еще qfix http://qfix-shop.de/.

Ничего про них не могу сказать

legorob, 2013-02-22 12:04:21 +00:00

Всем привет, подскажите, кто знает, какими датчиками можно определять расстояние.

Мне надо их хотя бы 2 в разные стороны. Ультразвуковые могит сбивать друг друга.

Видел что есть в NXT3 новый ик датчик, как он себя покажет в такой ситуации?

Вообще посоветуйте как быть - какие будут лучше - ИК или УЗД.

Спасибо.

smartbricks, 2013-03-03 20:55:06 +00:00

Добрый день.

Я так понимаю речь идет пока о NXT 2.0?

Для него существует несколько решений.

Есть вариант применения сенсоров на базе ИК излучения у HiTechnic

http://www.hitechnic...ion&key=NEO1048

и Mindsensors

http://mindsensors.c...page&PAGE_id=73

http://mindsensors.c...page&PAGE_id=72

http://mindsensors.c...page&PAGE_id=69

для разных расстояний.

В конце следующей недели выведем в продажу свой датчик расстояния на базе ИК излучения. Он измеряет расстояния до 100 мм.

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

С ультразвуком пока решение только одно - LEGO, какое есть.

>> Вообще посоветуйте как быть - какие будут лучше - ИК или УЗД.

Изначально, ультразвук дает неплохие результаты для широкоугольного охвата пространства. Но из-за самого принципа измерения расстояний, достаточно медленный способ (1 метр - 6 мс - время отклика).

Однако, время отклика у датчика LEGO порядка 50 мс (оченно медленно!)

С ИК дело обстоит в этом плане более интересно. Он более шустрый. Но для него нужны специальные сенсоры (типа Sharp), если нужно измерять средние расстояния, которые применяют в своих решениях Mindsensors.

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

Удачи!

Изменено 4 марта 2013 пользователем smartbricks

legorob, 2013-03-04 08:03:54 +00:00

Привет. Еще пара вопросиков:

А как приспособить датчик, который работает от 5 вольт на лего систему с 9 вольтами?

И еще может подскажите на какие провода надо ставить датчик (по цветам в лего какой провод на что идет).

Спасибо.

smartbricks, 2013-03-04 11:55:22 +00:00

Привет. Еще пара вопросиков:

А как приспособить датчик, который работает от 5 вольт на лего систему с 9 вольтами?

И еще может подскажите на какие провода надо ставить датчик (по цветам в лего какой провод на что идет).

Спасибо.

Добрый день.

Не очень понятно.

Какой датчик на какую лего-систему ?

Видимо сейчас разговор не об NXT ?

legorob, 2013-03-10 18:30:48 +00:00

Добрый день.

Не очень понятно.

Какой датчик на какую лего-систему ?

Видимо сейчас разговор не об NXT ?

Здравствуйте,

Есть датчик шарп на ик лучах, но работает он от 5 вольт и он аналоговый.

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

Но как, и как разобраться в проводах лего (их 6 штук)?

Спасибо.

smartbricks, 2013-03-11 06:20:25 +00:00

Здравствуйте,

Есть датчик шарп на ик лучах, но работает он от 5 вольт и он аналоговый.

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

Но как, и как разобраться в проводах лего (их 6 штук)?

Спасибо.

Добрый день.

Ага, теперь понятно.

Стало быть, в NXT разъем имеет следующую распиновку (если смотреть на него, то номерация справа налево):

1. Аналоговый вход - 0.8-4.3В (именно в таком диапазоне измеряется напряжение)

2, 3 - GND

4. Питание 4.3В-4.7В (проверьте возможность работы на таких напряжениях свой шарп.

5. Дополнительный контакт для управления режимами датчика- дискретный ("0" - 0В, "1" - 4.3В).

6. Используется для цифровых датчиков.

Если возьмете блок NXT-G (в среде разработки) для датчика освещенности - то сможете получить все возможности по управлению и чтению (там есть выходы RAW(0-1024) и SCALED (0-100%), а также галочка "Generate Light" - которая включит контакт "5" в состояние "1").

Пробуйте!

Отпишитесь как получилось, плиз.

С Уважением,

SMARTBRICKS.

legorob, 2013-03-11 16:50:46 +00:00

Добрый день.

Ага, теперь понятно.

Стало быть, в NXT разъем имеет следующую распиновку (если смотреть на него, то номерация справа налево):

1. Аналоговый вход - 0.8-4.3В (именно в таком диапазоне измеряется напряжение)

2, 3 - GND

4. Питание 4.3В-4.7В (проверьте возможность работы на таких напряжениях свой шарп.

5. Дополнительный контакт для управления режимами датчика- дискретный ("0" - 0В, "1" - 4.3В).

6. Используется для цифровых датчиков.

Если возьмете блок NXT-G (в среде разработки) для датчика освещенности - то сможете получить все возможности по управлению и чтению (там есть выходы RAW(0-1024) и SCALED (0-100%), а также галочка "Generate Light" - которая включит контакт "5" в состояние "1").

Пробуйте!

Отпишитесь как получилось, плиз.

С Уважением,

SMARTBRICKS.

Снова привет.

Спасибо за много новой и полезной для меня информации.

Пока буду еще узнавать и обдумывать все возможности использования упомянутого датчика на лего.

Кстати вот датчик шарп: Sharp-GP2Y0A02YKOF.

Если будут у вас какието идеи или полезная для меня информация буду вам очень благодарен.

Спасибо, удачи.