1. 程式人生 > >基於STM32影象處理的機器人自動充電解決方案---三

基於STM32影象處理的機器人自動充電解決方案---三

接上一篇基於STM32影象處理的機器人自動充電解決方案---二

                                                                              第4章 自主導航與避障設計

 4.1自主導航設計

 如果影象處理的結果表明標註不在視野範圍內,則按照順時針調整裝置的方向,直至發現標誌物。如果影象處理結果表明,標誌物在視野範圍內,則啟動電機,使裝置向前進。如果在此過程中發現標誌物脫離了視野範圍,則以最後一次視角為對稱中心,先順時針調整裝置的位置,如果發現標誌物,則恢復前進狀態,如果沒有則繼續順時針調整,如果調整三次後還未發現標誌物,則逆時針調整裝置,如果發現標誌物,則恢復前進狀態,如果沒有則繼續逆時針調整,直至左右調整的最大角度對稱。

流程如下圖4-1所示:

4.2避障處理

如果檢測到紅外感測器的電平從高電平變為低電平,則表示紅外感測器有感應到物體。如果在此之前預充電標誌沒有被置位過,則表明此物體是障礙物,應使整個裝置後退一定距離,並向右調整方向,然後向前直走一段距離,最後向左調整方向,繼續搜尋標誌物或自主導航任務。

設計流程如下圖4-2所示:

4.3 本章所遇難點與解決方案

  4.3.1 所遇難點

在進行自主導航的過程中,會經常遇到標誌物脫離攝像頭中央區域的情況,而且沒法判斷標誌物在脫離視野的時候是在左方向還是右方向。如果脫離後搜尋標誌物的方法還是按照一開始的一樣,即順時針搜尋,有時候會遇到方向逆向的問題。即標誌物脫離視野的時候剛好在視野左方向,搜尋方法確實順時針,那麼搜尋接近一週後才能捕捉到標誌物,這樣會很耗時間,效率極其低下。

還有一方面,在自主導航的過程中也會有遇到障礙物的情況,阻擋機器人的前進。如果要避開障礙物,識別障礙物是關鍵點。單純地利用紅外線感測器感應,無法判斷,檢測到的是障礙物還是充電裝置。

   4.3.2 解決方案

為解決上面所遇到的標誌物脫離視野後的再次搜尋問題和障礙物判斷的問題,本文設計採用了下面的解決方案步驟:

    4.3.2.1 標誌物脫離解決方案:

  1. 標誌物脫離視野後,立即停止機器人的前進行動,保證標誌物脫離視野的範圍不會很大。
  2. 在上一步的前提下,先逐步順時針方向調整機器人三次,如果在調整的過程中再次捕捉到標誌物,則退出整個調整狀態,恢復自主導航前進狀態。
  3. 如果逐步順時針方向調整機器人三次後,還沒有搜尋到標誌物,那麼說明標誌物脫離的時候是處在攝像頭視野的左方向。接下來進行第(4)步。
  4. 逐步逆時針方向調整機器人六次,進行左右對稱掃描,如果在調整過程中再次捕捉到標誌物,則退出整個調整狀態,恢復自主導航前進狀態。

4.3.2.2 障礙物判斷與避障解決方案:

  1. 單單隻用紅外線感測器,無法判斷檢測到得是障礙物還是充電裝置,所以結合紅外線感測器和影象處理來進行判斷。
  2. 如果紅外線感測器有感應,則先檢視再次之前影象處理結果是否顯示機器人已經很接近充電處。
  3. 如果影象處理結果表明沒有靠近充電處,即機器人處於微調狀態,那麼判斷紅外線檢測到的物體是障礙物,需要進行避障處理。
  4. 如果判斷紅外線檢測到的是障礙物,先順時針調整機器人三次。
  5. 順時針調整機器人三次後,利用紅外線感測器檢測,如果紅外線感測器有感應,則繼續調整,直至沒有沒有感應。
  6. 後退一段距離,以便留出足夠的空間。
  7. 向右再一定角度。
  8. 向前進一定距離。
  9. 向左調整,使機器人恢復到避障處理前的平行方向,最後繼續自主導航。

                                                         第5章定位充電與各階段LED顯示設計

5.1單目視覺定位與充電

