Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

作业三:教材习题 3-3 / 3-7(附详细解答与验算)

作业信息(据录播)
  • 题号:教材第 3 章习题 3.3、3.7(录播 2:28:00「最后咱们有两道作业的习题,就是一周的时间,3.3 和 3.7」;课件末页同为「作业:习题 3.3,3.7」);
  • 原文(教材 p.159):

    3.3 Compute the Jacobian of the SCARA manipulator in Fig. 2.36. 3.7 Find the singularities of the SCARA manipulator in Fig. 2.36.

  • 提交:一周内。

两题是同一条链的两环:3.3 求雅可比 → 3.7 让它退化(det⁡J=0\det J=0 解奇点位形)。SCARA 是四轴全平行(αi≡0\alpha_i\equiv0)的「平面臂 + 竖直伸缩 + 腕转」结构,正好把 3.1 的绿框公式、3.2 的流水线与 3.3 的判据一次串完。

准备:DH 表与正运动学(第 2 章 C3 已建)

连杆 iiaia_iαi\alpha_idid_iϑi\vartheta_i
1a1a_100ϑ1\vartheta_1
2a2a_200ϑ2\vartheta_2
300d3d_3(移动)0
4000ϑ4\vartheta_4

(本作业按教材 Fig. 2.36 的标准 SCARA:4 关节 = 2 转动臂 + 1 移动 + 1 腕转。教材 2.13 用同一张图。)

Aii−1=[ci−si0aicisici0aisi00100001] (i=1,2),A32=[10000100001d30001],A43=[c4−s400s4c40000100001]A_i^{i-1}=\begin{bmatrix}c_i&-s_i&0&a_ic_i\ s_i&c_i&0&a_is_i\ 0&0&1&0\ 0&0&0&1\end{bmatrix}\ (i=1,2),\qquad A_3^2=\begin{bmatrix}1&0&0&0\ 0&1&0&0\ 0&0&1&d_3\ 0&0&0&1\end{bmatrix},\qquad A_4^3=\begin{bmatrix}c_4&-s_4&0&0\ s_4&c_4&0&0\ 0&0&1&0\ 0&0&0&1\end{bmatrix}

连乘得(c12=cos⁡(ϑ1+ϑ2)c_{12}=\cos(\vartheta_1+\vartheta_2);高度坐标符号随 zz 轴向上 / 向下约定,本编取 zz 向上、d3d_3 向下伸缩):

T40=[c124−s1240a1c1+a2c12s124c1240a1s1+a2s12001−d30001]T_4^0=\begin{bmatrix}c_{124}&-s_{124}&0&a_1c_1+a_2c_{12}\ s_{124}&c_{124}&0&a_1s_1+a_2s_{12}\ 0&0&1&-d_3\ 0&0&0&1\end{bmatrix}

动笔前先看一眼这道题的全部几何(下图):四根轴竖直平行意味着雅可比没有「空间项」,四个列在俯视图里就能画出来——右下的两个小图就是 3.7 要解的两个奇异位形。

SCARA 的雅可比几何与两个奇异位形 左图俯视:两节臂加竖直伸缩与腕转,四根 z 轴全部指出纸面;第一、二列速度垂直于各自矢径,第三列沿竖直方向,第四列位置贡献为零。右侧两个小图:臂伸直与臂折回时两列共线,行列式为零。 俯视:四轴全平行(z 全部 ⊙) J1 = z×r1 J2 = z×r2 r1 r2 a1 a2 z0 ⊙ z1 ⊙ z2 z3 ⊙ 四列读法:J1、J2 = 竖直叉乘(⊥ 各自矢径);J3 = [0,0,1] 第 4 列位置部分 = 0:腕转不改位置,只给末行一个 1 伸直 ϑ2 = 0:外边界 J1 ∥ J2 det = a1a2s2 = 0 折回 ϑ2 = π:内边界 两列仍共线(反号) det = 0;末端落在 r = |a1−a2| 处 两个奇点都与 ϑ1、d3、ϑ4 无关——边界奇点,规划时避开臂展极限即可
SCARA 雅可比与奇点的全部几何(本教程绘,对照原书图 2.36):左——四轴平行使每一列都能在俯视图中画出,第 4 列位置部分为零是「腕轴过腕点」的直接结果;右——伸直与折回两支 ϑ2\vartheta_2 使 det⁡J(2)=a1a2sin⁡ϑ2=0\det J^{(2)}=a_1a_2\sin\vartheta_2=0,两列共线、径向速度不可产生(例 3.2 的 SCARA 版)。

