Не понял... Описывать максимально быстро максимально широкие окружности, стремясь удержать гиру в положении "до падения". Если добились нужного положения и нулевой угловой скорости, то опустить лапы в положение "приземляемся", стараясь не придать вращательный момент. (например, максимально втянуть к ЦТ и выдвинуть от ЦТ в нужном направлении, ну или компенсировать момент одной лапы моментом другой)
На гексаподе с 18 сервами все для этого есть, имхо, хотя кинематика, конечно сложная.
те после каждого кругового движения сравнить куда изменился вектор и изменить врашение если не туда куда нам надо, так чтоли? момент инерции опять против нас будет..из за плеча осей вращение центра масс робота и врашающейся лапы..
Ворон, я вообще не понял вашей реплики. Поясните, плииз.
Что значит "после каждого кругового движения"? Корректировать вращение лапами можно (и я бы сказал нужно) прямо при вращении - постоянно, как это делают балансеры, например.
баласнеры постоянно оцениают стоит ли продолжать вращение)
Ну и тут так же... считать куда крутить и с какой скоростью, чтобы прийти в нужное угловое положение с нулевой угловой скоростью. (Я бы скорее привязал вычисления к скорости опроса гиры, чем к оборотам лап.)
ну вычислили же что вращать надо много и часто))
Ну... это понятия относительные...
Еще интересная, имхо, идея пришла. Может быть сам момент падения можно соптимизировать? Чувствуешь, что начал падать - прыгай, но так, чтобы погасить вращение Тогда в воздухе не надо будет сильно дрыгаться.
тогда самое простое определить начало падения и замереть
Вот как раз и не факт! В этом-то и штука!!!
Допустим, подошел робот к краю стола, у него половина ног соскользнули-провалились. Если он замрет, то полетит кубарем - будет в воздухе крутиться... А если грамотно толкнуться или наоборот ноги подобрать и т.д., то может и удастся минимизировать вращение. То есть не упасть, а, типа, спрыгнуть.
по условию игрушку 2кг кидает у автора 3 летний ребенок
Ну тут вообще без вариантов - ребенок же его с размаху в столб кидает, причем одна нога в руке у ребенка остается )) Если только делать робота прочного и злопамятного, чтобы пресекал и наказывал ))
Добавлено спустя 12 минут 7 секунд: Хотя кинематика сложная получается.
Скорее всего параметры модели замерить точно не удастся (например моменты инерции ног относительно разных осей и в разном положении суставов будут разные)... Это тянет на адаптивную модель. Вероятно ПИДами тут не обойдешься... А решать пачку (ака систему) дифуров в частных производных на лету... хм, радости мало.
Последний раз редактировалось Michael_K 12 ноя 2009, 05:25, всего редактировалось 1 раз.
avr123.nm.ru писал(а):У меня ж нет слона, как я измерю ?
Добавлено спустя 4 минуты 48 секунд:
=DeaD= писал(а): идея вполне реализуемая ?
Этож сколько оборотов надо сделать при падении чтоб дальномером определить где поверхность на которую упадем ???
Теперь столкните игрушку с края стола ( этож не долго ) и посмотрите сколько она сделает оборотов до падения.
==========
Повторение - мать учения ! Поэтому повторю. Для приближения к решению этой НЕ простой задачи рекомендую использовать - 6 DOF IMU - есть разные и есть хорошие типа ADIS http://analog.com
ну в принципе если на корпусе робота будет хотя бы два дальномера (спереди и с зади) то уже реально можно видеть как мы падаем и сколько примерно осталось. (Срочно второй дальномер прикупить надобно)
Добавлено спустя 16 минут 42 секунды:
=DeaD= писал(а):2Michael_K: Круг ты конечно нарисуешь, вот только с какой скоростью и сколько таких кругов надо лапами рисовать? А это сервами надо крутить, а им даже положение чаще, чем 50 раз в секунду передать нельзя. Сколько ты кругов нарисуешь сервами за секунду?
Для начала надо определится с каким то одним примером. (Предпологаем что робот может разворачивать корпус) 1.Пусть бот стоит спиной к краю стола. 2. Мы его толкаем в то место хде должна быть грудь.... 3. Сенсоры бота показывают изменение положение тела. Действия робота №1: 1. Попытка сохранить положение(например наклон корпуса вперёд + отставить одну ногу назад) 2. Попытка не удалась(опрокидываемся) 3. Определяем что падаем спиной . 4. Расчитываем траекторию движения(выясняем что приземлимся не на голову, а на спину) 4-1. Подтягиваем руки к корпусу (чтобы уменьшить момунт инерции верхней части торса) 4-2. Одновременно раздвигаем ноги)чтобы увеличить момент инерции нижней чати) 4-3. Разворачиваем торс лицом вниз 4-5. Разводим руки в стороны (увеличиваем момент инерции) 4-6. Одновременно с руками сдвигаем ноги 4-7. Разворачиваем нижнюю часть 4-8. Вытягиваем руки вперёд 4-9. В зависимости от оставшегося расстояния начинаем сгибать руки 5. Расчитываем траекторию движения(выясняем что приземлимся на голову (большая угловая скорость)) 5-1. Вытягиваем руки вперёд и начинаем движения руками вверх и за голову 5-2. Сдвигаем ноги и отводим их назад 5-3. Проверяем ориентацию в пространстве 5-4. Вытягиваем руки вперёд 5-6. В зависимости от оставшегося расстояния начинаем сгибать руки 6. Пытаемся схватится за то что толкает
вот вроде так..
Добавлено спустя 18 минут 14 секунд:
Ворон писал(а):тогда самое простое определить начало падения и замереть ,но по условию игрушку 2кг кидает у автора 3 летний ребенок () сшибает..
Ну вообще то ему 3,5 года, и большой грузовик которы не меньше 2 кг запустил метра на полтака(правда с разворота). По заднице то он получил, но где гарантии что в 4 года он несделает то же с роботом?
Добавлено спустя 8 минут 39 секунд:
Ворон писал(а):
Michael_K писал(а):
лапами не знаем КАК крутить
Не понял... Описывать максимально быстро максимально широкие окружности, стремясь удержать гиру в положении "до падения". Если добились нужного положения и нулевой угловой скорости, то опустить лапы в положение "приземляемся", стараясь не придать вращательный момент. (например, максимально втянуть к ЦТ и выдвинуть от ЦТ в нужном направлении, ну или компенсировать момент одной лапы моментом другой)
На гексаподе с 18 сервами все для этого есть, имхо, хотя кинематика, конечно сложная.
те после каждого кругового движения сравнить куда изменился вектор и изменить врашение если не туда куда нам надо, так чтоли? момент инерции опять против нас будет..из за плеча осей вращение центра масс робота и врашающейся лапы..
Насчёт круговых движений вы ошибаетесь - они неособо помогут. Тут надо управлять моментом инерции соответственно чтобы замедлить вращений достаточно развести в стороны всё что разводится
Скорее всего параметры модели замерить точно не удастся (например моменты инерции ног относительно разных осей и в разном положении суставов будут разные)... Это тянет на адаптивную модель. Вероятно ПИДами тут не обойдешься... А решать пачку (ака систему) дифуров в частных производных на лету... хм, радости мало.
Гениально - сначала создаём себе трудности, в виде вращения сложной кинематической системы и требования к 18 сервам по дикой скорости, а потом их пытаемся решить. Я же сказал - надо чтобы при выравнивании работали всего 2, но быстрых движка, и модель тогда попроще будет существенно - посчитал полный момент неподвижного робота, вычислил на сколько надо повернуться и вперед. Может даже ПИД не надо будет.
Ну и наверное надо подвести какой-то итог уже написанного. Лично сделал следующие выводы: 1. Для реализации данной опции необходимо что-бы бот мог не только знать свою ориентацию в пространстве, но и рассчитывать траекторию полёта и ориентацию корпуса в момент приземления. 2. Необходимо оценить быстродействие и мощьность сервоприводов 3. Необходимо рассчитать силы действующие на конечности бота(да и на корпус) в экстремалных условиях, и обеспечить заданную прочность при изготовлении 4. Однозначно что пластмассовые шестерёнки повылетают после первого же приземления
Ставлю себе задачу: 1. создать боты для экспериментов. это будет просто пенал, содержащий необходимые датчики , контроллер, радиомодуль для связи с ПК (наверно воспользуюсь блютузом) 2. Создаём ПО для контроллера 3.Пишем отладочную прогу для ПК 4. начинаем повсякому кидать наш недо-бот на всякие достаточно мягкие поверхности и на ПК смотреть графики траекторий )
Последний раз редактировалось Alex080969 12 ноя 2009, 09:22, всего редактировалось 1 раз.
2Alex080969: Возможно вторым шагом будет имеет смысл сделать тестового робота в виде пенала с датчиками, контроллером и 2 аккумами на вращающихся подвесках а к пеналу по краям грузы подцепить соответствующие сервам. И посмотреть - будет успевать выровняться при падении или нет.
Нее.. это будет 5-ым шагом. Для начала мы должны научится расчитывать ориентацию в пространстве в произвольный момент времени, траекторию движения(пригодится и при ходьбе) оптимизировать этот код под быстродействие, а уж потом приступим к экспериментам по стабилизации и управлению ориентацией в полёте. Кстате данные расяёты вполне могут пригодится при ходьбе бота, в особенности при беге. Вес рук мы же будем знать и соответственно можно расчитат создаваемые моменты инерции и использовать это для стабилизации при беге(размахивает же человек руками при беге)
Последний раз редактировалось EdGull 12 ноя 2009, 09:41, всего редактировалось 1 раз.
Причина:Устное предупреждение. Не нужно цитировать предыдущий пост.