Как использовать обратную связь Dynamixels для плавного перемещения руки робота? - PullRequest
0 голосов
/ 24 июня 2019

У меня есть рука робота (одна нога шестнадцатеричного питателя от Arduino Mega) с 3DOF. Я должен переместить конечный эффектор из точки А в точку Б, лежащую в одной плоскости. Но я хочу, чтобы конечный эффектор путешествовал по кривой дороге. например, парабола (как показано на рисунке ниже).

нажмите сюда для изображения

Итак, вот что я сделал. Я разделил пройденное расстояние на 8 регионов. Итак, у меня 8 х-баллов. С помощью уравнения параболы y = f (x) я могу найти значение y для каждого x. Таким образом, используя обратную кинематику, я могу переместить конечный эффектор из точки А в точку В, переместив его в 8 различных точек.

Теперь я использовал задержки между каждой интерполяцией. Я могу изменить задержку и скорость двигателей, чтобы они выглядели плавно. Но я также подумал об использовании обратной связи от двигателей. Например, из IK я знаю углы трех двигателей в точке 1. После перемещения концевого эффектора в точку 1 я получаю обратную связь по углу от двигателей и проверяю ее с помощью рассчитанных углов. Если они совпадают (+5 или -5 градусов), то он переходит к следующей точке и повторяется до тех пор, пока конечный эффектор не достигнет положения B. Но это также не делает движение гладким. Я имею в виду, что требуется время, чтобы получить обратную связь от двигателя. (Если то же самое относится к 6 ногам в шестнадцатеричном, движение не выглядит плавным) Но я вижу во многих видео, где двигатели плавно движутся. Это не рывок. Это просто плавно и быстро одновременно.

Как работают эти руки робота? Я считаю, что они используют обратную связь от двигателей. Но как рука может двигаться так гладко? Или они не используют обратную связь, а вместо этого используют что-то еще?

Спасибо за вашу помощь.

...