响应式网站 教程,海西州建设局网站,高端医疗网站建设,廊坊哪里做网站4.1 本章任务
本章是将思路逆转过来#xff0c;已知机械臂的位置和姿态#xff0c;计算关节角#xff0c;由此即为逆运动学。
这个任务可以分为两个小问#xff1a;第一#xff0c;进行坐标系变换#xff0c;求出相对于基坐标系#xff5b;B#xff5d;的腕部坐标系已知机械臂的位置和姿态计算关节角由此即为逆运动学。
这个任务可以分为两个小问第一进行坐标系变换求出相对于基坐标系B的腕部坐标系W然后应用逆运动学求关节角。
4.2 解的存在性
首先操作臂运动学方程是一个非线性问题已知 N 0 T ^0_NT N0T求出 θ 1 , θ 2 , θ 3 . . . , θ n \theta_1,\theta_2,\theta_3...,\theta_n θ1,θ2,θ3...,θn。
着重考虑如下方程 对于具有6个自由度的操作臂来说有12个方程其中6个是未知的。然而在由 6 0 T ^0_6T 60T的旋转矩阵分量生成的9个方程中只有3个是独立的。将这3个方程与由 T 0 ^0_T T0的位置矢量分量生成的3个方程联立6个方程中含有6个未知量。这些方程为非线性超越方程难以求解。 而现实的问题可能要更复杂因为连杆偏距、长度、 α i \alpha_i αi不一定为0。所以我们需要考虑解的存在性并且解决多解问题。
解的存在性
解的存在必须满足被指定的目标点必须在工作空间操作臂末端执行器所能到达的范围内。
工作空间有两种一是灵巧工作空间指的是机器人的末端执行器能够从各个方向到达的空间区域。二是可达工作空间指的是其末端执行器至少从一个方向能到达的区域。
上图操作臂的工作空间
如果 l 1 l 2 l_1l_2 l1l2则可达工作空间是半径 2 l 1 2l_1 2l1的圆而灵巧工作空间仅是单独的一点这就是原点。
如果 l 1 ≠ l 2 l_1≠l_2 l1l2则不存在灵巧工作空间可达工作空间为外径 l 1 l 2 l_1l_2 l1l2、内径为 ∣ l 1 − l 2 ∣ \lvert{l}_1-l_2\rvert ∣l1−l2∣的圆环。在可达工作空间的内部末端执行器有2种可能的方向而在工作空间的边界上只有一种可能的方向。
需要注意的是这里的假设所有关节能够旋转360°但这并不常见。所以实际上能够成立的姿态会减少。而且有一些运动范围是联动的。
操作臂少于6自由度时它不能达到三维空间内一般的目标位置和姿态。上图的操作臂自由度被限制不能伸出平面Z坐标不为0的点都到达不了。我们只有这一种办法—逐个研究这种操作臂弄清楚它的工作空间。还有就是计算最近的可达目标点来研究操作臂可以执行近似操作的区域。
还有一个问题那就是工具坐标系也决定了工作空间。作为技术人员可能更关心腕部坐标系W的计算但是实际上工具执行的任务可能更为重要如果腕部坐标系被工具坐标系的工作空间包含那么至少存在一个解。
多解问题
3个旋转关节的平面操作臂已经可以从任何姿态到达工作空间的任何位置赋予了其较大的灵巧工作空间如下图所示 虚线表示的是机械臂的第二个位形。此位形下末端执行器工具可达位置和姿态与第一个位形相同。
多解问题意味着选择。系统必须选择一个最终解作为执行目标因此我们需要讨论如何产生最优解。我们知道机械臂应当选取最易到达的位姿进行解算所以我们需要的是最近解。这牵扯到的问题即是如何定义最近解。 不同的机械臂可能有不同的机构设计比如配备小连杆和大连杆两种连杆这种情况下当然是移动小连杆更经济。所以我们需要对连杆大小加权计算给小连杆更高的权重。这是理想的状况现实是小连杆移动的解可能造成碰撞。此时我们需要选择备用解——也就是“较远”解。所以设计算法的时候需要对全部解进行保留操作。
不只是关节数量影响了解的数量连杆参数和关节运动范围也造成了影响。换言之解是关节数量、连杆参数和关节运动范围的函数。PUMA 560机器人就是一个好的例子末端执行器姿态、位置相同但是机械臂可以以4种方式达到这一位姿。 θ 4 ′ θ 4 180 ° \theta_4^{}\theta_4180° θ4′θ4180° θ 5 ′ θ 5 \theta_5^{}\theta_5 θ5′θ5 θ 6 ′ θ 6 180 ° \theta_6^{}\theta_6180° θ6′θ6180°
连杆的非零参数越多到达某一特定目标的方式也越多。下图表示解的最大数量和等于0的连杆参数的数量有关不等于0的连杆参数的数量越多解的最大数量就越多。
解法
非线性方程组没有通用的求解算法所以最好对操作臂“解”的形式加以定义。
解的求解程序必须是能够算出所有解能够算出与已知位置和姿态相关的全部关节变量。这样就可以说操作臂是可解的。
操作臂的全部求解方法分为两大类封闭解和数值解然而数值解具有迭代性质它一般比相应封闭解的求解速度慢上许多。实际情况是封闭解往往更受青睐。
本章主要讨论封闭解方法封闭解指的是基于解析形式的解法对不高于4次的多项式不需要迭代即可完全求解。
封闭解的求解方法又可以分为两类代数法和几何法而几何法引入了代数描述所以这两种方法是相似的或许仅仅是求解过程不同。
我们可以利用以下结论所有包含转动关节和移动关节的串联型6自由度机构均是可解的。但是这种解一般是数值解。特殊情况下可以产生解析解。存在解析解的机械臂具有以下特性
存在几个正交关节轴或者有多个 α i \alpha_i αi为0或者 ± 90 ° ±90° ±90°。
最重要且最基本的是保证封闭解存在。所以目前的机械臂设计比较简单这样能够保证得到封闭解。
具有6个旋转关节的操作臂存在封闭解的充分条件是相邻的三根关节轴相交于一点。
4.3 当n≤6时操作臂子空间的描述
对于一个n自由度操作臂n6可达工作空间可看成是n自由度子空间的一部分。我们可以回想在图4.1中出现的机械臂其工作空间是该平面的一个子集即当 l 1 l 2 l_1l_2 l1l2时为一个半径为 l 1 l 2 l_1l_2 l1l2的圆。
确定n自由度操作臂子空间的一种方法就是给出腕部坐标系或工具坐标系的表达式它是含有n个变量的函数。将这n个变量看作自由变量其所有可能的取值构成了这个子空间。
对于具有n自由度操作臂的目标点进行定义通常采用n个参数来确定这个目标点。也就是说如果给定6个自由度的目标点一般自由度n6的操作臂无法到达这个目标点。此时可以寻找近似解尽可能“靠近”目标点。
对于少于6个自由度的操作臂来说当确定一般目标点时可以如此求解
已知一般目标坐标系 G S T ^S_GT GST计算一个修正的目标坐标系 G ′ S T ^S_{G^{}}T G′ST使得 G ′ S T ^S_{G^{}}T G′ST位于操作臂子空间内并且和 G S T ^S_GT GST尽可能“靠近”应该预先确定“靠近”的标准。将 G ′ S T ^S_{G^{}}T G′ST作为期望目标计算逆运动学来求关节角注意如果目标点不在操作臂工作空间内将可能没有解。
先确定工具坐标系原点到期望目标点的位置然后选择一个接近期望姿态的可达姿态。子空间的计算取决于操作臂的几何特征对于每个操作臂必须单独考虑。
4.4 代数解法和几何解法
本节我们讨论运动学方程的两大求解方法。
代数解法
采用第三章介绍的三连杆平面操作臂它的连杆参数如下图所示。 如果你忘了 α i \alpha_i αi、 a i a_i ai、 d i d_i di和 θ i \theta_i θi的含义请你翻阅一下《机器人学导论》的第三章或直接翻开我的上一篇笔记【机器人学导论笔记】三、操作臂正运动学找到“3.4 连杆坐标系的定义”。 在这里 α i \alpha_i αi为0的原因是平面坐标系的 Z i ^ \hat{Z_i} Zi^轴都是垂直纸面的也就不需要旋转。 a i a_i ai是连杆坐标系原点公垂线距离此处是连杆长度。 d i d_i di为0的原因是因为沿 Z i ^ \hat{Z_i} Zi^轴 X ^ \hat{X} X^轴并没有移动所有 Z i ^ \hat{Z_i} Zi^轴都处于一个平面上。 θ i \theta_i θi是 X i ^ \hat{X_i} Xi^绕 Z i ^ \hat{Z_i} Zi^轴转过的角度大小不一。
应用连杆参数求得机械臂的运动学方程还记得吗连乘变换矩阵就能得到了 为了集中讨论逆运动学问题假设必要的变换已经完成即 W B T ^B_WT WBT已经完成使得目标点的位置由腕部坐标系相对基坐标系来确定由于研究的是平面操作臂因此可以通过确定三个量—— x 、 y x、y x、y和 ϕ \phi ϕ很容易确定这些目标点的位置其中 ϕ \phi ϕ是连杆3在平面内的姿态与 X ^ \hat{X} X^相关。因此假定变换矩阵具有以下形式 所有可达目标点必须位于上式描述的子空间上令式(4.6)和(4.7)相等从而求得4个非线性方程进而求出 θ 1 \theta_1 θ1、 θ 2 \theta_2 θ2和 θ 3 \theta_3 θ3 c ϕ c 123 ( 4.8 ) c_{\phi}c_{123}(4.8) cϕc123(4.8) s ϕ s 123 ( 4.9 ) s_{\phi}s_{123}(4.9) sϕs123(4.9) x l 1 c 1 l 2 c 12 ( 4.10 ) xl_1c_1l_2c_{12}(4.10) xl1c1l2c12(4.10) x l 1 s 1 l 2 s 12 ( 4.11 ) xl_1s_1l_2s_{12}(4.11) xl1s1l2s12(4.11)
使用代数方法求解4.8-4.11将4.10和4.11同时平方然后相加得到 x 2 y 2 l 1 2 l 2 2 2 l 1 l 2 c 2 ( 4.12 ) x^2y^2l_1^2l_2^22l_1l_2c_2(4.12) x2y2l12l222l1l2c2(4.12)
利用公式 c 12 c 1 c 2 − s 1 s 2 c_{12}c_1c_2-s_1s_2 c12c1c2−s1s2 s 12 c 1 s 2 s 1 c 2 ( 4.13 ) s_{12}c_1s_2s_1c_2(4.13) s12c1s2s1c2(4.13)
由4.12求解 c 2 c_2 c2得到 c 2 x 2 y 2 − l 1 2 − l 2 2 2 l 1 l 2 ( 4.14 ) c_2\frac{x^2y^2-l_1^2-l_2^2}{2l_1l_2}(4.14) c22l1l2x2y2−l12−l22(4.14)
上式有解的条件是式4.14右边的值必须在-1~1.在这个解法中这个约束条件可以用来检查解是否存在。从物理结构上看如果约束条件不满足则目标点位置太远操作臂不可达。
假定目标点在工作空间内 s 2 s_2 s2的表达式为 s 2 ± 1 − c 2 2 ( 4.15 ) s_2±\sqrt{1-c_2^2}(4.15) s2±1−c22 (4.15)
最后应用双变量反正切公式计算 θ 2 \theta_2 θ2得 θ 2 A t a n 2 ( s 2 , c 2 ) ( 4.16 ) \theta_2Atan2(s_2,c_2)(4.16) θ2Atan2(s2,c2)(4.16)
式4.15的符号选择对应于多解我们可选择“肘部朝上”解或“肘部朝下”解。确定 θ 2 \theta_2 θ2时再次应用循环方法来求解运动学参数即常用的先确定期望关节角的正弦和余弦然后应用双变量反正切公式的方法。这样确保得出所有的解且所求的角度是在适当的象限里。
求出了 θ 2 \theta_2 θ2可以根据式(4.10)和式(4.11)求出 θ 1 \theta_1 θ1。将式(4.10)和式(4.11)写成如下形式 x k 1 c 1 − k 2 s 1 ( 4.17 ) xk_1c_1-k_2s_1(4.17) xk1c1−k2s1(4.17) y k 1 s 1 k 2 c 1 ( 4.18 ) yk_1s_1k_2c_1(4.18) yk1s1k2c1(4.18)
式中 k 1 l 1 l 2 c 2 k_1l_1l_2c_2 k1l1l2c2 k 2 l 2 s 2 ( 4.19 ) k_2l_2s_2(4.19) k2l2s2(4.19)
为了求解这种形式的方程可进行变量代换实际上是改变常数 k 1 k_1 k1和 k 2 k_2 k2的形式。
如果 r k 1 2 k 2 2 ( 4.20 ) r\sqrt{k_1^2k_2^2}(4.20) rk12k22 (4.20)
并且 γ A t a n 2 ( k 2 , k 1 ) \gammaAtan2(k_2,k_1) γAtan2(k2,k1)
则 k 1 r c o s γ k_1rcos\gamma k1rcosγ k 2 r s i n γ ( 4.21 ) k_2rsin\gamma(4.21) k2rsinγ(4.21)
式(4.17)和式(4.18)可以写成三角变换 x r c o s γ c o s θ 1 − s i n γ s i n θ 1 ( 4.22 ) \frac{x}{r}cos\gamma cos\theta_1-sin\gamma sin\theta_1(4.22) rxcosγcosθ1−sinγsinθ1(4.22) y r c o s γ s i n θ 1 s i n γ c o s θ 1 ( 4.23 ) \frac{y}{r}cos\gamma sin\theta_1sin\gamma cos\theta_1(4.23) rycosγsinθ1sinγcosθ1(4.23)
因此 c o s ( γ θ 1 ) x r ( 4.24 ) cos(\gamma\theta_1)\frac{x}{r}(4.24) cos(γθ1)rx(4.24) s i n ( γ θ 1 ) y r ( 4.25 ) sin(\gamma\theta_1)\frac{y}{r}(4.25) sin(γθ1)ry(4.25)
利用双变量反正切公式得 γ θ 1 A t a n 2 ( y r , x r ) A t a n 2 ( y , x ) ( 4.26 ) \gamma\theta_1Atan2(\frac{y}{r},\frac{x}{r})Atan2(y,x)(4.26) γθ1Atan2(ry,rx)Atan2(y,x)(4.26)
从而 θ 1 A t a n 2 ( y , x ) − A t a n 2 ( k 2 , k 1 ) ( 4.27 ) \theta_1Atan2(y,x)-Atan2(k_2,k_1)(4.27) θ1Atan2(y,x)−Atan2(k2,k1)(4.27)
注意 θ 2 \theta_2 θ2符号的选取将导致 k 2 k_2 k2符号的变化因此影响到 θ 1 \theta_1 θ1。
式(4.20)和式(4.21)比较重要经常出现在运动学求解问题中即式(4.10)和(4.11)的求解方法。当然因为(4.27)是正切定义所以细心地注意到如果 x y 0 xy0 xy0式子会失去定义。此时 θ 1 \theta_1 θ1可以取得任意值。
由(4.8)、(4.9)求出 θ 1 \theta_1 θ1、 θ 2 \theta_2 θ2、 θ 3 \theta_3 θ3的和 θ 1 θ 2 θ 3 A t a n 2 ( s ϕ , c ϕ ) ϕ ( 4.28 ) \theta_1\theta_2\theta_3Atan2(s_{\phi},c_{\phi})\phi(4.28) θ1θ2θ3Atan2(sϕ,cϕ)ϕ(4.28)
从而可以求解 θ 3 \theta_3 θ3。
代数方法求解的过程本质上是将给定的方程转换到解已知的形式。
几何解法
将操作臂的空间几何参数分解成平面几何问题用这种方法求解操作臂比较容易。当 α i 0 / ± 90 ° \alpha_i0/±90° αi0/±90°时尤为如此。 代数解法中我们讨论的机械臂是一个平面机械臂 Z ^ \hat{Z} Z^轴的特殊性继续举这个例子再好不过了。我们可以直接利用平面几何关系求解。
上图说明了机械臂还有一种对称的方式到达末端执行器的位置。利用余弦定理求解实线的情况 x 2 y 2 l 1 2 l 2 2 − 2 l 1 l 2 c o s ( 180 θ 2 ) ( 4.29 ) x^2y^2l_1^2l_2^2-2l_1l_2cos(180\theta_2)(4.29) x2y2l12l22−2l1l2cos(180θ2)(4.29)
现在替换 c o s ( 180 θ 2 ) cos(180\theta_2) cos(180θ2)为更简单的 − c o s ( θ 2 ) -cos(\theta_2) −cos(θ2)式子变成了 c 2 x 2 y 2 − l 1 2 − l 2 2 2 l 1 l 2 ( 4.30 ) c_2\frac{x^2y^2-l_1^2-l_2^2}{2l_1l_2}(4.30) c22l1l2x2y2−l12−l22(4.30)
观察这个式子。上面的三角形成立的条件是 x 2 y 2 ≤ l 1 l 2 \sqrt{x^2y^2}≤l_1l_2 x2y2 ≤l1l2可回忆一下机械原理中的连杆机构的知识用计算方法对目标点的这个条件进行验证以便证明该解的存在性。目标点超出运动范围则不满足。再仔细一些会发现 θ 2 \theta_2 θ2的问题它应该是一个 [ − 180 ° , 0 ] [-180°,0] [−180°,0]之间的角度数。另一个可能的解虚线三角形可以通过对称关系 θ 2 ′ − θ 2 \theta_2^{}-\theta_2 θ2′−θ2得到。
求完了 θ 2 \theta_2 θ2紧接着让我们来看 θ 1 \theta_1 θ1怎么求首先需要建立 ψ \psi ψ和 β \beta β的表达式。首先 β \beta β可以位于任意象限这是由 x x x和 y y y的符号决定的。应用双变量反正切公式定义 β \beta β β A t a n 2 ( y , x ) ( 4.31 ) \betaAtan2(y,x)(4.31) βAtan2(y,x)(4.31)
利用余弦定理求出 ψ \psi ψ c o s ψ x 2 y 2 l 1 2 − l 2 2 2 l 1 x 2 y 2 ( 4.32 ) cos\psi\frac{x^2y^2l_1^2-l_2^2}{2l_1\sqrt{x^2y^2}}(4.32) cosψ2l1x2y2 x2y2l12−l22(4.32)
求出反余弦使得 0 ≤ ψ ≤ 180 ° 0≤\psi≤180° 0≤ψ≤180°这样4.32在数值上便是成立的。接着可得 θ 1 β ± ψ ( 4.33 ) \theta_1\beta±\psi(4.33) θ1β±ψ(4.33)
式中当 θ 2 0 \theta_20 θ20时取 号当 θ 2 0 \theta_20 θ20时取 − - −号。
同样进行加和操作从而求出 θ 3 \theta_3 θ3 θ 1 θ 2 θ 3 ψ ( 4.34 ) \theta_1\theta_2\theta_3\psi(4.34) θ1θ2θ3ψ(4.34)
几何解法结束。
4.5 简化成多项式的代数解法
实际求解过程中比较难处理的是超越方程。然而并不是全无办法———我们可以使用关于三角函数的多项式进行几何变换。如下三个式子需要牢记以单一变量 u u u表示 u t a n θ 2 utan\frac{\theta}{2} utan2θ c o s θ 1 − u 2 1 u 2 cos\theta\frac{1-u^2}{1u^2} cosθ1u21−u2 s i n θ 2 u 1 u 2 ( 4.35 ) sin\theta\frac{2u}{1u^2}(4.35) sinθ1u22u(4.35)
在原书的附录中列出了更多的变换关系和三角恒等式帮助我们求解。感兴趣的可以自己去翻翻~
借原书的例子来求解一下
有一超越方程如下 a c o s θ b s i n θ c ( 4.36 ) acos\thetabsin\thetac(4.36) acosθbsinθc(4.36)
正弦和余弦皆在那么转化为一个正切函数是比较好的。我们使用(4.35)的变换式上式乘以 1 u 2 1u^2 1u2得 a ( 1 − u 2 ) 2 b u c ( 1 u 2 ) ( 4.37 ) a(1-u^2)2buc(1u^2)(4.37) a(1−u2)2buc(1u2)(4.37)
取 u u u的幂次排序 ( a c ) u 2 − 2 b u ( c − a ) 0 ( 4.38 ) (ac)u^2-2bu(c-a)0(4.38) (ac)u2−2bu(c−a)0(4.38)
由一元二次方程求解公式得 u b ± b 2 a 2 − c 2 a c ( 4.39 ) u\frac{b±\sqrt{b^2a^2-c^2}}{ac}(4.39) uacb±b2a2−c2 (4.39)
因此 θ 2 t a n − 1 ( b ± b 2 a 2 − c 2 a c ) ( 4.40 ) \theta2tan^{-1}(\frac{b±\sqrt{b^2a^2-c^2}}{ac})(4.40) θ2tan−1(acb±b2a2−c2 )(4.40) u u u如果是复数那么超越方程可能不存在实根。如果 a c 0 ac0 ac0那么反正切的自变量就会无穷大因此 θ 180 ° \theta180° θ180°。这一步最好人工干预也就是验证 a c ac ac是否为0因为计算机可能会解错。如果为0那么上溯到(4.38)可以直接消去二次项这样我们就只需解一个线性方程。
4次多项式导出的是封闭解能够用4阶及以下的代数方程求解的操作臂是相当简单的。
4.6 三轴相交的Pieper解法
一般的6自由度机器人没有封闭解但某些特殊情况下也可解。比如3个连续轴相交于一点的6自由度操作臂可以认为它们的交点在无穷远处。这是Pieper所做的研究工作他提出的解法针对6个关节均为旋转关节且后面3个轴相交的操作臂。一些商业化的工业机器人正使用这样的解法。
最后三个轴相交时连杆坐标系{4}、{5}、{6}的原点均位于这个交点上。这点在基坐标系中的位置是 回忆一下式(3.6) 或者当i4时由式(3.6)的第4列有 或 式中 上式对于 3 2 T ^2_3T 32T应用(3.6)得出 f 1 f_1 f1的表达式 对 1 0 T ^0_1T 10T和 2 1 T ^1_2T 21T应用(3.6)得 式中 现在写出 0 P 4 O R G ^0P_{4ORG} 0P4ORG绝对值平方的表达式这里 r x 2 y 2 z 2 rx^2y^2z^2 rx2y2z2从(4.46)可以看出 则对于 g i g_i gi由式(4.47)得 现在写出(4.46)中Z方向分量的方程那么表示这个方程组的两个方程如下 式中 式4.50消去了因变量 θ 1 \theta_1 θ1使得 θ 2 \theta_2 θ2的关系式更简单。剩下的任务就是求解 θ 3 \theta_3 θ3分为3种情况
若 a 1 0 a_10 a10则 r k 3 rk_3 rk3这里 r r r是已知的右边 ( k 3 ) (k_3) (k3)仅是关于 θ 3 \theta_3 θ3的函数。代入(4.35)后由包含 t a n θ 3 2 tan\frac{\theta_3}{2} tan2θ3的二次方程可以解出 θ 3 \theta_3 θ3。若KaTeX parse error: Double subscript at position 10: s\alpha_1_̲10则 z k 4 zk_4 zk4这里 z z z是已知的再次代入(4.35)后利用上面的一元二次方程可以解出 θ 3 \theta_3 θ3。否则从式(4.50)中消去 s 2 s_2 s2和 c 2 c_2 c2得到 代入(4.35)后可得到一个4次方程由此解出 θ 3 \theta_3 θ3。
解出 θ 3 \theta_3 θ3后可以根据(4.50)解出 θ 2 \theta_2 θ2再根据(4.46)解出 θ 1 \theta_1 θ1。
这是一个6自由度的机械臂所以我们还需要求出 θ 4 \theta_4 θ4、 θ 5 \theta_5 θ5、 θ 6 \theta_6 θ6。由于这些轴相交故这些关节角只影响末端连杆的方向只需要 6 0 R ^0_6R 60R的旋转分量就计算出这三个角度。
我们可以先由 θ 4 0 \theta_40 θ40时连杆坐标系{4}相对于基坐标系的方向计算出 0 4 R ∣ θ 4 0 ^4_0R|_{\theta_40} 04R∣θ40。坐标系{6}的期望方向与连杆坐标系{4}的方向的差别仅在于最后三个关节的作用。由于 6 0 R ^0_6R 60R已知因此可以如此计算 对于大多数操作臂来说可以使用 Z − Y − Z Z-Y-Z Z−Y−Z欧拉角解法第二章曾提及应用于 6 4 R ∣ θ 4 0 ^4_6R|_{\theta_40} 64R∣θ40解出最后三个关节角。当然我们需要定义一组合适的欧拉角。最后的三个关节通常由两种解所以这种操作臂解的总数就是前三个关节解的数量的2倍。
4.7 操作臂逆运动学实例
这一部分的内容实在太多了请自行移步《机器人学导论》求解
4.8 标准坐标系
回到我们曾讨论的坐标系规范命名问题现在我们要做一些拓展确定如何应用这些坐标系 由用户确定系统中固定坐标系的位置这个坐标系可能在工作面的一角如下图所示。或者附于一个移动的传送带上。固定坐标系{S}是相对于基坐标系{B}定义的。机器人工具的描述通过给定坐标系{T}的参数给出每种工具都有一个相应的工具坐标系{T}。然而不同方式抓持相同的工具使得{T}不同。工具坐标系{T}是相对于腕部坐标系{W}的即 T W T ^W_TT TWT。用户通过给定相对于固定坐标系的目标坐标系{G}的描述来指定机器人运动的目标点。对于机器人的某些运动{T}和{S}的定义经常保持不变。这种情况下它们一旦被定义用户仅需给出一系列{G}的参数。在许多系统中 T W T ^W_TT TWT是一个常量固定坐标系可以固定也可以用户通过机器人简单示教。这样并不需要用户搞清楚这5种坐标系只需要考虑根据相对于工作区域由固定坐标系确定移动工具到达位置目标。机器人系统需要计算一系列的关节角使关节运动工具坐标系从起始位置以光滑的方式运动直到{T}{G}时运动结束。 4.9 操作臂求解
SOLVE函数可以进行笛卡尔变换也称为逆运动学函数。这个逆运动学是广义的使得工具坐标系和固定坐标系的定义可以应用于基本逆运动学。基本逆运动学求解相对于基坐标系的腕部坐标系。
给定目标坐标系 S T T ^STT STTSOLVE应用工具坐标系和固定坐标系的定义来计算{W}相对于{B}的位置 W B T ^B_WT WBT W B T S B T T S T T W T − 1 ^B_WT^B_ST^S_TT^W_TT^{-1} WBTSBTTSTTWT−1
然后逆运动学将 W B T ^B_WT WBT作为输入计算 θ 1 \theta_1 θ1到 θ n \theta_n θn。
4.10 重复精度和精度
示教点是操作臂运动实际要达到的点同时关节位置传感器读取关节角并存储。当命令机器人返回这个空间点时每个关节都移动到已存储的关节角的位置。在这样简单的“示教和再现”的操作臂中不存在逆运动学问题因为没有在笛卡尔坐标系里指定目标点。当制造商在确定操作臂返回示教点的精度时就是在确定操作臂的重复精度。
如果需要用逆运动学求出关节角并移动到未示教过的点就需要计算称他们为计算点。到达这个计算点的精度称为操作臂的精度。操作臂的精度不会超过其重复精度。精度受到机器人运动学方程中参数精度的影响。
4.11 计算问题
计算效率会深深影响操作臂的逆运动学求解。一个关于 A t a n 2 Atan2 Atan2的查表法子程序常被用于提高计算速度。多解的计算结构十分重要。并行计算所有的解通常效率很高而不是依次顺序计算。当然只需要一个解的特殊情况还可以更快。几何解法有时可以通过对各种角度做简单操作来计算多解问题。即第一个解的计算是相当费时的但通过计算角度的和或差以及加减 π π π等方法很快可以求得其余解。