Секвенсор, управление шагающими платформами, манипуляторами

Разработка стандартизированных модулей для домашнего робостроения.
Правила форума
Правила раздела OpenRobotics

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение Виктор Казаринов » 18 дек 2009, 14:08

О терминологии.
Мозжечком, однако, по нашему, по-чукотски, все это называется. А если серьезно, то:
1. Я бы назвал планировщиком то, что позволяет заранее смоделировать (сгенерировать) отдельные статические позы и последовательные во времени их композиции.
2. Собственно секвенсором назвал бы узел, способный записывать в себя и выдавать роботу на непосредственное исполнение последовательность команд по управлению каждым приводом в отдельности. При этом желательно, чтобы на вход секвенсора поступало иерархическое описание наподобие языка SMIL (Synchronized Multimedia) http://www.w3.org/AudioVideo/
Проект Robosonic RS http://www.aigod.com
Аватара пользователя
Виктор Казаринов
 
Сообщения: 1387
Зарегистрирован: 21 июн 2006, 11:22
Откуда: г. Омск
Skype: victorkazarinov
прог. языки: почти все понемногу
ФИО: Казаринов Виктор Геннадьевич

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение =DeaD= » 18 дек 2009, 14:14

Не надо никаких SMIL пока :) пока считаем что всё в одной среде выполняется.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение Michael_K » 18 дек 2009, 14:37

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


Вот у меня такое же представление и тут тоже кроется много вопросов...

В принципе можно сделать такую систему:

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

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

Это все пока основано только на кинематической схеме, дальше начинается физика...
Например, "физик", вычислив ЦТ, может сказать "геометру", куда можно поставить ногу, чтобы робот не упал.
Это позволит не ограничивать геометра "заведомо безопасными границами", а значит увеличить скорость,
ширину шага и т.д.

И тут, имхо, много разных вариантов
Физик может крутить в голове "бессенсорную" модель,
а может крутить пусть простую, но "сенсорную",
физик может заменять секвенсор, сам определяя какую ногу выгоднее переставить и т.д.


Я бы предложил описать для начала интерфейс САМОГО-САМОГО верхнего уровня,
чтобы понять, что должен уметь делать этот робот...

Добавлено спустя 14 минут 20 секунд:
В общем, я бы определил границы применимости, потому что иодели
и структуры мозжечка существенно различаются.

Одно дело когда синхронно вызывается функция верхнего уровня "иди_в_позицию(X,Y,Z,T)",
и другое, когда асинхронно вызываются функции "иди_в_позицию(X,Y,Z,U,V,W,T)",
"продолжай_идти_но_подними_средние_ноги()", "а_теперь_все_то_же_самое_но_с_чашкой_на_голове()" :shock:
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение =DeaD= » 18 дек 2009, 14:39

Я думаю надо начинать с тупого секвенсора, в котором есть только N действий строго расписанных по движениям серв, а потом переходить к более продвинутому секвенсору, которому давать команды "сделай шаг длиной 15мм", "повернись направо на 8°" и т.п.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение Michael_K » 18 дек 2009, 14:54

Ясно.
То есть у нас будет "Евклид", а "Ньютона" в топку.

Думаю, что это правильно, тем более, что обобщать даже бессенсорную физику
будет малореально... А тем более снимать параметры конкретной реализации.

Продолжу вопросы из серии "что хочется?" :)

- забить на высоту и повороты корпуса относительно плоскости пола (???)
- забить на возможность "вытащить" некоторые ноги из под управления секвенсора (???)
(например "дай лапу" или "принеси кубик")
- забить на возможность сказать "евклиду" дополнительные параметры движения (???)
(например, "не растопыривай ноги" - в дверь не пройдешь)

Грубо говоря, на входе пульт управления от обычной РУ машинки
- руль вправо-влево, мотор вперед-назад.
Так?
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение =DeaD= » 18 дек 2009, 15:18

Не в топку "Ньютона", а откладываем на следующие этапы. Сначала статика, потом динамика.

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

Добавлено спустя 1 минуту 4 секунды:
Главное, чтобы все эти навороты работали с обобщенными моделями, или хотя-бы с 60-80% реальных моделей без доработки напильником, тогда это будет движение вперед. Скачал новые алгоритмы, скомпилировал и радуешься, что твой робот выучил новые трюки :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение Michael_K » 18 дек 2009, 17:07

Не в топку "Ньютона", а откладываем на следующие этапы. Сначала статика, потом динамика.

Тут я как раз пытался отделить физику от геометрии.

