六轴六自由度机械臂轨迹跟踪的matlab实现(基于速度雅各比矩阵方法)
六轴六自由度机械臂轨迹跟踪的matlab实现(基于速度雅各比矩阵方法)
对于六轴六自由度机械臂进行轨迹规划,并针对其设计滑模控制器,实现机械臂的末端轨迹跟踪。(完整代码链接见文章末尾)
本文所用机械臂为innfos-Gluon-6L3,通过standard DH方法建模得到参数如下:
本文利用速度雅各比矩阵的方法来实现轨迹跟踪。这一方法的优点在于可以完全避免逆运动学求解,更加节省时间。
1.轨迹跟踪的控制结构图设计
控制系统的输入,同样也是系统的期望输出,是机械臂的目标位姿 x d = ( x , y , z , α , β , γ ) x_d=(x,y,z,\alpha,\beta,\gamma) xd=(x,y,z,α,β,γ)。其刚好对应机械臂的六个自由度。前三者是机械臂末端坐标系相对于世界坐标系的位置,后三者是机械臂末端坐标系相对于世界坐标系的旋转角度。每一时刻的机械臂期望位姿都是已知的,它是通过轨迹规划得到的,这一点将在后文详细讲解。
系统的控制器采用滑模控制器,其输入为位姿误差 e = x d − x e=x_d-x e=xd−x,输出为角度增量 q ˙ \dot q q˙。
系统的被控对象是利用速度雅各比矩阵来建模的,其关系为 v = J ( q ) q ˙ v=J(q)\dot q v=J(q)q˙。其中 J ( q ) J(q) J(q)为速度雅各比矩阵。
系统的输出为机械臂的实际末端位置 x = ∫ v d t x=\int vdt x=∫vdt。
2.系统的输入:轨迹规划
为了使得机械臂的末端运动平滑,常对机械臂进行规划,对末端速度、加速度等进行一定约束。
工业上常使用七段式S型曲线来进行轨迹规划,其示意图图如下:
其有七个等间距时间段,分别为加加速段、加速度恒定段、加减速段、匀速段、减减速段、加速度恒定段、减加速段。
各段速度的计算表达式如下,其中 J J J为加加速度。
式中的 v m a x v_{max} vmax等参数的计算推导如下:
△ T = t i + 1 − t i = t f − t 0 7 L = 4 v m a x △ T v 2 = v 1 + a m a x △ T a m a x = 2 v 1 △ T v m a x = v 1 + v 2 = 2 v 1 + a m a x △ T = 4 v 1 L = 16 v 1 △ T → v 1 = L 16 △ T \bigtriangleup T=t_{i+1}-t_{i}=\frac{t_f-t_0}{7} \\ L=4v_{max} \bigtriangleup T \\ v_2=v_1+a_{max}\bigtriangleup T\\ a_{max}=\frac{2v_1}{\bigtriangleup T} \\ v_{max}=v_1+v_2=2v_1+a_{max}\bigtriangleup T=4v_1\\ L=16v_1 \bigtriangleup T \rightarrow v_1=\frac{L}{16\bigtriangleup T} △T=ti+1−ti=7tf−t0L=4vmax△Tv2=v1+amax△Tamax=△T2v1vmax=v1+v2=2v1+amax△T=4v1L=16v1△T→v1=16△T