roboforum.ru

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

Программирование манипулятора

Программирование манипулятора

wirusoal » 27 окт 2015, 10:12

Всем привет. Решил сделать себе манипулятор, долго блудив по интернету наткнулся на эту http://www.customelectronics.ru/robo-ruka-sborka-mehaniki/ статью. Скачав файл для резки нашел фирму которая согласилась изготовить детали. И собрал вот такой вот манипулятор.
WP_20151026_18_04_17_Pro.jpg

WP_20151026_18_04_35_Pro.jpg

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

Длина первого сочленения L1 = 12cм
Длина второго L2 = 12см
предположим мне надо найти углы сочленений(отмечено вопросиками) когда конец второго сочления стоит в точке (20,15)
И так,что я могу сделать, это найти длину строны которая лежит напротив угла A делается это так:
B=(x^2+y^2)^квадратный корень
И того
(20^2+15^2)^квКор = 25


Далее в интернете нашел формулы для вычисления самих углов.
И так, формула для вычисления угла(Q1) наклона первого сочленения
arccos( x/B ) + arccos( L1^2 - L2^2 + B^2 / 2*B*L1 )

и формуля для вычисления наклона второго угла(Q2) по отношению к первому
PI - arccos( L1^2 + L2^2 - B^2 / 2*L1*L2 )

ссылка от куда взял формулы http://robocraft.ru/blog/mechanics/756.html
Применил все эти формулы, а результат вообще непонятный:( Что делать? Ткните носом в ошибки

Re: Программирование манипулятора

Angel71 » 27 окт 2015, 10:41

у вас как раз основная проблема это алгоритм, математика там примитивная. можете сразу взять кватернионы и надёргать код из примеров работы со скелетной анимацией и прямой/обратной кинематикой. хотя если не поняли описания по той ссылке, можно начать с простого, вычисляя грубо и не эстетично, а потом уже улучшать. без кватернионов там простенькие формулы из геометрии. вот и начинаете вспоминать геометрию. у вас две плоскости. одну вы уже нарисовали. в ней то же две плоскости. вот берёте маленький отрезочек, абстрагируясь от всего остального. один конец закреплён в координатах 0,0. у этого отрезка есть длина и угол поворота. начинаете вращать, зная длину элементарно вычисляете координаты незакреплённой точки. сложно? длинный отрезок точно так же закреплён и точно так же вращается. в своих плоскостях ничего сложного. теперь "прикрепляете" плоскость маленького отрезка к плоскости большого, т.е. появляется третий отрезок, координаты незакреплённого конца которого вычисляются на основе данных о двух других отрезках. вспоминаете, что в основании серва, которая поворачивает всю клешню, вот и "прикрепляете" ту плоскость, что нарисовали к ещё одной плоскости, т.е. добавляется ещё один отрезок. как рассчитывать, это уже смотря что нужно - прямая или обратная кинематика, а то что описал это и есть скелетная анимация. всё очень просто.

Re: Программирование манипулятора

Madf » 27 окт 2015, 13:07

на самом деле непонятна задача
если надо двигать манипулятор за рукой (повторение движения), то там логика примитивная
если обработка Г-кода - это вообще другое
в общем - непонятно

Re: Программирование манипулятора

Sledo » 01 дек 2015, 19:10

wirusoal писал(а):Применил все эти формулы, а результат вообще непонятный:( Что делать? Ткните носом в ошибки

Что то вообще не ясно что нужно. Не могли бы вы поподробнее расписать проблему?


Rambler\'s Top100 Mail.ru counter