TWI772177B - 自走裝置的移動控制方法及自走裝置 - Google Patents
自走裝置的移動控制方法及自走裝置 Download PDFInfo
- Publication number
- TWI772177B TWI772177B TW110133669A TW110133669A TWI772177B TW I772177 B TWI772177 B TW I772177B TW 110133669 A TW110133669 A TW 110133669A TW 110133669 A TW110133669 A TW 110133669A TW I772177 B TWI772177 B TW I772177B
- Authority
- TW
- Taiwan
- Prior art keywords
- pixel
- center
- self
- grayscale value
- central
- Prior art date
Links
Images
Landscapes
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Warehouses Or Storage Devices (AREA)
Abstract
本發明揭露一種自走裝置的移動控制方法及自走裝置。移動控制方法包含兩個測距步驟及導航步驟。各次測距步驟是執行一測距程序,以得到一筆距離資訊,各距離資訊包含N筆雷射點資訊。各雷射點資訊包含雷射點位置及深度值。各測距程序包含投射步驟、影像擷取步驟及N次計算步驟。各計算步驟中包含像素選取步驟:於擷取影像中的其中一行像素組中,選取其中一個像素作為中心像素;判斷步驟:判斷中心像素的灰階值,是否大於其兩側的兩個像素的灰階值。若是,則將中心像素的行數及列數記錄為雷射點位置,並利用中心像素的灰階值,計算出深度值。
Description
本發明涉及一種自走裝置的移動控制方法及自走裝置,特別是一種適用應用於利用雷射進行測距的自走裝置中的自走裝置的移動控制方法及自走裝置。
現有常見的部分掃地機器人,是利用兩道雷射進行測距,並搭配相關的演算法進行掃地機器人的移動路徑規劃。具體來說,掃地機器人內的處理器,會控制雷射發射器,向前方發出兩道雷射,並通過相關的影像擷取器,擷取包含有投射至前方的兩道雷射的影像,而後,處理器將針對影像擷取器產生的擷取影像進行解析,據以判斷出前方的環境狀況,從而決定掃地機器人後續的移動路徑。
由於處理器必需在短時間內完成擷取影像的解析,因此,在製造過程中,相關廠商必需選用相對高階的處理器,且還需要搭配其他獨立的記憶體,而無法直接利用處理器的內部記憶體進行運算,為此,導致產品的製造成品高居不下。另外,兩道雷射同時投射至前方時,會有相互干擾的問題,為此,增加了處理器對擷取影像進行分析的困難度。
本發明公開一種自走裝置的移動控制方法及自走裝置,主要用以改善現有利用兩道雷射進行測距的掃地機器人,需要利用高階處理器並搭配獨立的記憶體,導致產品的製造成本高的問題。
本發明的其中一實施例公開一種自走裝置的移動控制方法,其用以提供一自走裝置的一處理器執行,自走裝置的移動控制方法包含:一第一測距步驟:執行一測距程序,以取得一筆距離資訊,各筆距離資訊包含N筆雷射點資訊,各筆雷射點資訊包含一雷射點位置及一深度值;一第二測距步驟:執行測距程序,以取得另一筆距離資訊;一導航步驟:依據兩筆距離資訊,利用SLAM演算法計算出一移動資訊,並依據移動資訊控制自走裝置進行移動;移動資訊包含一移動方向、一移動距離及一旋轉角度中的至少一個;其中,各個測距程序包含:一投射步驟:控制一雷射發射器,向一目標區域投射單一條雷射;一影像擷取步驟:控制一影像擷取模組,擷取目標區域的影像,以形成一擷取影像,擷取影像包含N行像素組,各行像素組包含M個像素;其中,N及M皆為大於100的正整數;執行N次計算步驟,以取得N筆雷射點位置,各次計算步驟包含:一像素選取步驟:將擷取影像的其中一行的像素組中的其中一個像素選作為一中心像素;一判斷步驟:判斷中心像素的灰階值,是否大於位於中心像素的左側的至少一個像素的灰階值,且大於位於中心像素的右側的至少一個像素的灰階值;若不是,則重新執行像素選取步驟,並將同一行的像素組中的另一個像素選作為中心像素;若是,則執行以下步驟:一記錄及深度計算步驟:將中心像素的行數及列數記錄為一筆雷射點位置,並計算中心像素的一深度值,且將雷射點位置及深度值記錄為一筆雷射點資訊;其中,兩次測距程序中的投射步驟,所分別投射出的單一條雷射,若同時投射於目標區域,並通過影像擷取模組擷取目標區域,以形成擷取影像,則於擷取影像中兩條雷射是彼此相互交錯地設置。
本發明的其中一實施例公開一種自走裝置,其包含:一驅動裝置、本發明的自走裝置的移動控制方法中的雷射發射器、本發明的自走裝置的移動控制方法中所述的影像擷取模組、本發明的自走裝置的移動控制方法中所述的處理器,處理器電性連接驅動裝置,處理器能執行本發明的自走裝置的移動控制方法中所述的自走裝置的移動控制方法,以通過驅動裝置,控制自走裝置進行移動。
綜上所述,本發明的自走裝置的移動控制方法及自走裝置,通過使每次測距程序中的投射步驟僅投射出單一條雷射,以及所述計算步驟等設計,可以讓自走裝置的處理器直接利用處理器本身所具有的內存記憶體進行相關計算,而處理器在計算過程中,無須利用獨立於處理器的額外記憶體,如此,將可有效地降低自走裝置的製造成本。
為能更進一步瞭解本發明的特徵及技術內容,請參閱以下有關本發明的詳細說明與附圖,但是此等說明與附圖僅用來說明本發明,而非對本發明的保護範圍作任何的限制。
於以下說明中,如有指出請參閱特定圖式或是如特定圖式所示,其僅是用以強調於後續說明中,及的相關內容大部份出現於該特定圖式中,但不限制該後續說明中僅可參考特定圖式。以下各實施例中,所述「行」、「列」之用詞,可以依據需求相互對調。
請參閱圖1,其顯示為本發明的自走裝置的移動控制方法的流程示意圖。本發明的自走裝置的移動控制方法用以提供一自走裝置的一處理器執行,自走裝置的移動控制方法包含:
一第一測距步驟S1:執行一測距程序,以取得一筆距離資訊,各筆距離資訊包含N筆雷射點資訊,各筆雷射點資訊包含一雷射點位置及一深度值;
一第二測距步驟S2:執行所述測距程序,以取得另一筆距離資訊;
一導航步驟S3:依據兩筆距離資訊,利用SLAM(Simultaneous Localization and Mapping)演算法計算出一移動資訊,並依據移動資訊控制自走裝置進行移動;移動資訊包含一移動方向、一移動距離及一旋轉角度中的至少一個。
所述自走裝置例如可以掃地機器人、自動導引車(Automated Guided Vehicle, AGV)等,於此不加以限制。在實際應用中,在實際應用中,可以是依據自走裝置的不同,而於導航步驟S3前,執行超過兩次的測距步驟,以使處理器更精確地判讀目標區域的實際情況。
如圖2所示,各個測距程序包含以下步驟:
一投射步驟SX1:控制一雷射發射器,向一目標區域投射單一條雷射;
一影像擷取步驟SX2:控制一影像擷取模組,擷取目標區域的影像,以形成一擷取影像,擷取影像包含N行像素組,各行像素組包含M個像素;其中,N及M皆為大於100的正整數;
一計算步驟SX3:以計算出一筆雷射點資訊,且於每次計算出雷射點資訊時,更新一執行次數,所述執行次數為計算步驟已經被執行的次數;
一流程判斷步驟SX4:判斷執行次數是否為N;
若判定當前的所述執行次數為N(即表示計算步驟SX3已經被執行N次),則執行步驟SX5:結束測距程序;若判定當前的所述的執行次數未達N(即表示計算步驟SX3還未被執行N次),則再次執行計算步驟SX3。簡單來說,在每一個測距程序中,計算步驟SX3將會被執行N次,並據以計算出N筆雷射點資訊。
需強調的是,計算步驟SX3執行的次數,是對應於擷取影像所包含的行數,而每次計算步驟SX3中,則是用來計算出擷取影像的其中一行的雷射點位置,也就是說,擷取影像包含有N行像素組,計算步驟SX3被執行N次後,處理器將計算出擷取影像中每一行像素組中的雷射點位置。
其中,兩次測距程序中的投射步驟SX1,所分別投射出的單一條雷射,若同時投射於目標區域,並通過影像擷取模組擷取目標區域,以形成擷取影像,則於擷取影像中兩條雷射是彼此相互交錯地設置;在具體的應用中,兩條雷射例如可以是相互垂直地交錯設置,但不以此為限。
影像擷取模組主要是用來擷取雷射發射器投射至目標區域的雷射,舉例來說,雷射發射器可以是投射出紅外線,而影像擷取模組可以是能擷取紅外線的相機,但雷射發射器所發出的光束種類不以此為限。
如圖3所示,單一次計算步驟SX3包含以下步驟:
一像素選取步驟SX31:將擷取影像的其中一行的像素組中的其中一個像素選作為一中心像素;
一判斷步驟SX32:判斷中心像素的灰階值,是否大於位於中心像素的左側的至少一個像素的灰階值,且大於位於中心像素的右側的至少一個像素的灰階值;
若不是,則重新執行像素選取步驟SX31,並將同一行的像素組中的另一個像素作為中心像素,再執行判斷步驟SX32;
若是,則執行一記錄及深度計算步驟SX33:將中心像素的行數及列數記錄為一筆雷射點位置,並計算中心像素的一深度值,且將雷射點位置及深度值記錄為一筆雷射點資訊。所述深度(Depth)值即代表該目標區域中的某一個點(即對應於擷取影像中的其中一個像素)與影樣擷取模組的鏡頭的直線距離。
在實際應用中,於記錄及深度計算步驟SX33中,可以是用中心像素的灰階值,查詢一對照表,以於對照表中查得對應於中心像素的灰階值的深度值,也就是說,在記錄及深度計算步驟SX33中,可以是以中心像素的灰階值,利用查表的方式,取得相應的深度值,如此,將可以提升記錄及深度計算步驟SX33的計算速度。當然,在不同的應用中,也可以是利用中心像素的灰階值(及其他像素的灰階值),通過相關的演算法,即時地進行計算,以計算出中心像素相應的深度值。
如圖4所示,其顯示為擷取影像的其中一實施例的示意圖。假設擷取影像中包含有15行像素組PG1、PG2、PG3…PG15,各行像素組包含有20個像素P1、P2、P3…P20,而擷取影像包含有15*20個像素P。於圖4所呈現的擷取影像中,以白色呈現的多個像素,即對應為在目標區域被雷射照射到的位置,反之,以深灰色呈現的多個像素,即對應為於目標區域中沒有被雷射照射到的位置。需特別強調的是,於本實施例的說明中,是以於目標區域中被雷射照射到的位置,於擷取影像中,是以接近白色的像素呈現,但實際應用中,擷取影像中以何種顏色來呈現出被雷射照射到的像素及沒有被雷射照射到像素,可依據雷射發射器及影像擷取模組的不同,而有所不同。
若在上述影像擷取步驟SX2所擷取的影像如圖4所示,則所述計算步驟SX3將被執行15次,第一次執行計算步驟SX3時,例如可以是於圖4中的第一行的像素組PG1中,找出白色的像素WP(即對應於被雷射照射的位置),以產出一筆雷射點資訊,所述雷射點資訊中的雷射點位置例如可以是以座標方式呈現,亦即,第一次執行計算步驟SX3後,處理器可以是產出(1,8)的資料(即雷射點位置),(1,8)則代表第一行的像素組PG1,由左側起算的第8個像素。
承上,第二次執行計算步驟SX3時,例如可以是於圖4中的第二行像素組PG2中,找出白色的像素,以計算出一筆雷射點位置及白色的像素對應的深度值,而所述雷射點位置若以座標方式呈現則為(2,10),以此類推,而後執行的第3、4…..15次計算步驟SX3,則依序得到的雷射點位置若以座標方式呈現將為(3,10)、(4,10)、(5,10)、(6,11)、(7,11)、(8,13)、(9,13)、(10,12)、(11,11)、(12,9)、(13,9)、(14,10)、(15,10)。
需說明的是,處理器第一次執行計算步驟SX3時,是於哪一行像素組中找出白色的像素,不以上述說明為限,亦即,處理器第一次執行計算步驟SX3時,也可以是於第15行的像素組PG15中找出白色像素,而後處理器可以是依序於第14、13….1行像素組中找出白色像素。
如圖5所示,其顯示處理器於其中一行的像素組PG1中,找出白色的像素的位置(即雷射點位置)的其中一實施例的流程示意圖,在此實施例中,處理器一共執行了7次像素選取步驟SX31、7次判斷步驟SX32及1次記錄及深度計算步驟SX33。需說明的是,於圖5中,是以(a1)、(a2)、(a3)…(a7)分別表示為處理器所執行的7次判斷步驟SX3中,像素組PG1中的哪一個像素被選為中心像素。
如圖5中(a1)所示,處理器第一次執行像素選取步驟SX31時,例如可以是將像素組PG1中,位於像素組PG1最左側的像素起算的第二個像素,作為中心像素CP1,並於判斷步驟SX32中,判斷中心像素CP1的灰階值,是否大於位於中心像素CP1的左側的左像素CPL1的灰階值,且大於位於中心像素CP1的右側的右像素CPR1的灰階值;處理器第一次執行判斷步驟SX32後,將會判定中心像素CP1的灰階值、左像素CPL1的灰階值及右像素CPR1的灰階值大致相同,因此,處理器將會再次執行像素選取步驟SX31。
如圖5中(a2)所示,當處理器第二次執行像素選取步驟SX31時,例如可以是將位於上一個中心像素CP1的右側的像素作為當前的中心像素CP2(即當前的中心像素CP2是於像素組PG1的最左側起算的第3個像素),並據以判斷中心像素CP2的灰階值,是否大於位於中心像素CP2的左側的左像素CPL2的灰階值,且大於位於中心像素CP2的右側的右像素CPR2的灰階值;處理器第二次執行判斷步驟SX32後,將會判定中心像素CP2的灰階值、左像素CPL2的灰階值及右像素CPR2的灰階值大致相同,因此,處理器將會再次執行像素選取步驟SX31。
依上所述,以此類推,如圖5中的(a7)所示,處理器在執行第7次像素選取步驟SX31後,於判斷步驟SX32中,將會判定中心像素CP7的灰階值大於左像素CPL7的灰階值,且中心像素CP7的灰階值大於右像素CPR7的灰階值,而處理器將會接續執行所述記錄及深度計算步驟SX33,以利用中心像素CP7的灰階值,計算出相應的深度值(例如是通過前述的查表的方式)。
如圖6所示,其顯示為處理器於一行像素組PG1中,找出白色的像素(即雷射點的位置)的另一實施例的流程示意圖,本實施例與圖5所示的實施例的流程示意圖不同之處在於:處理器一共執行了12次像素選取步驟SX31、12次判斷步驟SX32及一次記錄及深度計算步驟SX33。
如圖6中的(b1)所示,處理器第一次執行像素選取步驟SX31時,是選擇由像素組PG1的最右側的像素起算的第二個像素,作為中心像素CP1;如圖6中的(b2)所示,處理器第二次執行像素選取步驟SX31時,則是將位於上一個中心像素CP1的左側的像素,作為中心像素CP2,以此類推,如圖6中的(b12)所示,處理器在執行第12次判斷步驟SX32時,將判定中心像素CP12的灰階值大於位於中心像素CP12的左側的左像素CPL12的灰階值,且中心像素CP12的灰階值大於位於中心像素CP12的右側的右像素CPR12的灰階值,而處理器將接續執行記錄及深度計算步驟SX33,以計算出中心像素CP12的深度值。
依上所述,在其中一個具體實施例中,若擷取影像如圖4所示,則處理器將執行15次計算步驟SX3,且處理器每次執行計算步驟SX3時,可以是以圖5或圖6所示的流程,於各行像素組中找出呈現為白色的像素,據以取得雷射點位置,並以位於雷射點位置的像素所對應的灰階值,計算出相應深度值。
如圖4至圖7所示,圖7顯示為處理器於其中一行像素組中,找出白色的像素的位置(即雷射點位置)的另一實施例的流程示意圖。處理器第一次執行計算步驟SX3時,例如可以是利用圖5或圖6所示的實施例的流程示意圖,於第一行像素組PG1(如圖4所示)中找出白色的像素,並據以取得一筆雷射點位置,所述雷射點位置以座標呈現即為(1,8)。
處理器在第二次執行計算步驟SX3(及第二次以後所執行的計算步驟SX3)中,第一次執行像素選取步驟SX31時,可以是將當前的像素組PG2中,對應於上一筆記錄的雷射點位置的列數的像素作為中心像素。
具體來說,如圖4及圖7中的(c1)所示,處理器第一次執行計算步驟SX3後,在第一行像素組PG1中,所得到的雷射點位置的列數為8,而處理器第二次執行計算步驟SX3的過程中,在第一次執行像素選取步驟SX31時,可以是選擇由像素組PG2的最左側的像素起算的第8個像素作為中心像素CP2。也就是說,在圖7所示的實施例中(即處理器第二次執行計算步驟SX3的過程中),處理器在第一次執行像素選取步驟SX31時,將不是選擇由像素組PG2的最左側的像素(或最右側的像素)起算的第2個像素作為中心像素,而是以上一筆記錄的雷射點位置的列數作為依據。
如圖7中(c2)~(c9)所示,處理器在第二次及第二次以後執行像素選取步驟SX31時,則是將位於上一個中心像素的左側或是右側的像素作為中心像素。具體來說,如圖7中的(c2)所示,處理器第二次執行像素選取步驟SX31時,處理器可以選擇上一個中心像素CP1(位於此行像素組的第8列)的左側的像素(位於此行像素組的第7列)作為中心像素CP2,依此類推,處理器第3~7次執行像素選取步驟SX31時,將分別以位於此行像素組由最左側起算的第6、5、4、3、2列的像素作為中心像素CP3、CP4、CP5、CP6、CP7。
當處理器執行第七次像素選取步驟SX31時,已經到達了此行像素組由左側起算的第二個像素,由於處理器仍未查找到呈現為白色的像素,因此,處理器再執行第八次像素選取步驟SX31時,處理器將會以位於第一次執行像素選取步驟SX31時的中心像素CP1的右側的像素,作為中心像素CP8,亦即,處理器執行第八次像素選取步驟SX31時,處理器會將此像素組中由最左側起算的第9個像素,作為中心像素CP8。
與前述說明相類似地,處理器執行第八次判斷步驟SX32後,將判斷中心像素CP8的灰階值,與位於中心像素CP8的左側的左像素CPL8的灰階值大致相同,且中心像素CP8的灰階值小於位於中心像素CP8的右側的右像素CPR8的灰階值,因此,處理器將執行第九次像素選取步驟SX31。處理器執行第九次像素選取步驟時,處理器將以位於上一個中心像素CP8的右側的像素作為中心像素CP9。
依上所述,簡單來說,於圖7所示的流程示意圖中,處理器第一次執行像素選取步驟SX31時,將會以當前像素組PG2中,對應於前一次記錄的雷射點位置的列數(即第8列)的像素作為中心像素CP1,而後,處理器接續執行第2~7次像素選取步驟SX31時,處理器將會逐次地將位於中心像素CP1的左側的像素作為中心像素,直到處理器判定位於中心像素CP1左側的所有像素都不存在有呈現為白色的像素為止;接著,處理器將會逐次地將位於中心像素CP1的右側的像素作為中心像素,直到處理器找到呈現為白色的像素為止。
如圖4至圖6、圖8所示,圖8顯示為處理器於其中一行像素組中,找出呈現為白色的像素的位置(即雷射點位置)的另一實施例的流程示意圖。本實施例與圖7所示的流程示意圖最大不同之處在於:如圖8中的(d2)所示,處理器在第二次執行像素選取步驟SX31時,處理器是選用位於上一次選取的中心像素CP1的右側的像素,作為當前的中心像素CP2,且如圖8中的(d3)所示,處理器在第三次執行像素選取步驟SX31時,則是以位於上一次選取的中心像素CP2的右側的像素,作為當前的中心像素CP3。
如圖4至圖6及圖9所示,圖9顯示為處理器於其中一行像素組中,找出呈現為白色的像素的位置(即雷射點位置)的另一實施例的流程示意圖。本實施例與前述圖7所示的實施例的流程圖,最大不同之處在於:處理器第三次及其後奇數次執行像素選取步驟SX31時,是將上一個奇數次執行像素選取步驟SX31時,所選取的中心像素的右側的像素選取為中心像素;第四次及其後偶數次數執行像素選取步驟SX31時,是將上一個偶數次執行像素選取步驟SX31時,選取的中心像素的右側的像素選取為中心像素。
具體來說,如圖9中的(e1)所示,處理器第一次執行像素選取步驟SX31時,是選擇由像素組PG2的最左側的像素起算的第8個(對應為上一筆記錄的雷射點位置的列數)像素,作為中心像素CP1。
如圖9中的(e2)所示,處理器第二次執行像素選取步驟SX31時,則是選擇位於上一次選擇的中心像素CP1的左側的像素作為當前的中心像素CP2(即由像素組的最左側的像素起算的第7個像素)。
如圖9中的(e3)所示,處理器第三次執行像素選取步驟SX31時,則是選擇位於第一次執行像素選取步驟SX31時,所選擇的中心像素CP1的右側的像素,作為中心像素CP3(即由像素組PG2的最左側的像素起算的第9個像素)。
如圖9中的(e4)所示,處理器第四次執行像素選取步驟SX31時,則是選擇位於第二次執行像素選取步驟SX31時,選擇的中心像素CP2的左側的像素,作為中心像素CP4(即由像素組的最左側的像素起算的第6個像素)。
如圖9中的(e5)所示,處理器第五次執行像素選取步驟SX31時,則是選擇位於第三次執行像素選取步驟SX31時,選擇的中心像素CP3的右側的像素,作為中心像素CP5(即由像素組的最左側的像素起算的第10個像素)。
需特別說明的是,在本實施例的另一變化實施例中,處理器第二次執行像素選取步驟SX31時,也可以是選擇位於上一次選擇的中心像素CP1的右側的像素作為中心像素,而處理器第四次執行像素選取步驟SX31時,則是選擇位於第二次執行像素選取步驟SX31時,所選取的中心像素的右側的像素;處理器第三次執行像素選取步驟SX31時,則是選擇位於第一次執行像素選取步驟SX31時,所選取的中心像素的左側的像素,處理器第五次執行像素選取步驟SX31時,則是選擇位於第三次執行像素選取步驟SX31時,所選取的中心像素的左側的像素。
如圖9中的(e3)所示,在其中一個變化的實施例中,處理器執行完第三次像素選取步驟SX31後,且於第四次執行像素選取步驟SX31前,還可以是加入一像素差值計算步驟:計算出前一次的中心像素的灰階值與左像素的灰階值的差值,及前一次的中心像素的灰階值與右像素的灰階值差值,並於第四次執行像素選取步驟SX31時,選擇差值相對較大的像素作為中心像素,如此,處理器於圖9中的(e3)所示的步驟後,將會判定中心像素CP3的灰階值與右像素CPR3的灰階值的差值,大於中心像素CP3的灰階值與左像素CPL3的灰階值的差值,而處理器下次執行像素選取步驟SX31時,將會選擇位於中心像素CP3的右側的像素作為中心像素(即對應為圖9中所示的像素CP5)。
請一併參閱圖10至圖12,圖10顯示為本發明的自走裝置的移動控制方法的計算步驟的另一實施例的流程示意圖,圖11顯示為對應於圖10的實施例的擷取影像的示意圖,圖12顯示為處理器於其中一行像素組中,找出呈現為白色的像素的位置(即雷射點位置)的另一實施例的流程示意圖。
如圖10所示,本實施例的計算步驟包含一像素選取步驟SY31、一判斷步驟SY32及一記錄及深度計算步驟SY33。於此所述的像素選取步驟SY31、記錄及深度計算步驟SY33,與前述實施例中所述的像素選取步驟SX31、記錄及深度計算步驟SX33相同,以下不再贅述。
本實施例與前述圖3所對應的實施例最大不同之處在於:於所述判斷步驟SY32中,處理器是判斷中心像素的灰階值,是否大於位於中心像素的左側的兩個像素的灰階值,且大於位於中心像素的右側的兩個像素的灰階值。
在此實施例中,處理器一共執行了6次像素選取步驟SY31、6次判斷步驟SY32及1次記錄及深度計算步驟SY33。處理器第一次執行像素選取步驟SY31時,例如可以是將由像素組PG1最左側(或者最右側)的像素起算的第三個像素作為中心像素CP1,並於判斷步驟SY32中判斷中心像素CP1的灰階值,是否大於位於中心像素CP1的左側的第一個像素CPL1的灰階值、大於位於中心像素CP1的左側的第二個像素CPLL1的灰階值、大於位於中心像素CP1的右側的第一個像素CPR1的灰階值,且大於位於中心像素CP1的右側的第二個像素CPRR1的灰階值。
如圖11所示,處理器第一次執行判斷步驟SY32後,將判定中心像素CP1的灰階值、像素CPL1的灰階值、像素CPLL1的灰階值、像素CPR1的灰階值及像素CPRR1的灰階值大致相同,而處理器將會再次執行像素選取步驟SY31及判斷步驟SY32,直到處理器第6次執行像素選取步驟SY31及判斷步驟SY32時,處理器將判定中心像素CP1的灰階值,大於像素CPL1的灰階值、像素CPLL1的灰階值、像素CPR1的灰階值及像素CPRR1的灰階值,此時,處理器將執行記錄及深度計算步驟SY33。
如圖11所示,在其中一個變化的實施例中,處理器在執行判斷步驟SY32後,且執行下一次的像素選取步驟SY31前,還可以是包含有一像素差值計算步驟:計算出前一次的中心像素的灰階值與位於其左側的兩個像素的兩個灰階值的差值,且計算出前一次的中心像素的灰階值與位於其右側的兩個像素的兩個灰階值的差值,並於下一次執行像素選取步驟SY31時,選擇差值最大的像素作為中心像素;也就是說,處理器執行完圖11中所示的(f2)步驟後,處理器執行所述像素差值計算步驟後,將會因為像素CPRR2的灰階值與中心像素CP2的像素的灰階值的差值最大,而於下一次執行像素選取步驟SY31時,直接選取像素CPRR2作為新的中心像素,亦即,在處理器執行完圖11中所示的(f2)步驟後,將會直接跳至圖11中所示的(f4)步驟,而處理器在執行完圖11中所示的(f4)步驟後,將會直接跳至圖11中所示的(f6)步驟。
請參閱圖13,其顯示為本發明的自走裝置的方塊示意圖。本發明的自走裝置D包含一驅動裝置D1、一雷射發射器D2、一影像擷取模組D3及一處理器D4。處理器D4能執行前述本發明的自走裝置的移動控制方法,並據以通過控制驅動裝置D1,控制自走裝置D進行移動。關於雷射發射器、影像擷取模組的相關說明,請參閱前述實施例,於此不再贅述。
綜上所述,本發明的自走裝置的移動控制方法及自走裝置,通過於各個測距程序中的投射步驟中,僅投射出單一條雷射,以及,各計算步驟中所包含的像素選取步驟、判斷步驟等設計,可以大幅地縮小處理器於擷取影像中,計算出雷射點位置所需的記憶體容量,從而可以讓處理器在進行相關計算時,能夠直接使用處理器本身的內存記憶體,而無須利用獨立於處理器的記憶體,如此,相關廠商將可以選用成本較低的處理器,從而可以大幅地降低自走裝置的整體成本。
以上所述僅為本發明的較佳可行實施例,非因此侷限本發明的專利範圍,故舉凡運用本發明說明書及圖式內容所做的等效技術變化,均包含於本發明的保護範圍內。
S1、S2、S3:流程步驟
SX1、SX2、SX3、SX4、SX5:流程步驟
SX31、SX32、SX33:流程步驟
SY31、SY32、SY33:流程步驟
PG1~PG15:像素組
P1~P20:像素
WP:白色的像素
CP1~CP12:中心像素
CPL1~CPL12:左像素
CPR1~CPR12:右像素
CPL1~CPL7、CPLL1~CPLL6:像素
CPR1~CPR7、CPRR1~CPRR6:像素
D:自走裝置
D1:驅動裝置
D2:雷射發射器
D3:影像擷取模組
D4:處理器
圖1為本發明的自走裝置的移動控制方法的流程示意圖。
圖2為本發明的自走裝置的移動控制方法的各測距程序的流程示意圖。
圖3為本發明的自走裝置的移動控制方法的單一次計算步驟的流程示意圖。
圖4為本發明的自走裝置的移動控制方法的其中一實施例的擷取影像的示意圖。
圖5至圖9為處理器於其中一行的像素組中,找出白色的像素的位置的不同實施例的流程示意圖。
圖10為本發明的自走裝置的移動控制方法的另一實施例的單一次計算步驟的流程示意圖。
圖11為對應於圖10的實施例中的擷取影像的示意圖。
圖12為圖10的實施例中,處理器於其中一行的像素組中,找出白色的像素的位置的另一實施例的流程示意圖。
圖13為本發明的自走裝置的方塊示意圖。
SX1、SX2、SX3、SX4、SX5:流程步驟
Claims (10)
- 一種自走裝置的移動控制方法,其用以提供一自走裝置的一處理器執行,所述自走裝置的移動控制方法包含: 一第一測距步驟:執行一測距程序,以取得一筆距離資訊,各筆所述距離資訊包含N筆雷射點資訊,各筆所述雷射點資訊包含一雷射點位置及一深度值; 一第二測距步驟:執行所述測距程序,以取得另一筆距離資訊; 一導航步驟:依據兩筆所述距離資訊,利用SLAM演算法計算出一移動資訊,並依據所述移動資訊控制所述自走裝置進行移動;所述移動資訊包含一移動方向、一移動距離及一旋轉角度中的至少一個; 其中,各個所述測距程序包含: 一投射步驟:控制一雷射發射器,向一目標區域投射單一條雷射; 一影像擷取步驟:控制一影像擷取模組,擷取所述目標區域的影像,以形成一擷取影像,所述擷取影像包含N行像素組,各行所述像素組包含M個像素;其中,N及M皆為大於100的正整數; 執行N次計算步驟,以取得N筆所述雷射點位置,各次所述計算步驟包含: 一像素選取步驟:將所述擷取影像的其中一行的所述像素組中的其中一個所述像素選作為一中心像素; 一判斷步驟:判斷所述中心像素的灰階值,是否大於位於所述中心像素的左側的至少一個所述像素的灰階值,且大於位於所述中心像素的右側的至少一個所述像素的灰階值; 若不是,則重新執行所述像素選取步驟,並將同一行的所述像素組中的另一個所述像素選作為所述中心像素; 若是,則執行以下步驟: 一記錄及深度計算步驟:將所述中心像素的行數及列數記錄為一筆所述雷射點位置,並計算所述中心像素的一深度值,且將所述雷射點位置及所述深度值記錄為一筆所述雷射點資訊; 其中,兩次所述測距程序中的所述投射步驟,所分別投射出的單一條所述雷射,若同時投射於所述目標區域,並通過所述影像擷取模組擷取所述目標區域,以形成所述擷取影像,則於所述擷取影像中兩條所述雷射是彼此相互交錯地設置。
- 如請求項1所述的自走裝置的移動控制方法,其中,於所述深度計算步驟中,是以所述中心像素的所述灰階值,查詢一對照表,以於所述對照表中查得對應於所述中心像素的所述灰階值的所述深度值。
- 如請求項1所述的自走裝置的移動控制方法,其中,於各次所述計算步驟中,第一次執行所述像素選取步驟時,是將所述擷取影像中的其中一行所述像素組中,由位於最左側的所述像素起算的第二個所述像素選作為所述中心像素,或是,是將所述擷取影像中的其中一行所述像素組中,由位於最右側的所述像素起算的第二個所述像素,選作為所述中心像素,且於各次所述判斷步驟中,是判斷所述中心像素的灰階值,是否大於位於所述中心像素的左側的一個所述像素的灰階值,且大於位於所述中心像素的右側的一個所述像素的灰階值;而第二次執行所述像素選取步驟時,則是將位於上一個所述中心像素的右側或是左側的所述像素作為所述中心像素。
- 如請求項1所述的自走裝置的移動控制方法,其中,於各個所述判斷步驟中,是判斷所述中心像素的灰階值,是否大於位於所述中心像素的左側的兩個所述像素的兩個灰階值,且大於所述中心像素的右側的兩個所述像素的兩個灰階值。
- 如請求項4所述的自走裝置的移動控制方法,其中,於各次所述計算步驟中,第一次執行所述像素選取步驟時,是將所述擷取影像中的其中一行所述像素組中,由位於最左側的所述像素起算的第三個所述像素,作為所述中心像素,或是,是將所述擷取影像中的其中一行所述像素組中,由位於最右側的所述像素起算的第三個所述像素,作為所述中心像素,且於各次所述判斷步驟中,是判斷所述中心像素的灰階值,是否大於位於所述中心像素的左側的一個所述像素的灰階值,且大於位於所述中心像素的右側的一個所述像素的灰階值;而第二次執行所述像素選取步驟時,則是將位於上一個所述中心像素的右側或是左側的所述像素作為所述中心像素。
- 如請求項3至5其中任一項所述的自走裝置的移動控制方法,其中,於第二次所執行的所述計算步驟中及於第二次以後所執行的所述計算步驟中,是將當前的所述像素組中,對應於上一筆記錄的所述雷射點位置的列數的所述像素作為所述中心像素。
- 如請求項6所述的自走裝置的移動控制方法,其中,於各個所述計算步驟時,第三次及其後奇數次執行所述計算步驟時,是將上一個奇數次執行所述像素選取步驟時,所選取的所述中心像素的左側的所述像素選取為所述中心像素;第四次及其後偶數次數執行所述計算步驟時,是將上一個偶數次執行所述像素選取步驟時,所述選取的所述中心像素的右側的所述像素選取為所述中心像素。
- 如請求項7所述的自走裝置的移動控制方法,其中,於各個所述計算步驟時,第三次及其後奇數次執行所述計算步驟時,是將上一個奇數次執行所述像素選取步驟時,所選取的所述中心像素的右側的所述像素選取為所述中心像素;第四次及其後偶數次數執行所述計算步驟時,是將上一個偶數次執行所述像素選取步驟時,所述選取的所述中心像素的左側的所述像素選取為所述中心像素。
- 一種自走裝置,其包含:一驅動裝置、如請求項1所述的雷射發射器、如請求項1所述的影像擷取模組、如請求項1所述的處理器,所述處理器電性連接所述驅動裝置,所述處理器能執行如請求項1所述的自走裝置的移動控制方法,以通過所述驅動裝置,控制所述自走裝置進行移動。
- 如請求項9所述的自走裝置,其中,於各個所述判斷步驟中,是判斷所述中心像素的灰階值,是否大於位於所述中心像素的左側的兩個所述像素的兩個灰階值,且大於所述中心像素的右側的兩個所述像素的兩個灰階值;於各次所述計算步驟中,第一次執行所述像素選取步驟時,是將所述擷取影像中的其中一行所述像素組中,由位於最左側的所述像素起算的第三個所述像素,作為所述中心像素,或是,是將所述擷取影像中的其中一行所述像素組中,由位於最右側的所述像素起算的第三個所述像素,作為所述中心像素;第二次執行所述像素選取步驟時,則是將位於上一個所述中心像素的右側或是左側的所述像素作為當前的所述中心像素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110133669A TWI772177B (zh) | 2021-09-10 | 2021-09-10 | 自走裝置的移動控制方法及自走裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110133669A TWI772177B (zh) | 2021-09-10 | 2021-09-10 | 自走裝置的移動控制方法及自走裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI772177B true TWI772177B (zh) | 2022-07-21 |
TW202312101A TW202312101A (zh) | 2023-03-16 |
Family
ID=83439802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110133669A TWI772177B (zh) | 2021-09-10 | 2021-09-10 | 自走裝置的移動控制方法及自走裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI772177B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI509221B (zh) * | 2012-11-02 | 2015-11-21 | Qualcomm Inc | 用於視覺同時區域化及映射(slam)之處理器實施方法、電腦可讀穩定式儲存媒體、資料處理器件及裝置 |
CN107301654A (zh) * | 2017-06-12 | 2017-10-27 | 西北工业大学 | 一种多传感器的高精度即时定位与建图方法 |
TWI660703B (zh) * | 2016-11-24 | 2019-06-01 | 南韓商Lg電子股份有限公司 | 移動式清掃機器人及其控制方法 |
WO2020134082A1 (zh) * | 2018-12-28 | 2020-07-02 | 歌尔股份有限公司 | 一种路径规划方法、装置和移动设备 |
-
2021
- 2021-09-10 TW TW110133669A patent/TWI772177B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI509221B (zh) * | 2012-11-02 | 2015-11-21 | Qualcomm Inc | 用於視覺同時區域化及映射(slam)之處理器實施方法、電腦可讀穩定式儲存媒體、資料處理器件及裝置 |
TWI660703B (zh) * | 2016-11-24 | 2019-06-01 | 南韓商Lg電子股份有限公司 | 移動式清掃機器人及其控制方法 |
CN107301654A (zh) * | 2017-06-12 | 2017-10-27 | 西北工业大学 | 一种多传感器的高精度即时定位与建图方法 |
WO2020134082A1 (zh) * | 2018-12-28 | 2020-07-02 | 歌尔股份有限公司 | 一种路径规划方法、装置和移动设备 |
Also Published As
Publication number | Publication date |
---|---|
TW202312101A (zh) | 2023-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110083157B (zh) | 一种避障方法及装置 | |
US8781256B2 (en) | Method to match color image and depth image using feature points | |
US9524578B2 (en) | Projection system, semiconductor integrated circuit, and image correction method | |
US11741690B2 (en) | Method for generating parking model, electronic device, and storage medium | |
CN108177162B (zh) | 移动机器人的干扰区域设定装置 | |
JP6317456B2 (ja) | 車両用のステレオ/ビデオシステム内の相対的なヨー角の変化を検知するための方法および制御装置 | |
CN111881239A (zh) | 构建方法、构建装置、智能机器人及可读存储介质 | |
Schönbein et al. | Calibrating and centering quasi-central catadioptric cameras | |
JP2017111638A (ja) | 画像処理方法、画像処理装置、画像処理システム、生産装置、プログラム及び記録媒体 | |
JP2017083663A (ja) | 一致性評価装置および一致性評価方法 | |
CN114612786A (zh) | 一种障碍物检测方法、移动机器人及机器可读存储介质 | |
TWI772177B (zh) | 自走裝置的移動控制方法及自走裝置 | |
US9091821B2 (en) | Device and method of focusing on points of objects | |
Zhang et al. | Learning-based distortion correction and feature detection for high precision and robust camera calibration | |
US8737686B2 (en) | 3D object tracking method and apparatus | |
CN113579601A (zh) | 一种焊道的定位方法、装置、焊接机器人和存储介质 | |
Cheng et al. | Dc-mot: Motion deblurring and compensation for multi-object tracking in uav videos | |
Kim et al. | Rrd-slam: Radial-distorted rolling-shutter direct slam | |
EP4301557A1 (en) | System(s) and method(s) of using imitation learning in training and refining robotic control policies | |
US10515455B2 (en) | Optical flow measurement | |
Said et al. | Depth estimation for a mobile platform using monocular vision | |
CN116673968A (zh) | 基于强化学习的机械臂轨迹规划要素选择方法及系统 | |
CN115877831A (zh) | 自走装置的移动控制方法及自走装置 | |
Hsu et al. | Online recalibration of a camera and lidar system | |
JP2020142323A (ja) | ロボット制御装置、ロボット制御方法、及びロボット制御プログラム |