【摘要】? ? 本文介紹了一種基于機(jī)器視覺的嵌入式系統(tǒng)載貨小車,使用了NI公司的嵌入式系統(tǒng)模塊myRIO和圖形編程語言Labview,與傳統(tǒng)的C語言實(shí)現(xiàn)有所不同,具有一定的參考價(jià)值。
【關(guān)鍵詞】? ? 嵌入式? ? 機(jī)器視覺? ? myRIO
引言:
隨著信息化的發(fā)展,嵌入式系統(tǒng)技術(shù)無疑有了更廣闊的發(fā)展空間。嵌入式系統(tǒng)應(yīng)用于我們?nèi)粘I钪械母鱾€(gè)領(lǐng)域。嵌入式系統(tǒng)是一種可裁剪的系統(tǒng),對(duì)實(shí)時(shí)響應(yīng)程度較高,它必須根據(jù)實(shí)際系統(tǒng)的需求進(jìn)行合理的裁剪使用,可以更好的降低成本。
NI公司的myRIO是一個(gè)集成的嵌入式模塊,包含了一個(gè)嵌入式處理器和一個(gè)ZYNQ架構(gòu)的FPGA。我們利用一定的硬件,并結(jié)合Labview的視覺助手,可以比較容易的搭建出一個(gè)機(jī)器視覺模型。本設(shè)計(jì)就采用了這樣一種方案。
一、硬件設(shè)計(jì)
該載貨小車以基于Cortex-A9內(nèi)核的myRIO為核心,外圍電路包括一個(gè)電機(jī)驅(qū)動(dòng)板,四個(gè)電機(jī),以及一個(gè)攝像頭,電源供電由12V直流鋰電池供電,myRIO模塊里有整流電路將12V轉(zhuǎn)變?yōu)?.3V提供給Cortex-A9和FPGA。
基于Cortex-A9內(nèi)核的myRIO程序控制,從攝像頭獲取圖片,輸出到myRIO,通過機(jī)器視覺算法判斷出物體的顏色,并通過小車機(jī)械臂的抓取,實(shí)現(xiàn)貨物的運(yùn)輸。
myRIO型號(hào)為NI myRIO-1900 ,其核心芯片是 Xilinx Zynq-7010,該芯片集成了 667 MHz 雙核 ARM Cortex-A9 處理器以及包含 28K 邏輯單元、80 個(gè) DSP slices、16 個(gè) DMA 通道的 FPGA。
攝像頭采用普通高清USB攝像頭,驅(qū)動(dòng)板采用普通電機(jī)驅(qū)動(dòng)板,本方案中采用的DIGILENT公司的Motor Adapter for NI myRIO電機(jī)驅(qū)動(dòng)擴(kuò)展板。
二、軟件設(shè)計(jì)
本載貨小車實(shí)現(xiàn)從出發(fā)點(diǎn)出發(fā),循跡到達(dá)貨物存放區(qū),根據(jù)機(jī)器視覺判斷不同顏色的不同貨物并獲取,回到貨物存放點(diǎn)將貨物按顏色分類。具體流程圖如下圖2。
對(duì)貨物的顏色識(shí)別首先要通過攝像頭采集視頻,捕捉圖像。要實(shí)現(xiàn)此功能,上位機(jī)必須安裝好 NI Vision Acquisition Software(視覺采集軟件)和LabVIEW Vision Development Module(視覺開發(fā)模塊)。安裝好軟件后,我們可以開始進(jìn)行視覺開發(fā)。
其中,小車電機(jī)的驅(qū)動(dòng)程序如下圖3。
首先,在 LabVIEW 啟動(dòng)界面上單擊 Create Project,會(huì)彈出一個(gè)對(duì)話框,用戶可以在左側(cè)看到不同的模板,選擇 Templates ? myRIO 之后會(huì)出現(xiàn)相應(yīng)的一些模板,選擇創(chuàng)建 myRIO Project,用戶可以自行修改 Project Name 和 Project Root。在 USB線連接著 myRIO 和計(jì)算機(jī)的情況下, 在 Target 一欄中會(huì)自動(dòng)搜索到已連接的硬件設(shè)備。如果用戶當(dāng)前沒有 myRIO,可以在 Target 一欄選擇 Generic Target 先進(jìn)行程序的開發(fā),在后面再連接上硬件之后便可以直接運(yùn)行。單擊 Finish 完成工程的創(chuàng)建。
在程序自動(dòng)創(chuàng)建的項(xiàng)目管理器中,用戶可以觀察到主程序,例如 Main.vi,如果是在myRIO 這個(gè) Target 下面,那么將來它就會(huì)運(yùn)行在 ARM 處理器上。本工程中的 Main.vi 是所選用模板為用戶提供的一個(gè)實(shí)例,可直接運(yùn)行。打開 LabVIEW ? Help ? Find Examples ? Hardware Input and Output ? Vision Acquisition ? NI-IMAQdx,在此目錄下可以找到一個(gè)名叫Grab的機(jī)器視覺例程,雙擊打開后另存。將另存的示例程序添加到 myRIO 的目標(biāo)下面,通過右擊彈出菜單中 Add ? File,選擇對(duì)應(yīng)程序。此時(shí)程序位于 myRIO 的目標(biāo)下,因此它將運(yùn)行在嵌入式處理器上。
我們選擇National Instruments ? Vision ? Vision Assistant工具,打開后會(huì)有一個(gè)提示窗口詢問用戶測(cè)試圖片的來源,我們事先保存好了紅色和黃色的圖片,所以直接點(diǎn)擊Open Image。
使用 Color 函數(shù)選項(xiàng)卡下的 Color Matching函數(shù),選擇 Create Template,在彈出的對(duì)話框中選擇ROI(Region of Interest)后,在右上方圖片區(qū)域選擇一個(gè)區(qū)域,點(diǎn)擊 OK 將圖像匹配算法添加入腳本。
完成顏色匹配驗(yàn)證后,可將檢測(cè)步驟保存以備后用。選擇 File ? Save Script 進(jìn)行保存 。NI Vision Assistant 不僅能幫助我們選擇合適的算法和參數(shù)還能將一系列操作步驟自動(dòng)生成
LabVIEW 代碼:點(diǎn)擊 Tools ? Create LabVIEW VI,Step1 中選擇生成路徑時(shí)可選擇上一小節(jié)創(chuàng)建的項(xiàng)目路徑;Step2 中選擇默認(rèn)的 Current Script;Step3 選擇圖片來源,選擇IMAQdx Image Acquisition 即可;Step4 供用戶選擇在生成的 LabVIEW 程序中哪些參數(shù)作為輸入控件,哪些參數(shù)作為顯示控件,如果不進(jìn)行選擇,將根據(jù) NI Vision Assistant軟件中的設(shè)置采用常量作為默認(rèn)值,由于我們關(guān)心其輸出值,因此將 Match Flag勾選上。點(diǎn)擊 Finish 后將自動(dòng)生成所需 VI,如圖4所示。
完成顏色匹配的相關(guān)操作并將操作步驟自動(dòng)生成 LabVIEW 代碼后,打開程序框圖查看生成的 VI,可發(fā)現(xiàn)程序首先完成了圖像采集的工作,然后通過函數(shù) Color Matching(顏色匹配)進(jìn)行比較,最后得到匹配的結(jié)果Match Flag(匹配標(biāo)志)和Match Score(匹配得分)。我們需要將此 VI 中圖像處理的程序和上一小節(jié)中圖像采集的程序整合成一個(gè)可以運(yùn)行在 myRIO 上的完整的程序。
打開上一小節(jié)創(chuàng)建的工程,將顏色匹配程序當(dāng)作子VI 添加至 myRIO 的 Target 下,調(diào)整總程序得到連續(xù)顏色匹配程序。
三、結(jié)束語
本設(shè)計(jì)從硬件和軟件兩方面介紹了基于機(jī)器視覺的載貨小車的制作。硬件上解決了機(jī)器視覺與嵌入式系統(tǒng)的連接,軟件方面主要解決了小車的驅(qū)動(dòng)、循跡,顏色識(shí)別匹配,本設(shè)計(jì)還有不足以及需要改進(jìn)的地方,將在以后的工作中進(jìn)行改進(jìn)。
參? 考? 文? 獻(xiàn)
[1]李積英,基于機(jī)器視覺的智能車設(shè)計(jì)開發(fā),[J]智能化儀表,2014
[2]張興華,基于機(jī)器視覺的物流倉(cāng)儲(chǔ)智能車設(shè)計(jì),[J]技術(shù)與市場(chǎng),2019
[3] NI,NI myRIO 入門指南。2015.4
王波(1980),男,無錫職業(yè)技術(shù)學(xué)院教師,碩士,副教授,主要研究方向是IP通信、嵌入式。