智慧型機器手臂–第一部分:機械結構和接線

robotic arm

您有沒有想過擁有一款可以幫您滿足日常需求的設備?而且該設備能夠區分您(主人)和其他非授權使用者,這並非是一款簡單的普通工具。在本教材中,我們將向您介紹一款能夠識別並理解您語音命令的智慧型機器手臂。此機器手臂透過OpenCV軟體實現了人臉識別系統。(為了做測試,我們開發了演算法來檢測小球顏色。)

作為MakeMIT硬體駭客馬拉松專案的一部分,我與同事Isac Andrei和VladNiculescu合作研發了該智慧型機器手臂。由於其創新程度和創造性,該專案名列前10名。

硬體

  • Arduino UNO
  • 麥克風
  • 網路相機
  • 伺服馬達

軟體

工具

  • 膠槍
  • 壓克力
  • 螺絲
  • 膠帶
  • 電鋸

 

第一步:結構與力學

處理機器手臂的手腕時,必須非常小心。如果不考慮伺服馬達角度就開始組裝手腕零件,那麼可能會導致手臂發生故障—機器手臂可能發生您無法控制的失控行為。在步驟1中,您需要做的就是將5台伺服馬達連接到Arduino開發板上,並找到每個伺服機構的正確位置。正確的順序是自下而上進行校正。

I.底座

底座設計為可向左移動90度,也可向右移動90度。將它放置在金屬升降機上,使基座可以旋轉。這是一個關鍵,因為當發出語音命令的人移動時,手臂必須緊跟該人物並進行追蹤。而且這種行為必須非常精準,以便相機可以一直對準人臉。

robotic arm

圖1:底座的上視圖

底座伺服系統安裝在一個40x30cm的大壓克力板上,以保持穩定。您也可以用更強大的材料替代壓克力板,進而支撐能夠抓起重物的大型機器手臂。

伺服馬達安裝在一塊12x12cm的小塊壓克力板上。我們在小塊板中間鑽了一個與伺服馬達相同尺寸的孔。然後,將伺服馬達用螺絲鎖到孔上(圖2)。

robotic arm

圖2:底座的前視圖

II.肩部

肩部由二台伺服馬達組成,它們相互配合以抓起物體並放在正確的位置。本專案最重要的校正就在肩部。這兩個伺服系統必須完美結合,從Arduino開發板上獲得完全相同的命令,並且必須反相同步。為了獲得良好的同步性,將二台馬達安裝上機器手臂之前,必須將其面對面安裝,並通過程式設計擺動到同一側。

robotic arm

圖3:伺服馬達同步性

如果它們的行為不一致,那麼處於上游位置的伺服馬達會強制第二個馬達移動,從而產生短路,最終導致第二個伺服電機燒掉。

如果伺服系統的解析度不一樣,您將無法使它們同步。在這種情況下,最好的辦法則是僅使用一種伺服馬達。如果它們品質很好,那麼實際扭矩會與資料表相同,並且具有提升重物的能力。

另外,為了安全起見,我們在肩部的基座上裝一個旋鈕。您也可以使用金屬支架,將其放置到所需角度,以防止機器手臂墜落。

robotic arm

圖4:肩部零件配置

圖4顯示了安裝在我們之前所構建的底座上的肩部結構。伺服機構固定的部位採用旋轉結構。肩部必須牢牢地固定在基座上,但也必須能夠自由旋轉。平衡旋轉部分的每一邊也很重要,因為我們的裝置含有一些較重的支撐用金屬零件。中心重量必須相同,這樣機器手臂旋轉時才不會掉落。對於這一部分,我們還放置了一個金屬肘,以便伺服機構沒有插入時能維持機器臂重量。

III.肘部

現在,我們來看一下肘部。肘部伺服部分透過手臂高度進行控制。由於手臂必須返回到原來位置,所以肘部延伸部分與肩部之間的最大角度不得超過100度。我們對該機器手臂原型的肘部伺服系統進行程式設計,讓手臂撿起一個球—系統會協調抓取器和肩膀,兩者相互配合,最終將球抓起。

