roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 12:53

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 72 ]  На страницу Пред.  1, 2, 3, 4, 5
Автор Сообщение
 Заголовок сообщения: Re: робот-паук
СообщениеДобавлено: 23 июн 2010, 19:03 
Не в сети
Аватара пользователя

Зарегистрирован: 01 сен 2009, 14:58
Сообщения: 1142
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python
Для простоты расчета лучше считать что в один момент (самый нехороший) все приходится на одни серву :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: робот-паук
СообщениеДобавлено: 28 июн 2010, 01:04 
Не в сети

Зарегистрирован: 13 сен 2009, 22:50
Сообщения: 27
Откуда: Пермь
По поводу сил объясняю. Есть кинематика ноги. Описывается двумя уравнениями связи [угол поворота сервы 1] = f1([высота поднятия лапы], [азимутальный угол поворота лапы]), [угол поворота сервы 2] = f2([высота поднятия лапы], [азимутальный угол поворота лапы]). Эти уравнения я нашёл в аналитическом виде. Дальше, для расчёта в реальном времени аппроксимировал их полиномами. Момент силы, который развивает лапа можно найти по принципу виртуальных перемещений Даламбера. То есть усилие на манипуляторе будет выражаться через частные производные от уравнений связи f1 и f2 и через моменты сервомеханизмов. Исходя из того, что максимальные моменты сервомеханизмов 1.8 кг*см, вертикальная составляющая силы получается >= 5Н. Сам робот весит 400г, т.е. силы хватит даже для того, чтобы стоять на одной лапе :)))

Переделал электронику под ARM7. Добавил новое видео. Там нарезка, т.е. сначала идёт старое, потом новое. Выбрал моменты.
(подправил ютумбу. MegaBIZON)

Скоро сделаю датчики усилия. Мерить усилие по току сервомеханизма - ужасная гадость. Работает только при статических нагрузках. При вращении сервомеханизма получается гадость. Нужно делать поправки на скорость вращения, мало того, скорость и момент коррелируют между собой. Так что сделал (пока что только опытный образец) датчик на пружинке и оптопаре.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: робот-паук
СообщениеДобавлено: 28 июн 2010, 14:09 
Не в сети
Аватара пользователя

Зарегистрирован: 12 янв 2007, 00:34
Сообщения: 6285
Откуда: Масква
Дядька, ты общепризнано крут :)
Вопчем такое дело: закинь в первый пост все эти ролики и нащёлкай (и туда же кинь) фоток - и будет твоему павуку место в золотом фонде - как за интересную инженерную мысль и простое её воплощение :good:

_________________
.............солнце светит, птички поют, я - зелёный бамбук меня тянет к солнцуЯ - зелёный бамбук, я - зелёный бамбук , меня тянет к солнцу. Я - не огурчик и не лягушка, я - зелёный бамбук. Меня курят...............


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: робот-паук
СообщениеДобавлено: 28 июн 2010, 14:39 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2009, 12:50
Сообщения: 930
Откуда: Волжский
Skype: pashok0988
ФИО: Павел Петрович
нуу, воплощение совсем не простое, там уравнений целая туча. Паук отличный!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: робот-паук
СообщениеДобавлено: 28 июн 2010, 15:54 
Не в сети
Аватара пользователя

Зарегистрирован: 12 янв 2007, 00:34
Сообщения: 6285
Откуда: Масква
Я о механическом воплощении. Оно если даже ни не самое простое, то уж точно самое рациональное. А управление сервами да, явно уравновешивает простоту механики, занятно зашкаливая в сторону сложности :)

_________________
.............солнце светит, птички поют, я - зелёный бамбук меня тянет к солнцуЯ - зелёный бамбук, я - зелёный бамбук , меня тянет к солнцу. Я - не огурчик и не лягушка, я - зелёный бамбук. Меня курят...............


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: робот-паук
СообщениеДобавлено: 28 июн 2010, 16:05 
Не в сети
Аватара пользователя

