系列文章目錄
前言
產生力矩以平衡作用在平面機器人末端執(zhí)行器體上的端點力。要使用各種方法計算關節(jié)力矩,請使用剛體樹機器人模型的幾何雅各比(geometricJacobian)和反動力學(inverseDynamics)對象函數(shù)。
一、初始化機器人
雙關節(jié)剛體樹機器人是一個二維平面機器人。關節(jié)配置以列向量形式輸出。
twoJointRobot = twoJointRigidBodyTree("column");
二、問題設置
端點力 eeForce 是一個列向量,包含作用在末端執(zhí)行器本體("工具")上的線性力和力矩的組合。請注意,該矢量以基本坐標系表示,如下圖所示。
fx = 2;
fy = 2;
fz = 0;
nx = 0;
ny = 0;
nz = 3;
eeForce = [nx;ny;nz;fx;fy;fz];
eeName = "tool";
?為平衡扭矩指定機器人的關節(jié)配置。
q = [pi/3;pi/4];
Tee = getTransform(twoJointRobot,q,eeName);
三、幾何雅各布法
利用虛功原理 [1],使用幾何雅各賓函數(shù)并將雅各賓的轉置與端點力矢量相乘,即可求得平衡力矩。?
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]
四、空間變換力的反動力學計算
使用另一種方法,計算平衡力矩,方法是計算將端點力空間轉換到基準坐標系的反動力學。
將扭矩從末端執(zhí)行器坐標系空間變換到基準坐標系,意味著在一個恰好與基準坐標系空間重合的坐標系中施加一個新的扭矩,但該坐標系仍固定在末端執(zhí)行器本體上;這個新的扭矩與在 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]
五、末端執(zhí)行器力的反動力學
使用第三種方法,將末端執(zhí)行器力表示在其自身坐標系(fee_ee)中,而不是將末端執(zhí)行器力進行空間變換到基礎坐標系。將力矩和線性力向量轉換到末端執(zhí)行器坐標系中。然后,將該力和當前配置指定給 externalForce 函數(shù)。根據(jù)該力矢量計算逆動力學。
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). Differential kinematics and statics. Robotics: Modelling, Planning and Control, 105-160.文章來源:http://www.zghlxwxcb.cn/news/detail-794275.html
[2]Harry Asada, and John Leonard. 2.12 Introduction to Robotics. Fall 2005.?Chapter 6?Massachusetts Institute of Technology: MIT OpenCourseWare, https://ocw.mit.edu. License: Creative Commons BY-NC-SA.文章來源地址http://www.zghlxwxcb.cn/news/detail-794275.html
到了這里,關于MATLAB - 計算關節(jié)扭矩以平衡端點力和力矩的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!