肘部的工作原理如下:

  • 當肘部延伸部分與肩部之間的角度較小時,肩部的角度將增大;
  • 當肘部和肩部之間的角度較大時,肩部的角度將會減小。

robotic arm

圖5:肘部

肘部使用SketchUp STL進行設計,並用3D印表機列印。(STL可以將圖形轉換為能夠列印的3D模型)。根據設計,肘部在允許彎曲的角度上連接二個延伸部分。

robotic arm

圖6:肘部的3D模型

當然,肘部的延伸部件需要能夠很容易地抬起,所以除了肘部,延伸部分不應連接上其他任何東西。每個壓克力延伸零件尺寸為20 x 7釐米。延伸部分的另一端再用小壓克力片粘合起來,以便將兩部分固定在一起。您可以改變尺寸,但是由於伺服機構的限制,機器手臂的尺寸不應太大。

如果您決定更改尺寸(比如製作一個較小的手臂),那麼請確保計算出零件的正確尺寸。否則,手臂將發生故障,無法拾起重物。網路相機則安裝在延伸部件之上。

robotic arm

圖7:安裝在機器手臂上的網路相機

VI.手腕

手腕由能夠抓取某些小物體的爪鉗/捕捉器構成。在本文中,我們以抓取小球為例。當然,手臂還可以抓取並提起適合爪鉗的其他物體。您還可以根據您的具體偏好進行設計—必要時請使用SG90 SketchUp檔進行必要修改。您只需根據所抓物體的形狀來改變爪鉗形狀即可。

robotic arm

圖8:手腕

手腕部分也使用SketchUp中的3D模型構建。如果我們想要拿起較重的物體,可以用爪鉗抓住它們。但是,爪鉗抓取物體時如果較為費力,可能會對其造成損壞。

robotic arm

圖9:手腕的3D模型

 

步驟2:連接伺服馬達

  1. 底座

robotic arm

圖10:底座伺服器系統接線圖

底座伺服(圖2)被設置為從0度開始,這意味著它將從左側開始搜索使用者。其旋轉角度為140度—機器手臂可追蹤人員遞送物體的範圍。我們在0度進行校正—這是伺服的中心,葉片面向上方的垂直放置。

在控制功能中,基座的解析度為4度。這是因為在這種情況下,精度不需要太完美。較高的精度反而會導致處理變得緩慢。

每次我們都都需要檢查伺服馬達的位置,因為相互作用即時進行。為此,我們開發了兩個功能:左方和右方。這兩個功能可以從35個不同位置追蹤人員。

 

  1. 肩部和肘部

肩部與肘部一起能夠完成一項重要功能。他們必須彎曲機器手臂。我們應當指出以下限制,這很重要:

由於前臂的長度,肩部的操作角度不能小於45度,我們有2個例子:

當肩部處於最低位置時,機器人手臂可以拾起最遠的物體;

當肩部處於最高位置時,機器人手臂可以拾起最近的物體;

我們選定的角度對於肩部來說已經足夠,因為它足以讓機器手臂拾起物體並將其交給正確的人員。

robotic arm

圖11:肩部範圍

肘部的最大位置不能超過140度,因為該專案的目的是在平面上構建機器手臂,並且將相機與使用者處保持在同一高度。我們認為只用70度即可,因為這足以彎曲機器手臂。

肩部角度和肘部角度之間的組合使手臂具有很大的靈活性,從而形成完整的機器手臂,最終實現抓取物體的功能。

robotic arm

圖12:肘部範圍

robotic arm

圖13:肩部伺服器接線圖

robotic arm

圖14:肘部伺服器接線圖

本次智慧型機器手臂教材的第一部分描述了手臂的一般機械結構,以及伺服馬達如何與機器手臂各連接處進行連接的方法。本教材的第二部分將會介紹幾款用C#編寫的機器手臂控制程式。敬請繼續留意我們的發表內容!