您的位置:首頁>正文

能寫能抓還能畫,Dobot機械臂讓電腦的代碼變身鋼鐵俠

前言

互聯網時代,技術的進步,文化的傳播,自由的表達,讓每一個個體都有了閃光的機會。形形色色的極客,各種 DIY,關注技術時尚,展示自己創意,也是新時代的賞心樂事。

工業

機器人

,高自由度的機械手臂,明晃晃的高科技啊。擁有一台靈活控制的機械手,應該是極客們的幸福事情。

現在機會來了,Dobot 團隊開發了一款桌面型機械手,可以擺在書桌上,小巧玲瓏,控制簡單靈活。能做什麼,就等你開發了。

開箱

不多說,拆箱!看看全家福吧。

不得不提是包裝格外有創意,讓人想起來千層餅。看到上圖那厚厚的一摞泡沫塑料了嗎?看看拆箱時的情景吧。

給未出殼的機械手來個特寫吧!機械手金屬表面的處理很有質感。

抓手設計的很巧妙,抓緊狀態->電機旋轉->鬆開狀態->電機旋轉->抓緊狀態,這期間電機不需要反向旋轉。

很用心的設計,連接線上用標籤紮線,既可以提示,又可以紮線。

裝配

Dobot 配件有機械臂主體、電源線、控制器、USB 線、爪子和鐳射頭等配件,機械臂由三個電機控制。

控制器的每個接線都有標籤,其中1號電機接 Stepper_R 電機,2號電機接 Stepper_L 電機,3號電機接 Stepper_rot 電機。

Dobot 主體有三個臂可以運動,分別為圖2-2中的1、2、3表示。其中1號臂由1號電機控制,2號臂由2號電機控制,3號臂由3號電機控制。

為了獲得當前機械臂的姿態,需要安裝感測器,1號臂安裝標籤為 rear arm 的感測器,2號臂安裝標籤為 Forearm 的感測器(注意:由於2號臂較窄,需要拆卸2號臂才可以裝入)

控制器有兩個介面,分別為 USB 介面和電源介面,插入電源和 USB 介面,則帶有氣泵功能的機械手臂安裝完成。插好 Dobot 機械手上的電機、感測器連接控制器,然後通過 USB 與電腦相連。

使用

裝配完成,接下來可以通電操作啦。沒上電之前,機械手軟軟的,先讓機械手擺放一個Pose,打開電源開關。控制器立刻接管機械手的控制權,機械手硬了。小夥伴千萬要留意,通電後就不要強行轉動機械手。

下面讓我們先在電腦上測試一下。去Dobot官網下載並安裝驅動。驅動是Arduino驅動,Arduino可是非常流行的開源硬體,簡單易上手,用過的都知道。安裝件dobottools,撥動開關切換控制器為USB控制。

運行DobotClient軟體,Dobot伺服器會自動運行。點擊右上角的功能表,可以對Dobot進行配置,比如設置機械手末端是抓手、鐳射筆或者氣泵。

DobotClient示教功能提供兩種控制模式:單關節點動和坐標軸點動。單關節點動模式直接控制機械手的關節轉動,挖掘機就是這麼開的。坐標軸點動模式控制機械手末端移動,由程式計算關節運動,這種模式更直觀。接下來就可以控制機械手擺Pose了。

使用再現功能可以重複你先前的操作,不過需要你記錄下每一個關鍵動作。然後點擊啟動按鈕就可以重播動作了。

手機

移動端提供了iOS和Android用戶端控制軟體,本次使用iOS端測試。下載安裝Dobot App,運行之前要做好準備工作。把控制器切換至藍牙控制,

手機

打開藍牙開關,可以運行App了。

Dobot App同樣提供了兩種控制模式:通過J1、J2、J3控制關節轉動,或通過直接滑動機械手臂進行控制。

通過設置再現點,可以重複執行先前動作。

準備工作完成,先用氣泵抓物體試試。抓硬幣自然不再話下,拿遊標卡尺來,沒問題。找個茶葉盒,裝上重物,再試試,重量291.8克。能力很強啊,繼續測試,3.5寸硬碟有596克,真的抓不起來了。

視頻:氣泵吸取重物-卡尺

視頻:氣泵吸重物-茶葉盒

