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 整體分析
這個柔性臂由中間的軟管和外部保護軟管以及三個驅動的繩索組成。然後三個彎曲自由度,一個收縮自由度,也就是四自由度的柔性臂。
正運動學模型就是已知三個繩索的長度l1 和 l2 和 l3,求解彎曲的角度 ϕ 和曲率 kϕ 以及彎曲部分長度 s。論文提供的算法分兩部分,先求解定義的一個長度 ri,再求出 ϕ 和 kϕ 以及 s。
3.2 求解 ri
考慮上圖這一段柔性臂,通過繩索1的這一點給出一個垂直於繩索2和繩索3的平面。由這個平面就得到三個用於求解 ri 的中間變量:
h1=0 (平面在繩索1那個點定義的,所以是0)
h2=2nl2−l1
h3=2nl3−l1
n是把整個柔性臂等分的段數。
得到了h1、h2、h3後,接下來求 hc,也就是柔性臂截面的三個繩索構成的等邊三角形中點距離設定平面的距離。由上圖可以看出, hc 是h2m 和 h3m 的平均值。那麼 h2m 和 h3m 怎麼求解呢?
參考上圖,根據相似三角形的幾何關係就可以求出
h2m=3nl2−l1
h3m=3nl3−l1
相應地就可以求出hc:
hc=6nl3+l2−2l1
接下來我們再看下圖
上圖完整地描述了這一段彎曲的柔性臂的情況,根據描紅的一部分,我們可以得到如下等腰三角形
hcd=hc+2nl1r1
這樣就可以推出r1:
r1=l3+l2−2l1d(l1+l2+l3)
那麼r2 和 r3 呢?論文直接給出結果了,不過還是希望大家自己能推導一下。
這是我自己推導畫的圖,手殘輕噴。要注意的是三根繩索長度不同,這個斜的截面它不是設定平面直接繞繩索1那個點所在的橫直線直接旋轉可以得到的,是一個。。有點彆扭的狀態,可以想象一下。
由上圖易得。。真的是容易得到,如果你認真分析了的話(滑稽):
r2d=2nl1+hchc−h2
r3d=2nl1+hch3−hc
整理後可得
r2=l3+l1−2l2d(l1+l2+l3)
r3=l1+l2−2l3d(l1+l2+l3)
3.3 求解 ϕ 和 kϕ
r1、r2、r3看作向量形式的話:
r1=r1∠90ο
r2=r2∠210ο
r3=r3∠−30ο
具體如下圖
我們用一個基變換矩陣 B 來求得正交基 ry 和 ry:
B=[cos(210ο)cos(−30ο)sin(210ο)sin(−30ο)]
rx=3r3−r2
ry=−r2−r3
然後我們就可以得到 (其實這部分不明白爲什麼這樣就得到了 ϕ,希望有看到的朋友能幫忙解釋一下)
ϕ=tan−1(rxry)
rϕ=rx2+ry2 (注意曲率 kϕ=rϕ1)
最後整理消除中間變量得到
kϕ=2d(l1+l2+l3)l12+l22+l32−l1l2−l2l3−l1l1
ϕ=tan−1(33l2−l3l3+l2−2l1)
3.4 求解 s
最後我們再求出柔性臂的長度,因爲前面我們是分成了n份來分析的。
根據前面的分析我們可以得到
lc=3l1+l2+l3
再根據上圖可以得到關係式如下:
sin2β=kϕ12nlc
解得
s=kϕ2nsin−1(2nlckϕ)
最後整理消除中間變量得
s=l12+l22+l32−l1l2−l2l3−l1l3nd(l1+l2+l3)⋅sin−1(3ndl12+l22+l32−l1l2−l2l3−l1l3)
3.5 歸納整理
定義 g:=l12+l22+l32−l1l2−l2l3−l1l3,則z正運動學模型可歸納爲
kϕ=2d(l1+l2+l3)g
ϕ=tan−1(33l2−l3l3+l2−2l1)
s=gnd(l1+l2+l3)⋅sin−1(3ndg)
注意上式中g→0lims=3l1+l2+l3
4. 總結
以上就是一種氣驅型柔性臂的z正運動學推導,其實可以看到所運用到的數學工具除了基變換矩陣那裏以外,其他的基本上就是高中幾何代數就可以解決的……所以說有些東西乍一看上去彷彿很艱深晦澀,可是鑽研進去就會發現其實也並不很難,甚至還有點意思。另外一點收穫就是看論文的時候很容易看人家推導順着思路就覺得,哦,對,就這麼推,很簡單,就好比做題的時候看着參考答案自然覺得很簡單,但是合上答案自己做題就發現不是那麼一回事,所以看論文想要消化作者的精髓,自己推導公式是必不可少的,再一點就是要反覆讀啦。