В статике (квазистационарной) тоже может быть "ньютон"
(ЦТ считать, чтобы устойчивость сохранять, например),
а можно физику вообще не учитывать и работать только "евклидом"
(провел ноги по дугам, робот повернулся). При этом размах дуг тупо
ограничить безопасной зоной, чтобы быть уверенным, что робот не упадет.

Вот например подход с ЦТ (грубый, правда):


Добавлено спустя 54 минуты 7 секунд:
=DeaD= писал(а):...я тоже думаю не забить, а сначала реализовать
без этого, а потом прикрутить.


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

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

Я, как вы наверное заметили, вообще не сторонник "обобщений"
и "универсализаций" - имхо, они приводят к жутко неэффективному
и плохо управляемому коду...
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение blindman » 22 дек 2009, 04:52

Может пригодиться

Как определить положение серво, вал которой вращается внешней силой (с отключенным двигателем): http://forums.parallax.com/forums/defau ... 1&m=121278

Основная идея: серва запитывается через резистор, сопротивление которого достаточно мало, чтобы работала электроника, и достаточно велико, чтобы мотор не вращался. Подаем импульс на вход управления, меряем напряжение на резисторе. По длительности импульса судим о положении вала.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение Michael_K » 22 дек 2009, 07:04

серва запитывается через резистор, сопротивление которого достаточно мало, чтобы работала электроника, и достаточно велико, чтобы мотор не вращался.

Гхм... Абалдеть... ну вот, а говорят чудес не бывает :)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение Sergey Filippov » 24 янв 2010, 03:18

blindman писал(а):Как определить положение серво, вал которой вращается внешней силой (с отключенным двигателем)

Как пользователь, не разбирающийся в электронике, хотел бы найти готовое решение такой задачи: управление сервами с обратной связью с учетом противодействия среды. Скажем, нога шестинога опускается не на заданное число градусов, а до соприкосновения с поверхностью (тогда возможно движение по пересеченной местности). А захваты манипулятора замыкаются, пока перемещаемый предмет не будет зажат с достаточной силой, после чего определяются его размеры. Если такие решения технически реализованы, открывается большой простор для программирования алгоритмов управления. Иными словами, нужны сервы с датчиками оборотов, работающими как при включенных, так и при выключенных двигателях. Что посоветуете?
Sergey Filippov
 
Сообщения: 129
Зарегистрирован: 15 ноя 2009, 22:06
Откуда: Санкт-Петербург
Skype: safilippov
ФИО: Сергей Александрович Филиппов

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение Michael_K » 24 янв 2010, 05:05

2 Sergey Filippov
Усилие сервы прямо пропорционально току сервы.
Можно и длину импульса тока мерить - это относительно просто.
Готовых решений не видел.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение Алексей » 24 янв 2010, 06:00

Готовые решения есть. Это робосервы. Например Dynamixel AX-12 от Robotis: "Dynamixel AX-12 is a powerful, feature rich, network servo that can report voltage, temperature, load, speed, and position". Ну просто все что Вы хотите и даже больше :) Но как всегда в этой жизни, за удовольствие нужно платить. Эта серва стоит ~$50. Причем это самая их дешевая серва с пластиковым редуктором. На 6нога их нужно 18. Вот потому то любители используют в своих проектах дешевые модельные сервы, в которых всех этих "вкусностей" нету.
Есть попытка превратить их в робо "малой кровью" - проект OpenServo. Но если самому не паять, а покупать готовую плату, то тоже недешево выходит - 18 фунтов. :cry:
Алексей
 
Сообщения: 152
Зарегистрирован: 12 дек 2009, 23:44
Откуда: Киев
ФИО: Алексей Диомидов

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение Angel71 » 24 янв 2010, 18:26

:) да знают тут многие о робосервах и про эти и про другие, просто учитывая цену (за маломощные до 300$) считаем, что их как бы и нет. "малой кровью" кстати это ещё можно вывести провод с потенциометра.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение =DeaD= » 24 янв 2010, 19:05

Еще бы сказал кто, куда надо эту информацию о положении? Ну кроме программирования робота банальным ручным выгибанием конечностей и запоминанием положений в контроллер. Датчиков нажатия на клешне это всё равно толком не заменит, по крайней мере с хрупкими предметами.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Секвенсор, управление шагающими платформами, манипуляторами

Сообщение Angel71 » 24 янв 2010, 19:34

:) эт да, и без обратной связи можно обходится. а вообще думается, что еще дело в том, кто как привык софт писать и отлаживать. :oops: мне вот часто удобней с платы по уарту запрашивать "текущее состояние". это когда только начинаю железку делать и еще не понятно что к чему, потом необходимость в большей части этих данных отпадает
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

Пред.След.

Вернуться в Open Robotics

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1