卸下氣泵,換上抓手。看看效果, 今年是猴年,讓我們看個抓猴子的視頻吧。

抓手-合圖

視頻:抓手-猴子

結構與控制

機械手結構

Dobot機械手結構簡單,設計巧妙。通過大臂小臂上的連杆機構可以保證不論大臂小臂的角度如何變化,末端吸盤始終垂直於水平面。

機械結構

機械手控制

模型

對Dobot機械手的控制就是控制大臂、小臂和底盤的角度,轉換為坐標系,以此實現對吸盤的定位。AO 、CD永遠垂直於水平面。XYZ坐標系原點位於機械手固定底盤。

機械臂簡圖

看起來這個機械手的控制還是非常簡單的嗎,只要有中學數學基礎就可以理解了。

程式設計控制

API介面

簡單程式流程

控制Dobot機械臂運動的簡單流程。

1)調用ConnectDobot連接機械手

2)創建一個執行緒以固定間隔調用PeriodicTask函數

3)設置大小臂的初始位置、超時時間、末端類型、示教/再現的靜/動態參數。

4)指令機械手移動到指定座標(x,y,z)

5)獲取機械手姿態,檢測是否移動到(x,y,z),未到達目標位置則跳轉4

6)讀取下一個機械手要到達的座標(x,y,z),跳轉4

簡單的程式設計測試

Dobot API動態連結程式庫採用C++編碼,支援C、C++、C#、java等語言的開發,需要使用DobotDll.dll動態連結程式庫、DobotDll.h介面聲明檔、DobotType.h資料結構定義檔,這些檔可以通過Dobot官網下載。

生成lib檔

在控制Dobot時還需要使用Dobot靜態程式庫,由於沒有提到靜態程式庫,則需要通過DobotDll.h動態庫生產靜態程式庫,需要以下幾步:

1)使用VS自帶工具DUMPBIN將DLL中的匯出函數表匯出到(.DEF)文件。

 DEF轉化

2)將匯出的(.DEF)檔整理為符合(.DEF)個數的函數匯出檔。

DEF修改

3)使用VS自帶的LIB工具將(.DEF)檔輸出為VS格式的LIB檔。

LIB生成

編寫代碼

使用VS 建立VC++控制台工程,編寫C++代碼。代碼有點長,貼在這裡有湊字數的嫌疑。哈哈,只貼個輪廓了,有需要代碼的小夥伴請留言。

程式測試

我們編寫的程式能夠控制機械手按照輸入的座標連續運動。接下來讓我們測試一下書法筆劃圖。書法筆筆頭較軟,即使Z軸方向有誤差,也能順利寫字畫圖。卸下吸盤,拆開包裝,裝上書法筆。

程式設計控制書法筆

開機測試

重複定位精度

作為一款機械手,一個非常重要的指標就是末端位置重複定位精度(重複定位精度)。當機械手重複同一動作時,末端位置的偏差與這一指標有密切關係。Dobot給出的是0.2毫米。也就是說控制機械手反復執行同一個動作,位置偏差不超過0.2毫米。

讓我們看看重複性真的如此好嗎?把機械手末端裝上水筆,程式設計控制末端的座標,反復畫直線,畫線過程是“中à右à中à左à中”,重複3次。

視頻:重複定位精度測試

使用遊標卡尺測量測量一下圖中藍色標記的位置寬度。

直線測量位置示意圖 

左中、右中位置是筆不斷往返的點,筆不會停頓,因此是測量重複精度的最好位置;(而中點是起點也是定位點,左、右點是停頓折返點,不適合)。考慮到水筆頭部直徑3mm以及墨水擴散的因素,可以推斷重複精度小於0.4mm。

哈哈,這個精度足夠極客們在實驗室High了。

筆頭直徑

0.3mm

線長

42.20mm

線寬(中)

2.08mm

線寬(左端)

0.71mm

線寬(右端)

0.70 mm

線寬(左中)

0.40mm

線寬(右中)

0.44mm

伸展範圍

讓我們再測量一下機械手觸及範圍。以底座前緣為起點,測量機械手末端吸盤能觸及最遠與最近距離。

伸展範圍測量示意圖

當觸及水平面時,吸盤能控制的最遠距離278毫米,最近距離31.8mm。

機械手控制範圍測試(動畫 最遠距離)

