都說“紙上得來終覺淺,絕知此事要躬行”,可惜咱沒這條件呀,沒項(xiàng)目咱也不能干坐著呀,那咱發(fā)揮主觀能動性,咱不是學(xué)機(jī)械的么,還好還記得一點(diǎn)CAD的知識,今天小楊說事,咱就“紙上談兵”,用CAD結(jié)合公司的視覺算法平臺VisionMaster來說說相機(jī)映射和對位貼合的事,如果有錯誤的地方,還請各位自動化前輩多多指教,畢竟網(wǎng)上的關(guān)于這個知識太少了。
實(shí)際的生產(chǎn)過程中,我們常常會碰到這樣的情況,機(jī)械手從工位一吸著對象到工位二進(jìn)行貼合,但是工位二我們不方便執(zhí)行標(biāo)定,通常的做法是在工位一執(zhí)行一次標(biāo)定流程,然后使用兩點(diǎn)映射或者四點(diǎn)映射把工位二的相機(jī)坐標(biāo)映射到工位一的相機(jī)一中。說起來很輕松,咱沒實(shí)戰(zhàn)過呀,但是咱可以模擬呀,說干就干,咱開始動手吧。
如上圖所示,咱們?yōu)榱蓑?yàn)證一般性,把機(jī)械手坐標(biāo)系,工位一的相機(jī)1坐標(biāo)系,工位二的相機(jī)2坐標(biāo)系畫的夸張一些,但是在CAD圖上我們是通過旋轉(zhuǎn)的方式來改變兩個相機(jī)的坐標(biāo)系和機(jī)械手坐標(biāo)系的夾角的,事先是知道相機(jī)1坐標(biāo)系X軸和相機(jī)2坐標(biāo)系X軸和機(jī)械手坐標(biāo)系X軸的夾角分別是10°和45°。當(dāng)然關(guān)于單像素精度,這里是采用一比一的方式,因?yàn)楝F(xiàn)實(shí)成像比這個更復(fù)雜,為了方便描述而已,不影響咱的用戶體驗(yàn)。
現(xiàn)實(shí)場景中,咱一般碰到的都是機(jī)械手末端吸盤和末端中心不共軸的情況,那這邊咱就選用最通用的12點(diǎn)標(biāo)定來求出這個旋轉(zhuǎn)中心,啥,你不知道什么是不共軸,啥是旋轉(zhuǎn)中心,那你out了,趕緊看看這個博主的博客,人家講的很詳細(xì),地址如下:
https://blog.csdn.net/KayChanGEEK/article/details/73878994
看完了那咱繼續(xù),吸盤吸著帶MARK點(diǎn)的標(biāo)定板,在相機(jī)視野里面平移9次,旋轉(zhuǎn)3次,當(dāng)然盡量貼近實(shí)際對象所在的平面,移動范圍盡量覆蓋實(shí)際對象可能出現(xiàn)的范圍。以X方向每次平移640.3044,Y方向每次平移389.3736,角度每次旋轉(zhuǎn)30°,使用海康的算法平臺呢,咱一般使用相對坐標(biāo)系,盡量不使用絕對坐標(biāo)系。咱一般是以平移的第5點(diǎn)作為基準(zhǔn)哈,所以有了下圖的12點(diǎn)的關(guān)系以及在CAD里面的坐標(biāo)數(shù)據(jù),機(jī)械手的絕對坐標(biāo)是可以從機(jī)械手的示教器讀出來的,相對坐標(biāo)呢,都是相對第5點(diǎn)的坐標(biāo)哈,至于像素坐標(biāo),這里咱取的是標(biāo)定板上的那個圓Mark點(diǎn)的圓心,這個使用一個模板匹配,位置修正,圓查找工具就完事哈。
由于咱是使用的CAD模擬,那只能使用N點(diǎn)標(biāo)定工具,手動輸入啦,對應(yīng)著輸入就行啦,如下圖:
可以看到輸完執(zhí)行之后,像素精度確實(shí)是1.0,由于點(diǎn)是完全一一對應(yīng)的,所以標(biāo)定平移和旋轉(zhuǎn)誤差都是0,實(shí)際生產(chǎn)中,這里是有標(biāo)定誤差值的。同時(shí),這邊也算出了機(jī)械手末端中心在圖像中的理論像素坐標(biāo)(891.371,970.815),咱回到CAD圖中,把圖紙的坐標(biāo)系從機(jī)械手坐標(biāo)系切換到相機(jī)1坐標(biāo)系,看看第五點(diǎn)時(shí)刻,機(jī)械手的旋轉(zhuǎn)中心的像素坐標(biāo)是多少,沒錯就是下圖粗紅色圓圈出來的地方,查看坐標(biāo)發(fā)現(xiàn)是一致的。
好啦,相機(jī)1標(biāo)定完成之后,咱緊接著該對兩個相機(jī)進(jìn)行相機(jī)映射,制作一個映射板,上面做4個Mark點(diǎn),這里咱采用4個圓來模擬,同樣用機(jī)械手吸盤吸著映射板,在相機(jī)1視野中進(jìn)行拍攝,記錄當(dāng)前機(jī)械手的位置,這個地方其實(shí)是以后對象每次在相機(jī)1處的拍照位,就是圖中的藍(lán)色直線交點(diǎn)處,然后機(jī)械手進(jìn)行平移,咱這里只進(jìn)行一個X方向平移,到紅色直線的交點(diǎn)處,記錄當(dāng)前的機(jī)械手位置,這是以為每次對象到相機(jī)2處的,可以叫做貼合的基準(zhǔn)位置(但是實(shí)際上是不用建立基準(zhǔn)的,這里可以理解為以后每次在這里對對象進(jìn)行偏移貼合就行,明白的人一看就明白了哈)。
注意每次采集4個Mark點(diǎn)的圓心坐標(biāo),在CAD里面要切換對應(yīng)的坐標(biāo)系,圓心點(diǎn)也需要對應(yīng)哈,采集的坐標(biāo)如下:
然后使用相機(jī)映射模塊,將四和個圓心坐標(biāo)對應(yīng)輸入進(jìn)去,注意對象點(diǎn)和目標(biāo)點(diǎn)的關(guān)系即可,生成相機(jī)映射文件,其實(shí)就是一個坐標(biāo)系之間的變換矩陣,如下:
當(dāng)然咱可以使用工具打開這個文件可以看到矩陣的參數(shù),里面包含了坐標(biāo)系變換的旋轉(zhuǎn)角度信息和平移量信息:
這里咱嘗試改變映射板在相機(jī)2中的X和Y的位置,發(fā)現(xiàn)自始至終旋轉(zhuǎn)矩陣是不變的,變化的只是平移量,可見咱之前要確定機(jī)械手的兩個位置的重要性,否則平移量發(fā)生變化了,要自己修正旋轉(zhuǎn)矩陣的平移量呀。
那為了進(jìn)一步加深理解這個映射的關(guān)系咱來看看這個映射關(guān)系表示的是啥唄,既然是把相機(jī)2中的4點(diǎn)映射到相機(jī)1,那么我們直接把相機(jī)2帶著4個點(diǎn)移動到相機(jī)1處,然后來手動檢驗(yàn)一下,如下圖:
打開映射文件,看到映射矩陣如下:
CAD切換坐標(biāo)系到相機(jī)1坐標(biāo)系,查看平移之后的相機(jī)2坐標(biāo)系的原點(diǎn)在相機(jī)1中的坐標(biāo)如下:
關(guān)于旋轉(zhuǎn)矩陣,前面我們知道兩個相機(jī)坐標(biāo)系分別是逆時(shí)針轉(zhuǎn)10°和順時(shí)針轉(zhuǎn)45°,那么它們之間的夾角就是55°,求解余弦值和正弦值如下,和矩陣是一致的:
至此咱所有的準(zhǔn)備工作都結(jié)束了,那咱就開始驗(yàn)證貼合唄:
下圖是機(jī)械手吸著實(shí)際對象進(jìn)行貼合過程模擬,咱用一個矩形方便描述,注意此時(shí)機(jī)械手的吸盤并沒有吸到對象的中心,由于咱剛才記住了兩個固定的機(jī)械手的拍照位置,那么首先要做的是吸著對象到剛才的相機(jī)1拍照位進(jìn)行圖像采集,建立模板,貼合點(diǎn)我們模擬的對象的十字線交叉點(diǎn)。然后在相機(jī)2的拍照位處,假設(shè)有個目標(biāo)和對象是一樣的,注意此時(shí)我們只需要確保對象移動到相機(jī)2的拍照點(diǎn)時(shí),目標(biāo)對象的角度是一樣的,我們要建立一個角度基準(zhǔn),然后對目標(biāo)建模版,也是選擇矩形的中心作為貼合點(diǎn),后面做映射的時(shí)候,咱就是把這個點(diǎn)的像素坐標(biāo)映射到相機(jī)1,再加上目標(biāo)的旋轉(zhuǎn)角度就可以算出機(jī)械手貼合需要走到的位置。
那咱先看最簡單的情況,目標(biāo)不發(fā)生角度旋轉(zhuǎn),只有平移的情況:
目標(biāo)位置相對于原始位置Y方向移動了439.85,然后切換坐標(biāo)系讀出,當(dāng)前的目標(biāo)矩形中心貼合點(diǎn)的像素坐標(biāo)為:
對象還是基準(zhǔn)狀態(tài),切換到相機(jī)1讀出對象矩形中心點(diǎn)的像素坐標(biāo)為:
和之前映射驗(yàn)證一樣,咱把此時(shí)的目標(biāo)也映射到相機(jī)1中,也就是上圖中的藍(lán)色矩形的位置,然后搭建如下圖的方案,查看使用相機(jī)映射文件進(jìn)行標(biāo)定轉(zhuǎn)換之后的像素坐標(biāo)和實(shí)際的CAD測量結(jié)果進(jìn)行對比:
切換到相機(jī)1坐標(biāo)系,讀出目標(biāo)映射過來的貼合點(diǎn)的坐標(biāo)如下:
可見理論計(jì)算和實(shí)際結(jié)果是一致的,然后咱們使用單點(diǎn)對位模塊來計(jì)算貼合的偏移量,輸入對象和目標(biāo)對應(yīng)的貼合點(diǎn)標(biāo)定轉(zhuǎn)換之后的坐標(biāo)以及角度偏差,計(jì)算出來的貼合偏差如下:
發(fā)現(xiàn)和之前的假設(shè)的偏移量是一致的,那么此時(shí)咱可以在相機(jī)1的拍照位進(jìn)行便宜然后再走之前相機(jī)映射的時(shí)候的固定偏移量去到相機(jī)2處進(jìn)行貼合,也可以先到相機(jī)2的拍照位然后再直接走偏移量也能實(shí)現(xiàn)貼合。
以上模擬的是一個簡單的情況,目標(biāo)和對象都有角度旋轉(zhuǎn)以及XY方向偏移,這個就當(dāng)做作業(yè)留給各位看官們自己驗(yàn)證吧,反正咱自己是驗(yàn)證了。當(dāng)然實(shí)際生產(chǎn)過程更加復(fù)雜,比如相機(jī)安裝反了導(dǎo)致坐標(biāo)系之間旋轉(zhuǎn)了180或者90,機(jī)械手左右手坐標(biāo)系的選擇,實(shí)際貼合點(diǎn)和拍照得到mark點(diǎn)是不一樣的等等問題,有興趣想探討或者覺得咱說的不對的,可以相互探討。
責(zé)任編輯:lq
-
算法
+關(guān)注
關(guān)注
23文章
4699瀏覽量
94751 -
機(jī)器視覺
+關(guān)注
關(guān)注
163文章
4511瀏覽量
122266 -
CAD
+關(guān)注
關(guān)注
18文章
1110瀏覽量
73871
原文標(biāo)題:基于海康機(jī)器視覺算法平臺的對位貼合項(xiàng)目個人理解
文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
海康機(jī)器人如何站穩(wěn)機(jī)器視覺行業(yè)第一梯隊(duì)
2025海康機(jī)器人機(jī)器視覺新品發(fā)布會成功舉辦
【「# ROS 2智能機(jī)器人開發(fā)實(shí)踐」閱讀體驗(yàn)】視覺實(shí)現(xiàn)的基礎(chǔ)算法的應(yīng)用
海康威視綜合安防管理平臺融合DeepSeek與海康觀瀾大模型
海康機(jī)器人布局關(guān)節(jié)機(jī)器人業(yè)務(wù)
海康威視推出視覺大模型系列攝像機(jī)
適用于機(jī)器視覺應(yīng)用的智能機(jī)器視覺控制平臺

評論