CV在工業機器人上和服務機器人上的區別
CV在工業機器人上的應用和服務機器人上的應用的主要區別是什么?
其實CV在機器人的應用是從2011年開始,大家逐步在一些電子產品的裝配上會用到機器視覺。像我所知的海康,原來這些公司用的主要的是視頻采集,并沒有加入視覺的算法。
如果說差別,應該從下面幾個方面來說。
個是應用場景。在工業機器人的環境里,計算機視覺看到的場景是相對單一,比如工業元器件或者材料,或者監控一些操作過程。服務機器人應用場景就要變化很多,比如生活中的場景,比如辨識人的首飾,表情啊。
在服務機器人里面,比如家用機器人,無人機,視覺其實是一個非常重要的導航的工具,利用CV完成對周邊環境的測算和空間建模,還有一個領域是比較典型的,就是監控領域。
第二個是它所起的作用。計算機視覺對機器人來講無非是解決幾個事情,在工業機器人里面,可以通過視覺的導引完成軌跡或者定位的作用。
第三個是精度方面。在工業機器人里面,計算機視覺的辨識精度一定是在毫米級以下的,這里面包括一個靜態的辨識精度,一個動態的辨識精度,靜態指的是相機或者觀測物品相對處在一個靜止的狀態,它這個時候的辨識精度取決于相機的分辨率,包括物品的邊緣是否清晰,差異化是否很明確,這個時候精度甚至可以達到微米級以下,服務機器人據我所知,大部分的精度并不會很高,可能會在厘米級以上。
第四個是在工作空間上的范圍。工業機器人的視覺辨識的空間,一種是把相機固定,視覺(相機)的大小是根據我的安裝空間導致視覺的分辨率有所限制;但服務機器人的工作空間,我的理解它的工作空間限于電池能持續多久。
第五個是安全性。工業機器人上的視覺部分是要求不太會被人所干擾的,盡量避免人和設備的不必要交互,但在服務機器人上,人和設備的地方非常多,這是視覺是人和服務機器人交互的一個很重要的途徑。另外一個是生命周期,這里面涉及到我視覺系統里的光源,相機安裝的可靠性。
那總的來講,計算機視覺在工業機器人和服務機器人重要的差異,我覺得主要是在精度和可靠性方面。然后剩下的就是應用場景的專門的功能需求。
工業機器人機器視覺傳感器近有什么新進展?
先簡單地列舉一些視覺在工業機器人里的應用:用的多的是辨識物體的位置,方向,然后配合機器人進行抓取,一般精度要到0.01毫米左右。
我認為工業機器人的視覺傳感器就是工業機器人的整個視覺傳感系統,這里面考慮的大部分都是可靠性和維護性,在真正的使用中,新的硬件方案或者新的產品并不是很快就會進行導入的,它都會需要一個長期的檢測過程,我們說的視覺系統一般包含相機,鏡頭,光源還有一些視覺的處理器,近幾年smartcamera這種傳感器算是用的比較多的。
smartcamera大部分的用法都會選用一些PCbase的用法,典型的是基恩士,康耐視或者歐姆龍,他們的視覺開始都是在PC上,利用對數字相機圖像的采集處理,然后利用一些視覺算法輸出數據,近幾年,基恩士首先把它的smartcamera把它大量應用在蘋果公司相關的一些檢測設備中。
這種smartcamera比較好的地方是:它的封裝會會非常緊湊,整個鏡頭非常便于安裝,然后是在算法上進行了大量的簡化,和設備相連的時候,整個設備的安裝和相連非常的便捷。
現在多的是基于2D的工業相機,但3D的導入會是一個非常明顯的趨勢,3D視覺技術現在達到的精度以及對于機器人配合的這種要求,目前來說還沒到一個相對成熟的階段,可能還需要一定的時間進行導入。
針對2D的相機,我們在選取的時候主要會考慮基于怎樣的應用場景,比如被測物體的大小,需要達到的辨識精度,這個部分主要是一些規格上的選取。如果說誰家的相機會更好,我們現在主要是選擇德國和日本的一些相機,比如說德國的IDS,日本的歐姆龍;鏡頭的話主要選擇computar的鏡頭,在這種品質保證的情況下,其實產品大同小異,不會差別太多,可能無非就是在使用和安裝習慣上的差異,以及價格包括貨期都是很重要的衡量標準。
工業機器人與自己,與人,與環境的交互
工業機器人講究機器和機器的交互,機器和人的交互以及機器和環境的交互,您能舉個例子為我們講講他們是怎樣實現的?
這個其實是我們比較擅長的部分。因為我們李群自動化從2013年開始正式做機器人,到現在我們做的多的事就是考慮機器人和設備、機器人和視覺或者和人如何交互。回答這個問題之前,我們需要有一個前提:解決交互問題前應該是交互雙方有個協議,即交互雙方都可以懂的語言。
這種語言可以簡單可以復雜,可以是一種或幾種,就像即使是兩個語言不通、文化背景不同的人還是可以通過眼神或者肢體語言去交流。
如果按照機器、人、和環境,我們分析一下他們所能發出的信息的形式和接收的信息的形式,以這樣的思路來進行。我們以機器人為例,機器可以以什么樣的形式來表達出他想要表達的信息呢?
我們一般可以分兩種。
一種是機器主動想表達的信息,這時候可能是機器的一個狀態,機器需要告訴別人的一些信息,我們認為這是一種可控的信息,一般可以通過網絡、串口、I/O、或者是它可以操作的一些動作來表達出來。
還有一類信息是異常信息,這一類的信息其實可能不是機器想要發出的,而是一種被動輸出。什么叫被動輸出呢?比如,一個機器突然輸出的產品大量產生異常,或者一個機器跑跑跑,某一個環節、電機要運動,然后發現怎么都運動不到。還有一種情況是機器做了一種行為,這種行為是不可理解的,或者不是預設的,那我們都認為這確實是機器要發出的信息,但不是機器主動發出的。
從人的角度來說,人是的生物,可以通過工具發出他想要發出的信息,比如說他可以通過用戶界面,甚至是一些按鈕的操作,準確的發出他的指令,人也可以通過觸碰產生一些信息,比如觸碰一些光柵。在協作型機器人里,人和機器觸碰甚至可能代表人讓機器人停下來這種指令。
環境的信息其實是被動的,因為環境是無法主動表達信息的,它可能是通過來料、出料的異常,甚至是溫度、濕度的變化、甚至突然斷電了,大家也不知道發生了什么。這些信息,你做一個簡單的分析,會發現在這種交互過程中,異常信息是需要提前做好準備和響應方案的。
而且同時,人和機器作為兩個可以主動交互的對象,人比較,可以辨識、響應幾乎一切信息,但是人大的問題在于人會疲勞,人可能會有情緒干擾,導致對信息判斷的及時性和準確性進行干擾,沒有機器判斷那么穩定。
機器由于不夠聰明,一定沒有人聰明,這時就會變成機器能把信息表達得多準確多全面,其實取決于設計機器的人希望機械可以做到什么樣。
回到現在這個問題來說,我想重要的就是異常的信息,我認為在自動化環節,三方的交互中,如果一切都是沒有意外的,大家都按照預定的節奏和行為來進行操作,那么交互大可不必,每個人都按照既定要求來做,這其實是和諧的,實際上意外一定會產生,交互的意義就在于如何處理意外。
這時候就變成了,我們如何感知異常,同時協商出來面對異常的機制,大家交互的協商,后達到異常的處理,回到原始的軌道。
這里給大家舉個例子,這里給家看個我們做的方案:
這是一個非常簡單的生產線上下料工藝的需求,大家可以看到,在圖片左手邊模擬的是一個隧道爐,這實際上是一個手機蓋板非常典型的加工工藝,玻璃在進行前端絲印之后,它需要經過隧道爐完成印刷油墨的工藝要求,達到油墨的固定。
前端,是人把絲印好的玻璃放在傳送帶上,上料的速度我們得到的信息一般是在1300片/h,有個重要的工藝要求,由于隧道爐中有烘烤的工藝,所以傳送帶是一定不可以停的。
那么我們現在做的自動化是要干嘛呢,是要把從隧道爐里出來得剛剛烘烤過的玻璃安全的下到料盤里面。
由于當時當時給我們的空間限制,隧道爐末端的空間非常有限,就是圖中兩個人所在的位置,那么自動化設備要快速的把每小時一千三百片的來料下到料盤里,這就是自動化的工藝要求,大家可以想想,對于機器人來說,在這樣的工作空間里每小時可以做兩千次,那以這樣的速度,這個自動化方案的難點和異常點在哪里?
我們做了一個工作站,這里包含了綠色的傳送帶,用來承接前端烘干機的傳送帶。在前端有一個視覺框架來動態識別玻璃的位置和轉向,末端有一些機構來保證下料料盤如何周轉。現在我列舉幾個實際操作中我們需要思考、處理的部分:
1.瞬時uph。剛才提到烘干機前端是人工上料。人工上料有什么問題呢?比如,這個人的早中晚生產狀態不同,在精神狀態好的時候,可能連續的一段時間內生產效率非常高。可能在很累的時候生產效率就會很低,那么按照客戶給的數據1300uph。這時就遇到了一個問題,假設五分鐘之內,工人的狀態很好,他的瞬時效率高于2000時,機器人怎么辦?按照設定條件,機器人是來不及抓的。
2.由于我們的視覺是用來判斷傳送帶上的玻璃,我在辨識的時候,有些在上料的時候,混了一些一些料或者其他什么誤差,導致玻璃沒有辨識出來。或者說兩個玻璃挨在一起了,視覺無法辨識兩個玻璃的相對位置。這時候,這兩片玻璃是抓不起來的。
3.我在下料的時候,當我要把玻璃放在料盤里,恰巧料盤滿料,下一個料盤還沒過來。這時傳送線上的玻璃如何處理?
4.料盤和玻璃也有放置精度的問題,如果說傳送帶像我們現在看到的部分,寬度是一米二,如果我們用一個視覺相機來說,在一米二寬的視場范圍內,在視場邊緣會產生嚴重畸變,這時我在吸取玻璃時,比如吸取5.7寸的玻璃它在邊緣的偏差可能就要大于兩毫米。這時吸取的玻璃可能放不進料盤。
5.假設吸盤變形,機器人看得很準,機器人到位也很準,但是吸盤壞了,吸起后玻璃偏了,還是放不進料盤。