文章目录
- 1 建立机器人坐标系
- 1.1 连杆编号
- 1.2 关节编号
- 1.3 坐标系方向
- 2 标准DH(STD)
- 2.1 确定X轴方向
- 2.2 建模步骤
- 2.3 变换顺序
- 2.4 变换矩阵
- 3 改进DH(MDH)
- 3.1 确定X轴方向
- 3.2 建模步骤
- 3.3 变换顺序
- 3.4 变换矩阵
- 4 标准DH与改进DH区别
- 5 Matlab示例
- 参考链接
1 建立机器人坐标系
1.1 连杆编号
基座为杆0,从基座往后依次定义为杆1,杆2,…,杆i;
1.2 关节编号
杆i离基座近的一端(近端)的关节为关节i,远的一端(远端)为关节i+1。
1.3 坐标系方向
- 确定Z轴,如果关节是旋转的,Z轴按右手定则,大拇指指向为正方向,关节转角θ为关节变量。如果关节是移动的,Z轴定在沿直线运动方向的正方向,连杆偏移d为关节变量。
- 确定X轴,情况一:两关节Z轴既不平行也不相交,即呈异面直线时。则取两Z轴公垂线方向作为X轴方向。
情况二:两关节Z轴平行。此时,两Z轴之间有无数条公垂线,可挑选与前一关节的公垂线共线的一条公垂线。
情况三:两关节Z轴相交。则取两条Z轴的叉积方向作为X轴(叉积:向量积) - 确定Y轴,通过右手定则确定Y轴的方向。大拇指指向Z轴的方向,以x轴为准,逆时针旋转90°的方向为y轴的方向。
2 标准DH(STD)
2.1 确定X轴方向
X轴的方向取当前的Z轴和前一个关节Z轴( Z i − 1 Z_{i-1} Zi−1轴)的叉乘方向,根据右手定则:由 Z i − 1 Z_{i-1} Zi−1轴转向Z轴,大拇指方向即为X轴方向。可以简便的取为由 Z i − 1 Z_{i-1} Zi−1轴指向Z轴,公垂线方向即是X轴的方向。
2.2 建模步骤
- 绕 z i − 1 z_{i-1} zi−1轴旋转 θ i \theta_i θi,使得 x i − 1 x_{i-1} xi−1与 x i x_i xi平行;
- 沿 z i − 1 z_{i-1} zi−1轴平移 d i d_i di,使得 x i − 1 x_{i-1} xi−1与 x i x_i xi重合;
- 沿 x i x_{i} xi轴平移 a i a_i ai,使得 z i − 1 z_{i-1} zi−1与 z i z_i zi重合;
- 绕 x i x_{i} xi轴旋转 α i \alpha_i αi,使得 z i − 1 z_{i-1} zi−1与 z i z_i zi共线;
2.3 变换顺序
STD-DH方法变换时四个参数相乘的顺序依次为 θ → d → a → α \theta \to d \to a \to \alpha θ→d→a→α
2.4 变换矩阵
R o t ( z i − 1 , θ i ) = [ cos θ i − s i n θ i 0 0 sin θ i cos θ i 0 0 0 0 1 0 0 0 0 1 ] \mathrm{Rot(z_{i-1},\theta_i)}=\begin{bmatrix}\cos\theta_\mathrm{i}&-\mathrm{sin\theta_i}&0&0\\\sin\theta_\mathrm{i}&\cos\theta_\mathrm{i}&0&0\\0&0&1&0\\0&0&0&1\end{bmatrix} Rot(zi−1,θi)= cosθisinθi00−sinθ