主要内容

Trazado de rutas en 2D con cinemática反向

Introduccion

Este ejemplo muestra cómo calcular la cinemática逆de un manipulador 2D sencenillo utizando la claseinverseKinematics.El机器人操纵者,我们操纵者,plano简单的,自由的,自由的,关节的,自由的rígidos我们的目标rigidBodyTree.圆形平面上二维平面上介绍形式上的平面上的平面上的解算cinemática相反。解尿尿微积分articulación尿尿尿的必要条件。最后,机器人在外形上有一个圆形的轮廓。

康塞尔机器人

Cree un异议rigidBodyTreeY cuerpos rígidos con SUS articulaciones asociadas。especfique las丙达geométricas de cada cuerpo rígido y añádalas al机器人。

智慧的模型árbol cuerpo rígido白色。

机器人= rigidBodyTree(“DataFormat”“列”“MaxNumBodies”3);

特别是las longitude del brazo robótico。

L1 = 0.3;L2 = 0.3;

Añada un cuerpo“link1”Con una articulación“joint1”

body = rigidBody(“link1”);关节= rigidBodyJoint(“joint1”“转动”);setFixedTransform(关节,trvec2tform([0 0 0]));关节。JointAxis = [0 0 1];的身体。关节=关节;addBody(机器人,身体,“基地”);

Añada un cuerpo“link2”Con una articulación“joint2”

body = rigidBody(“link2”);关节= rigidBodyJoint(“joint2”“转动”);setFixedTransform(关节,trvec2tform ((L1, 0, 0)));关节。JointAxis = [0 0 1];的身体。关节=关节;addBody(机器人,身体,“link1”);

Añada un efector final“工具”Con una articulación fija“fix1”

body = rigidBody(“工具”);关节= rigidBodyJoint(“fix1”“固定”);setFixedTransform(关节,trvec2tform([L2, 0,0]));的身体。关节=关节;addBody(机器人,身体,“link2”);

关于机器人的细节,与任务之间有效的调解。El机器人debe tener do articaciones no fijas en las que los cuerpos de enlace se conectan sus cuerpos principales mediante una articulación giatoria y El efector final se conecta a su cuerpo principal mediante una articulación fija。

showdetails(机器人)
-------------------- 机器人:(3)Idx身体名称联合名称联合类型父母名字(Idx)孩子的名字(s ) --- --------- ---------- ---------- ---------------- ---------------- 1 link1 joint1转动基地(0)link2 (2) 2 link2 joint2转动link1(1)(3) 3工具fix1固定link2 (2 ) --------------------

Definir la trayectoria

Defina el círculo que se trazará durante 10 segundos。Este círculo está en el planoxyY tiene UN radio de 0,15。

T = (0:0.2:10)';%的时间Count = length(t);中心= [0.3 0.1 0];半径= 0.15;= t*(2*pi/t(end));点=中心+半径*[cos(theta) sin(theta) 0 (size(theta))];

Soluciones de cinemática逆

使用unobjectoinverseKinematicsPara hallar una solución de configuración robótica que lomita log grar las posiciones del eficiones del final determinadas lo larayectoria。

预定义解configuración como矩阵deqs

q0 = homeConfiguration(机器人);Ndof =长度(q0);q = 0 (count, ndof);

Cree el solver de cinemática逆。我知道你在说什么xySon los únicos最重要的影响因素,最后的影响因素,特别是ponderación,分辨,最重要的影响因素,最重要的影响因素,最重要的影响因素,最重要的影响因素,最重要的影响因素,最重要的影响因素,最重要的影响因素重量.万物恢复,万物建立。

ik =逆运动学(“RigidBodyTree”,机器人);权重= [0,0,0,1,1,0];endEffector =“工具”;

唱腔,traayectoria de puntos para trazar el círculo。我反对本土知识En cada punto para generar la configuración de articulación que permite alcanzar la posición del efector final。守卫las configuraciones para usarlas más adelante。

qInitial = q0;%使用家庭配置作为初始猜测I = 1:计数求解满足所期望的末端执行器的构型%的位置Point = points(i,:);qSol = ik(执行器,trvec2tform(点),权重,qInitial);存储配置q (i,:) = qSol;%从先前的溶液开始qInitial = qSol;结束

Animar la solución

代表el robot en cada fotograpama de la solución utilitzando esa configuración de robot específica。代表también la trayectoria deseada。

先期机器人configuración先期机器人。Ajuste la gráfica para most strar el plano en 2D en el que se dibuja el círculo。代表la traayectoria deseada。

图显示(机器人,qs (: 1) ');视图(2)ax = gca;斧子。投影=“拼写”;持有情节(点(:1),点(:,2),“k”)轴([-0.1 0.7 -0.3 0.5])

配置un objectrateControl第15步,第15步,第2步。机器人构型设计与求解cinemática反演。观察mientras el brazo描述的la trayectoria圆形mostrada。

framesPerSecond = 15;r = rateControl(framesPerSecond);I = 1:count show(机器人,qs(I,:)',“PreservePlot”、假);drawnow waitfor (r);结束

Consulte也

|||

特马relacionados