最近距離測試1(吸盤)

最近距離測試2(吸盤)

若允許吸盤高於水平面(高23.5mm),則距底座前緣最近距離為40.1mm。

最近距離測試3(吸盤)

最近距離測試4(吸盤)

改裝可行性

極客總是不甘於墨守成規的,改造才是最有樂趣的事情。接下來讓我們看看Dobot機械手的可改造性。

機械改裝

Dobot機械

手機

械部分最方便改裝的部分是末端。Dobot隨箱送來許多末端配件,讓我們先流覽下。配件主要包括抓手、鐳射筆、觸摸筆、可轉動的吸盤。當然也可以裝配其它的東西,比如掛個布娃娃,帶個面具之類的。

機械手末端(空)

末端用零配件

電氣改裝

Dobot控制器內部也有改造的餘地。氣泵、繼電器都是可拆卸的。主控板上鐳射筆介面、抓手介面、控制吸盤轉動電機介面、吸盤用氣泵介面都可以改插其它模組,只要能搞清楚介面引腳定義、電氣特性等。

電氣改造配圖

程式設計介面

Dobot官網提供的開發文檔包含DobotAPI文檔、通訊協定、DobotDemo、DobotTools源碼。

開發文檔內容圖

程式設計介面Dobot API包括DobotAPI.DLL動態連接庫及C/C++標頭檔。

l 提供Java、Python、WPF、JS等示例代碼

l 支援Windows作業系統

l 支援C、C++、C#、Python、Java、JS等語言開發

會C、C++、C#、Python、Java、JS等其中任何一門語言的小朋友,都可以編寫代碼隨心所欲的控制機械手了。

二次開發難度

作為極客,自己打造的程式才有成就感。那麼程式設計控制機械手,上手程度有多難?我花了半天時間,包括閱讀文檔、程式設計、調試等,能順利控制機械手畫矩形了。

《插入視頻:水筆劃矩形.mp4》

程式使用C語言編寫,共137行代碼。程式設計中用到了多執行緒,這個稍有難度。難度中等偏下,有一定程式設計經驗且能獨立編寫100行以上程式的同學,努力一下都可以做到的。

如果熟悉串口通信程式設計,還可以繞過DobotAPI,參考Dobot通信協議文檔,直接程式設計操作串口,自由度更高,但難度有些偏高。Github網站有Dobot的開原始程式碼,有興趣的小夥伴可以到Github閱讀(

https://github.com/maxosprojects/open-dobot

)。

腦洞大開(有了機械手可以做什麼?)

裝上雷射器,結合人臉識別技術,控制機械手自動瞄準目標,配上聲音“舉起手來”,可以拍電影了。

或者找個四輪移動平臺,裝上機械手,是吊車還是挖掘機還是什麼東東,就看你的改裝水準了。

四輪移動機械手

給機械手裝上抓手,控制機械手甩動手臂,拋球,可以投籃了。給機械手帶個面具,然後配上攝像頭,裝上

音箱

,給小朋友講故事。或者兩個機械手玩擊劍,就看腦洞開的有多大了。

體驗總結

Dobot這款桌面型機械手,的確是為桌面設計,體積小,不占空間。執行動作時非常安靜,步進電機雜訊小;唯獨氣泵電機的聲音稍大,室內環境完全可以接受。Dobot機械手結構簡單,控制參數少,容易上手。

控制器的硬體介面也十分便捷,可以根據需要,增加相應的物理器材。週邊連接方便。可以通過電腦使用USB進行控制,也可以通過藍牙無線控制。不論是Android還是IOS都有可用App。

Dobot提供了電腦及

手機

上的控制軟體。特別值得一提的是,

手機

App操作最方便。GitHub上有Dobot開原始程式碼,適合有意深入研究的同學。

Dobot API支援多種語言開發,包括C、C++、C#、JAVA、Python。API介面函數少,學習簡單,二次開發難度小。

總的來說,連接方便、協議公開、快速開發、重複精度高,適用極客。

最後提兩點建議

(1)控制器和機械手之間的連線有些淩亂,希望更清爽些了;

(2)加強文檔。我在程式設計時走了很多彎路,如果文檔清晰,並適度講解控制器內部結構,會更有利於二次開發。

喜欢就按个赞吧!!!
点击关闭提示