馬超+范光宇+張治軍+黃達(dá)+何群
摘要:該文主要對(duì)四自由度機(jī)械臂控制系統(tǒng)進(jìn)行了研究與設(shè)計(jì),用于識(shí)別物體并抓取運(yùn)輸。首先,該文先對(duì)機(jī)械臂的整體機(jī)械結(jié)構(gòu)進(jìn)行設(shè)計(jì)包括它的底座、軀干、以及機(jī)械爪等,然后選擇合適的軀干以及鉤爪的驅(qū)動(dòng)方式,構(gòu)建出機(jī)械臂的機(jī)械結(jié)構(gòu)部分;然后,我們則對(duì)其運(yùn)動(dòng)方式進(jìn)行設(shè)計(jì),包括電路控制板和驅(qū)動(dòng)裝置的選擇,數(shù)據(jù)的接收以及發(fā)送方式,以及后期圖像接口的設(shè)計(jì)等;在軟件系統(tǒng)上選擇了可移植能力強(qiáng)大的OpenCV,其提供的視覺處理算法非常豐富強(qiáng)大:掃描圖像對(duì)齊、圖像去噪、物體分析等,從而加強(qiáng)控制軟件的可靠性和機(jī)器人運(yùn)行過程的安全性。實(shí)驗(yàn)表明,該機(jī)械臂控制系統(tǒng)采用OpenCV不僅具有很好的控制精度,還具有很好的穩(wěn)定性、準(zhǔn)確性,而且在很大程度上改善了定位精度。
關(guān)鍵詞:六自由度機(jī)械臂;OpenCV;伺服;制動(dòng)
中圖分類號(hào):TP302 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)33-0227-03
1 機(jī)械臂控制系統(tǒng)軟件設(shè)計(jì)
1.1 開發(fā)環(huán)境
本設(shè)計(jì)的開發(fā)環(huán)境是arduino。Arduino是一款完全開源的電子原型平臺(tái),包含了arduino板和arduino IDE。由歐洲開發(fā)團(tuán)隊(duì)開發(fā),使用類似C語(yǔ)言的processing開發(fā)環(huán)境。Arduino可以自行設(shè)計(jì)或者購(gòu)買已經(jīng)焊接好的板子,程序代碼寫在arduino IDE上,實(shí)現(xiàn)對(duì)arduino板子的控制。
1.2 國(guó)內(nèi)外研究現(xiàn)狀
作為近幾十年來(lái)發(fā)展起來(lái)的一種自動(dòng)設(shè)備,機(jī)械臂可以通過編寫軟件程序來(lái)完成目標(biāo)任務(wù),它不僅大部分機(jī)械臂共同的機(jī)械有點(diǎn),而且特別具有人的視覺以及判斷能力。在作業(yè)過程中,機(jī)械臂控制的準(zhǔn)確性和對(duì)環(huán)境的適應(yīng)性,已經(jīng)使其在各個(gè)領(lǐng)域有著廣闊的發(fā)展前景。高級(jí)類型的機(jī)械臂,可以執(zhí)行更復(fù)雜的操作。將機(jī)器臂運(yùn)用于工業(yè)生產(chǎn)過程,除了可以提高生產(chǎn)率之外,還能夠減弱工人的勞動(dòng)強(qiáng)度,使生產(chǎn)過程實(shí)現(xiàn)自動(dòng)控制。因此機(jī)械臂在近幾年得到了愈來(lái)愈廣泛的應(yīng)用。
在國(guó)外,工業(yè)機(jī)器人的發(fā)展已經(jīng)較為成熟,涵蓋于各個(gè)行業(yè),已經(jīng)得到了非常廣泛的運(yùn)用,而相比國(guó)內(nèi),我國(guó)基礎(chǔ)產(chǎn)業(yè)跟不上,機(jī)械設(shè)計(jì)的工藝也達(dá)不到一個(gè)極高的水平,而且部分設(shè)計(jì)不夠系統(tǒng)科學(xué),大多處于一個(gè)模仿的階段。以上原因?qū)е挛覈?guó)工業(yè)機(jī)器人在國(guó)際上并不能達(dá)到一個(gè)較高的水準(zhǔn)。如今國(guó)內(nèi)企業(yè)需要革新自己的技術(shù),加強(qiáng)學(xué)習(xí)才能在國(guó)際市場(chǎng)上占有一席之地。
1.3 總體思路
1.3.1 機(jī)械臂軟件設(shè)計(jì)核心思路
攝像頭采集視頻圖像->利用OpenCV獲得圖像的一幀->對(duì)此幀圖像進(jìn)行濾波處理->將圖像序列幀由RGB模型轉(zhuǎn)為HSV模型->對(duì)得到的二值圖像進(jìn)行輪廓檢測(cè)->創(chuàng)建回調(diào)函數(shù)并對(duì)得到的三幅圖像進(jìn)行合并->創(chuàng)建滑動(dòng)條窗口->將得到的圖像分為H,S,V三幅單通道圖像->在目標(biāo)體上繪制輪廓。
本文提到的OpenCV函數(shù)庫(kù)是一個(gè)開源的跨平臺(tái)的視覺圖像處理庫(kù),利用此庫(kù)中提供的開源算法并加以邏輯上的改進(jìn)來(lái)提取攝像頭中幀圖像,再使用顏色閾值調(diào)節(jié)功能進(jìn)行顏色識(shí)別,再對(duì)結(jié)果進(jìn)行一系列的處理達(dá)到預(yù)期要求。
1.3.2 OpenCV簡(jiǎn)介
OpenCV是一個(gè)基于開源發(fā)型的跨平臺(tái)計(jì)算機(jī)視覺庫(kù),可以運(yùn)行在眾多操作系統(tǒng)上,由一系列C函數(shù)和C++類構(gòu)成,輕量且高效,其提供的視覺處理算法非常豐富,被大量使用于眾多科學(xué)領(lǐng)域,衛(wèi)星地圖的圖像整合拼湊;醫(yī)學(xué)界病人器官圖像的去噪處理;安全系統(tǒng)中的物體動(dòng)態(tài)監(jiān)測(cè)而預(yù)警;軍事行動(dòng)中代替人眼而進(jìn)行眾多無(wú)人操作與活動(dòng),不光如此,在圖像處理能力外,還能對(duì)聲譜圖進(jìn)行識(shí)別操作從而進(jìn)行對(duì)聲音的識(shí)別。
1.4 單一模塊
1.4.1 顏色識(shí)別
顏色識(shí)別的首當(dāng)之事應(yīng)是正確選取顏色空間,常用的顏色空間有RGB、CMY、HSV、HIS等。本文采用RGB和HSV。
RGB(紅、綠、藍(lán))可以看成一個(gè)三維的坐標(biāo)系,一個(gè)坐標(biāo)點(diǎn)表示一種顏色。HSV是顏色空間模型。表示顏色的是Hue,與坐標(biāo)點(diǎn)不同,他使用有角度的圓形來(lái)表示相應(yīng)顏色,比坐標(biāo)點(diǎn)更加靈活。表示飽和度的是Saturation,飽和度越低,則顏色填充就越少,例如圓心處取值為0,那么顏色會(huì)非常的淡,從底部往上,圓的半徑r越來(lái)越大,那么顏色就會(huì)越來(lái)越深。表示顏色的亮度的是Value,同理,也是從圓錐底端到頂端的數(shù)值漸變,底部表示為黑色,而頂端表示為白色。在實(shí)際實(shí)驗(yàn)環(huán)境中,RGB顏色經(jīng)測(cè)驗(yàn)非常容易受到強(qiáng)光、弱光、陰影等其他因素的干擾。相比之下,HSV空間能更加穩(wěn)定的處理這些光照的變化從而能更好地反應(yīng)顏色本質(zhì)、傳達(dá)正確信息。
1.4.2 圖像獲取與處理
1.4.2.1 圖像獲取與預(yù)處理
利用體感周邊外設(shè)中強(qiáng)大的Kinect攝像頭(VideoCapture(…))獲取周圍環(huán)境圖像,讀取一張圖片或視頻中的一幀圖像,進(jìn)行兩次濾波后利用cvtColor(imgOriginal, imgHSV, COLOR_BGR2HSV)函數(shù)進(jìn)行RGB與HSV的轉(zhuǎn)換,再在HSV空間下對(duì)彩色圖像做直方圖均衡化。
高斯濾波函數(shù):cvSmooth(…CV—GAUSSIAN…)。真實(shí)圖像的鄰近點(diǎn)像素如果變化,不會(huì)十分明顯,因?yàn)檎鎸?shí)圖像的像素點(diǎn)是緩慢遷移變化的,但是如果兩個(gè)像素點(diǎn)倏忽變化的話,便會(huì)有很大的像素差,就是我們說(shuō)的噪點(diǎn),這時(shí)候便要用到廣泛用于圖像處理的減噪的高斯濾波,他對(duì)整幅圖進(jìn)行加權(quán)平均,從而能夠減少噪聲卻又不失真(保留信號(hào))。
中值濾波函數(shù):cvSmooth(…CV—MEDIAN…)。有時(shí)候圖像中會(huì)有孤立的噪聲點(diǎn)從而會(huì)形成較大差異,這樣會(huì)影響平均值也會(huì)產(chǎn)生較大噪音,所以便使用非線性平滑的中值濾波,他把圖像中的孤立的噪聲點(diǎn)用其領(lǐng)域中各個(gè)點(diǎn)值的中值代替從而有效的去噪并且能夠保護(hù)信號(hào)邊緣使之不模糊,其算法也十分簡(jiǎn)單。
1.4.2.2 圖像細(xì)處理與生成
創(chuàng)建滑動(dòng)條:返回所讀取的顏色參數(shù)闕值。本文設(shè)定了6個(gè)參數(shù):
[LowHue(色度下限值)HighHue(色度上限值)LowSaturation(飽和度下限值)HighSaturation(飽和度上限值)HighBrightness(亮度上限值)LowBrightness(亮度下限值)]
之后得到返回的參數(shù)闕值,便用于檢查圖像像素灰度是否在設(shè)置的范圍內(nèi)并且可以得到目標(biāo)顏色的色度、飽和度和亮度單通道圖像。
將得到的三個(gè)單通道圖像進(jìn)行按位與運(yùn)算,這樣便能檢測(cè)其二值圖像,由于此時(shí)會(huì)出現(xiàn)噪聲,所以采用膨脹腐蝕的方法進(jìn)行圖像形態(tài)學(xué)處理,使得到的目標(biāo)體進(jìn)行最大的連通。
圖像生成:查找輪廓和繪制輪廓,輪廓正確勾勒,圖像便能正確顯示。利用OpenCV中對(duì)灰度圖像處理的Canny邊緣檢測(cè)法(cvCanny(…)),將試圖獨(dú)立的候選像素拼裝成輪廓,輪廓的形成是對(duì)這些像素運(yùn)用滯后性闕值,Canny邊緣檢測(cè)算法是高斯函數(shù)的一階導(dǎo)數(shù),是對(duì)信噪比與定位精度之乘積的最優(yōu)化逼近算子。
Canny函數(shù)輸入輸出的都為灰度圖,在邊緣檢測(cè)完成后,利用“cvFindContours(…)”函數(shù)得到輸出的圖像的輪廓函數(shù)(在二值圖像中),檢測(cè)輪廓個(gè)數(shù),然后再用“cvDrawContours(…)”函數(shù)繪制檢測(cè)的輪廓。
2 機(jī)械臂控制系統(tǒng)硬件設(shè)計(jì)
2.1 自由度及關(guān)節(jié)
本機(jī)械手臂采用4個(gè)電機(jī)實(shí)現(xiàn)4自由度,進(jìn)行手臂的升降,轉(zhuǎn)動(dòng),抓取,移動(dòng)等功能。
2.2 基座及連桿
2.2.1 基座
基座是機(jī)械手臂的支撐,起到穩(wěn)固的作用,為了使機(jī)械手臂更加的穩(wěn)定,增大其與表面的接觸面積,降低重心,提升其穩(wěn)定性能。同時(shí),基座的剩余部分,可用于防止控制的單片機(jī)及其擴(kuò)展版,使空間充分利用。
2.3 機(jī)械手臂設(shè)計(jì)
機(jī)械手是機(jī)械行業(yè)中必不可少的一個(gè)部分,主要起到操作,轉(zhuǎn)移等功能。根據(jù)工件的不同,機(jī)械手的精度,重量,形狀,光滑程度等都會(huì)不一樣,以至于達(dá)到節(jié)省成本或準(zhǔn)確夾取工件等實(shí)際要求。一般機(jī)械手包括:1)靈巧手;2)吸附手;3)夾取手;4)專用操作器。本設(shè)計(jì)因?qū)崿F(xiàn)的主要功能是夾取物體并轉(zhuǎn)移,工件物體不確定,因此采用夾取手作為機(jī)械手臂的機(jī)械手進(jìn)行操作。
2.4 驅(qū)動(dòng)方式
調(diào)用Servo實(shí)現(xiàn)對(duì)舵機(jī)的控制,定義多個(gè)舵機(jī),控制多個(gè)舵機(jī),具體內(nèi)容根據(jù)實(shí)際情況進(jìn)行調(diào)試。采用for語(yǔ)句,當(dāng)紅外或者視覺采集到數(shù)據(jù),給予反饋,實(shí)現(xiàn)舵機(jī)的停止或執(zhí)行下一步。舵機(jī)的轉(zhuǎn)動(dòng)的角度通過脈沖寬度占空比實(shí)現(xiàn)。由于舵機(jī)牌子不同,舵機(jī)轉(zhuǎn)動(dòng)的角度也會(huì)不同。
本機(jī)械手臂通過電機(jī)的扭矩進(jìn)行傳動(dòng)。手臂的升降,轉(zhuǎn)動(dòng),抓取都是由能夠承受很大力的電機(jī)進(jìn)行完成。在機(jī)械手臂抓取物體時(shí),盡量的平穩(wěn),并且力不能夠過大或者過輕,移動(dòng)時(shí)活動(dòng)空間大。
機(jī)械行業(yè)一般常用的驅(qū)動(dòng)方式有液壓驅(qū)動(dòng),電機(jī)驅(qū)動(dòng)和氣壓驅(qū)動(dòng)三種方式,每種驅(qū)動(dòng)方式各有優(yōu)劣。本設(shè)計(jì)機(jī)械手臂中,要求驅(qū)動(dòng)時(shí)滿足一下條件:1)輸出功率適中,效率高;2)精準(zhǔn)度盡可能的高;3)便于維護(hù),調(diào)試;4)安全性高;5)成本低。
綜上所述,本設(shè)計(jì)采用電機(jī)驅(qū)動(dòng)的方式對(duì)機(jī)械手臂進(jìn)行驅(qū)動(dòng)。電機(jī)參數(shù)如表所示:
本機(jī)械手臂采用控制角度的方式控制手臂。在初始位確定的情況下,通過控制角度,實(shí)現(xiàn)電機(jī)的轉(zhuǎn)動(dòng),其優(yōu)點(diǎn)是,能夠精確控制位置,但是因?yàn)樾枰M(jìn)行初始位置,導(dǎo)致運(yùn)行時(shí)間過長(zhǎng)。本文設(shè)計(jì)方案?jìng)鲃?dòng)方式為舵機(jī)直接傳動(dòng),故不多作介紹。
3 結(jié)論
機(jī)械臂控制系統(tǒng)是當(dāng)今社會(huì)的一項(xiàng)非常重要的研究課題,盡管其發(fā)展已經(jīng)有了一段很長(zhǎng)的歷史,但是其發(fā)展并不完全成熟。無(wú)論是學(xué)術(shù)界、工業(yè)還是在教育教學(xué)方面都一直在進(jìn)行著這方面的研究,距離成熟階段還要有一段時(shí)間。
本設(shè)計(jì)是基于OpenCV六自由度機(jī)械臂驅(qū)動(dòng)系統(tǒng)的設(shè)計(jì),以六自由度機(jī)械臂為控制對(duì)象,以arduino為開發(fā)環(huán)境,輔以有著豐富視覺處理算法的OpenCV軟件,并在此基礎(chǔ)上,采用先進(jìn)的控制理論,以正確的控制方法為指導(dǎo),進(jìn)行了系統(tǒng)的硬件設(shè)計(jì)。
在整個(gè)系統(tǒng)的設(shè)計(jì)中,硬件的設(shè)計(jì)是本論文研究的重點(diǎn),芯片的選型是系統(tǒng)硬件設(shè)計(jì)的保證,并且輔以可靠性分析為指導(dǎo),保證了系統(tǒng)運(yùn)行的可靠性和穩(wěn)定性。
從實(shí)驗(yàn)結(jié)果中看出,我們?cè)O(shè)計(jì)制作的基于OpenCV的四自由度機(jī)械臂能夠和一些中小型機(jī)器人控制器的性能要求類似,在操作靈活度、控制精度、易操作性等方面都表現(xiàn)出優(yōu)秀的性能。然而,仍有一些不足之處需要進(jìn)一步的改進(jìn)。
1)機(jī)械臂的傳感器提升。作為機(jī)械臂的控制對(duì)象,其結(jié)構(gòu)、性能的優(yōu)劣成為了機(jī)械臂的重中之重、中流砥柱,為了實(shí)際運(yùn)行效果的完美,我們機(jī)械臂的手爪部分應(yīng)加入壓力等傳感器,為控制的精準(zhǔn)提供、保證更為完整的信息。
2)完善機(jī)械臂自動(dòng)控制算法。算法的優(yōu)良決定了機(jī)械臂是否能自動(dòng)協(xié)調(diào)運(yùn)行,特別在輸入?yún)?shù)和機(jī)械臂抓取后的運(yùn)輸,需要更加優(yōu)化、靈活的算法,從而將計(jì)算出的控制參數(shù)變得更加精確和一體。
3)視覺的廣泛性運(yùn)用。視覺不單單只作用與顏色的閾值識(shí)別,還包括如骨骼識(shí)別,輪廓識(shí)別等等,再后續(xù)的研究中,添入以上功能,可以使機(jī)械臂的作用范圍變得更加的廣泛。
鑒于上述情況,在以后的工作中,我們應(yīng)該不斷改進(jìn)、完善,以提高該機(jī)械臂系統(tǒng)的穩(wěn)定性以及可靠性。
參考文獻(xiàn):
[1] 方龍,陳丹,肖獻(xiàn)保.基于單片機(jī)的機(jī)械手臂控制系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)與信息技術(shù),2012,8(8):89-90.
[2] 任美玲.機(jī)械臂的研究與進(jìn)展[J].出國(guó)與就業(yè),2012(2):84-85.
[3] 劉少麗.淺談工業(yè)機(jī)械手設(shè)計(jì)[J].工業(yè)自動(dòng)化,2011,40(7):45-46.
[4] 毛星云.OpenCV3編程入門[M].電子工業(yè)出版社,2015.
[5] 程晨.自律型機(jī)器人制作入門[M].基于Arduino.北京航空航天大學(xué)出版社,2013.
[6] (美)Don.Wilcher.學(xué)ARDUINO玩轉(zhuǎn)電子制作[M].翁愷,譯.人民郵電出版社,2013.
[7] 孫駿榮,吳明展,盧聰勇.Arduino一試就上手[M].科學(xué)出版社,2013.
[8] (德)烏爾里?!し粕釥?簡(jiǎn)明機(jī)械手冊(cè)[M].2版.楊放瓊,編.湖南科學(xué)技術(shù)出版社,2012.
[9] 陳明秋.機(jī)械制圖[M].武漢理工大學(xué)出版社,2009.
[10] 岡薩雷斯.數(shù)字圖像處理[M].電子工業(yè)出版社,2011.
[11] 侯賓,張文志,戴源成,等.基于OpenCV的目標(biāo)物體顏色及輪廓的識(shí)別方法[J].現(xiàn)代電子技術(shù),2014(24).