機器視覺長期以來用于工業自動化系統中,以通過取代傳統上的人工檢查來提高生產質量和產量。從拾取和放置、對象跟蹤到計量、缺陷檢測等應用,利用視覺數據可以通過提供簡單的通過失敗信息或閉環控制回路,來提高整個系統的性能。
視覺的使用并不僅僅在工業自動化領域;我們也看到了相機在日常生活中的大量應用,例如用于計算機、移動設備,特別是在汽車中。攝像頭僅僅是在幾年前才被引入到汽車中,但是現在汽車中已經配備了大量攝像頭,以為駕駛員提供完整的360°車輛視圖。
但是談到機器視覺領域的最大技術進步,可能一直是處理能力。隨著處理器性能每兩年翻一番,以及對多核CPU、GPU和FPGA等并行處理技術的持續關注,視覺系統設計人員現在可以將高度復雜的算法應用于視覺數據,并創建更智能的系統。
處理技術的發展帶來了新機會,而不僅僅是更智能或更強大的算法。讓我們看看為制造機器增加視覺功能的應用案例。這些系統傳統上設計為形成協作分布式系統的智能子系統網絡,該系統允許模塊化設計(見圖1)。
圖1:智能子系統網絡,其設計為構成協作分布式控制系統。該系統允許模塊化設計,但采用這種以硬件為中心的方法可能導致性能瓶頸。
然而,隨著系統性能的提高,采用這種以硬件為中心的方法可能遇到困難,因為這些系統通常采用時間關鍵和非時間關鍵協議的混合來聯接。通過各種通信協議將這些不同的系統聯接在一起,會導致延遲、確定性和吞吐量方面出現瓶頸。
例如,如果設計者試圖利用這種分布式架構開發應用,并且必須在視覺和運動系統之間保持緊密集成,例如在視覺伺服中所需要的,那么可能遇到由于缺乏處理能力而帶來的主要性能挑戰。此外,由于每個子系統都具有自己的控制器,這實際上會降低處理效率。
最后,由于這種以硬件為中心的分布式方法,設計人員不得不使用不同的設計工具來設計視覺系統中每個子系統的特定視覺軟件,以及用于運動系統的運動專用軟件等。這對于規模較小的設計團隊而言尤其具有挑戰性,因為一個小團隊甚至是一名工程師,需要負責設計中的許多部分。
幸運的是,有更好的方法為先進的機器和設備設計這些系統,這是一種簡化復雜性、提高集成度、降低風險和縮短上市時間的方法。如果我們將思維從以硬件為中心轉向以軟件為中心的設計方法,結果會怎么樣(見圖2)?如果我們使用能用單一設計工具實現不同任務的編程工具,那么設計人員就可以在他們的軟件中反映機械系統的模塊性。
圖2:以軟件為中心的設計方法,允許設計人員通過在單個強大的嵌入式系統中整合不同的自動化任務(包括視覺檢查、運動控制、I/O和HMI)來簡化控制系統結構。
這允許設計人員通過在單個強大的嵌入式系統(見圖3)中整合不同的自動化任務(包括視覺檢查、運動控制、I/O和HMI)來簡化控制系統結構。這消除了子系統通信的挑戰,因為現在所有子系統都在單個控制器上的相同軟件堆棧中運行。 高性能嵌入式視覺系統是這種集中式控制器的最佳候選者,因為這些設備中已經內置了這些功能。
圖3:將處理器與FPGA和I/O結合在一起的異構架構,不僅是設計高性能視覺系統、也是集成運動控制、HMI和I/O的理想解決方案。
讓我們來看看這種集中式處理架構的一些好處。以視覺引導運動應用為例,例如柔性饋送,其中視覺系統為運動系統提供引導功能。這里,零件的位置和取向都是隨機的。在任務開始時,視覺系統拍攝零件的圖像以確定其位置和取向,并將該信息提供給運動系統。
然后,運動系統根據圖像坐標將致動器移動到零件所處的位置,并拾起它。它也可以使用此信息在放置零件之前校正方向。通過這種方法,設計者可以消除先前用于定向和定位零件的任何夾具。這不但降低了成本,還允許應用程序能更容易地適應新的零件設計,只需要修改軟件即可。
以硬件為中心的架構的關鍵優點是其可擴展性,這主要歸因于系統之間的以太網鏈路。但是也必須特別注意通過該鏈路的通信。如前所述,這種方法的挑戰在于以太網鏈路的不確定性,并且帶寬有限。
對于大多數僅在任務開始時給出引導的視覺引導運動任務,這是可接受的;但是也可能存在其他情況,其中延遲的變化可能是一大挑戰。將這種設計轉向集中式處理架構,具有諸多優點。