本申請涉及計算機技術領域,具體涉及控制技術領域,尤其涉及無人搬運車的控制方法和裝置。
背景技術:
無人搬運車(automatedguidedvehicle,agv),也稱自動導引運輸車,指裝備有電磁或光學等自動導引裝置,能夠沿規定的導引路徑行駛,具有安全保護以及各種移載功能的運輸車。無人搬運車不需要駕駛員,一般可透過電腦來控制其行進路線以及行為。
在實際應用中,無人搬運車需要沿著多條行進路線行駛直至到達目的地。因此,當無人搬運車沿一條行進路線行駛至該行進路線的終點時,就需要控制無人搬運車轉向下一條行進路線,并繼續行駛。
然而,無人搬運車在行駛過程中經常出現偏離預先設定的行進路線的情況。因此,如何在無人搬運車偏離行進路線的情況下控制無人搬運車在轉向的同時消除偏航誤差就成為一種高效實用的策略。
技術實現要素:
本申請實施例的目的在于提出一種改進的無人搬運車的控制方法和裝置,來解決以上背景技術部分提到的技術問題。
第一方面,本申請實施例提供了一種無人搬運車的控制方法,該方法包括:接收對無人搬運車的轉向控制指令,其中,轉向控制指令包括無人搬運車的目標位姿信息,位姿信息用于指示無人搬運車的位置和行駛方向;將預先獲取的無人搬運車的位姿信息作為初始位姿信息;獲取目標位姿信息與初始位姿信息之間的位置偏移和角度偏移;基于位置偏移和角度偏移,控制無人搬運車的驅動輪轉動,以使無人搬運車由初始位姿信息所指示的位置和行駛方向行駛直至達到目標位姿信息所指示的位置和行駛方向。
在一些實施例中,無人搬運車包括至少兩個驅動輪;以及基于位置偏移和角度偏移,控制無人搬運車的驅動輪轉動,以使無人搬運車由初始位姿信息所指示的位置和行駛方向行駛直至達到目標位姿信息所指示的位置和行駛方向,包括:基于位置偏移,從至少兩個驅動輪中選取出驅動輪作為第一驅動輪,并從至少兩個驅動輪中選取出驅動輪作為第二驅動輪,其中,第一驅動輪與第二驅動輪不是同一個驅動輪;控制第一驅動輪轉動,以使第一驅動輪的位置與目標位姿信息所指示的位置之間的距離等于第一驅動輪與第二驅動輪的間距的一半;控制第一驅動輪停止轉動,并控制第二驅動輪轉動,以使無人搬運車行駛至目標位姿信息所指示的位置;控制第一驅動輪和第二驅動輪等速反向轉動,以使無人搬運車原地轉動直至達到目標位姿信息所指示的行駛方向。
在一些實施例中,控制第一驅動輪轉動,以使第一驅動輪的位置與目標位姿信息所指示的位置之間的距離等于第一驅動輪與第二驅動輪的間距的一半,包括:執行以下第一控制步驟:控制第一驅動輪轉動,并在第一預設時間段后獲取無人搬運車的當前位姿信息;基于當前位姿信息和第一驅動輪與第二驅動輪的間距,確定第一驅動輪的當前位置;基于當前位置和目標位姿信息,確定當前位置與目標位姿信息所指示的位置之間的距離;確定當前位置與目標位姿信息所指示的位置之間的距離是否等于第一驅動輪與第二驅動輪的間距的一半;響應于確定當前位置與目標位姿信息所指示的位置之間的距離不等于第一驅動輪與第二驅動輪的間距的一半,繼續執行第一控制步驟。
在一些實施例中,控制第一驅動輪停止轉動,并控制第二驅動輪轉動,以使無人搬運車行駛至目標位姿信息所指示的位置,包括:控制第一驅動輪停止轉動;執行以下第二控制步驟:控制第二驅動輪轉動,并在第二預設時間段后獲取無人搬運車的當前位姿信息;確定當前位姿信息所指示的位置是否是目標位姿信息所指示的位置;響應于確定當前位姿信息所指示的位置不是目標位姿信息所指示的位置,繼續執行第二控制步驟。
在一些實施例中,控制第一驅動輪和第二驅動輪等速反向轉動,以使無人搬運車原地轉動直至達到目標位姿信息所指示的行駛方向,包括:執行以下第三控制步驟:控制第一驅動輪和第二驅動輪等速反向轉動,并在第三預設時間段后獲取無人搬運車的當前位姿信息;確定當前位姿信息所指示的行駛方向是否是目標位姿信息所指示的行駛方向;響應于確定當前位姿信息所指示的行駛方向不是目標位姿信息所指示的行駛方向,繼續執行第三控制步驟。
在一些實施例中,當前位姿信息是通過以下方式獲取的:采集無人搬運車當前所經過地面的圖像,其中,圖像包含無人搬運車當前所經過二維碼的圖像;對圖像和圖像中所呈現的二維碼進行分析,確定無人搬運車的當前位姿信息。
在一些實施例中,對圖像和圖像中所呈現的二維碼進行分析,確定無人搬運車的當前位姿信息,包括:獲取圖像中所呈現的二維碼所記錄的坐標和圖像中所呈現的二維碼在圖像中的位置和角度,其中,二維碼用于記錄二維碼所在位置的坐標;基于所獲取的坐標、位置和角度,確定無人搬運車的當前位姿信息。
第二方面,本申請實施例提供了一種無人搬運車的控制裝置,該裝置包括:接收單元,配置用于接收對無人搬運車的轉向控制指令,其中,轉向控制指令包括無人搬運車的目標位姿信息,位姿信息用于指示無人搬運車的位置和行駛方向;設定單元,配置用于將預先獲取的無人搬運車的位姿信息作為初始位姿信息;獲取單元,配置用于獲取目標位姿信息與初始位姿信息之間的位置偏移和角度偏移;控制單元,配置用于基于位置偏移和角度偏移,控制無人搬運車的驅動輪轉動,以使無人搬運車由初始位姿信息所指示的位置和行駛方向行駛直至達到目標位姿信息所指示的位置和行駛方向。
在一些實施例中,無人搬運車包括至少兩個驅動輪;以及控制單元包括:選取子單元,配置用于基于位置偏移,從至少兩個驅動輪中選取出驅動輪作為第一驅動輪,并從至少兩個驅動輪中選取出驅動輪作為第二驅動輪,其中,第一驅動輪與第二驅動輪不是同一個驅動輪;第一控制子單元,配置用于控制第一驅動輪轉動,以使第一驅動輪的位置與目標位姿信息所指示的位置之間的距離等于第一驅動輪與第二驅動輪的間距的一半;第二控制子單元,配置用于控制第一驅動輪停止轉動,并控制第二驅動輪轉動,以使無人搬運車行駛至目標位姿信息所指示的位置;第三控制子單元,配置用于控制第一驅動輪和第二驅動輪等速反向轉動,以使無人搬運車原地轉動直至達到目標位姿信息所指示的行駛方向。
在一些實施例中,第一控制子單元進一步配置用于:執行以下第一控制步驟:控制第一驅動輪轉動,并在第一預設時間段后獲取無人搬運車的當前位姿信息;基于當前位姿信息和第一驅動輪與第二驅動輪的間距,確定第一驅動輪的當前位置;基于當前位置和目標位姿信息,確定當前位置與目標位姿信息所指示的位置之間的距離;確定當前位置與目標位姿信息所指示的位置之間的距離是否等于第一驅動輪與第二驅動輪的間距的一半;響應于確定當前位置與目標位姿信息所指示的位置之間的距離不等于第一驅動輪與第二驅動輪的間距的一半,繼續執行第一控制步驟。
在一些實施例中,第二控制子單元進一步配置用于:控制第一驅動輪停止轉動;執行以下第二控制步驟:控制第二驅動輪轉動,并在第二預設時間段后獲取無人搬運車的當前位姿信息;確定當前位姿信息所指示的位置是否是目標位姿信息所指示的位置;響應于確定當前位姿信息所指示的位置不是目標位姿信息所指示的位置,繼續執行第二控制步驟。
在一些實施例中,第三控制子單元進一步配置用于:執行以下第三控制步驟:控制第一驅動輪和第二驅動輪等速反向轉動,并在第三預設時間段后獲取無人搬運車的當前位姿信息;確定當前位姿信息所指示的行駛方向是否是目標位姿信息所指示的行駛方向;響應于確定當前位姿信息所指示的行駛方向不是目標位姿信息所指示的行駛方向,繼續執行第三控制步驟。
在一些實施例中,當前位姿信息是通過以下模塊獲取的:采集模塊,配置用于采集無人搬運車當前所經過地面的圖像,其中,圖像包含無人搬運車當前所經過二維碼的圖像;分析模塊,配置用于對圖像和圖像中所呈現的二維碼進行分析,確定無人搬運車的當前位姿信息。
在一些實施例中,分析模塊包括:獲取子模塊,配置用于獲取圖像中所呈現的二維碼所記錄的坐標和圖像中所呈現的二維碼在圖像中的位置和角度,其中,二維碼用于記錄二維碼所在位置的坐標;確定子模塊,配置用于基于所獲取的坐標、位置和角度,確定無人搬運車的當前位姿信息。
第三方面,本申請實施例提供了一種車載智能設備,該車載智能設備包括:一個或多個處理器;存儲裝置,用于存儲一個或多個程序;當一個或多個程序被一個或多個處理器執行,使得一個或多個處理器實現如第一方面中任一實現方式描述的方法。
第四方面,本申請實施例提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執行時實現如第一方面中任一實現方式描述的方法。
本申請實施例提供的無人搬運車的控制方法和裝置,在接收到對無人搬運車的轉向控制指令的情況下,首先,將預先獲取的無人搬運車的位姿信息作為初始位姿信息;然后,獲取轉向控制指令中的目標位姿信息與初始位姿信息之間的位置偏移和角度偏移;最后,基于位置偏移和角度偏移,控制無人搬運車的驅動輪轉動,以使無人搬運車由初始位姿信息所指示的位置和行駛方向行駛直至達到目標位姿信息所指示的位置和行駛方向。從而實現了在無人搬運車偏離行進路線的情況下控制無人搬運車在轉向的同時消除偏航誤差并行駛到下一條行進路線上。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優點將會變得更明顯:
圖1是本申請可以應用于其中的示例性系統架構圖;
圖2是根據本申請的無人搬運車的控制方法的一個實施例的流程圖;
圖3是根據本申請的無人搬運車的示例性驅動輪分布圖;
圖4是根據本申請的無人搬運車的控制方法的一個應用場景的示意圖;
圖5是根據本申請的無人搬運車的控制方法的又一個實施例的流程圖;
圖6是對圖5的流程圖中的控制第一驅動輪轉動步驟的分解流程圖;
圖7是對圖5的流程圖中的控制第二驅動輪轉動步驟的分解流程圖;
圖8是對圖5的流程圖中的控制第一驅動輪和第二驅動輪等速反向轉動步驟的分解流程圖;
圖9是根據本申請的無人搬運車的控制裝置的一個實施例的結構示意圖;
圖10是適于用來實現本申請實施例的車載智能設備的計算機系統的結構示意圖。
具體實施方式
下面結合附圖和實施例對本申請作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋相關發明,而非對該發明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關發明相關的部分。
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本申請。
圖1示出了可以應用本申請的無人搬運車的控制方法或無人搬運車的控制裝置的示例性系統架構100。
如圖1所示,系統架構100可以包括無人搬運車101、網絡102和對無人搬運車101提供支持的服務器103。無人搬運車101中可以設置有車載智能設備104。網絡102用以在車載智能設備104和服務器103之間提供通信鏈路的介質。網絡102可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。
車載智能設備104上安裝有無人搬運車101的控制系統,其可以對無人搬運車101的運動方式進行控制(例如轉向控制、直行控制等)。車載智能設備104也可以通過網絡102與服務器103交互,以接收控制指令(例如轉向控制指令)等信息。
無人搬運車101還可以安裝有其他設備,例如,用于拍攝地面圖像的拍攝裝置、用于檢測地面圖像上的二維碼的二維碼傳感器、用于驅動無人搬運車前進、后退或轉向的驅動輪等等。
服務器103可以是提供各種服務的服務器,例如對無人搬運車101進行管理并分配任務的管理服務器,管理服務器可以向車載智能設備104發送轉向控制指令等信息,以使車載智能設備104對無人搬運車101進行控制。
需要指出的是,轉向控制指令也可以在無人搬運車101所安裝的二維碼傳感器檢測到某一信息時自動觸發,此時,系統架構100可以不設置網絡102和服務器103。
需要說明的是,本申請實施例所提供的無人搬運車的控制方法一般由車載智能設備104執行,相應地,無人搬運車的控制裝置一般設置于車載智能設備104中。
應該理解,圖1中的無人搬運車、車載智能設備、網絡和服務器的數目僅僅是示意性的。根據實現需要,可以具有任意數目的無人搬運車、車載智能設備、網絡和服務器。
繼續參考圖2,其示出了根據本申請的無人搬運車的控制方法的一個實施例的流程200。該無人搬運車的控制方法,包括以下步驟:
步驟201,接收對無人搬運車的轉向控制指令。
在本實施例中,無人搬運車的控制方法運行于其上的電子設備(例如圖1所示的車載智能設備104)可以通過有線連接方式或者無線連接方式從服務器(例如圖1所示的服務器103)接收對無人搬運車(例如圖1所示的無人搬運車101)的轉向控制指令。其中,轉向控制指令可以包括無人搬運車的目標位姿信息。位姿信息可以用于指示無人搬運車的位置和行駛方向。目標位姿信息可以用于指示無人搬運車的目標位置和目標行駛方向。例如,位姿信息可以包括無人搬運車在預設坐標系中的坐標和無人搬運車偏離行進路線的角度。這里,預設坐標系可以是以地面為平面、以無人搬運車的當前行進路線與下一條行進路線之間的交點為原點、以無人搬運車的當前行進路線為x軸(即橫軸)、以x軸逆時針旋轉90°的方向為y軸(即縱軸)而預先建立的直角坐標系。通常,無人搬運車需要沿著多條行進路線行駛直至到達目的地,每條行進路線均為直線。作為示例,若無人搬運車需要順時針轉動90度從當前行進路線的終點進入下一條行進路線的起點,則在預設坐標系中,目標位姿信息所指示的位置的坐標為(x0,y0),目標位姿信息所指示的行駛方向與x軸正方向(當前行進路線)之間的夾角為θ0,無人搬運車的目標位姿信息為(x0,y0,θ0)。其中,x0=0,y0=0,θ0=-90。
需要指出的是,電子設備還可以在無人搬運車沿當前行進路線行駛過程中周期性地獲取無人搬運車的位姿信息。若所獲取的位姿信息指示無人搬運車已經偏離了當前行進路線(例如所獲取的位姿信息所指示的位置不在當前行進路線上),并且所獲取的位姿信息所指示的位置與目標位姿信息所指示的位置之間的距離小于預設閾值,則控制無人搬運車停止行駛,此時也可以認為電子設備接收到了轉向控制指令,并自動觸發對無人搬運車的控制。
步驟202,將預先獲取的無人搬運車的位姿信息作為初始位姿信息。
在本實施例中,電子設備可以將預先獲取的無人搬運車的位姿信息作為初始位姿信息。其中,初始位姿信息可以用于指示無人搬運車的初始位置和初始行駛方向。這里,在電子設備接收到轉向控制指令之前,無人搬運車可以處于靜止狀態。電子設備可以預先獲取無人搬運車靜止時的位姿信息,并將其作為初始位姿信息。作為示例,當無人搬運車靜止時,電子設備可以首先獲取預設坐標系中無人搬運車靜止時所在位置的坐標(x1,y1),并獲取預設坐標系中無人搬運車的當前行駛方向與x軸正方向之間的夾角θ1;然后將(x1,y1,θ1)作為無人搬運車的初始位姿信息。
步驟203,獲取目標位姿信息與初始位姿信息之間的位置偏移和角度偏移。
在本實施例中,基于步驟201中的目標位姿信息和步驟202中的初始位姿信息,電子設備可以獲取目標位姿信息與初始位姿信息之間的位置偏移和角度偏移。
在本實施例的一些可選的實現方式中,在預設坐標系中,若目標位姿信息為(x0,y0,θ0),初始位姿信息為(x1,y1,θ1),則電子設備可以通過如下公式獲取目標位姿信息(x0,y0,θ0)與初始位姿信息(x1,y1,θ1)之間的位置偏移δs和角度偏移δθ;
其中,x0為目標位姿信息(x0,y0,θ0)所指示的位置在x軸方向上的橫坐標,y0為目標位姿信息(x0,y0,θ0)所指示的位置在y軸方向上的縱坐標,θ0為目標位姿信息(x0,y0,θ0)所指示的行駛方向與x軸正方向之間的夾角,x1為初始位姿信息(x1,y1,θ1)所指示的位置在x軸方向上的橫坐標,y1為初始位姿信息(x1,y1,θ1)所指示的位置在y軸方向上的縱坐標,θ1為初始位姿信息(x1,y1,θ1)所指示的行駛方向與x軸正方向之間的夾角。
步驟204,基于位置偏移和角度偏移,控制無人搬運車的驅動輪轉動,以使無人搬運車由初始位姿信息所指示的位置和行駛方向行駛直至達到目標位姿信息所指示的位置和行駛方向。
在本實施例中,基于步驟203中所獲取的位置偏移和角度偏移,電子設備可以控制無人搬運車的驅動輪轉動,以使無人搬運車由初始位姿信息所指示的位置和行駛方向行駛直至達到目標位姿信息所指示的位置和行駛方向。
在本實施例中,無人搬運車通常可以包括至少兩個驅動輪,以雙驅動輪無人搬運車為例,其底盤驅動輪分布可以如圖3所示,無人搬運車底盤301上設置有兩個驅動輪3021、3022和四個從動萬向輪3031、3032、3033、3034。其中,驅動輪3021為左驅動輪,用于驅動從動萬向輪3031、3032。驅動輪3022為右驅動輪,用于驅動從動萬向輪3033、3034。這里,無人搬運車可以采用差動控制,即直行時左驅動輪和右驅動輪的速度大小相同,轉動方向相同,原地轉向時左驅動輪和右驅動輪的速度大小相同,轉動方向相反。
在本實施例中,電子設備可以通過多種方式控制無人搬運車由初始位姿信息所指示的位置和行駛方向行駛直至達到目標位姿信息所指示的位置和行駛方向。
在本實施例的一些可選的實現方式中,電子設備可以首先控制無人搬運車的兩個驅動輪等速反向轉動,直至無人搬運車的行駛方向由初始位姿信息所指示的位置指向目標位姿信息所指示的位置為止;然后控制無人搬運車的兩個驅動輪等速同向轉動,以使無人搬運車從初始位姿信息所指示的位置直行至目標位姿信息所指示的位置;最后控制無人搬運車的兩個驅動輪等速反向轉動,直至無人搬運車的行駛方向達到目標位姿信息所指示的行駛方向為止。
繼續參見圖4,圖4是根據本實施例的無人搬運車的控制方法的應用場景的一個示意圖。在圖4的應用場景中,首先,無人搬運車401的車載智能設備402接收對無人搬運車401的轉向控制指令403,其中,轉向控制指令403可以包括無人搬運車401的目標位姿信息404;之后,車載智能設備402將預先獲取的無人搬運車401的位姿信息作為初始位姿信息405;然后,車載智能設備402獲取目標位姿信息404與初始位姿信息405之間的位置偏移406和角度偏移407;最后,車載智能設備402基于位置偏移406和角度偏移407,控制無人搬運車401的驅動輪轉動,以使無人搬運車401由初始位姿信息405所指示的位置和行駛方向行駛直至達到目標位姿信息404所指示的位置和行駛方向。
本申請實施例提供的無人搬運車的控制方法,在接收到對無人搬運車的轉向控制指令的情況下,首先,將預先獲取的無人搬運車的位姿信息作為初始位姿信息;然后,獲取轉向控制指令中的目標位姿信息與初始位姿信息之間的位置偏移和角度偏移;最后,基于位置偏移和角度偏移,控制無人搬運車的驅動輪轉動,以使無人搬運車由初始位姿信息所指示的位置和行駛方向行駛直至達到目標位姿信息所指示的位置和行駛方向。從而實現了在無人搬運車偏離行進路線的情況下控制無人搬運車在轉向的同時消除偏航誤差并行駛到下一條行進路線上。
進一步參考圖5,其示出了無人搬運車的控制方法的又一個實施例的流程500。該無人搬運車的控制方法的流程500,包括以下步驟:
步驟501,接收對無人搬運車的轉向控制指令。
在本實施例中,無人搬運車的控制方法運行于其上的電子設備(例如圖1所示的車載智能設備104)可以通過有線連接方式或者無線連接方式從服務器(例如圖1所示的服務器103)接收對無人搬運車(例如圖1所示的無人搬運車101)的轉向控制指令。其中,轉向控制指令可以包括無人搬運車的目標位姿信息。位姿信息可以用于指示無人搬運車的位置和行駛方向。目標位姿信息可以用于指示無人搬運車的目標位置和目標行駛方向。例如,位姿信息可以包括無人搬運車在預設坐標系中的坐標和無人搬運車偏離行進路線的角度。這里,預設坐標系可以是以地面為平面、以無人搬運車的當前行進路線與下一條行進路線之間的交點為原點、以無人搬運車的當前行進路線為x軸(即橫軸)、以x軸逆時針旋轉90°的方向為y軸(即縱軸)而預先建立的直角坐標系。通常,無人搬運車需要沿著多條行進路線行駛直至到達目的地,每條行進路線均為直線。作為示例,若無人搬運車需要順時針轉動90度從當前行進路線的終點進入下一條行進路線的起點,則在預設坐標系中,目標位姿信息所指示的位置的坐標為(x0,y0),目標位姿信息所指示的行駛方向與x軸正方向(當前行進路線)之間的夾角為θ0,無人搬運車的目標位姿信息為(x0,y0,θ0)。其中,x0=0,y0=0,θ0=-90。
步驟502,將預先獲取的無人搬運車的位姿信息作為初始位姿信息。
在本實施例中,電子設備可以將預先獲取的無人搬運車的位姿信息作為初始位姿信息。其中,初始位姿信息可以用于指示無人搬運車的初始位置和初始行駛方向。這里,在電子設備接收到轉向控制指令之前,無人搬運車可以處于靜止狀態。電子設備可以預先獲取無人搬運車靜止時的位姿信息,并將其作為初始位姿信息。作為示例,當無人搬運車靜止時,電子設備可以首先獲取預設坐標系中無人搬運車靜止時所在位置的坐標(x1,y1),并獲取預設坐標系中無人搬運車的當前行駛方向與x軸正方向之間的夾角θ1;然后將(x1,y1,θ1)作為無人搬運車的初始位姿信息。
步驟503,獲取目標位姿信息與初始位姿信息之間的位置偏移和角度偏移。
在本實施例中,基于步驟501中的目標位姿信息和步驟502中的初始位姿信息,電子設備可以獲取目標位姿信息與初始位姿信息之間的位置偏移和角度偏移。
步驟504,基于位置偏移,從至少兩個驅動輪中選取出驅動輪作為第一驅動輪,并從至少兩個驅動輪中選取出驅動輪作為第二驅動輪。
在本實施例中,基于步驟503中所獲取的位置偏移,電子設備可以從至少兩個驅動輪中選取出驅動輪作為第一驅動輪,并從至少兩個驅動輪中選取出驅動輪作為第二驅動輪。其中,第一驅動輪與第二驅動輪不是同一個驅動輪。
在本實施例中,無人搬運車可以包括至少兩個驅動輪,以雙驅動輪無人搬運車(具體可參見圖3)為例。在預設坐標系中,目標位姿信息為(x0,y0,θ0),初始位姿信息為(x1,y1,θ1),若y1大于y0,則左驅動輪為第一驅動輪,右驅動輪為第二驅動輪;若y1不大于y0,則右驅動輪為第一驅動輪,左驅動輪為第二驅動輪。
步驟505,控制第一驅動輪轉動,以使第一驅動輪的位置與目標位姿信息所指示的位置之間的距離等于第一驅動輪與第二驅動輪的間距的一半。
在本實施例中,電子設備可以控制第一驅動輪轉動,以使第一驅動輪的位置與目標位姿信息所指示的位置之間的距離等于第一驅動輪與第二驅動輪的間距的一半。作為示例,若初始位姿信息為(0.01,-0.05,2.86),目標位姿信息為(0,0,-90),則電子設備可以控制右驅動輪轉動(此時左驅動輪不動),以使無人搬運車順時針轉動直至右驅動輪的位置與目標位姿信息(0,0,-90)所指示的位置(該位置的坐標為(0,0))之間的距離等于第一驅動輪與第二驅動輪的間距的一半為止。
步驟506,控制第一驅動輪停止轉動,并控制第二驅動輪轉動,以使無人搬運車行駛至目標位姿信息所指示的位置。
在本實施例中,當第一驅動輪的位置與目標位姿信息所指示的位置之間的距離等于第一驅動輪與第二驅動輪的間距的一半時,電子設備可以控制第一驅動輪停止轉動,并控制第二驅動輪轉動,以使無人搬運車行駛至目標位姿信息所指示的位置。作為示例,若初始位姿信息為(0.01,-0.05,2.86),目標位姿信息為(0,0,-90),當右驅動輪的位置與目標位姿信息(0,0,-90)所指示的位置之間的距離等于第一驅動輪與第二驅動輪的間距的一半時,電子設備可以控制右驅動輪停止轉動,并控制左驅動輪轉動,以使無人搬運車順時針轉動直至無人搬運車行駛至目標位姿信息(0,0,-90)所指示的位置為止。
步驟507,控制第一驅動輪和第二驅動輪等速反向轉動,以使無人搬運車原地轉動直至達到目標位姿信息所指示的行駛方向。
在本實施例中,當無人搬運車行駛至目標位姿信息所指示的位置時,電子設備可以控制第一驅動輪和第二驅動輪等速反向轉動,以使無人搬運車原地轉動直至達到目標位姿信息所指示的行駛方向。作為示例,若初始位姿信息為(0.01,-0.05,2.86),目標位姿信息為(0,0,-90),當無人搬運車行駛至目標位姿信息(0,0,-90)所指示的位置時,電子設備可以控制左驅動輪和右驅動輪等速反向轉動,以使無人搬運車順時針原地轉動直至無人搬運車達到目標位姿信息(0,0,-90)所指示的行駛方向(該行駛方向與x軸正方向之間的夾角等于-90度)為止。
從圖5中可以看出,與圖2對應的實施例相比,本實施例中的無人搬運車的控制方法的流程500突出對無人搬運車的控制步驟。由此,本實施例描述的方案中將對無人搬運車的控制過程劃分為三個階段,并且每個階段中無人搬運車的運動范圍均較小,實現在無人搬運機器人偏離行進路線的情況下控制無人搬運車轉向并行駛到下一條行進路線上的同時,還避免了控制過程中與相鄰行進路線上的無人搬運車發生剮蹭。
進一步參考圖6,其示出了對圖5的流程圖中的控制第一驅動輪轉動步驟的分解流程600。在圖6中,將控制第一驅動輪轉動步驟分解成如下的5個子步驟,即:步驟601、步驟602、步驟603、步驟604和步驟605。
步驟601,控制第一驅動輪轉動,并在第一預設時間段后獲取無人搬運車的當前位姿信息。
在本實施例中,電子設備(例如圖1所示的車載智能設備104)可以控制第一驅動輪轉動,并在第一預設時間段后獲取無人搬運車的當前位姿信息。其中,當前位姿信息用于指示無人搬運車的當前位置和當前行駛方向。
步驟602,基于當前位姿信息和第一驅動輪與第二驅動輪的間距,確定第一驅動輪的當前位置。
在本實施例中,基于第一驅動輪與第二驅動輪的間距和步驟601中所獲取的當前位姿信息,電子設備可以確定出第一驅動輪的當前位置。
在本實施例的一些可選的實現方式中,在預設坐標系中,若當前位姿信息為(x2,y2,θ2),且第一驅動輪是左驅動輪,電子設備可以通過如下公式獲取左驅動輪(即第一驅動輪)的當前位置:
其中,x2為當前位姿信息(x2,y2,θ2)所指示的位置在x軸方向上的橫坐標,y2為當前位姿信息(x2,y2,θ2)所指示的位置在y軸方向上的縱坐標,θ2為當前位姿信息(x2,y2,θ2)所指示的行駛方向與x軸正方向之間的夾角,sinθ2為θ2的正弦值,cosθ2為θ2的余弦值,l為第一驅動輪與第二驅動輪的間距,xl為左驅動輪的當前位置在x軸方向上的橫坐標,yl為左驅動輪的當前位置在y軸方向上的縱坐標,(xl,yl)為左驅動輪的當前位置的坐標。
在本實施例的一些可選的實現方式中,在預設坐標系中,若當前位姿信息為(x2,y2,θ2),且第一驅動輪是右驅動輪,電子設備可以通過如下公式獲取右驅動輪(即第一驅動輪)的當前位置:
其中,x2為當前位姿信息(x2,y2,θ2)所指示的位置在x軸方向上的橫坐標,y2為當前位姿信息(x2,y2,θ2)所指示的位置在y軸方向上的縱坐標,θ2為當前位姿信息(x2,y2,θ2)所指示的行駛方向與x軸正方向之間的夾角,sinθ2為θ2的正弦值,cosθ2為θ2的余弦值,l為第一驅動輪與第二驅動輪的間距,xr為右驅動輪的當前位置在x軸方向上的橫坐標,yr為右驅動輪的當前位置在y軸方向上的縱坐標,(xr,yr)為右驅動輪的當前位置的坐標。
步驟603,基于當前位置和目標位姿信息,確定當前位置與目標位姿信息所指示的位置之間的距離。
在本實施例中,基于目標位姿信息和步驟602中所確定的第一驅動輪的當前位置,電子設備可以確定第一驅動輪的當前位置與目標位置信息所指示的位置之間的距離。這里,電子設備可以利用兩點間距離公式計算第一驅動輪的當前位置與目標位置信息所指示的位置之間的距離,在此不再贅述。
步驟604,確定當前位置與目標位姿信息所指示的位置之間的距離是否等于第一驅動輪與第二驅動輪的間距的一半。
在本實施例中,電子設備可以確定第一驅動輪的當前位置與目標位姿信息所指示的位置之間的距離是否等于第一驅動輪與第二驅動輪的間距的一半,若第一驅動輪的當前位置與目標位姿信息所指示的位置之間的距離等于第一驅動輪與第二驅動輪的間距的一半,則繼續執行步驟605;若第一驅動輪的當前位置與目標位姿信息所指示的位置之間的距離不等于第一驅動輪與第二驅動輪的間距的一半,則返回執行步驟601,直到第一驅動輪的當前位置與目標位姿信息所指示的位置之間的距離等于第一驅動輪與第二驅動輪的間距的一半為止。
步驟605,結束。
進一步參考圖7,其示出了對圖5的流程圖中的控制第二驅動輪轉動步驟的分解流程700。在圖7中,將控制第二驅動輪轉動步驟分解成如下的4個子步驟,即:步驟701、步驟702、步驟703和步驟704。
步驟701,控制第一驅動輪停止轉動。
在本實施例中,當第一驅動輪的當前位置與目標位姿信息所指示的位置之間的距離等于第一驅動輪與第二驅動輪的間距的一半時,電子設備(例如圖1所示的車載智能設備104)可以控制第一驅動輪停止轉動。
步驟702,控制第二驅動輪轉動,并在第二預設時間段后獲取無人搬運車的當前位姿信息。
在本實施例中,電子設備可以控制第二驅動輪轉動,并在第二預設時間段后獲取無人搬運車的當前位姿信息。其中,當前位姿信息用于指示無人搬運車的當前位置和當前行駛方向。
步驟703,確定當前位姿信息所指示的位置是否是目標位姿信息所指示的位置。
在本實施例中,基于步驟702中所獲取的當前位姿信息,電子設備可以確定當前位姿信息所指示的位置是否是目標位姿信息所指示的位置,若當前位姿信息所指示的位置是目標位姿信息所指示的位置,則繼續執行步驟704;若當前位姿信息所指示的位置不是目標位姿信息所指示的位置,則返回執行步驟702,直至當前位姿信息所指示的位置是目標位姿信息所指示的位置為止。
步驟704,結束。
進一步參考圖8,其示出了對圖5的流程圖中的控制第一驅動輪和第二驅動輪等速反向轉動步驟的分解流程800。在圖8中,將控制第一驅動輪和第二驅動輪等速反向轉動步驟分解成如下的3個子步驟,即:步驟801、步驟802和步驟803。
步驟801,控制第一驅動輪和第二驅動輪等速反向轉動,并在第三預設時間段后獲取無人搬運車的當前位姿信息。
在本實施例中,當無人搬運車的當前位姿信息所指示的位置是目標位姿信息所指示的位置時,電子設備(例如圖1所示的車載智能設備104)可以控制第一驅動輪和第二驅動輪等速反向轉動,并在第三預設時間段后獲取無人搬運車的當前位姿信息。其中,當前位姿信息用于指示無人搬運車的當前位置和當前行駛方向。
步驟802,確定當前位姿信息所指示的行駛方向是否是目標位姿信息所指示的行駛方向。
在本實施例中,基于步驟801中所獲取的無人搬運車的當前位姿信息,電子設備可以確定當前位姿信息所指示的行駛方向是否是目標位姿信息所指示的行駛方向,若當前位姿信息所指示的行駛方向是目標位姿信息所指示的行駛方向,則繼續執行步驟803;若當前位姿信息所指示的行駛方向不是目標位姿信息所指示的行駛方向,則返回執行步驟801,直至當前位姿信息所指示的行駛方向是目標位姿信息所指示的行駛方向為止。
步驟803,結束。
在圖6-8所示的實施例中,電子設備可以通過多種方式獲取無人搬運車的當前位姿信息。
在一些可選的實現方式中,電子設備可以通過如下公式獲取無人搬運車的當前位姿信息(x2,y2,θ2):
其中,x1為初始位姿信息(x1,y1,θ1)所指示的位置在x軸方向上的橫坐標,y1為初始位姿信息(x1,y1,θ1)所指示的位置在y軸方向上的縱坐標,θ1為初始位姿信息(x1,y1,θ1)所指示的行駛方向與x軸正方向之間的夾角,sinθ1為θ1的正弦值,cosθ1為θ1的余弦值,δsl為左驅動輪的行駛距離,δsr為右驅動輪的行駛距離,x2為當前位姿信息(x2,y2,θ2)所指示的位置在x軸方向上的橫坐標,y2為當前位姿信息(x2,y2,θ2)所指示的位置在y軸方向上的縱坐標,θ2為當前位姿信息(x2,y2,θ2)所指示的行駛方向與x軸正方向之間的夾角,sinθ2為θ2的正弦值,cosθ2為θ2的余弦值,l為第一驅動輪與第二驅動輪的間距。這里,δsr和δsl可以通過無人搬運車上安裝的光碼盤反饋獲得。
在一些可選的實現方式中,無人搬運車的行進路線上被預先繪制了多個二維碼,相鄰兩個二維碼之間間隔一定的距離。由于在無人搬運車的轉向過程中,無人搬運車始終處于同一個二維碼的上方,因此電子設備還可以通過如下方式獲取無人搬運車的當前位姿信息:首先,采集無人搬運車當前所經過地面的圖像;然后,對圖像和圖像中所呈現的二維碼進行分析,確定無人搬運車的當前位姿信息。其中,圖像可以包含無人搬運車當前所經過二維碼的圖像。
在一些可選的實現方式中,無人搬運車的行進路線上被預先繪制了多個二維碼,相鄰兩個二維碼之間間隔一定的距離。由于在無人搬運車的轉向過程中,無人搬運車始終處于同一個二維碼的上方,因此電子設備還可以通過如下方式獲取無人搬運車的當前位姿信息:首先,采集無人搬運車當前所經過地面的圖像;然后,獲取圖像中所呈現的二維碼所記錄的坐標和圖像中所呈現的二維碼在圖像中的位置和角度;最后,基于所獲取的坐標、位置和角度,確定無人搬運車的當前位姿信息。其中,圖像可以包含無人搬運車當前所經過二維碼的圖像,二維碼可以用于記錄二維碼所在位置的坐標。
進一步參考圖9,作為對上述各圖所示方法的實現,本申請提供了一種無人搬運車的控制裝置的一個實施例,該裝置實施例與圖2所示的方法實施例相對應,該裝置具體可以應用于各種電子設備中。
如圖9所示,本實施例的無人搬運車的控制裝置900可以包括:接收單元901、設定單元902、獲取單元903和控制單元904。其中,接收單元901,配置用于接收對無人搬運車的轉向控制指令,其中,轉向控制指令包括無人搬運車的目標位姿信息,位姿信息用于指示無人搬運車的位置和行駛方向;設定單元902,配置用于將預先獲取的無人搬運車的位姿信息作為初始位姿信息;獲取單元903,配置用于獲取目標位姿信息與初始位姿信息之間的位置偏移和角度偏移;控制單元904,配置用于基于位置偏移和角度偏移,控制無人搬運車的驅動輪轉動,以使無人搬運車由初始位姿信息所指示的位置和行駛方向行駛直至達到目標位姿信息所指示的位置和行駛方向。
在本實施例中,無人搬運車的控制裝置900中:接收單元901、設定單元902、獲取單元903和控制單元904的具體處理及其所帶來的技術效果可分別參考圖2對應實施例中的步驟201、步驟202、步驟203和步驟204的相關說明,在此不再贅述。
在本實施例的一些可選的實現方式中,無人搬運車可以包括至少兩個驅動輪;以及控制單元904可以包括:選取子單元(圖中未示出),配置用于基于位置偏移,從至少兩個驅動輪中選取出驅動輪作為第一驅動輪,并從至少兩個驅動輪中選取出驅動輪作為第二驅動輪,其中,第一驅動輪與第二驅動輪不是同一個驅動輪;第一控制子單元(圖中未示出),配置用于控制第一驅動輪轉動,以使第一驅動輪的位置與目標位姿信息所指示的位置之間的距離等于第一驅動輪與第二驅動輪的間距的一半;第二控制子單元(圖中未示出),配置用于控制第一驅動輪停止轉動,并控制第二驅動輪轉動,以使無人搬運車行駛至目標位姿信息所指示的位置;第三控制子單元(圖中未示出),配置用于控制第一驅動輪和第二驅動輪等速反向轉動,以使無人搬運車原地轉動直至達到目標位姿信息所指示的行駛方向。
在本實施例的一些可選的實現方式中,第一控制子單元(圖中未示出)進一步配置用于:執行以下第一控制步驟:控制第一驅動輪轉動,并在第一預設時間段后獲取無人搬運車的當前位姿信息;基于當前位姿信息和第一驅動輪與第二驅動輪的間距,確定第一驅動輪的當前位置;基于當前位置和目標位姿信息,確定當前位置與目標位姿信息所指示的位置之間的距離;確定當前位置與目標位姿信息所指示的位置之間的距離是否等于第一驅動輪與第二驅動輪的間距的一半;響應于確定當前位置與目標位姿信息所指示的位置之間的距離不等于第一驅動輪與第二驅動輪的間距的一半,繼續執行第一控制步驟。
在本實施例的一些可選的實現方式中,第二控制子單元(圖中未示出)進一步配置用于:控制第一驅動輪停止轉動;執行以下第二控制步驟:控制第二驅動輪轉動,并在第二預設時間段后獲取無人搬運車的當前位姿信息;確定當前位姿信息所指示的位置是否是目標位姿信息所指示的位置;響應于確定當前位姿信息所指示的位置不是目標位姿信息所指示的位置,繼續執行第二控制步驟。
在本實施例的一些可選的實現方式中,第三控制子單元(圖中未示出)進一步配置用于:執行以下第三控制步驟:控制第一驅動輪和第二驅動輪等速反向轉動,并在第三預設時間段后獲取無人搬運車的當前位姿信息;確定當前位姿信息所指示的行駛方向是否是目標位姿信息所指示的行駛方向;響應于確定當前位姿信息所指示的行駛方向不是目標位姿信息所指示的行駛方向,繼續執行第三控制步驟。
在本實施例的一些可選的實現方式中,當前位姿信息是通過以下模塊獲取的:采集模塊(圖中未示出),配置用于采集無人搬運車當前所經過地面的圖像,其中,圖像包含無人搬運車當前所經過二維碼的圖像;分析模塊(圖中未示出),配置用于對圖像和圖像中所呈現的二維碼進行分析,確定無人搬運車的當前位姿信息。
在本實施例的一些可選的實現方式中,分析模塊(圖中未示出)可以包括:獲取子模塊(圖中未示出),配置用于獲取圖像中所呈現的二維碼所記錄的坐標和圖像中所呈現的二維碼在圖像中的位置和角度,其中,二維碼用于記錄二維碼所在位置的坐標;確定子模塊(圖中未示出),配置用于基于所獲取的坐標、位置和角度,確定無人搬運車的當前位姿信息。
下面參考圖10,其示出了適于用來實現本申請實施例的車載智能設備的計算機系統1000的結構示意圖。圖10示出的車載智能設備僅僅是一個示例,不應對本申請實施例的功能和使用范圍帶來任何限制。
如圖10所示,計算機系統1000包括中央處理單元(cpu)1001,其可以根據存儲在只讀存儲器(rom)1002中的程序或者從存儲部分1008加載到隨機訪問存儲器(ram)1003中的程序而執行各種適當的動作和處理。在ram1003中,還存儲有系統1000操作所需的各種程序和數據。cpu1001、rom1002以及ram1003通過總線1004彼此相連。輸入/輸出(i/o)接口1005也連接至總線1004。
以下部件連接至i/o接口1005:包括鍵盤、鼠標、觸摸屏等的輸入部分1006;包括諸如陰極射線管(crt)、液晶顯示器(lcd)等以及揚聲器等的輸出部分1007;包括硬盤等的存儲部分1008;以及包括諸如lan卡、調制解調器等的網絡接口卡的通信部分1009。通信部分1009經由諸如因特網的網絡執行通信處理。驅動器1010也根據需要連接至i/o接口1005。可拆卸介質1011,諸如磁盤、光盤、磁光盤、半導體存儲器等等,根據需要安裝在驅動器1010上,以便于從其上讀出的計算機程序根據需要被安裝入存儲部分1008。
特別地,根據本公開的實施例,上文參考流程圖描述的過程可以被實現為計算機軟件程序。例如,本公開的實施例包括一種計算機程序產品,其包括承載在計算機可讀介質上的計算機程序,該計算機程序包含用于執行流程圖所示的方法的程序代碼。在這樣的實施例中,該計算機程序可以通過通信部分1009從網絡上被下載和安裝,和/或從可拆卸介質1011被安裝。在該計算機程序被中央處理單元(cpu)1001執行時,執行本申請的方法中限定的上述功能。
需要說明的是,本申請上述的計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質或者是上述兩者的任意組合。計算機可讀存儲介質例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子可以包括但不限于:具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機訪問存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本申請中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。而在本申請中,計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀的程序代碼。這種傳播的數據信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者傳輸用于由指令執行系統、裝置或者器件使用或者與其結合使用的程序。計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括但不限于:無線、電線、光纜、rf等等,或者上述的任意合適的組合。
附圖中的流程圖和框圖,圖示了按照本申請各種實施例的系統、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,該模塊、程序段、或代碼的一部分包含一個或多個用于實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現中,方框中所標注的功能也可以以不同于附圖中所標注的順序發生。例如,兩個接連地表示的方框實際上可以基本并行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行規定的功能或操作的專用的基于硬件的系統來實現,或者可以用專用硬件與計算機指令的組合來實現。
描述于本申請實施例中所涉及到的單元可以通過軟件的方式實現,也可以通過硬件的方式來實現。所描述的單元也可以設置在處理器中,例如,可以描述為:一種處理器包括接收單元、設定單元、獲取單元和控制單元。其中,這些單元的名稱在某種情況下并不構成對該單元本身的限定,例如,接收單元還可以被描述為“接收對無人搬運車的轉向控制指令的單元”。
作為另一方面,本申請還提供了一種計算機可讀介質,該計算機可讀介質可以是上述實施例中描述的車載智能設備中所包含的;也可以是單獨存在,而未裝配入該車載智能設備中。上述計算機可讀介質承載有一個或者多個程序,當上述一個或者多個程序被該車載智能設備執行時,使得該車載智能設備:接收對無人搬運車的轉向控制指令,其中,轉向控制指令包括無人搬運車的目標位姿信息,位姿信息用于指示無人搬運車的位置和行駛方向;將預先獲取的無人搬運車的位姿信息作為初始位姿信息;獲取目標位姿信息與初始位姿信息之間的位置偏移和角度偏移;基于位置偏移和角度偏移,控制無人搬運車的驅動輪轉動,以使無人搬運車由初始位姿信息所指示的位置和行駛方向行駛直至達到目標位姿信息所指示的位置和行駛方向。
以上描述僅為本申請的較佳實施例以及對所運用技術原理的說明。本領域技術人員應當理解,本申請中所涉及的發明范圍,并不限于上述技術特征的特定組合而成的技術方案,同時也應涵蓋在不脫離上述發明構思的情況下,由上述技術特征或其等同特征進行任意組合而形成的其它技術方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術特征進行互相替換而形成的技術方案。