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

Сгенерируйте крутящие моменты, чтобы сбалансировать силу конечной точки, действующую на корпус исполнительного элемента конца плоского робота. Чтобы вычислить объединенные крутящие моменты с помощью различных методов, используйте geometricJacobian и inverseDynamics возразите функциям для rigidBodyTree модель робота.

Инициализируйте робота

twoJointRigidBodyTree робот является 2D плоским роботом. Объединенные настройки выводятся как вектор-столбцы.

twoJointRobot = twoJointRigidBodyTree("column");

Setup задач

Сила конечной точки eeForce вектор-столбец с комбинацией линейной силы и момент, действуя на корпус исполнительного элемента конца ("tool"). Обратите внимание на то, что этот вектор описывается в основной координатной системе координат и показан ниже.

fx = 2; 
fy = 2;
fz = 0;
nx = 0;
ny = 0;
nz = 3;
eeForce = [nx;ny;nz;fx;fy;fz];
eeName = "tool";

Задайте объединенную настройку робота для балансирующихся крутящих моментов.

q = [pi/3;pi/4];
Tee = getTransform(twoJointRobot,q,eeName);

Геометрический якобиевский метод

Используя принцип виртуальной работы [1], найдите балансирующийся крутящий момент с помощью geometricJacobian возразите функции и умножению транспонирования якобиана вектором силы конечной точки.

J = geometricJacobian(twoJointRobot,q,eeName);
jointTorques = J' * eeForce;
fprintf("Joint torques using geometric Jacobian (Nm): [%.3g, %.3g]",jointTorques);
Joint torques using geometric Jacobian (Nm): [1.41, 1.78]

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

Используя другой метод, вычислите балансирующийся крутящий момент путем вычисления обратной динамики с силой конечной точки, пространственно преобразованной к базовой системе координат.

Пространственно преобразование ключа от системы координат исполнительного элемента конца до базовой системы координат означает проявлять новый ключ в системе координат, которая, оказывается, располагает с базовой системой координат на пробеле, но является все еще зафиксированным корпусом в-конец-исполнительного-элемента; этот новый ключ оказывает то же влияние как исходный ключ, проявленный в ee начале координат. В рисунке ниже, fext и next конечная точка линейная сила и момент соответственно, и feebaseи neebaseпространственно преобразованные силы и моменты, соответственно. В отрывке ниже, fbase_ee пространственно преобразованный ключ.

r = tform2trvec(Tee);
fbase_ee = [cross(r,[fx fy fz])' + [nx;ny;nz]; fx;fy;fz];
fext = -externalForce(twoJointRobot, eeName, fbase_ee);
jointTorques2 = inverseDynamics(twoJointRobot, q, [], [], fext);
fprintf("Joint torques using inverse dynamics (Nm): [%.3g, %.3g]",jointTorques2)
Joint torques using inverse dynamics (Nm): [1.41, 1.78]

Обратная динамика для силы исполнительного элемента конца

Вместо того, чтобы пространственно преобразовать силу конечной точки к базовой системе координат, используйте третий метод путем выражения силы исполнительного элемента конца в ее собственной координатной системе координат (fee_ee). Преобразуйте момент и линейные векторы силы в систему координат координаты исполнительного элемента конца. Затем укажите что сила и текущая настройка к externalForce функция. Вычислите обратную динамику от этого вектора силы.

eeLinearForce = Tee \ [fx;fy;fz;0];
eeMoment = Tee \ [nx;ny;nz;0];
fee_ee = [eeMoment(1:3); eeLinearForce(1:3)];
fext = -externalForce(twoJointRobot,eeName,fee_ee,q);
jointTorques3 = inverseDynamics(twoJointRobot, q, [], [], fext);
fprintf("Joint torques using inverse dynamics (Nm): [%.3g, %.3g]",jointTorques3);
Joint torques using inverse dynamics (Nm): [1.41, 1.78]

Ссылки

[1] Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Дифференциальная кинематика и помехи. Робототехника: Моделирование, Планируя и Управление, 105-160.

[2] Гарри Асада и Джон Леонард. 2.12 Введение в Робототехнику. Осень 2005 года. Глава 6 Массачусетский технологический институт: MIT OpenCourseWare, https://ocw.mit.edu. Лицензия: Creative Commons "SA NC".