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