机械臂正逆运动学及轨迹规划基础

目录运动学kinematics) :将机器人机械手的关节位置映射为感兴趣的坐标系的位置和方向一般是末端)正运动学求解逆运动学求解路径规划/运动插补动力学dynamics) :将所需的关节力和扭矩映射为它们的位置,速度和加速度参考

运动学kinematics) :将机器人机械手的关节位置映射为感兴趣的坐标系的位置和方向一般是末端)

已知机械臂的连杆的长度,则只要确定了各个关节的转动的角度,就可以确定末端机构end-effector)的最终位置和方向,称之为正向运动学forward kinematics)
反过来,知道end-effector的最终位置和方向,也可以推导出各个关节的角度,称之为反向运动学inverse kinematics)
此外,如果末端机构end-effector)要走一段比较长的路程path),那么为了使得机械臂的末端机构的路径平滑,需要规划一系列的路径点waypoints),称之为路径规划trajectory planning)或者叫运动插补interpolation),这里所说的平滑是指“速度连续”,“加速度连续”,“没有顿挫”等等。

如下图所示,若已知各个关节的角度变量,则末端执行器的位姿是确定的,即x,y). 但是若已知末端执行器的位姿,反求关节空间的解时,则会存在多组解的情况。如下图中实线和虚线两种情况。

正运动学求解

如上述,若已知,连杆的关节长度为l_1和l_2),并且已知两个关节的转动角度分别为 heta_1和 heta_2),那么其末端执行器的位置x,y))可以由下式计算出来。

[x=l_1cos heta_1)+l_2cos heta_1+ heta_2)\
y=l_1sin heta_1)+l_2sin heta_1+ heta_2)
]

逆运动学求解

反之,若知末端执行器的位置,反求关节的转动角度 heta_1和 heta_2)),那么就有下式:

其中关于alpha_1和alpha_2)的计算如下:

路径规划/运动插补

对于直线轨迹规划,一般是直接利用起始点和终点的位置和姿态通过直线插补的形式计算出中间点的位置。因为在直线运动过程中机械臂的姿态保持不变,所以直线运动不需要对机械臂的姿态进行插补。

直线运动插补:设机械臂末端执行器要从点p_1x_1,y_1))直线运动到点p_2x_2,y_2)),则可以计算出两点之间的距离为:

[L=sqrt{x_1-x_2)^2+y_1-y_2)^2)}
]

设机械臂末端执行器沿直线运行的速度为v),方向通过矢量来表示,即p_1到p_2)的方向为:

[p_{21}=p_2-p_1=x_2-x_1)i+y_2-y_1)j
]

则该直线运动方向上的单位方向矢量为:

[n_{12}=frac{p_{21}}{L}
]

则任意t时刻末端执行器的位置可以表示为:

[p_t=p_1+n_{12}vt,其中p_t和p_1均用矢量表示,即p_1=x_1i+y_1j,p_t=x_ti+y_tj
]

设直线插补时间间隔为t_s),则此段时间内末端执行器的运动距离为d=vt_s),则从点p_1到点p_2)距离为L)的长度上共需要插补的步数为:

[N=frac{L}{d+1}
]

则各个轴的增量为:

[Delta x=x_2-x_1)/N\
Delta y=y_2-y_1)/N
]

则各个插补点的坐标为:

[x_{i+1}=x_1+iDelta x\
y_{i+1}=y_1+iDelta y\
]

动力学dynamics) :将所需的关节力和扭矩映射为它们的位置,速度和加速度

机械臂的关节位置一般用电机来驱动,电机通过产生力矩来转动机械装置,从而驱动机械臂。而不同场合时,需要的力矩也不同。如在机械臂快速运动的时候,需要的力矩就要比缓慢移动的时候的要大;还有机械臂弯曲或者平展的时候,重心发生变化,由于惯量I=mr^2))的不同,所以需要的关节力矩也不同等等。将这些需要考虑力矩的因素称之为动力学,同样也可以分为正向动力学和反向动力学。

参考

MATLAB 中的机械臂算法——运动学

邱诗元-基于脑机接口的机械臂遥操作控制

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注