無人生化實驗室
新冠病毒從2020年開始肆虐全球,撼動了人們以往對世界的認知,為了讓疫情早日得到緩解,各國的精英醫療團隊無不廢寢忘食的研究新型疫苗,開發的過程一定會歷經大量繁瑣的實驗流程,這些工序如果都以人力操作不只費力,還有可能讓人員暴露在危險之中,這時若能有機械手臂代替人類完成這些操作就再好不過了。
為此我用Dobot手臂與改造過的夾爪,搭配自己設計的3D列印試管套件,進行一些有趣的任務,模擬用手臂實現自動化實驗的步驟。
自訂義末端工具
改造過後的夾爪雖然用的還是原本的套件,但嚴格來說各項參數都不一樣了,必須歸類為自訂義的末端工具,使用自訂義末端工具最重要的是設定Bias,先點選上方末端工具的Advanced。
此時會跳出一個自訂義末端工具的設定視窗,End Type欄位可以自己設定末端工具名稱,xBias、yBias、zBias是三個方向的偏量,我先設定一個空的末端工具,也就是沒裝東西三個偏差值都是0,按下Save儲存設定並將手臂歸零,會發現X的數值約為200。
此時若從底下座標200的地方用直尺對上來,會發現偏差值為0的地方是在前臂末端鉚釘正中間的位置,之前用過所有的官方末端工具都是有偏差值的,只是這些偏差值預先都設定好了。
改造過後的夾爪偏差值跟原本是絕對不一樣的,點開Advanced自訂義末端工具,點擊Add新增自訂義末端工具,我事先量好的數值X方向偏差為130mm、Y方向偏差為23mm,如上圖所示將EndType自訂義末端工具名稱設為Gripper2,並將各個方向的偏差值填入,按下Save儲存後進行Home歸零的動作。
這時呈現出來的座標就是夾爪開口處的位置,至此就完成自訂義末端工具的流程,這時可以試試看按下右側圖型介面Y+Y-的按鈕,看看會發生甚麼事。
實驗規劃
接下來模擬生化實驗的配置如左上圖所示,目標是要將下方試管的試劑倒進右側的第一個試管中,由於改裝後的夾爪長度向外延伸不少,因此實驗器材擺放的位置也向外延伸,放在原本的H工作區之外,詳細的兩個試管座標如右上圖所示。
整個任務內容相當簡單,就是將一個試管夾到另一個試管旁,旋轉夾爪倒出溶液就完成了,控制夾爪的積木在Motion裡的Gripper,積木下拉選單中Release夾爪會放開、Gripper是抓緊,Disable則為,讀者可先自行研究如何完成任務,再參考下列示範程式。
夾爪轉向修正
乍看之下移動試管的任務,好像沒有比用吸盤搬運貨物困難多少,但是有一個大前提是端茶倒水或移動試管的過程中,水不能倒出來!
在使用圖形介面或用[Move To]積木移動手臂時,夾爪怎麼會自己轉起來了,這樣手臂一邊動夾爪跟著轉,還沒移動到目的地水不就倒光了嗎?是甚麼造成這個現象呢?
R=Joint1+Joint4
我們先看回角度設定的公式,原本前端servo馬達轉軸朝下,並且為了在手臂移動過程中,使抓取物件的方向恆定,整個手臂以Joint1轉向時Joint4也要跟著修正,以保持R數值恆定。
而現在即便我們將夾爪改造轉向了,Joint4自動修正的特性還是保持著,才會出現手臂端茶時邊轉邊漏水的怪現象,這也不是手臂的問題,而是我們為了達成自己的使用需求對手臂做改造所產生的問題,為此我們能如何做修正呢?
在前面的範例程式中出現了這個積木組合,表示R=Joint1,換言之固定Joint4=0,但這個方法只適合小範圍移動時使用,且每移動一小段距離就要進行一次修正。
另一種是使用[SetJointAngle]直接指定Joint1~3的數值,使用這個積木時Joint4不會變動,適合手臂快速大範圍的旋轉。
最後就是將試管移動到定點,要進行倒水動作時R=Joint1+Angle,Joint1後面加的數字就是控制夾爪伺服馬達旋轉的角度,旋轉90度倒水,轉回45度停止倒水,以此完成整個實驗流程。
MLC題目
除了傾倒試管中的容易之外,有時也會需要將試管換位置,假設試管布局如下所示,試著將下方的三支試管移動到右邊的空試管架上。