机械臂简图
构型:PRRR+RRR,即 抬升+三连杆+球关节型,可将其解耦为:抬升三连杆+球关节。
( 该文章主要讲解机械臂运动学解算方法,Matlab仿真完成后将会在后续进行更新… )
若对以下机械臂解算过程存在疑问可以学习我发布的上一篇文章:【一篇文章教你搞懂-机器人运动学基础知识】
1.正运动学
将球关节视为末端执行器,并简化成一个点。
俯视图:
由上图可知,末端执行器M点的坐标分别为:
x = l 1 + a 1 c o s θ 1 + a 2 c o s ( θ 1 + θ 2 ) + a 3 c o s ( θ 1 + θ 2 + θ 3 ) (1.1) x=l_1+a_1cos\theta_1+a_2cos(\theta_1+\theta_2)+a_3cos(\theta_1+\theta_2+\theta_3)\tag{1.1} x=l1+a1cosθ1+a2cos(θ1+θ2)+a3cos(θ1+θ2+θ3)(1.1)
y = a 1 s i n θ 1 + a 2 s i n ( θ 1 + θ 2 ) + a 3 s i n ( θ 1 + θ 2 + θ 3 ) (1.2) y=a_1sin\theta_1+a_2sin(\theta_1+\theta_2)+a_3sin(\theta_1+\theta_2+\theta_3)\tag{1.2} y=a1sinθ1+a2sin(θ1+θ2)+a3sin(θ1+θ2+θ3)(1.2)
z = d 1 ∗ + d 2 + d 3 (1.3) z=d_1^*+d_2+d_3\tag{1.3} z=d1∗+d2+d3(1.3)
其中: θ 1 、 θ 2 、 θ 3 、 d ∗ \theta_1、\theta_2、\theta_3、d^* θ1、θ2、θ3、d∗为变量, L 1 、 a 1 、 a 2 、 a 3 、 d 2 、 d 3 L_1、a_1、a_2、a_3、d_2、d_3 L1、a1、a2、a3、d2、d3为常量。
2.逆运动学
由 M ( x , y , z ) M(x,y,z) M(x,y,z)解出关节所需要达到的角度。
2.1 求解 d 1 ∗ d_1^* d1∗
由于 z z z只和 d 1 ∗ + d 2 + d 3 d_1^*+d_2+d_3 d1∗+d2+d3有关,而 d 2 , d 3 d_2,d_3 d2,d3为常量,那么容易解得:
d 1 ∗ = M z − d 2 − d 3 (2.1) d_1^*=M_z-d_2-d_3\tag{2.1} d1∗=Mz−d2−d3(2.1)
2.2 求解 θ 3 \theta_3 θ3
x , y x,y x,y由三连杆结构给出,
求上图中各关节角度 θ \theta θ值,相当于求解:
A x = b (2.2) Ax=b\tag{2.2} Ax=b(2.2)
其中
x = [ θ 1 θ 2 θ 3 ] b = [ x y ] (2.3) x=\left[ \begin{matrix} \theta_1 \\ \theta_2 \\ \theta_3 \end{matrix} \right] \qquad b=\left[ \begin{matrix} x\\ y \end{matrix} \right] \tag{2.3} x=
θ1θ2θ3
b=[xy](2.3)
$$
$$
方程的解 A A A明显行满秩列不满秩,因此方程有无穷多解。
因此, A A A的解的结构为:
{ ∞ , M 点在工作空间内 1 , M 点在边界 0 , M 点不在工作空间内 (2.4) \begin{cases} ∞ ,&M点在工作空间内 \\ 1 ,&M点在边界 \\ 0 ,&M点不在工作空间内 \end{cases}\tag{2.4} ⎩
⎨
⎧∞,1,0,M点在工作空间内M点在边界M点不在工作空间内(2.4)
但,如果给出了第三根杆的姿态,则方程组便退化为:两个未知数,两条方程式;方程就有解了。幸运的是,第三根杆的姿态可由自定义控制器获取,设获取的姿态角为 β \beta β,
由上图可知,第三根杆W点的坐标分别为:
W x = M x − a 3 c o s β (2.5) W_x=M_x-a_3cos\beta\tag{2.5} Wx=Mx−a3cosβ(2.5)
W y = M y − a 3 s i n β (2.6) W_y=M_y-a_3sin\beta\tag{2.6} Wy=My−a3sinβ(2.6)
其中:
θ 3 = β − ( θ 1 + θ 2 ) (2.7) \theta_3=\beta-(\theta_1+\theta_2)\tag{2.7} θ3=β−(θ1+θ2)(2.7)
因此,只需再求出 θ 1 \theta_1 θ1与 θ 2 \theta_2 θ2,便能完成对机械臂除了球关节的逆运动学,而求 θ 1 \theta_1 θ1和 θ 2 \theta_2 θ2,无非就是求平面双连杆的逆运动学,这个还是比较简单的。
2.3 求解 θ 1 、 θ 2 \theta_1、\theta_2 θ1、θ2
求解 θ 1 \theta_1 θ1、 θ 2 \theta_2 θ2,即求解平面双连杆的逆运动学,
声明:坐标系平移了 L 1 L_1 L1单位,将原点与连杆原点进行了对齐
因此,
P x = W x − L 1 (2.8) P_x=W_x-L_1\tag{2.8} Px=Wx−L1(2.8)
P y = W y (2.9) P_y=W_y\tag{2.9} Py=Wy