3.3 · 求 SCARA 机械手的雅可比

思路

按「五步流水线」(方法 3.2.A):四轴全平行 ⇒\Rightarrow 所有 zi−1z_{i-1} 相同、所有转动列都是竖直叉乘;只需从各中间 TT 读出 pi−1p_{i-1},逐列套绿框(定理 3.1.C)。

关键中间量(全部由 Ti0T_i^0 读取)

z0=z1=z2=z3=z0base=[0,0,1]T(四轴竖直平行)z_0=z_1=z_2=z_3=z_0^{\text{base}}=[0,0,1]^{\mathrm T}\qquad(\text{四轴竖直平行})

p0=p1=[0,0,0]T,p2=[a1c1, a1s1, 0]T,p3=p4=[a1c1+a2c12, a1s1+a2s12, −d3]Tp_0=p_1=[0,0,0]^{\mathrm T},\qquad p_2=[a_1c_1,\ a_1s_1,\ 0]^{\mathrm T},\qquad p_3=p_4=[a_1c_1+a_2c_{12},\ a_1s_1+a_2s_{12},\ -d_3]^{\mathrm T}

(p4=p3p_4=p_3:腕转不改变腕心位置。)末端 pe=p4p_e=p_4。

逐列组装

转动列 JPi=zi−1×(pe−pi−1)J_{P_i}=z_{i-1}\times(p_e-p_{i-1}),用 [0,0,1]×[X,Y,Z]=[−Y,X,0][0,0,1]\times[X,Y,Z]=[-Y,X,0]:

  • 第 1 列(ϑ1\vartheta_1,转动):pe−p1=[a1c1+a2c12, a1s1+a2s12, −d3]Tp_e-p_1=[a_1c_1+a_2c_{12},\ a_1s_1+a_2s_{12},\ -d_3]^{\mathrm T}, z0×(pe−p1)=[−(a1s1+a2s12), a1c1+a2c12, 0]Tz_0\times(p_e-p_1)=[-(a_1s_1+a_2s_{12}),\ a_1c_1+a_2c_{12},\ 0]^{\mathrm T};
  • 第 2 列(ϑ2\vartheta_2,转动):z1×(pe−p2)=[−a2s12, a2c12, 0]Tz_1\times(p_e-p_2)=[-a_2s_{12},\ a_2c_{12},\ 0]^{\mathrm T};
  • 第 3 列(d3d_3,移动):z2=[0,0,1]Tz_2=[0,0,1]^{\mathrm T},角速度行取 00;
  • 第 4 列(ϑ4\vartheta_4,转动):pe−p3=0p_e-p_3=0 ⇒ JP4=z3×0=0J_{P_4}=z_3\times 0=0,JO4=z3=[0,0,1]TJ_{O_4}=z_3=[0,0,1]^{\mathrm T}。

(第 4 列提示结构真相:腕转不移动末端点——它只改姿态。这正是图 2.36 上腕轴与末端点重合的几何事实。)

结果

J(q)=[−a1s1−a2s12−a2s1200a1c1+a2c12a2c12000010000000001101]∈R6×4J(q)=\begin{bmatrix} -a_1s_1-a_2s_{12} & -a_2s_{12} & 0 & 0\ a_1c_1+a_2c_{12} & a_2c_{12} & 0 & 0\ 0 & 0 & 1 & 0\ 0 & 0 & 0 & 0\ 0 & 0 & 0 & 0\ 1 & 1 & 0 & 1 \end{bmatrix}\in\mathbb R^{6\times4}

(第 3 行记号:若取 zz 向上、d3d_3 向下,则 d3d_3 增大末端沿 −z-z 走,第 3 行第 3 列为 −1-1,其余不变——符号随约定,结构不变。)

验算

tools/verify_ch03_jac.py 用中心差分(位置差分 + S=R˙RTS=\dot RR^{\mathrm T} 差分)对随机 20 组 (q,a)(q,a) 复核全部 24 个元素,最大绝对偏差 ∼4×10−10\sim 4\times10^{-10};秩恒为 4(当 s2≠0s_2\neq0);det⁡(前两行 2×2 块)=a1a2s2\det(\text{前两行 }2\times2\text{ 块})=a_1a_2s_2。

与教材答案的一致性

