摘要
本團(tuán)隊(duì)設(shè)計(jì)了一種基于Robei EDA工具的自動(dòng)化倉儲(chǔ)貨物分揀機(jī)器人。利用FPGA進(jìn)行HSV色彩空間變換實(shí)現(xiàn)對(duì)多貨物的形心定位與追蹤,配合多自由度逆運(yùn)動(dòng)學(xué)分解算法控制機(jī)械臂,大幅提高分揀效率。同時(shí)利用多傳感器融合算法,使分揀機(jī)器人可以實(shí)現(xiàn)貨物條形碼識(shí)別;人體與工作異常檢測(cè);負(fù)反饋補(bǔ)光等功能。利用自制的上位機(jī)系統(tǒng)可供工作人員實(shí)時(shí)遠(yuǎn)程監(jiān)控機(jī)器人工作情況。經(jīng)過系統(tǒng)架構(gòu)設(shè)計(jì)與整體調(diào)試,機(jī)器人可以滿足預(yù)期需求,且系統(tǒng)可重構(gòu)性以及算法可移植性強(qiáng),通過改善可適應(yīng)不同的應(yīng)用環(huán)境與需求。
作品實(shí)拍
1 項(xiàng)目架構(gòu)
本項(xiàng)目設(shè)計(jì)的機(jī)器人主要由兩個(gè)部分組成,分別是圖像處理部分與運(yùn)動(dòng)控制部分,由于圖像與逆運(yùn)動(dòng)學(xué)分解均需要消耗較多的邏輯資源,同時(shí)為了模擬實(shí)際的工作環(huán)境,當(dāng)系統(tǒng)出現(xiàn)問題時(shí)可以便于排查解決,因此兩部分分別用一塊單獨(dú)的FPGA進(jìn)行控制。圖像與控制部分之間通過藍(lán)牙進(jìn)行無線數(shù)據(jù)傳輸,當(dāng)圖像處理完成后,將數(shù)據(jù)傳遞給控制部分,傳輸數(shù)據(jù)幀包含貨物顏色、坐標(biāo)信息,控制部分通過解析數(shù)據(jù)幀,來實(shí)現(xiàn)對(duì)機(jī)械臂的控制,完成貨物的分揀工作。同時(shí)系統(tǒng)也包含了較多的傳感器,利用自制的上位機(jī)可供工作人員實(shí)時(shí)監(jiān)控機(jī)器人工作情況,整體架構(gòu)設(shè)計(jì)如下圖所示。
圖像處理部分以及運(yùn)動(dòng)控制部分在Robei EDA中的頂層架構(gòu)如下圖所示。
2 算法介紹
2.1 RGB轉(zhuǎn)HSV算法
通常來說,記錄及顯示彩色圖像時(shí),RGB是最常見的一種方案。但是RGB色彩空間注重顏色的合成而將顏色的屬性相混合,在圖像處理中,如果不均勻改變RGB,會(huì)改變亮度和飽和度,由此帶來的RGB比例改變甚至?xí)淖兩{(diào),也就是受環(huán)境光強(qiáng)影響較大,容易由于圖像處理部分出錯(cuò)以導(dǎo)致整個(gè)系統(tǒng)崩潰。而HSV(Hue, Saturation, Value)是一種比較直觀的顏色模型,它將顏色的亮度、色調(diào)和飽和度屬性分離,因此采用HSV顏色空間來實(shí)現(xiàn)顏色的檢測(cè)效果會(huì)更好。
實(shí)現(xiàn)轉(zhuǎn)換操作最重要的是除法運(yùn)算,本實(shí)例調(diào)用了一個(gè)低延遲的移位減法除法器(延遲時(shí)間不到兩個(gè)像素時(shí)鐘)來實(shí)現(xiàn)高速除法,得到h、s的值。最后要注意保證h,s,v三個(gè)分量的延遲都一致。用Verilog實(shí)現(xiàn)RGB轉(zhuǎn)HSV的流程如下圖所示。
根據(jù)HSV空間基于區(qū)域特征也可以實(shí)現(xiàn)對(duì)多運(yùn)動(dòng)目標(biāo)中心的穩(wěn)定定位與追蹤,不需要調(diào)用RAM的IP核進(jìn)行邊緣處理等操作,節(jié)約資源。
2.2 逆運(yùn)動(dòng)學(xué)分解算法
在得到了貨物坐標(biāo)后,下一步就是如何控制機(jī)械臂對(duì)相應(yīng)坐標(biāo)的貨物進(jìn)行抓取了。由最終計(jì)算結(jié)果可知,實(shí)現(xiàn)開平方函數(shù)、反正切函數(shù)、反正弦函數(shù)和反余弦函數(shù)再結(jié)合除法器模塊即可實(shí)現(xiàn)機(jī)械臂根據(jù)色塊形心坐標(biāo)抓取色塊。所以后面主要對(duì)這兩個(gè)函數(shù)模塊進(jìn)行介紹。
2.2.1 反三角函數(shù)——基于CORDIC算法的迭代位移算法
CORDIC算法的幾何原理為在XOY坐標(biāo)系中點(diǎn)P1繞原點(diǎn)旋轉(zhuǎn)θ后得到點(diǎn)P2。
在XOY坐標(biāo)系中點(diǎn)P1(x1, y1)繞原點(diǎn)旋轉(zhuǎn)后得到點(diǎn)P2(x2, y2),則P1和P2兩點(diǎn)的坐標(biāo)關(guān)系為:
利用該算法進(jìn)行迭代時(shí),最終的迭代公式為:
設(shè)置迭代次數(shù)為16,人為設(shè)置x0=Πcosθi,y0=0,然后根據(jù)角度θ即可得到cosθ=x16,sinθ=y16,arctanθ=z16。此時(shí)已實(shí)現(xiàn)反正切函數(shù),再逐次逼近即可得到反正弦、反余弦函數(shù)。經(jīng)過16級(jí)迭代,結(jié)果已與真實(shí)值非常接近。由此已經(jīng)可以得到反正切值,為了實(shí)現(xiàn)輸入正弦值輸出對(duì)應(yīng)反正弦值,在0到90°的范圍內(nèi)由低到高遍歷角度計(jì)算其正弦值,當(dāng)其正弦值增大至大于等于輸入正弦值時(shí),取此時(shí)的角度為反正弦值。同理可以實(shí)現(xiàn)輸入余弦值輸出對(duì)應(yīng)反余弦值。實(shí)驗(yàn)測(cè)試結(jié)果如下:
2.2.2 開平方函數(shù)——逐次逼近算法
首先數(shù)據(jù)輸入data[7:0],接著設(shè)置實(shí)驗(yàn)值D_z[3:0]和確定值D_q[3:0],然后按照從高往低的順序,依次將每一位置1,再將實(shí)驗(yàn)值平方后與輸入數(shù)據(jù)比較,若實(shí)驗(yàn)值的平方大于輸入值,則此位為0,反之此位為1,以此迭代到最后一位。這是一種比較常見的算法,簡單好用。
3 總結(jié)與感悟
通過第五屆全國大學(xué)生集成電路創(chuàng)新創(chuàng)業(yè)大賽Robei杯,我們團(tuán)隊(duì)每個(gè)人都學(xué)到了非常多。在項(xiàng)目初期,我們對(duì)Robei杯進(jìn)行了調(diào)研,了解到Robei EDA工具是一種全新的面向?qū)ο蟮目梢暬酒O(shè)計(jì)軟件,可以支持基于Verilog語言的集成電路前端設(shè)計(jì)與仿真。在以前我們使用的FPGA開發(fā)軟件大多都是Quartus和Vivado,國產(chǎn)EDA軟件少之又少,而且從來沒有接觸過國產(chǎn)相關(guān)的EDA軟件。Robei EDA軟件令我們眼前一亮,非常直觀的UI界面很吸引我們。在FPGA這種非常注重層次架構(gòu)設(shè)計(jì)的領(lǐng)域,直觀的模塊設(shè)計(jì)、連線對(duì)開發(fā)的幫助非常大,其次是在當(dāng)今數(shù)字IC設(shè)計(jì)EDA軟件被國外壟斷的情況下,國產(chǎn)Robei EDA軟件的出現(xiàn),為中國數(shù)字IC設(shè)計(jì)貢獻(xiàn)出了非常大的一份力,我們非常的敬佩,因此毅然決定選擇Robei杯。
項(xiàng)目進(jìn)行的過程中遇到過不少問題,在項(xiàng)目初期的時(shí)侯FIFO模塊始終無法正常運(yùn)行,最后我們通過使用Robei中的仿真功能,對(duì)讀寫時(shí)序一點(diǎn)點(diǎn)地進(jìn)行查看,一點(diǎn)點(diǎn)地解決時(shí)序錯(cuò)誤的問題,最后終于實(shí)現(xiàn)利用FIFO對(duì)SDRAM進(jìn)行讀寫的功能。在此之后我們也深刻認(rèn)識(shí)到Robei杯賽是非常注重底層協(xié)議開發(fā)的。(畢竟用不了IP核)
中后期階段,為了進(jìn)一步優(yōu)化系統(tǒng),提高作品的水平,我們?nèi)パ芯苛藱C(jī)械臂的逆運(yùn)動(dòng)學(xué),希望可以做到能讓機(jī)械臂對(duì)任意位置的貨物進(jìn)行抓取。開發(fā)過程非常的艱辛,因?yàn)閭鹘y(tǒng)的逆運(yùn)動(dòng)學(xué)分析需要進(jìn)行大量的浮點(diǎn)運(yùn)算,多使用嵌入式設(shè)備進(jìn)行,基本很難查到使用FPGA進(jìn)行逆運(yùn)動(dòng)學(xué)分解控制機(jī)械臂的資料,所以我們通過分析傳統(tǒng)逆運(yùn)動(dòng)學(xué)分析的C語言代碼,一步一步利用Verilog語言進(jìn)行編寫,并利用Robei EDA的仿真功能對(duì)每一步轉(zhuǎn)換出的數(shù)據(jù)進(jìn)行分析,自己編寫并調(diào)用了很多三角運(yùn)算與除法運(yùn)算模塊,最后終于實(shí)現(xiàn)逆運(yùn)動(dòng)學(xué)分解算法,使機(jī)械臂可以抓取范圍內(nèi)任意坐標(biāo)的貨物。
最后非常感謝小組的每個(gè)成員,為了完成這次比賽大家都花了非常多的時(shí)間與心血,當(dāng)看到整個(gè)系統(tǒng)能按照預(yù)期運(yùn)轉(zhuǎn),我們真的都非常欣慰。這是一次難忘的經(jīng)歷,感謝Robei,感謝指導(dǎo)老師,也感謝每一個(gè)為之付出過努力的成員們,受益頗多!
寫給想要參加下一年Robei杯的同學(xué)
Robei杯與其他的杯賽有個(gè)很大的區(qū)別,相信認(rèn)真審過題目的同學(xué)就會(huì)知道,他不允許使用任何的軟硬核,相當(dāng)于你的所有工作,都是必須要在Robei EDA上用純Verliog獨(dú)立編寫完成。這個(gè)規(guī)則說好也好,說不好也不好,看你如何去理解了。
禁用這些軟硬核,最實(shí)質(zhì)的感受是,開發(fā)變麻煩了,但是也非常鍛煉你的底層開發(fā)能力...涉及圖像處理的話,免不了要對(duì)DDR或者SDRAM進(jìn)行讀寫,F(xiàn)IFO的IP核不能調(diào)用怎么辦?RAM的IP核不能調(diào)用怎么辦?PS端繞不過去怎么辦?只能自己想辦法,或者自己去寫。但是從另一個(gè)角度想,這種規(guī)則其實(shí)會(huì)限定一個(gè)比賽的上限,也就是能實(shí)現(xiàn)的功能是有天花板的,只要你能無限接近這個(gè)天花板,并且設(shè)計(jì)的機(jī)器人功能、前景足夠新穎,你的成績就一定不會(huì)差。加油!
審核編輯 :李倩
-
機(jī)器人
+關(guān)注
關(guān)注
213文章
29706瀏覽量
212664 -
遠(yuǎn)程監(jiān)控
+關(guān)注
關(guān)注
2文章
1484瀏覽量
31143 -
自動(dòng)化
+關(guān)注
關(guān)注
29文章
5776瀏覽量
84761
原文標(biāo)題:【2021集創(chuàng)賽作品分享】第十三期 | 基于Robei EDA工具的倉儲(chǔ)貨物分揀機(jī)器人設(shè)計(jì)
文章出處:【微信號(hào):Ithingedu,微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
機(jī)器人和自動(dòng)化的未來(2)