利用影象處理進行導航,是裝置逐漸靠近標誌物,也就是充電站附近。如果標誌物的像素面積超過設定的閾值,則說明整個裝置已經很靠近充電處,初步定為成功,接下來進入微調模式,也就是精準定位模式。減少裝置的前進量和方向調整量。如果在精準定位模式過程中,紅外感測器的電平從高變為低,則說明已經精準定位到充電站處,可進行後續的充電操作。

     在裝置進行精確定位後,使能串列埠舵機模組,推出充電頭進行充電。如果檢測到電量充滿,則收回充電頭,離開充電站。

具體的流程圖如下圖5-1所示:

5.2各功能階段LED顯示設計

為了使整個自動充電裝置能更加智慧形象化,在各功能階段設定LED顯示不同的顏色,並且搭配不同的狀態,表示不同的狀態資訊。顏色和狀態方面符合平時的電器使用習慣。

下表5-1是各階段的LED顯示設計:

功能階段

LED顏色

狀態

標誌物搜尋

藍色

閃爍

捕獲標誌物

藍色

常亮

電量低

紅色

閃爍

充電中

紅色

常亮

充滿電

綠色

常亮

                      表5-1 各功能階段LED顯示設計表

當機器人在搜尋標誌物,即自主導航的狀態時,將LED燈顯示成藍色,並且將其狀態設定成閃爍,表示在搜尋中。

當機器人有捕獲到標誌物時,將LED燈顯示成藍色,並且將其狀態設定為常亮,表示獲取到標誌物。

當機器人的電量低於閾值時,將LED燈顯示成紅色,並且將其狀態設定成閃爍狀態,符合我們日常電器使用指示習慣,表示機器人已經快沒電了,需要進行充電。

當機器人處在充電的狀態時,將LED燈顯示成紅色,並且將其狀態設定成常亮,符合我們日常電器使用指示習慣,表示機器人正在進行充電。

    當機器人的電量達到閾值,充電完成了,將LED燈顯示成綠色,並且將其狀態設定成常亮狀態,表示機器人充電完畢,即將離開充電處。

5.3 本章所遇難點與解決方案

   5.3.1 所遇難點

    攝像頭受焦距條件的限制,在很近的距離上無法成像,或者成像的效果很差,嚴重失真。在最後的精準定位階段,接近標誌物到一定程度後,攝像頭將失去作用。如果只用攝像頭,無法判斷是否已經到達充電處,只能判斷已經很接近充電處了,接近程度無法量化,也無法進行最終的定位。

   5.3.2 解決方案

為了解決攝像頭在最終定位階段失去作用,無法進行最終定位的問題,本文設計採用了以下的解決方案步驟:

  1. 攝像頭捕捉到標註物所佔面積比例超過閾值後,將機器人調整為微調模式,減少機器人前進的量,也縮小影象處理的有限區域。在軟體上給於範圍限制,提高定位的精準度。
  2. 啟用紅外線檢測,進行檢測。
  3. 利用影象處理結果和紅外線感測器檢測結果結合進行判斷。
  4. 如果機器人處在微調整狀態,且紅外線感測器有感應,則說明已經到達了充電處,進行最後的精準定位。

                                                                                    第6章 研究展望

在往後的發展中,機器人自動充電技術的研究也會越來越深,智慧化也會越來越高,能應對各種場合和不同的複雜環境,進而解決目前在機器人自動充電技術上所存在的問題。本文對機器人自動充電技術後續的研發工作展望如下:

  1. 充電座容錯性設計。因為時間有限,本文沒有對充電座進行設計。我們日常使用的充電座插孔範圍有限,如果定位不精準,會導致充電插頭和我們日常使用的插座對接不成功,從而導致充電失敗,所以在後續的課題研究中,應該設計一個具有一定容錯性的配套插座,彌補有時定位不精準帶來的錯誤。
  2. 影象處理演算法的改進。在機器人自動充電技術上,目前還沒有利用STM32進行影象處理的,所以本文在提出這一方法後,在影象處理方面主要考慮影象處理的資訊量。在影象處理演算法方面只使用了RGB模式。RGB影象模式會容易受到光照的影響,其對應的分量灰度值會隨著光照有一定的變化,所以在後續的研究中,可以將RGB影象中間處理區域的畫素轉換為HSV影象模式[6],在保證能在STM32上正常進行影象處理下,排除光照的影響。

此係列文章為本人畢業設計稿,轉發時請註明轉發來源。謝謝