教材官方解答(Solution Manual, Problem 3.3)给出的 SCARA 雅可比与本编逐列结果一致(差异仅在 zz 轴方向的整体符号约定)。SCARA 是「四轴全平行」的极端情形:αi≡0\alpha_i\equiv0 使绿框公式退化为「2×22\times2 位置块 + 竖直行 + 腕行」的稀疏结构——参数表越整齐,雅可比越稀疏,这是 2.9 结构知识在微分层的回报。

3.7 · 求 SCARA 机械手的奇异位形

思路

「JJ 不满秩」在 6×46\times4 上不好直接判,但 SCARA 结构只给了受限的任务空间:第 4、5 行恒零,第 3、6 行是「竖直平移 / 绕竖轴转」。因此分别看两块:

  1. 臂块(第 1、2 行 ×\times 第 1、2 列)——决定水平定位能力;
  2. 竖直 / 腕块(第 3、6 行)——[1,0][1,0] 与 [0,1][0,1] 恒满秩。

判定

J(2)=[−a1s1−a2s12−a2s12a1c1+a2c12a2c12],det⁡J(2)=a1a2 s2J^{(2)}=\begin{bmatrix}-a_1s_1-a_2s_{12} & -a_2s_{12}\ a_1c_1+a_2c_{12} & a_2c_{12}\end{bmatrix}, \qquad \det J^{(2)}=a_1a_2,s_2

奇点条件

det⁡J(2)=0  ⟺  s2=0  ⟺  ϑ2=0 或 π.\det J^{(2)}=0\iff s_2=0\iff \vartheta_2=0\ \text{或}\ \pi .

(竖直 / 腕部分永不退化:第 3 列 z2z_2、第 4 列 z3z_3 与第 1、2 列张成的方向整体互补,rank⁡J\operatorname{rank}J 从 4 降到 3。)

物理解释

  • ϑ2=0\vartheta_2=0:臂伸直,工作空间外边界(竖直平面内的圆环外缘);两列共线,比例系数 (a1+a2)/a2(a_1+a_2)/a_2——末端沿径向的速度分量不可产生;
  • ϑ2=π\vartheta_2=\pi:臂折回,内边界;同理共线(系数 (a1−a2)/a2(a_1-a_2)/a_2,若 a1=a2a_1=a_2 则两列反号相加为零,末端退到基座轴线上);
  • 与 ϑ1,ϑ3,ϑ4\vartheta_1,\vartheta_3,\vartheta_4 无关——转肩、升降、转腕都不改变奇异性;
  • 类型:边界奇点(3.3.1)——「不表示真正的缺陷」,使用中避开臂展极限即可;SCARA 无球形腕、无内部奇点(竖直轴与水平轴从不共线)。

验算

tools/verify_ch03_jac.py 对 s2=0s_2=0 的两支(ϑ2=0,π\vartheta_2=0,\pi)及随机非奇异位形做奇异值分解:非奇异位形最小奇异值 ≥a1a2∣s2∣/∥J(2)∥\ge a_1a_2|s_2|/\lVert J^{(2)}\rVert 型下界;ϑ2=0,π\vartheta_2=0,\pi 时 rank(J(2))=1(J^{(2)})=1、rank(J)=3(J)=3。

与教材答案的一致性

教材官方解答(Problem 3.7)的结论为 SCARA 的奇点在 ϑ2=0,π\vartheta_2=0,\pi(臂伸出 / 折叠),与本编一致;教材指出这些是肩 / 肘型边界奇点、可在轨迹规划阶段规避(对应 3.3.3 末尾「臂奇点在操作空间中被很好地识别、可在规划阶段避开」)。

两题一图的心智模型

3.3 把「关节速度 → 末端六维速度」写成一张稀疏矩阵:四轴平行使它只有 4 列非零、2 行有效;3.7 只需让那张矩阵的「臂块」退化——det⁡J(2)=a1a2s2=0\det J^{(2)}=a_1a_2s_2=0 的两个根,就是 SCARA 手臂伸直与折回的两个位形。

易错点清单:① 把第 3 列当转动列(d3d_3 是移动关节);② 第 4 列忘了 pe−p3=0p_e-p_3=0(腕转不改位置);③ 奇点判定漏掉「与 ϑ1\vartheta_1 无关」这一结构特征(对比两连杆 例 3.2 的 det⁡J=a1a2s2\det J=a_1a_2s_2,公式形式相同、含义随结构)。