
圖1(清潔機器人的傳動結構草圖)
自從周二考完MT(醫療技術)以后,就開始忙著繼續清潔機器人的項目。
經過2天的忙碌,基本上算是解決了機器人的定位問題。經過這段時間的實踐,慢慢的有了點小小體會。下面結合一下這2天的進度,進行個小總結。
隨著信息處理技術的發展,現在幾乎大部分的技術問題都最終可以轉換成數學問題加以解決。
通常的步驟是:
步驟1,通過傳感器,將實際的物理或化學信息轉換為數字信號;
步驟2,對步驟1中所獲得的數字信號,根據物理特征的數學含義進行數學變換,提取出所需要的數學特征;
步驟3,將提取出的數學特征再重建為具有物理或化學意義的信息。
結合這幾個小時做的一點嘗試,做個簡單介紹:
技術問題的描述:
圖2(機器人定位示意圖) 我們的機器人系統分為兩部分,一部分是如圖1所示的機器人主體,里面包括自主運動單元,清潔單元和通信單元,另一部分就是面對黑板的視覺部分,包括通信單元和視覺單元。如圖2所示,為視覺單元中的攝像頭拍攝下的圖片。其中黑板上有三個黑圈的白紙代表我們的小機器人(其中單獨黑圈的方向為機器人的頭部,即前進方向。)。現在,我們要通過這樣的圖片,來識別出機器人,求出機器人所在的空間位置,再將此空間位置通過通信單元發給機器人主體,以實現機器人的自主運動的控制。
所以,問題的關鍵是機器人的識別和定位。在上個學期的最后一段時間,已經解決了圖片像素和實際物理空間坐標間的轉換問題。也就是說,我只要知道了圖片中某一點的像素,那我就知道,該像素所對應的點,在實際的3D物理空間中的位置。這涉及到計算機視覺最主要的任務,3D場景重建。不過我們用了個比較取巧的方法,用8個已知像素及物理空間對應關系的點來求圖片中任意一點的空間位置。這里相當于解決了上面所述的3個步驟中的步驟3(將提取出的數學特征再重建為具有物理或化學意義的信息。)。具體的算法就不介紹了,效果還是不錯的,誤差基本上在幾毫米,屬于可以允許的范圍之內。
而現在我們要解決的問題就是:如何從圖2中識別出,哪一部分是機器人。即,得到機器人的像素坐標。這就是所述的步驟2。 對步驟1中所獲得的數字信號(即,圖2這樣的數碼照片),根據物理特征的數學含義進行數學變換,提取出所需要的數學特征; 好了,現在我們需要考慮,機器人在視覺/光學上有什么樣的特征? 通過觀察圖2,我們可以發現,通常,黑板是大片的某種顏色,其上的字跡是其他顏色,但多為細長的線條,幾乎沒有大片相同顏色的圖案出現。所以如果我們將機器人設計成為,具有大片的和黑板不同顏色的上表面的話,那我們的機器人就具有和黑板及筆跡不一樣的物理特征了。例如在圖2中,背景為白板。那我們可以讓機器人采用黑色的上表面顏色。 這樣我們就只需要過濾掉顏色淺的部分,和細的線段就可以得到干凈的幾乎只剩下機器人的圖片了。 圖3a(原始圖片) 圖3b(經過處理后的圖片) 如圖3所示,是經過一些處理步驟前后的圖片對比。可以看的出來,幾乎所有的背景和筆跡都被清除掉了。排除了其他干擾,現在我們只需要想辦法取得機器人的像素就可以了。好了,繼續尋找物理特征。我們可以觀察到,機器人上的點有這樣的特性,是黑色的,且周邊有大片黑色點。據此,我們引入1個閥值(threshold),和一個固定大小的窗口(window)。只要以某一點為中心的窗口內,灰度值(gray value)之和超過這個閥值,我們就判定,該點屬于機器人。那么,我們從圖片的四個角開始搜索,所搜索到的頭四個符合要求的點就是我們機器人的四個角。例如在圖3b中,四個角的像素坐標分別是P1(534,1191),P2(567,1392),P3(711,1176),P4(732,1380)。得到了四個坐標,再用上面提到的步驟3的算法,就可以算出,機器人在真實世界中的位置了。至此,算是基本解決了上面提到的技術問題。
當然,還有很多其他的方法來解決這個問題。例如,因為機器人是運動的,而背景,如筆跡,黑板則是基本靜止的。那么,我們在同一地點,不同時間拍下的照片,變化特別大的部分則是機器人所在的區域了。其實,在實際的項目過程中,會遇到各種各樣的問題和麻煩,有的時候,只是因為一些沒辦法解決的小問題,而不得不放棄很棒的創意。 謹用此文紀念一下進行清潔機器人項目的時光。希望接下來能進展順利,早點見到我們的機器人“聰明”的清掃黑板。
照片描述:深夜依然畫圖試圖解決像素和空間位置的坐標轉換問題。
|