有無圖像沒圖像
是否黑屏黑屏,白屏,花屏
是否亮燈亮紅燈
是否開機不開機
故障設備找不到相機
Basler Pylon工業相機SDK的使用
Pylon庫有C++ .Net等各種封裝版本,一般用C++版本,功能*效率高,但對于不同接口(GigE USB3.0 CameraLink)的相機必須對應使用不同的類,之間不能通用。
基于GenAPI通用相機抽象接口使用的是Node結構,以字符串形式訪問相機參數,可以統一管理不同接口類型的相機。但效率低,使用不方便。
Pylon高層用C++封裝,形成本地相機對象
如何管理多個相機,靠譜的方法是按相機ID標定順序,需要讀一個配置文件,比如XML或JSON,然而一開始不知道ID,需要先列舉出來。
一、工業相機編程模型和流程
不同的工業相機提供不同的編程接口(SDK),盡管不同接口不同相機間編程接口各不相同,他們實際的API結構和編程模型很相似,了解了這些再對工業相機編程就很簡單了。
DMA技術:
DMA是一種高速的數據傳輸操作,允許在外部設備和存儲器之間直接讀寫數據,既不通過CPU,也不需要CPU干預。整個數據傳輸操作在一個稱為"DMA控制器"的控制下進行的。CPU除了在數據傳輸開始和結束時做一點處理外,在傳輸過程中CPU可以進行其他的工作。這樣,在大部分時間里,CPU和輸入輸出都處于并行操作。因此,使整個計算機系統的效率大大提高。
對于工業相機來說,當CMOS或CCD芯片曝光然后將數據轉到相機緩存后,這時候DMA會負責將緩存中數據保存到硬盤上位置,正好滿足相機高速大數據的傳輸。一般都會使用DMA來完成實時的數據采集和保存。
多數時候,DMA控制器存在各種接口的圖像采集卡中,包括1394/GigE/USB/Camera Link等,這些采集卡有自己的時間控制單元完成和相機曝光的同步,并控制DMA的存取行為。
1、走在**的智能理念——無人充電機器人
ALSONTECH(埃爾森智能科技)于2018年推出**套機器人3D視覺引導無人快速充電系統,將智能充電機器人變成現實。
該系統采用Basler集小巧機身和功能于一體的工業相機,搭建出3D視覺作為機器人的“雙眼”,幫助機器人定位充電端口,之后該系統會引導充電體自動實現快充操作,結束后機器人甚至可以自動關閉充電蓋。借助無人充電機器人,停車場可實現高度智能自動化。從車輛停至充電站到充電完成,整個過程駕駛員*進行任何干預操作,有效縮短等待時間,省時省力。
隨著無人駕駛技術在**范圍內推廣應用,車輛使用方式面臨著巨大變革。該項目著眼于汽車工業發展的未來,以“人工智能”為**理念,采用較加的充電方式為車輛提供能源**,助力無人駕駛行業的產品升級。
下面是其中對于不同的工作要求,加載相機對象和卸載相機對象是通用的。而要使用其他模塊,如事件對象時,相應的改為加載事件對象和卸載事件對象,以及使用事件對象完成相關任務即可。編程時一定要對整個流程做好規劃,特別是硬件編程時一定留意內存泄露,**分配的資源一定要在后面釋放。
下面是五個大流程的詳細解析,需要的地方已經加以說明,并注解了需要用到的函數
加載相機對象:
卸載相機對象:
加載數據流抓取對象:
卸載數據流抓取對象:
單幀或連續抓圖過程:
按照以上介紹的流程即可實現實時圖像采集:
很多人問我要源代碼,翻了以前的程序文件夾找到了這個程序,演示了利用Pylon SDK進行相機采集的過程,使用MIL完成界面顯示,采集部分封裝成了類,可以直接重用。測試相機為Basler相機。注意Pylon僅完成Raw Data的采集,使用MIL的MbufPut完成圖像數據的重組,然后MIL自動顯示。
http://www.minepool.cc