智慧機器人的避障方法及裝置與流程
2023-07-02 01:24:31
本發明涉及計算機技術領域,特別地,涉及一種智慧機器人的避障方法及裝置。
背景技術:
隨著科技的迅猛發展,智能終端設備越來越普遍的應用於各行各業及人們的生活中,比如智慧型手機、pad、智慧機器人,等等。以智慧機器人為例,可將智慧機器人應用於農業、醫學、航天、軍事等領域,以解放很大一部分的勞動力,並為人們帶來更多的便利及創造出更大的社會價值。
在智慧機器人的使用過程中,其行走狀態下可能會遇到各種各樣的障礙物,如何躲避障礙物(也可簡稱為避障),逐漸成為本領域的研究熱點。目前,在智慧機器人避障的方案中,比如,可採用超聲波來檢測障礙物,此種方案中,一方面,超聲波是利用壓電晶體的諧振來工作的,容易受到不確定幹攏而引起誤觸發,導致機器人機器人錯誤動作;另一方面,超聲波測量障礙物的距離需要障礙物的反射,如果障礙物過小或扁平的情況下,則沒有足夠的面積反射超聲波,也即檢測不出障礙物,不能實現有效的避障。再比如,可採用雙目視覺避障,比如使用雙目相機等,此種方案中,一方面,由於相機視場角有限,不能180度全面視場覆蓋,即使在光照條件充足時,也可能存在視覺盲區,以檢測不到障礙物;另一方面,當光照條件不足時,相機的成像效果不好,也可能反應不出障礙物的位置、大小等,以不能實現有效的避障。
技術實現要素:
本發明提供了一種智慧機器人的避障方法及裝置,可將深度攝像機及超聲波傳感器相結合對障礙物進行檢測,可實現準確且有效的避障。
為實現上述目的,本發明提出了一種智慧機器人的避障方法,所述智慧機器人設置多個超聲波傳感器,所述智慧機器人還設置至少兩個深度攝像機,所述方法包括:
在通過深度攝像機及超聲波傳感器均檢測到目標物體時,確定目標物體的深度圖像信息;
根據所述深度圖像信息計算目標物體到智慧機器人的距離;
根據所述距離控制智慧機器人在行走過程中對目標物體進行躲避。
可選的,所述方法還包括:
在僅通過超聲波傳感器檢測到目標物體時,獲取目標物體的位置信息;
根據所述位置信息控制智慧機器人在行走過程中對目標物體進行躲避。
可選的,根據所述深度圖像信息計算目標物體到智慧機器人的距離,包括:
根據深度圖像信息求取掩摸深度圖像數據;
對掩摸深度圖像數據進行降噪處理;
對降噪後的掩摸深度圖像數據進行二值化處理以得到二值圖像數據;
在二值圖像數據中進行輪廓檢索以得到輪廓信息;
根據所述輪廓信息獲得輪廓到深度攝像機的距離,以作為目標物體到智慧機器人的距離。
可選的,根據深度圖像信息求取掩摸深度圖像數據,包括:
對深度圖像進行掩摸以得到對應的掩摸深度圖像數據;
將掩摸深度圖數據轉換為預置數據類型。
可選的,對掩摸深度圖像數據進行降噪處理,包括:
通過運用開運算、閉運算對掩摸深度圖像數據進行降噪處理。
可選的,在二值圖像數據中進行輪廓檢索以得到輪廓信息,包括:
通過調用用於檢索輪廓的函數在二值圖像數據中進行輪廓檢索。
可選你的,根據所述輪廓信息獲得輪廓到深度攝像機的距離,包括:
根據所述輪廓信息獲取輪廓的中心坐標信息;
計算中心坐標到深度攝像機的距離;
distance(x,y)=pix(x,y)/x,其中,pix(x,y)為目標物體輪廓中心深度像素坐標,x為預置距離閾值。
相應的,本發明提出了一種智慧機器人的避障裝置,所述智慧機器人設置多個超聲波傳感器,所述智慧機器人還設置至少兩個深度攝像機,所述裝置包括:
深度圖像信息確定單元,用於在通過深度攝像機及超聲波傳感器均檢測到目標物體時,確定目標物體的深度圖像信息;
距離計算單元,用於根據所述深度圖像信息計算目標物體到智慧機器人的距離;
行走單元,用於根據所述距離控制智慧機器人在行走過程中對目標物體進行躲避。
可選的,所述裝置,還包括:
位置信息確定單元,用於在僅通過超聲波傳感器檢測到目標物體時,確定目標物體的位置信息;
基於此,所述行走單元,還用於根據所述位置信息控制智慧機器人在行走過程中對目標物體進行躲避。
可選的,所述距離計算單元,具體用於:
根據深度圖像信息求取掩摸深度圖像數據;
對掩摸深度圖像數據進行降噪處理;
對降噪後的掩摸深度圖像數據進行二值化處理以得到二值圖像數據;
在二值圖像數據中進行輪廓檢索以得到輪廓信息;
根據所述輪廓信息獲得輪廓到深度攝像機的距離,以作為目標物體到智慧機器人的距離。
本發明實施例提供了一種智慧機器人的避障方法及裝置,其中,智慧機器人可設置多個超聲波傳感器及至少兩個深度攝像機,若通過深度攝像機及超聲波傳感器都檢測到目標物體時,可先確定目標物體的深度圖像信息,根據所述深度圖像信息計算目標物體與智慧機器人的距離,並根據所述距離控制智慧機器人在行走過程中對目標物體進行躲避;若僅通過超聲波傳感器檢測到目標物體時,可獲取目標物體的位置信息,並根據所述位置信息控制智慧機器人在行走過程中對目標物體進行躲避。以此,可通過將深度攝像機與超聲波傳感器相結合對障礙物進行檢測,一方面,通過深度攝像機進行視覺檢測,可不受光照影響且測距較為準確,以提高障礙物檢測的準確性,進而提高避障效果;另一方面,可通過超聲波檢測來輔助上述視覺檢測,進一步對深度攝像機的視覺盲區進行檢測,以提高對視覺盲區等處的檢測效果,實現在檢測過程中無盲區無死角,以進一步提高障礙物檢測的準確性,以提高避障效果。
附圖說明
圖1是本發明實施例提供的方法流程圖;
圖2是本發明實施例提供的裝置示意圖。
具體實施方式
為使本發明的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本發明作進一步詳細的說明。
在本實施中,可在智慧機器人的正面(也就是正對智慧機器人行走的方向)設置多個超聲波傳感器(比如,可設置於智慧機器人正面的左、右兩側等位置)及至少兩個深度攝像機(比如,可設置於智慧機器人正面的左、右兩側相鄰於超聲波傳感器的位置等),其中,超聲波傳感器及深度攝像機的位置可根據實際檢測需要而設置,以適於檢測到智慧機器人行走前方的物體等障礙物為宜。
參見圖1,該實施例提供了一種智慧機器人的避障方法。
所述方法可以包括如下步驟:
s101,在通過深度攝像機及超聲波傳感器均檢測到目標物體時,確定目標物體的深度圖像信息。
在本實施例中,可同時通過深度攝像機及超聲波傳感器對智慧機器人行走前方的物體、人等障礙物進行檢測,若兩者同時檢測存在目標物體時,則可先忽略超聲波傳感器的檢測結果,優先利用深度攝像機的檢測結果(也就是視覺檢測結果)為準進行避障。
其中,深度攝像機可採用集成有realsenser200模塊的rgb-d攝像機,以可利用intel的「主動立體成像原理」,模仿人眼的「視差」原理,通過打出一束紅外光,以左、右紅外傳感器追蹤這束紅外光的位置,然後利用三角定位原理來計算出被拍攝物體對應的3d圖像的「深度」信息,即被拍攝物體與左、右攝像頭的角度θ1和θ2,再加上固定的y值(即兩個攝像頭的中心距),就可以算出z值(即可反映物體層次的像素值),也就是物體的層次信息,比如桌子在前面,牆壁在後面等信息,以此可作為所述深度圖像信息。
s102,根據所述深度圖像信息計算目標物體到智慧機器人的距離。
在本實施例中,s102可具體包括如下步驟:
步驟1,根據深度圖像信息求取掩摸深度圖像數據。
在具體實現時,可先讀取深度圖像數據,深度圖像通常是一幅16位的圖像,可對該深度圖像進行掩摸以求取對應的掩模深度圖像數據。
可預先設置一個距離閾值x,該距離閾值的作用是可以清除超過一個固定距離以上(比如2米以上)的物體構成的深度圖像數據、清除深度圖像中的噪聲等等。
算法可為如下:
其中,f(i,j)為深度圖像中的像素點,b(i,j)為掩模後的像素點,x為預置距離閾值。
在求取到掩模深度圖像數據後,其仍然為16位,為了在後續處理中節約運算量,減少系統消耗,可將掩模深度圖數據轉換為預置數據類型,比如可採取將16位變換成8位的方式,算法可如下所示:
m(i,j)=saturate_cast(alpha*b(i,j)+beta;
其中,m(i,j)為8位的掩模深度像素點,saturate_cast為取整數值函數,alpha為圖像位轉換函數,b(i,j)為掩模後的16為像素點,beta補償係數。
步驟2,對掩摸深度圖像數據進行降噪處理。
在具體實現時,可通過運用開運算、閉運算對掩摸深度圖像數據進行降噪處理。
其中,開運算可用於移除由深度圖像中的噪音形成的斑點,閉運算可用於移除連接被誤分為許多小塊的對象,因此,可連續運用該這兩種運算以消除掩模深度圖像中的小塊幹擾、由噪聲形成的斑點等,且通過先用開運算後用閉運算,還可總體上消除圖像中破碎的對象。
在實際應用中,開運算法其實就是先腐蝕運算然後再膨脹運算,其數學表達式可為:
g(i,j)=open[m(i,j),b]=dilate{erode[m(i,j),b],b};
其中,g(i,j)為開運算結果,m(i,j)為掩模深度像素點,b為開運算係數對值,b為圖像膨脹係數。
閉運算其實就是先膨脹運算然後再腐蝕運算,其數學表達式可為:
g(i,j)=close[m(i,j),b]=erode{dilate[m(i,j),b],b}。
其中,g(i,j)為開運算結果,m(i,j)為掩模深度像素點,b為閉運算係數對值,b為圖像腐蝕係數。
之後,還可繼續進行擊中擊不中運算:
擊中擊不中變換需要兩個結構元素b1,b2,合成一個結構元素對b=(b1,b2)。一個用於探測圖像內部,作為擊中部分;另外一個用於探測圖像的外部,作為擊不中部分。顯然b1和b2是不應該相連的,即
步驟3,對降噪後的掩摸深度圖像數據進行二值化處理以得到二值圖像數據。
在後續步驟中,需要對掩模深度圖像進行輪廓檢測,則必須要先對掩模深度圖像數據進行二值化處理,也就是,將掩模深度圖像中的像素點的灰度值設置為0或255,這樣可使整個掩模深度圖像呈現出明顯的黑白效果,特徵區分明顯,易於輪廓檢測。比如,可使用最大類間差法,用t表示前景與背景的分割閾值,前景點數佔掩模深度圖像比例為w0,平均灰度為u0;背景點數佔掩模深度圖像比例為w1,平均灰度為u1,則掩模深度圖像的總平均灰度為:
u=w0*u0+w1*u1;
從最小灰度值到最大灰度值遍歷t,當t使得值g=w0*(u0-u)^2+w1*(u1-u)^2最大,t即為分割的最佳閾值。
步驟4,在二值圖像數據中進行輪廓檢索以得到輪廓信息。
在實際應用中,可通過調用用於檢索輪廓的函數在二值圖像數據中進行輪廓檢索,比如可調用函數cvfindcontours從二值圖像數據中檢索輪廓,並返回檢測到的輪廓的個數、尺寸等輪廓信息。在具體實現時,first_contour參數的值由函數填充返回,它的值將為第一個外輪廓的指針,當沒有輪廓被檢測到時為null,其它輪廓可以使用h_next和v_next連接,從first_contour到達。此外,最主要的是method參數,這個參數涉及輪廓的存儲方式,以及什麼輪廓能被發現並可以知道得到每個輪廓的信息,用於描述函數是怎麼實現的。
另外,還可通過函數vstartfindcontours,cvfindnextcontour,cvendfindcontours等計算每個輪廓的周長,周長太小的輪廓則可以去掉。
步驟5,根據所述輪廓信息獲得輪廓到深度攝像機的距離,以作為目標物體到智慧機器人的距離。
在本實施例中,可根據輪廓信息計算所有的輪廓面積,對面積小於預置面積閾值的輪廓去除,然後還可根據輪廓信息得到輪廓的中心坐標信息。
計算中心坐標到深度攝像機的距離,公式可為:
distance(x,y)=pix(x,y)/x,其中,pix(x,y)為目標物體輪廓中心深度像素坐標,x為預置距離閾值。
s103,根據所述距離控制智慧機器人在行走過程中對目標物體進行躲避。
也就是說,在智慧機器人行走過程中,可在相應的距離處控制機器人轉左或向右等方向轉動,以躲避開目標物體,實現避障的目的。
此外,在本實施例,還存在深度攝像機未檢測到目標物體,僅通過超聲波傳感器檢測到了目標物體,此種情況下,則可根據超聲波傳感器的檢測結果為準進行避障,根據該檢測結果確定目標物體的位置信息,比如可包括距離、方位等信息。
在具體實現時,超聲波傳感器可為多個超聲波傳感器組成的超聲波陣列。在通過超聲波傳感器檢測時,首先,可檢測出目標物體到智慧機器人的距離,比如可使用至少10us(微秒)的高電平信號,去刺激壓電晶體的諧振自動發送8個40khz的超聲波,當超聲波遇到障礙物的時候,就會返回被接收傳感器接收到,通過io輸出一個高電平,高電平持續的時間就是超聲波從發送到返回的時間,距離=(高電平持續的時間*聲速(340m/s))/2;其次,還可檢測出目標物體的方位,比如是超聲波陣列的左邊還是有右邊等。
然後,可根據所述位置信息控制智慧機器人在行走過程中對目標物體進行躲避,也就是說,在智慧機器人行走過程中,可在相應的距離處控制機器人轉左或向右等方向轉動,如果是在超聲波陣列的左邊發現障礙物,則可控制智慧機器人則右轉動,反之,則控制智慧機器人向左轉動,以躲避開目標物體,實現避障的目的。
在實際應用中,當然還存在深度攝像機與超聲波傳感器均未檢測到目標物體,在此種情況下,則可表明智慧機器人行走方向上沒有障礙物,無需避障,可安全行走。
本發明實施例提供了一種智慧機器人的避障方法,其中,智慧機器人可設置多個超聲波傳感器及至少兩個深度攝像機,若在通過深度攝像機及超聲波傳感器都檢測到目標物體時,可先確定目標物體的深度圖像信息,根據所述深度圖像信息計算目標物體與智慧機器人的距離,並根據所述距離控制智慧機器人在行走過程中對目標物體進行躲避;若僅通過超聲波傳感器檢測到目標物體時,可獲取目標物體的位置信息,並根據所述位置信息控制智慧機器人在行走過程中對目標物體進行躲避。以此,可通過將深度攝像機與超聲波傳感器相結合對障礙物進行檢測,一方面,通過深度攝像機進行視覺檢測,可不受光照影響且測距較為準確,以提高障礙物檢測的準確性,進而提高避障效果;另一方面,可通過超聲波檢測來輔助上述視覺檢測,進一步對深度攝像機的視覺盲區進行檢測,以提高對視覺盲區等處的檢測效果,實現在檢測過程中無盲區無死角,以進一步提高障礙物檢測的準確性,以提高避障效果。
與前述實施例中提供的智慧機器人的避障方法相對應,本申請實施例還提供了一種智慧機器人的避障裝置。
在本實施中,可在智慧機器人的正面(也就是正對智慧機器人行走的方向)設置多個超聲波傳感器(比如,可設置於智慧機器人正面的左、右兩側等位置)及至少兩個深度攝像機(比如,可設置於智慧機器人正面的左、右兩側相鄰於超聲波傳感器的位置等),其中,超聲波傳感器及深度攝像機的位置可根據實際檢測需要而設置,以適於檢測到智慧機器人行走前方的物體等障礙物為宜。
參看圖2所示,所述裝置可以包括:
深度圖像信息確定單元21,可用於在通過深度攝像機及超聲波傳感器均檢測到目標物體時,確定目標物體的深度圖像信息。
距離計算單元22,可用於根據所述深度圖像信息計算目標物體與智慧機器人的距離。
行走單元23,可用於根據所述距離控制智慧機器人在行走過程中對目標物體進行躲避。
此外,所述裝置,還可包括:
位置信息確定單元,可用於在僅通過超聲波傳感器檢測到目標物體時,確定目標物體的位置信息。
基於此,所述行走單元23,還可用於根據所述位置信息控制智慧機器人在行走過程中對目標物體進行躲避。
在具體實現時,所述距離計算單元22,可具體用於:
根據深度圖像信息求取掩摸深度圖像數據;
對掩摸深度圖像數據進行降噪處理;
對降噪後的掩摸深度圖像數據進行二值化處理以得到二值圖像數據;
在二值圖像數據中進行輪廓檢索以得到輪廓信息;
根據所述輪廓信息獲得輪廓到深度攝像機的距離,以作為目標物體到智慧機器人的距離。
其中,所述根據深度圖像信息求取掩摸深度圖像數據,可包括:
對深度圖像進行掩摸以得到對應的掩摸深度圖像數據;
將掩摸深度圖數據轉換為預置數據類型。
其中,所述對掩摸深度圖像數據進行降噪處理,可包括:
通過運用開運算、閉運算對掩摸深度圖像數據進行降噪處理。
其中,所述在二值圖像數據中進行輪廓檢索以得到輪廓信息,可包括:
通過調用用於檢索輪廓的函數在二值圖像數據中進行輪廓檢索。
其中,所述根據所述輪廓信息獲得輪廓到深度攝像機的距離,可包括:
根據所述輪廓信息獲取輪廓的中心坐標信息;
計算中心坐標到深度攝像機的距離;
distance(x,y)=pix(x,y)/x,其中,pix(x,y)為目標物體輪廓中心深度像素坐標,x為預置距離閾值。
本發明實施例提供了一種智慧機器人的避障裝置,其中,智慧機器人可設置多個超聲波傳感器及至少兩個深度攝像機,若在通過深度攝像機及超聲波傳感器都檢測到目標物體時,可先確定目標物體的深度圖像信息,根據所述深度圖像信息計算目標物體與智慧機器人的距離,並根據所述距離控制智慧機器人在行走過程中對目標物體進行躲避;若僅通過超聲波傳感器檢測到目標物體時,可獲取目標物體的位置信息,並根據所述位置信息控制智慧機器人在行走過程中對目標物體進行躲避。以此,可通過將深度攝像機與超聲波傳感器相結合對障礙物進行檢測,一方面,通過深度攝像機進行視覺檢測,可不受光照影響且測距較為準確,以提高障礙物檢測的準確性,進而提高避障效果;另一方面,可通過超聲波檢測來輔助上述視覺檢測,進一步對深度攝像機的視覺盲區進行檢測,以提高對視覺盲區等處的檢測效果,實現在檢測過程中無盲區無死角,以進一步提高障礙物檢測的準確性,以提高避障效果。
通過以上的實施方式的描述可知,本領域的技術人員可以清楚地了解到本申請可藉助軟體加必需的通用硬體平臺的方式來實現。基於這樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品可以存儲在存儲介質中,如rom/ram、磁碟、光碟等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本申請各個實施例或者實施例的某些部分所述的方法。
以上對本發明實施例提供的智慧機器人的避障方法及裝置進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。