roboforum.ru

Технический форум по робототехнике.

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

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

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

Сообщение Michael_K » 13 дек 2009, 20:40

Интерполировать - можно подумать там перегибов много...

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

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

Сообщение =DeaD= » 13 дек 2009, 20:45

Вопрос в осмысленности этих действий. Если можно сами расчеты поместить в МК - нафига строить таблицы, интерполировать и т.п.?

Простой расчет: допустим у нас 128-я мега, пусть 64Кб мы отдаём под таблицы. Ног у нас минимум 2 типа - 32Кб на ногу. каждая запись по координатам 3 байта минимум - даже если округлим координаты сильно, итого имеем максимум примерно 10000 записей. Это примерно 21 положение каждой сервы. Т.е. если и пролезаем, то впритык.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение Michael_K » 13 дек 2009, 20:47

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

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

Сообщение =DeaD= » 13 дек 2009, 20:51

Что и будет иметь смысл интерполировать и загонять в МК, так это таблицу sin для 1 четверти.
При этом можно интерполироваться с отличной точностью, зная, что sin'(x)=cos(x) :)

Добавлено спустя 2 минуты 48 секунд:
Вообще прямая кинематика легко может считаться на МК, там умножение вектора на матрицу или сложение векторов, ну и вычисление матрицы поворота - по сути вычисление sin(x) и cos(x) при одном и том же (x).

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

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

Сообщение Michael_K » 13 дек 2009, 21:00

Вообще прямая кинематика легко может считаться на МК...
А вот с инверсной кинематикой посложнее будет...


Dead, поймите, это зависит от того, как вы ставите задачу!!!

Допустим при одном и том же положении ТЕЛА даже в описанном вами случае ноги
расположены неоднозначно. Задачи и прямой и инверсной кинематики могут быть
поставлены так, что они будет решаться проще или сложнее...

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

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

Сообщение =DeaD= » 13 дек 2009, 21:48

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

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

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

Dead, я же о чем говорю то.
Вы ставите задачу так:
"как перевести ступню ноги в позицию X,Y,Z относительно пуза (условно) робота".

Вы абстрагировались от координат "Положение сервы1, Положение сервы2, Положение сервы3"
в пользу декартовых координат ступни XYZ, но совершенно не понятно зачем.
Соответственно непонятно, почему это выгоднее...
Вы думаете, что так будет проще программировать плавные движения?
Возможно и так, хотя выбор таких координат и условий все равно неочевиден.
(Просто заменить один "сиквенс" на другой???)

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

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

И наоборот - введите дополнительные условия (например, скорость движения)
и пропадут "неоднозначности" инверсной кинематики.

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

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

Сообщение avr123.nm.ru » 13 дек 2009, 22:18

Они у вас на микросервах ?
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение =DeaD= » 13 дек 2009, 22:21

2Michael_K: Ничего не понял.

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

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

Делать алгоритмы надо не которые проще программировать или проще выполнять, а те, которые максимально эффективно решают поставленную задачу. И это не мои личные тараканы :)

Добавлено спустя 48 секунд:
avr123.nm.ru писал(а):Они у вас на микросервах ?

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

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

Сообщение Michael_K » 13 дек 2009, 22:36

как введя понятие скорости в систему можно получить однозначные положения 6 серв 6-звенного манипулятора работающего в 1 плоскости при заданной конечной точке.

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

те, которые максимально эффективно решают поставленную задачу

Я именно про это.
Преобразование в какую-то искуственно введенную систему координат
с точки зрения эффективности ВЫПОЛНЕНИЯ (а не удобства программирования)
- фактически лишняя операция, имхо.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

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

Сообщение =DeaD= » 13 дек 2009, 22:43

Типа введение ограничения "за наименьшее время" устранит все неоднозначности?
Хотите я нарисую пример в котором очевидно, что это не так?

Добавлено спустя 3 минуты 11 секунд:
Michael_K писал(а):
те, которые максимально эффективно решают поставленную задачу

Я именно про это.
Преобразование в какую-то искуственно введенную систему координат
с точки зрения эффективности ВЫПОЛНЕНИЯ (а не удобства программирования)
- фактически лишняя операция, имхо.

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

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

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

Сообщение Michael_K » 13 дек 2009, 22:46

Я написал, что необязательно устранит все неоднозначности,
но то, что вводить дополнительные условия не только можно, но и нужно - уверен.
Умозрительно кажется, что можно ввести такие условия, которые устранят полностью
в _практически осмысленных_ случаях, хотя доказать не возьмусь.

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


И какой же вывод?
Поэтому надо пересчитывать положения серв в XYZ?
Как вы к этому пришли? Логики не вижу.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

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

Сообщение =DeaD= » 13 дек 2009, 22:53

Неверно кажется :) представьте полностью прямой манипулятор работающий в 1 плоскости с 2 сервами, вытянутый полностью. Пусть ему нужно попасть концом в точку, где сейчас находится 2 серва. Очевидно что есть 2 зеркальных положения полностью идентичные по затратам времени, энергии и т.п., в которых он попадёт в эту точку :)

Добавлено спустя 1 минуту 6 секунд:
Michael_K писал(а):И какой же вывод?
Поэтому надо пересчитывать положения серв в XYZ?
Как вы к этому пришли? Логики не вижу.

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

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

Сообщение demoontz » 14 дек 2009, 10:41

итак, я занимаюсь написанием секвенсера под ОРФА для хексапода с 18 сервакми.
1.способ впринципе стандартен у всех похожих хексаподов.
дето в центре пуза есть условный О. и все остальное считаеться относительное его. все формулы впринципе извесный и в инете присутсвуют. я разбиваю секвенсер на 2 функции. основная это перевод координат ступней XYZ(1-6) ступней в угловые положения серв. и вторая это описание измения этих XYZ(1-6) относительно О с течением времени Т, причем скорость хекса по моему мнению может служить задержка перед выполнением следующей команды.
т.е. допустим в базовой скорости коменды выполняються каждые 0.1 сек. при изменении скорости. меняем этот параметр. пока сервы не достуигнутпредела скорости. у меня например сервы 0.05сек-рад.
2. инструмент для написания. я бы уже начал писать, но, я бы не хотел лезть внутроь ОРФА, так как я там совсем потеряюсь. может конечно я один такой, но всежа.
demoontz
 
Сообщения: 194
Зарегистрирован: 04 фев 2009, 20:06
Откуда: Kiev
Skype: demoontz

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

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

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

Пред.След.

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

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

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