1. 前言
柔性臂是当前机器人领域一个比较热的研究方向,国内外高校如MIT、Stanford、JHU和我校、上交、中科大、北航等等都有做研究。大致可以分为三类:气驱/绳驱,超弹性材料,智能材料(DE/EAP/SMA)。大多也集中在仿生方面的研究,比如象鼻型、章鱼臂型等等,属于机械/生物/计算机/电子/控制(强行加上我们控制)的交叉领域。
这周主要学习了Clemson University早年研究的一种气驱型柔性臂。基本上白天看论文,晚上动手自己做硅胶构件,俨然和控制越来越远。。。。。。
2. 模型分类
建立这类气驱型柔性臂的模型具有一定复杂性,因为要完整精确地描述横向/纵向肌肉的运动和相互影响的机理,不过这论文都是十多年前的了,现在嘛。。。。。。
2.1 Complex, fully soft model
完整地描述肌纤维的运动及对其他肌纤维的影响,理想。。理想。。。一种oft model是把章鱼臂看作一系列定容圆柱,每个圆柱能变直径变长度;另一种是看作一系列的腔管,能在两个方向上弯曲。
虽然这类模型在解释运动机理上很好,但是soft model的主要问题:是难以用于控制柔性臂到达期待位姿,以及难以再现完全柔软而定容的执行器。
2.2 Cylindrical extension model
把整个柔性臂分解成一系列变直径的部分首尾连接起来。这种模型描述运动机理效果比较好。具体地说,也是看作一系列定容圆柱,通过对生物肌肉实际测量得到一些参数,能够很好地预测章鱼臂在一次捕食行为中肌肉的动作,但是这种模型,按照原文说,主要描述了单关节臂杆的行为,而不是整个完整机械臂的功能。(有一点点懵逼,论文也没细讲)
2.3 Circular curvature model
在一定的假设条件下,能更好地阐述章鱼臂的运动机理,也是实际应用最多的一种。假设机械臂以恒定曲率弯曲且不能扭转(这假设下当然更容易分析了。。)当然好处也很明显,可以化简为一系列旋转关节和位移关节,直接用DH参数法,经典的机器人控制理论和算法也可以套用。Clemson University的Elephant Trunk manipulator和Air-Octor single manipulator的分析都是基于这种模型。
接下来分析这个Air-Octor single manipulator的正逆运动学模型。
3. 逆运动学模型
3.1 整体分析
这个柔性臂由中间的软管和外部保护软管以及三个驱动的绳索组成。然后三个弯曲自由度,一个收缩自由度,也就是四自由度的柔性臂。
逆运动学模型就是已知弯曲的角度 ϕ \phi ϕ 和曲率 k ϕ k_{\phi} k ϕ ,求解三个绳索的长度 l 1 l_1 l 1 和 l 2 l_2 l 2 和 l 3 l_3 l 3 。论文提供的算法分两部分,先求解定义的一个长度 r i r_i r i ,再求出 ϕ \phi ϕ 和 k ϕ k_{\phi} k ϕ 。
3.2 求解 r i r_i r i
考虑上图这一段柔性臂,通过绳索1的这一点给出一个垂直于绳索2和绳索3的平面。由这个平面就得到三个用于求解 r i r_i r i 的中间变量:h 1 = 0 h_1 = 0 h 1 = 0 (平面在绳索1那个点定义的,所以是0)h 2 = l 2 − l 1 2 n h_2 = \cfrac{l_2 - l_1}{2n} h 2 = 2 n l 2 − l 1 h 3 = l 3 − l 1 2 n h_3 = \cfrac{l_3 - l_1}{2n} h 3 = 2 n l 3 − l 1
n是把整个柔性臂等分的段数。
得到了h 1 h_1 h 1 、h 2 h_2 h 2 、h 3 h_3 h 3 后,接下来求 h c h_c h c ,也就是柔性臂截面的三个绳索构成的等边三角形中点距离设定平面的距离。由上图可以看出, h c h_c h c 是h 2 m h_{2m} h 2 m 和 h 3 m h_{3m} h 3 m 的平均值。那么 h 2 m h_{2m} h 2 m 和 h 3 m h_{3m} h 3 m 怎么求解呢?
参考上图,根据相似三角形的几何关系就可以求出h 2 m = l 2 − l 1 3 n h_{2m} = \cfrac{l_2 - l_1}{3n} h 2 m = 3 n l 2 − l 1 h 3 m = l 3 − l 1 3 n h_{3m} = \cfrac{l_3 - l_1}{3n} h 3 m = 3 n l 3 − l 1
相应地就可以求出h c h_c h c :h c = l 3 + l 2 − 2 l 1 6 n h_{c} = \cfrac{l_3 +l_2 - 2l_1}{6n} h c = 6 n l 3 + l 2 − 2 l 1
接下来我们再看下图
上图完整地描述了这一段弯曲的柔性臂的情况,根据描红的一部分,我们可以得到如下等腰三角形d h c = r 1 h c + l 1 2 n \cfrac{d}{h_c} = \cfrac{r_1}{h_c + \cfrac{l_1}{2n}} h c d = h c + 2 n l 1 r 1
这样就可以推出r1:
r 1 = d ( l 1 + l 2 + l 3 ) l 3 + l 2 − 2 l 1 r_1 = \cfrac{d(l_1 + l_2 + l_3)}{l_3 + l_2 - 2l_1} r 1 = l 3 + l 2 − 2 l 1 d ( l 1 + l 2 + l 3 )
那么r 2 r_2 r 2 和 r 3 r_3 r 3 呢?论文直接给出结果了,不过还是希望大家自己能推导一下。
这是我自己推导画的图,手残轻喷。
由上图易得。。真的是容易得到,如果你认真分析了的话(滑稽):
d r 2 = h c − h 2 l 1 2 n + h c \cfrac{d}{r_2} = \cfrac{h_c - h_2}{\cfrac{l_1}{2n} + h_c} r 2 d = 2 n l 1 + h c h c − h 2
d r 3 = h 3 − h c l 1 2 n + h c \cfrac{d}{r_3} = \cfrac{h_3 - h_c}{\cfrac{l_1}{2n} + h_c} r 3 d = 2 n l 1 + h c h 3 − h c
整理后可得
r 2 = d ( l 1 + l 2 + l 3 ) l 3 + l 1 − 2 l 2 r_2 = \cfrac{d(l_1 + l_2 + l_3)}{l_3 + l_1 - 2l_2} r 2 = l 3 + l 1 − 2 l 2 d ( l 1 + l 2 + l 3 )
r 3 = d ( l 1 + l 2 + l 3 ) l 1 + l 2 − 2 l 3 r_3 = \cfrac{d(l_1 + l_2 + l_3)}{l_1 + l_2 - 2l_3} r 3 = l 1 + l 2 − 2 l 3 d ( l 1 + l 2 + l 3 )
3.3 求解 ϕ \phi ϕ 和 k ϕ k_{\phi} k ϕ
r 1 r_1 r 1 、r 2 r_2 r 2 、r 3 r_3 r 3 看作向量形式的话:r 1 = r 1 ∠ 9 0 ο \mathrm{r_1} = r_1\angle{90^\omicron} r 1 = r 1 ∠ 9 0 ο r 2 = r 2 ∠ 21 0 ο \mathrm{r_2} = r_2\angle{210^\omicron} r 2 = r 2 ∠ 2 1 0 ο r 3 = r 3 ∠ − 3 0 ο \mathrm{r_3} = r_3\angle{-30^\omicron} r 3 = r 3 ∠ − 3 0 ο
具体如下图
我们用一个基变换矩阵 B B B 来求得正交基 r y r_y r y 和 r y r_y r y :
B = [ cos ( 21 0 ο ) sin ( 21 0 ο ) cos ( − 30 ο ) sin ( − 30 ο ) ] B = \begin{bmatrix}
\cos{(210^\omicron)} & \sin{(210^\omicron)} \\
\cos{({-30}^\omicron)} & \sin{({-30}^\omicron)} \\
\end{bmatrix} B = [ cos ( 2 1 0 ο ) cos ( − 3 0 ο ) sin ( 2 1 0 ο ) sin ( − 3 0 ο ) ]
r x = r 3 − r 2 3 r_x = \cfrac{r_3 - r_2}{\sqrt{3}} r x = 3 r 3 − r 2
r y = − r 2 − r 3 r_y = -r_2 -r_3 r y = − r 2 − r 3
然后我们就可以得到 (其实这部分不明白为什么这样就得到了 ϕ \phi ϕ ,希望有看到的朋友能帮忙解释一下)
ϕ = tan − 1 ( r y r x ) \phi = \tan^{-1}\left(\cfrac{r_y}{r_x}\right) ϕ = tan − 1 ( r x r y )
r ϕ = r x 2 + r y 2 r_\phi = \sqrt{{r_x}^2 + {r_y}^2} r ϕ = r x 2 + r y 2 (注意曲率 k ϕ = 1 r ϕ k_\phi = \cfrac{1}{r_\phi} k ϕ = r ϕ 1 )
最后整理消除中间变量得到
k ϕ = 2 l 1 2 + l 2 2 + l 3 2 − l 1 l 2 − l 2 l 3 − l 1 l 1 d ( l 1 + l 2 + l 3 ) k_\phi = 2\cfrac{\sqrt{{l_1}^2 + {l_2}^2 + {l_3}^2 -l_1l_2 - l_2l_3 -l_1l_1}}{d\left(l_1 + l_2 + l_3\right)} k ϕ = 2 d ( l 1 + l 2 + l 3 ) l 1 2 + l 2 2 + l 3 2 − l 1 l 2 − l 2 l 3 − l 1 l 1
ϕ = tan − 1 ( 3 3 l 3 + l 2 − 2 l 1 l 2 − l 3 ) \phi = \tan^{-1}\left(\cfrac{\sqrt3}{3}\cfrac{l_3 + l_2 - 2l_1}{l_2 - l_3}\right) ϕ = tan − 1 ( 3 3 l 2 − l 3 l 3 + l 2 − 2 l 1 )
3.4 求解 s s s
最后我们再求出柔性臂的长度,因为前面我们是分成了n份来分析的。
根据前面的分析我们可以得到
l c = l 1 + l 2 + l 3 3 l_c = \cfrac{l_1 + l_2 + l_3}{3} l c = 3 l 1 + l 2 + l 3
再根据上图可以得到关系式如下:
sin β 2 = l c 2 n 1 k ϕ \sin\cfrac{\beta}{2} = \cfrac{\cfrac{l_c}{2n}}{\cfrac{1}{k_\phi}} sin 2 β = k ϕ 1 2 n l c
解得
s = 2 n k ϕ sin − 1 ( l c k ϕ 2 n ) s = \cfrac{2n}{k_\phi}\sin^{-1}\left(\cfrac{l_ck_\phi}{2n}\right) s = k ϕ 2 n sin − 1 ( 2 n l c k ϕ )
最后整理消除中间变量得
s = n d ( l 1 + l 2 + l 3 ) l 1 2 + l 2 2 + l 3 2 − l 1 l 2 − l 2 l 3 − l 1 l 3 ⋅ sin − 1 ( l 1 2 + l 2 2 + l 3 2 − l 1 l 2 − l 2 l 3 − l 1 l 3 3 n d ) s = \cfrac{nd(l_1 + l_2 + l_3)}{\sqrt{{l_1}^2 +{l_2}^2 + {l_3}^2 - l_1l_2 - l_2l_3 - l_1l_3}} \cdot \sin^{-1}\left( \cfrac{\sqrt{{l_1}^2 +{l_2}^2 + {l_3}^2 - l_1l_2 - l_2l_3 - l_1l_3}}{3nd}\right) s = l 1 2 + l 2 2 + l 3 2 − l 1 l 2 − l 2 l 3 − l 1 l 3 n d ( l 1 + l 2 + l 3 ) ⋅ sin − 1 ( 3 n d l 1 2 + l 2 2 + l 3 2 − l 1 l 2 − l 2 l 3 − l 1 l 3 )
3.5 归纳整理
定义 g : = l 1 2 + l 2 2 + l 3 2 − l 1 l 2 − l 2 l 3 − l 1 l 3 g := {l_1}^2 +{l_2}^2 + {l_3}^2 - l_1l_2 - l_2l_3 - l_1l_3 g : = l 1 2 + l 2 2 + l 3 2 − l 1 l 2 − l 2 l 3 − l 1 l 3 ,则逆运动学模型可归纳为
k ϕ = 2 g d ( l 1 + l 2 + l 3 ) k_\phi = 2\cfrac{\sqrt g}{d(l_1 + l_2 + l_3)} k ϕ = 2 d ( l 1 + l 2 + l 3 ) g
ϕ = tan − 1 ( 3 3 l 3 + l 2 − 2 l 1 l 2 − l 3 ) \phi = \tan^{-1}\left(\cfrac{\sqrt3}{3}\cfrac{l_3 + l_2 - 2l_1}{l_2 - l_3}\right) ϕ = tan − 1 ( 3 3 l 2 − l 3 l 3 + l 2 − 2 l 1 )
s = n d ( l 1 + l 2 + l 3 ) g ⋅ sin − 1 ( g 3 n d ) s = \cfrac{nd(l_1 + l_2 + l_3)}{\sqrt g} \cdot \sin^{-1}\left( \cfrac{\sqrt g}{3nd}\right) s = g n d ( l 1 + l 2 + l 3 ) ⋅ sin − 1 ( 3 n d g )
注意上式中lim g → 0 s = l 1 + l 2 + l 3 3 \lim\limits_{g \to 0}s = \cfrac{l_1 + l_2 + l_3}{3} g → 0 lim s = 3 l 1 + l 2 + l 3
4. 总结
以上就是一种气驱型柔性臂的逆运动学推导,其实可以看到所运用到的数学工具除了基变换矩阵那里以外,其他的基本上就是高中几何代数就可以解决的……所以说有些东西乍一看上去仿佛很艰深晦涩,可是钻研进去就会发现其实也并不很难,甚至还有点意思。