Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать. Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил. Робот своими руками. Самодельный робот.
Не понял... Описывать максимально быстро максимально широкие окружности, стремясь удержать гиру в положении "до падения". Если добились нужного положения и нулевой угловой скорости, то опустить лапы в положение "приземляемся", стараясь не придать вращательный момент. (например, максимально втянуть к ЦТ и выдвинуть от ЦТ в нужном направлении, ну или компенсировать момент одной лапы моментом другой)
На гексаподе с 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, но быстрых движка, и модель тогда попроще будет существенно - посчитал полный момент неподвижного робота, вычислил на сколько надо повернуться и вперед. Может даже ПИД не надо будет.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Ну и наверное надо подвести какой-то итог уже написанного. Лично сделал следующие выводы: 1. Для реализации данной опции необходимо что-бы бот мог не только знать свою ориентацию в пространстве, но и рассчитывать траекторию полёта и ориентацию корпуса в момент приземления. 2. Необходимо оценить быстродействие и мощьность сервоприводов 3. Необходимо рассчитать силы действующие на конечности бота(да и на корпус) в экстремалных условиях, и обеспечить заданную прочность при изготовлении 4. Однозначно что пластмассовые шестерёнки повылетают после первого же приземления
Ставлю себе задачу: 1. создать боты для экспериментов. это будет просто пенал, содержащий необходимые датчики , контроллер, радиомодуль для связи с ПК (наверно воспользуюсь блютузом) 2. Создаём ПО для контроллера 3.Пишем отладочную прогу для ПК 4. начинаем повсякому кидать наш недо-бот на всякие достаточно мягкие поверхности и на ПК смотреть графики траекторий )
Последний раз редактировалось Alex080969 12 ноя 2009, 09:22, всего редактировалось 1 раз.
2Alex080969: Возможно вторым шагом будет имеет смысл сделать тестового робота в виде пенала с датчиками, контроллером и 2 аккумами на вращающихся подвесках а к пеналу по краям грузы подцепить соответствующие сервам. И посмотреть - будет успевать выровняться при падении или нет.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Нее.. это будет 5-ым шагом. Для начала мы должны научится расчитывать ориентацию в пространстве в произвольный момент времени, траекторию движения(пригодится и при ходьбе) оптимизировать этот код под быстродействие, а уж потом приступим к экспериментам по стабилизации и управлению ориентацией в полёте. Кстате данные расяёты вполне могут пригодится при ходьбе бота, в особенности при беге. Вес рук мы же будем знать и соответственно можно расчитат создаваемые моменты инерции и использовать это для стабилизации при беге(размахивает же человек руками при беге)
Последний раз редактировалось EdGull 12 ноя 2009, 09:41, всего редактировалось 1 раз.
Причина:Устное предупреждение. Не нужно цитировать предыдущий пост.
robobrain нас спасет ))) каждый раз када бот будет неправильно приземляться будет его наказывать )) на 1000-ный раз все будет ок )))))
ПС я подумываю на шестиноге акумы размещать на лапах )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!» В этом мире меня подводит доброта и порядочность... "двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"