Зарегистрирован: 22 сен 2008, 22:15
Сообщения: 302
Откуда: Раменки 43
Duhas писал(а):
на счет боится статики.. для таких девайсов, имхо, вполне актуально.. это не МК довольно деревянный... т.е. при работе полезны всякие ESD сэйф паяльники и тд.. у меня как оказалось паяльник от станции не дружит с землей осцила.... хз сколько там вольт - не мерил.. но мегу я так сжег ) ну или покоцал - тоже не изучал особо последствия..


Ето как у нас на работе, стоит шкаф управление в нем две земли, одна обычная а вторая аналоговая. Все знаете сетодиоды старые еше корпус в метале. Ну вот проводил профилактику, а прикола незнал что нельзя трогать землю обычную и аналоговую. И дотронулся до корпуса светодиода а другой рукой до земли так пи3...ло что был в шоке пару минут. Оказалось всегото разность потенциалов почти в 200 вольт.

Ответ не к теме но навеяло воспоминания незабываемые

_________________
По жизненному опыту я точно знаю, что есть определённый тип людей, который считает что все ему должны.
Я отношу себя к противоположному типу, который постоянно считает себя виноватым в чём либо.
Ненавижу когда кто то пользуется моими недостатками.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: робот-паук
СообщениеДобавлено: 29 июн 2010, 13:30 
Не в сети
Аватара пользователя

Зарегистрирован: 01 сен 2009, 14:58
Сообщения: 1142
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python
А быстрее паучок может передвигаться?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: робот-паук
СообщениеДобавлено: 29 июн 2010, 22:37 
Не в сети

Зарегистрирован: 13 сен 2009, 22:50
Сообщения: 27
Откуда: Пермь
Теоретически может. Из аналитических расчётов максимальная скорость ~20см/сек. Но я не рискую запускать на полную - там пластиковые редукторы, может шестерни съесть.

По поводу сложной математики вы несколько заблуждаетесь. На самом деле, достаточно знать физику на уровне первого курса университета. Что касается управления, то тоже в общем-то не особо сложнее, чем если бы каждая серва отвечала за свою степень свободы. В моём случае координата лапы задаётся так:

Код:
  inline float calculate_servo0_position(float z_coord, float az_coord)
  {
    const float x = az_coord * 1.24556040763854980000f + 0.50000000000000000000f;
    const float x_1 = x, x_2 = x * x_1, x_3 = x * x_2;
    const float y = z_coord * 0.01351351384073495900f + -0.64864861965179443000f;
    const float y_1 = y, y_2 = y * y_1, y_3 = y * y_2;
 
    return  (-0.30742821097373962000f + -1.21247673034667970000f * y_1 + 0.80889540910720825000f * y_2 + -0.75817310810089111000f * y_3) +
      x_1 * (1.22287416458129880000f + 2.14566111564636230000f * y_1 + -5.42543697357177730000f * y_2 + 4.22106027603149410000f * y_3) +
      x_2 * (0.60016727447509766000f + -5.94708108901977540000f * y_1 + 14.01125717163085900000f * y_2 + -9.62817096710205080000f * y_3) +
      x_3 * (0.16122572124004364000f + 3.06335139274597170000f * y_1 + -8.72798919677734370000f * y_2 + 6.08712720870971680000f * y_3);
  }

  inline float calculate_servo1_position(float z_coord, float az_coord)
  {
    const float x = az_coord * 1.24556040763854980000f + 0.50000000000000000000f;
    const float x_1 = x, x_2 = x * x_1, x_3 = x * x_2;
    const float y = z_coord * 0.01351351384073495900f + -0.64864861965179443000f; 
    const float y_1 = y, y_2 = y * y_1, y_3 = y * y_2;
 
    return  (-1.67683899402618410000f + 1.95054543018341060000f * y_1 + -0.66672599315643311000f * y_2 + 0.07815618067979812600f * y_3) +
      x_1 * (2.90688586235046390000f + -0.55844748020172119000f * y_1 + -3.58689117431640620000f * y_2 + 3.22610092163085940000f * y_3) +
      x_2 * (-1.08384442329406740000f + -3.24297237396240230000f * y_1 + 12.17271041870117200000f * y_2 + -8.63321113586425780000f * y_3) +
      x_3 * (0.16122573614120483000f + 3.06335115432739260000f * y_1 + -8.72798919677734370000f * y_2 + 6.08712720870971680000f * y_3);
  }

  void set_position(float z_coord, float az_coord)
  {
    m_az_coord = az_coord;
    m_z_coord = z_coord;

    m_servo0.set_position(paws::calculate_servo0_position(m_z_coord, m_az_coord));
    m_servo1.set_position(paws::calculate_servo1_position(m_z_coord, m_az_coord));
  }


