前言
互聯(lián)網時代,技術的進步,文化的傳播,自由的表達,讓每一個個體都有了閃光的機會。形形色色的極客,各種 DIY,關注技術時尚,展示自己創(chuàng)意,也是新時代的賞心樂事。
工業(yè)機器人,高自由度的機械手臂,明晃晃的高科技啊。擁有一臺靈活控制的機械手,應該是極客們的幸福事情。
現(xiàn)在機會來了,Dobot 團隊開發(fā)了一款桌面型機械手,可以擺在書桌上,小巧玲瓏,控制簡單靈活。能做什么,就等你開發(fā)了。
開箱
不多說,拆箱畫線機器視頻!看看全家福吧。
不得不提是包裝格外有創(chuàng)意,讓人想起來千層餅。看到上圖那厚厚的一摞泡沫塑料了嗎?看看拆箱時的情景吧。
給未出殼的機械手來個特寫吧!機械手金屬表面的處理很有質感。
抓手設計的很巧妙,抓緊狀態(tài)->電機旋轉->松開狀態(tài)->電機旋轉->抓緊狀態(tài),這期間電機不需要反向旋轉。
很用心的設計,連接線上用標簽扎線,既可以提示,又可以扎線。
裝配
Dobot 配件有機械臂主體、電源線、控制器、USB 線、爪子和激光頭等配件,機械臂由三個電機控制。
控制器的每個接線都有標簽,其中1號電機接 Stepper_R 電機,2號電機接 Stepper_L 電機,3號電機接 Stepper_rot 電機。
Dobot 主體有三個臂可以運動,分別為圖2-2中的1、2、3表示。其中1號臂由1號電機控制,2號臂由2號電機控制,3號臂由3號電機控制。
為了獲得當前機械臂的姿態(tài),需要安裝傳感器,1號臂安裝標簽為 rear arm 的傳感器,2號臂安裝標簽為 Forearm 的傳感器(注意:由于2號臂較窄,需要拆卸2號臂才可以裝入)
控制器有兩個接口,分別為 USB 接口和電源接口,插入電源和 USB 接口,則帶有氣泵功能的機械手臂安裝完成。插好 Dobot 機械手上的電機、傳感器連接控制器,然后通過 USB 與電腦相連。
使用
裝配完成,接下來可以通電操作啦。沒上電之前,機械手軟軟的,先讓機械手擺放一個Pose,打開電源開關。控制器立刻接管機械手的控制權,機械手硬了。小伙伴千萬要留意,通電后就不要強行轉動機械手。
下面讓我們先在電腦上測試一下。去Dobot官網下載并安裝驅動。驅動是Arduino驅動,Arduino可是非常流行的開源硬件,簡單易上手,用過的都知道。安裝件dobottools,撥動開關切換控制器為USB控制。
運行DobotClient軟件,Dobot服務器會自動運行。點擊右上角的菜單,可以對Dobot進行配置,比如設置機械手末端是抓手、激光筆或者氣泵。
DobotClient示教功能提供兩種控制模式:單關節(jié)點動和坐標軸點動。單關節(jié)點動模式直接控制機械手的關節(jié)轉動,挖掘機就是這么開的。坐標軸點動模式控制機械手末端移動,由程序計算關節(jié)運動,這種模式更直觀。接下來就可以控制機械手擺Pose了。
使用再現(xiàn)功能可以重復你先前的操作,不過需要你記錄下每一個關鍵動作。然后點擊啟動按鈕就可以回放動作了。
手機移動端提供了iOS和Android客戶端控制軟件,本次使用iOS端測試。下載安裝Dobot App,運行之前要做好準備工作。把控制器切換至藍牙控制,手機打開藍牙開關,可以運行App了。
Dobot App同樣提供了兩種控制模式:通過J1、J2、J3控制關節(jié)轉動,或通過直接滑動機械手臂進行控制。
通過設置再現(xiàn)點,可以重復執(zhí)行先前動作。
準備工作完成,先用氣泵抓物體試試。抓硬幣自然不再話下,拿游標卡尺來,沒問題。找個茶葉盒,裝上重物,再試試,重量291.8克。能力很強啊,繼續(xù)測試,3.5寸硬盤有596克,真的抓不起來了。
卸下氣泵,換上抓手??纯葱Ч? 今年是猴年,讓我們看個抓猴子的視頻吧。
結構與控制
機械手結構
Dobot機械手結構簡單,設計巧妙。通過大臂小臂上的連桿機構可以保證不論大臂小臂的角度如何變化,末端吸盤始終垂直于水平面。
機械結構
機械手控制模型
對Dobot機械手的控制就是控制大臂、小臂和底盤的角度,轉換為坐標系,以此實現(xiàn)對吸盤的定位。AO 、CD永遠垂直于水平面。XYZ坐標系原點位于機械手固定底盤。
機械臂簡圖
看起來這個機械手的控制還是非常簡單的嗎,只要有中學數(shù)學基礎就可以理解了。
編程控制
API接口
簡單程序流程
控制Dobot機械臂運動的簡單流程。
1)調用ConnectDobot連接機械手
2)創(chuàng)建一個線程以固定間隔調用PeriodicTask函數(shù)
3)設置大小臂的初始位置、超時時間、末端類型、示教/再現(xiàn)的靜/動態(tài)參數(shù)。
4)指令機械手移動到指定坐標(x,y,z)
5)獲取機械手姿態(tài),檢測是否移動到(x,y,z),未到達目標位置則跳轉4
6)讀取下一個機械手要到達的坐標(x,y,z),跳轉4
簡單的編程測試
Dobot API動態(tài)鏈接庫采用C++編碼,支持C、C++、C#、java等語言的開發(fā),需要使用DobotDll.dll動態(tài)鏈接庫、DobotDll.h接口聲明文件、DobotType.h數(shù)據結構定義文件,這些文件可以通過Dobot官網下載。
生成lib文件
在控制Dobot時還需要使用Dobot靜態(tài)庫,由于沒有提到靜態(tài)庫,則需要通過DobotDll.h動態(tài)庫生產靜態(tài)庫,需要以下幾步:
1)使用VS自帶工具DUMPBIN將DLL中的導出函數(shù)表導出到(.DEF)文件。
DEF轉化
2)將導出的(.DEF)文件整理為符合(.DEF)個數(shù)的函數(shù)導出文件。
DEF修改
3)使用VS自帶的LIB工具將(.DEF)文件輸出為VS格式的LIB文件。
LIB生成
編寫代碼
使用VS 建立VC++控制臺工程,編寫C++代碼。代碼有點長,貼在這里有湊字數(shù)的嫌疑。哈哈,只貼個輪廓了,有需要代碼的小伙伴請留言。
程序測試
我們編寫的程序能夠控制機械手按照輸入的坐標連續(xù)運動。接下來讓我們測試一下書法筆畫圖。書法筆筆頭較軟,即使Z軸方向有誤差,也能順利寫字畫圖。卸下吸盤,拆開包裝,裝上書法筆。
編程控制書法筆
開機測試
重復定位精度
作為一款機械手,一個非常重要的指標就是末端位置重復定位精度(重復定位精度)。當機械手重復同一動作時,末端位置的偏差與這一指標有密切關系。Dobot給出的是0.2毫米。也就是說控制機械手反復執(zhí)行同一個動作,位置偏差不超過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(吸盤)
改裝可行性
極客總是不甘于墨守成規(guī)的,改造才是最有樂趣的事情。接下來讓我們看看Dobot機械手的可改造性。
機械改裝
Dobot機械手機械部分最方便改裝的部分是末端。Dobot隨箱送來許多末端配件,讓我們先瀏覽下。配件主要包括抓手、激光筆、觸摸筆、可轉動的吸盤。當然也可以裝配其它的東西,比如掛個布娃娃,帶個面具之類的。
機械手末端(空)
末端用零配件
電氣改裝
Dobot控制器內部也有改造的余地。氣泵、繼電器都是可拆卸的。主控板上激光筆接口、抓手接口、控制吸盤轉動電機接口、吸盤用氣泵接口都可以改插其它模塊,只要能搞清楚接口引腳定義、電氣特性等。
電氣改造配圖
編程接口
Dobot官網提供的開發(fā)文檔包含DobotAPI文檔、通訊協(xié)議、DobotDemo、DobotTools源碼。
開發(fā)文檔內容圖
編程接口Dobot API包括DobotAPI.DLL動態(tài)連接庫及C/C++頭文件。
l 提供Java、Python、WPF、JS等示例代碼
l 支持Windows操作系統(tǒng)
l 支持C、C++、C#、Python、Java、JS等語言開發(fā)
會C、C++、C#、Python、Java、JS等其中任何一門語言的小朋友,都可以編寫代碼隨心所欲的控制機械手了。
二次開發(fā)難度
作為極客,自己打造的程序才有成就感。那么編程控制機械手,上手程度有多難?我花了半天時間,包括閱讀文檔、編程、調試等,能順利控制機械手畫矩形了。
《插入視頻:水筆畫矩形.mp4》
程序使用C語言編寫,共137行代碼。編程中用到了多線程,這個稍有難度。難度中等偏下,有一定編程經驗且能獨立編寫100行以上程序的同學,努力一下都可以做到的。
如果熟悉串口通信編程,還可以繞過DobotAPI,參考Dobot通信協(xié)議文檔,直接編程操作串口,自由度更高,但難度有些偏高。Github網站有Dobot的開源代碼,有興趣的小伙伴可以到Github閱讀(https://github.com/maxosprojects/open-dobot)。
腦洞大開(有了機械手可以做什么?)
裝上激光器,結合人臉識別技術,控制機械手自動瞄準目標,配上聲音“舉起手來”,可以拍電影了。
或者找個四輪移動平臺,裝上機械手,是吊車還是挖掘機還是什么東東,就看你的改裝水平了。
四輪移動機械手
給機械手裝上抓手,控制機械手甩動手臂,拋球,可以投籃了。給機械手帶個面具,然后配上攝像頭,裝上音箱,給小朋友講故事?;蛘邇蓚€機械手玩擊劍,就看腦洞開的有多大了。
體驗總結
Dobot這款桌面型機械手,的確是為桌面設計,體積小,不占空間。執(zhí)行動作時非常安靜,步進電機噪聲小畫線機器視頻;唯獨氣泵電機的聲音稍大,室內環(huán)境完全可以接受。Dobot機械手結構簡單,控制參數(shù)少,容易上手。
控制器的硬件接口也十分便捷,可以根據需要,增加相應的物理器材。外圍連接方便。可以通過電腦使用USB進行控制,也可以通過藍牙無線控制。不論是Android還是IOS都有可用App。
Dobot提供了電腦及手機上的控制軟件。特別值得一提的是,手機App操作最方便。GitHub上有Dobot開源代碼,適合有意深入研究的同學。
Dobot API支持多種語言開發(fā),包括C、C++、C#、JAVA、Python。API接口函數(shù)少,學習簡單,二次開發(fā)難度小。
總的來說,連接方便、協(xié)議公開、快速開發(fā)、重復精度高,適用極客。
最后提兩點建議
?。?)控制器和機械手之間的連線有些凌亂,希望更清爽些了;
?。?)加強文檔。我在編程時走了很多彎路,如果文檔清晰,并適度講解控制器內部結構,會更有利于二次開發(fā)。
---------------END----------------
是不是很好很強大~想要看看這個機械臂的是怎么工作的嗎?
打開微信搜索并關注公眾號:極果網
公眾號回復:機械臂
比人手還靈活~
評論列表
還沒有評論,快來說點什么吧~