料箱機(jī)器人遠(yuǎn)程監(jiān)控物聯(lián)網(wǎng)解決方案
全鏈路智能追蹤:AMR 機(jī)器人+RFID技術(shù)助力部隊(duì)倉儲(chǔ)信息化手段建設(shè)

Robei EDA設(shè)計(jì)工具全新升級(jí)

ALVA Systems盤點(diǎn)機(jī)器人助力企業(yè)物流倉儲(chǔ)智能化升級(jí)
自動(dòng)化設(shè)備裝車機(jī)器人給飼料行業(yè)帶來哪些優(yōu)勢(shì)

背景抑制光電開關(guān)的設(shè)計(jì)及應(yīng)用
【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】2.具身智能機(jī)器人大模型
接近感應(yīng)單片機(jī)在背景抑制光電開關(guān)上的應(yīng)用
復(fù)合機(jī)器人正逐漸在倉儲(chǔ)物流領(lǐng)域發(fā)揮重要作用

轉(zhuǎn)運(yùn)機(jī)器人價(jià)格市場(chǎng)分析

愛普生SG-8101CA可編程晶振應(yīng)用在工業(yè)自動(dòng)化機(jī)器人

關(guān)于全自動(dòng)裝車機(jī)器人的詳細(xì)介紹
自動(dòng)化焊接機(jī)器人:引領(lǐng)制造業(yè)未來的高效工具

評(píng)論