всё это на МК atmega32 на частоте 16Мгц высчитывается за 1мс. На at91sam7s256 вообще копейки.

MegaBIZON, я попозже выложу материалы. Сейчас делаю датчики силы. Нужно с ними закончить, отладить программу и пр. Тогда будет чем хвастаться :))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: робот-паук
СообщениеДобавлено: 30 июн 2010, 14:52 
Не в сети
Аватара пользователя

Зарегистрирован: 01 сен 2009, 14:58
Сообщения: 1142
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python
2: cupuyc - Ты движения в какойто софте моделировал или все на черновике вручную прикидывал?
и какой софтой коэффициенты рассчитывал для формул?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: робот-паук
СообщениеДобавлено: 30 июн 2010, 17:41 
Не в сети
Аватара пользователя

Зарегистрирован: 12 янв 2007, 00:34
Сообщения: 6285
Откуда: Масква
акей :)

_________________
.............солнце светит, птички поют, я - зелёный бамбук меня тянет к солнцуЯ - зелёный бамбук, я - зелёный бамбук , меня тянет к солнцу. Я - не огурчик и не лягушка, я - зелёный бамбук. Меня курят...............


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: робот-паук
СообщениеДобавлено: 30 июн 2010, 21:54 
Не в сети

Зарегистрирован: 13 сен 2009, 22:50
Сообщения: 27
Откуда: Пермь
Цитата:
cupuyc - Ты движения в какойто софте моделировал или все на черновике вручную прикидывал?

Как такового 3d моделирования я не производил. Единственное - нарисовал, модель в КОМПАС 3D, но это так - для оформления курсовой работы. Затем хотел сделать, чтобы эта модель ходила в OpenGL. В общем-то отобразить её на экран у меня получилось, а вот на моделирование движений в OpenGL я забил.

Расчёт кинематики делал вручную. После того, как я забил систему уравнений в Maple, он мне выдал решение где-то страниц на 20 :shock: Поэтому пришлось решать самому. Формулы получились довольно громоздкие (не на 20 страниц, конечно). Вычислялись где-то 30мс на AtMega32 на частоте 16Мгц. Поэтому решил формулы аппроксимировать полиномом.

Что касается расчёта коэффициентов полинома - тут я поступил несколько хитрее, чем воспользоваться обычным MatCad'ом. Я написал сишную прогу, которая вычисляет эти коэффициенты по указанным параметрам робота. Т.е. создаю конфиг. В нём указываю на какой пин какая серва повешена, размеры лап и т.п. Этот конфиг парсит моя прога, вычисляет необходимые коэффициенты и генерирует хидер, который используется при сборке проекта для МК. Для численных методов используется ALGLib.

Система управления написана на C++ в среде IAR for ARM.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: робот-паук
СообщениеДобавлено: 19 авг 2010, 15:33 
Не в сети
Аватара пользователя

Зарегистрирован: 17 ноя 2009, 16:21
Сообщения: 85
Откуда: Москва
прог. языки: C/C++/C#
ФИО: Олег Козлов
А что на концах тяг соединяющих качалку сервы и опорную площадку ноги? Шарики или обычные ушки с винтами? Там же по идее должны возникать усилия на вынос тяги из плоскости поворота качалки сервы - опорный треугольник, он же описывает концами дугу, если его, например, обоими сервами одновременно отталкивать или притягивать.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 72 ]  На страницу Пред.  1, 2, 3, 4, 5

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO