本發(fā)明涉及控制技術(shù)領(lǐng)域,特別是涉及一種機(jī)器人及其行進(jìn)控制方法。
背景技術(shù):
移動(dòng)行進(jìn)功能對(duì)于機(jī)器人而言,幾乎是必需的功能。
本申請(qǐng)發(fā)明人發(fā)現(xiàn)目前對(duì)于機(jī)器人行進(jìn)的控制精度不高,跟蹤偏差較大,例如,現(xiàn)在大多數(shù)智能清潔機(jī)器人在行進(jìn)過(guò)程中,通過(guò)使用距離傳感器(例如紅外距離傳感器、超聲距離傳感器等)對(duì)機(jī)器人到墻體的距離進(jìn)行測(cè)量,以達(dá)到跟蹤墻體行進(jìn)目的,該種方式控制精度不高,跟蹤偏差較大。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種機(jī)器人及其行進(jìn)控制方法,旨在解決現(xiàn)有的對(duì)機(jī)器人行進(jìn)的控制精度低的問(wèn)題。
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例的第一方面,提供了一種機(jī)器人的行進(jìn)控制方法,所述方法包括:獲取所述機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)在全局地圖坐標(biāo)系下的當(dāng)前位置坐標(biāo)以及所述機(jī)器人的當(dāng)前行進(jìn)方向與所述全局地圖坐標(biāo)系的坐標(biāo)軸之間的第一偏轉(zhuǎn)角;獲取墻體上最接近所述第一參考點(diǎn)的第二參考點(diǎn)與所述第一參考點(diǎn)之間的第一距離以及所述第一參考點(diǎn)和所述第二參考點(diǎn)之間連線與所述當(dāng)前行進(jìn)方向之間的第二偏轉(zhuǎn)角;根據(jù)所述當(dāng)前位置坐標(biāo)、所述第一偏轉(zhuǎn)角、所述第一距離、所述第二偏轉(zhuǎn)角、預(yù)設(shè)的所述第一參考點(diǎn)與所述墻體所需保持的第二距離以及沿所述墻體的平行方向的行進(jìn)步長(zhǎng)計(jì)算所述機(jī)器人的目標(biāo)行進(jìn)點(diǎn)在所述全局地圖坐標(biāo)系下的目標(biāo)位置坐標(biāo)。
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例的第二方面,提供了一種機(jī)器人,所述機(jī)器人包括處理器和存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)有指令,所述處理器通過(guò)運(yùn)行所述指令執(zhí)行第一方面中任意一項(xiàng)所述方法的步驟。
本發(fā)明實(shí)施例提供的技術(shù)方案與現(xiàn)有技術(shù)相比存在的有益效果是:區(qū)別于現(xiàn)有技術(shù)中對(duì)機(jī)器人行進(jìn)控制的精度低,本發(fā)明實(shí)施例通過(guò)利用機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)在全局地圖坐標(biāo)系下的當(dāng)前位置坐標(biāo)、機(jī)器人在全局地圖坐標(biāo)系的當(dāng)前行進(jìn)方向,和獲取到的墻體上最接近第一參考點(diǎn)的第二參考點(diǎn)與第一參考點(diǎn)之間的第一距離以及獲取到的第一參考點(diǎn)和第二參考點(diǎn)之間連線與當(dāng)前行進(jìn)方向之間的第二偏轉(zhuǎn)角,與預(yù)設(shè)的第一參考點(diǎn)與墻體所需保持的第二距離和沿墻體的平行方向的行進(jìn)步長(zhǎng)計(jì)算出機(jī)器人的目標(biāo)行進(jìn)點(diǎn)在全局地圖坐標(biāo)系下的目標(biāo)位置坐標(biāo),本發(fā)明實(shí)施例通過(guò)精準(zhǔn)地計(jì)算機(jī)器人的目標(biāo)行進(jìn)點(diǎn),因此可大大提高機(jī)器人行進(jìn)的控制精度。進(jìn)一步,通過(guò)循環(huán)執(zhí)行本發(fā)明實(shí)施例的上述步驟,以每次行進(jìn)控制后重新獲得當(dāng)前位置坐標(biāo)和當(dāng)前行進(jìn)方向等參數(shù)作為下一次行進(jìn)控制的輸入?yún)?shù),可以有效實(shí)現(xiàn)閉環(huán)控制,提高機(jī)器人行進(jìn)的控制精度。
附圖說(shuō)明
圖1是本發(fā)明第一實(shí)施例提供的一種機(jī)器人的行進(jìn)控制方法的流程示意圖;
圖2是本發(fā)明第一實(shí)施例提供的機(jī)器人的行進(jìn)控制方法中的場(chǎng)景示意圖;
圖3是本發(fā)明第一實(shí)施例提供的機(jī)器人的行進(jìn)控制方法中形成的局部地圖區(qū)域的示意圖;
圖4是本發(fā)明第一實(shí)施例提供的機(jī)器人的行進(jìn)控制方法中確定第二參考點(diǎn)的示意圖;
圖5是循環(huán)執(zhí)行本發(fā)明第一實(shí)施例提供的機(jī)器人的行進(jìn)控制方法的機(jī)器人的行進(jìn)示意圖;
圖6是本發(fā)明第二實(shí)施例提供的一種機(jī)器人的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本申請(qǐng)的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本申請(qǐng)進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。
以下描述中,為了說(shuō)明而不是為了限定,給出了諸多技術(shù)特征的說(shuō)明示意圖及附圖標(biāo)記,以便透徹理解本發(fā)明實(shí)施例。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)清楚,在沒(méi)有這些具體細(xì)節(jié)的其它實(shí)施例中也可以實(shí)現(xiàn)本申請(qǐng)。在其它情況中,省略對(duì)眾所周知的設(shè)備、終端及方法等的詳細(xì)說(shuō)明,以免不必要的細(xì)節(jié)妨礙本申請(qǐng)的描述。
為了有效解決現(xiàn)有的對(duì)機(jī)器人行進(jìn)的控制精度低的問(wèn)題。本發(fā)明第一實(shí)施例提供的機(jī)器人的行進(jìn)控制方法包括:獲取所述機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)在全局地圖坐標(biāo)系下的當(dāng)前位置坐標(biāo)以及所述機(jī)器人的當(dāng)前行進(jìn)方向與所述全局地圖坐標(biāo)系的坐標(biāo)軸之間的第一偏轉(zhuǎn)角;獲取墻體上最接近所述第一參考點(diǎn)的第二參考點(diǎn)與所述第一參考點(diǎn)之間的第一距離以及所述第一參考點(diǎn)和所述第二參考點(diǎn)之間連線與所述當(dāng)前行進(jìn)方向之間的第二偏轉(zhuǎn)角;根據(jù)所述當(dāng)前位置坐標(biāo)、所述第一偏轉(zhuǎn)角、所述第一距離、所述第二偏轉(zhuǎn)角、預(yù)設(shè)的所述第一參考點(diǎn)與所述墻體所需保持的第二距離以及沿所述墻體的平行方向的行進(jìn)步長(zhǎng)計(jì)算所述機(jī)器人的目標(biāo)行進(jìn)點(diǎn)在所述全局地圖坐標(biāo)系下的目標(biāo)位置坐標(biāo)。以下進(jìn)行詳細(xì)說(shuō)明。
參閱圖1,圖1示出了本發(fā)明第一實(shí)施例提供的機(jī)器人的行進(jìn)控制方法的流程,該行進(jìn)控制方法的執(zhí)行主體可為機(jī)器人或機(jī)器人的一部分,例如機(jī)器人的處理器,也可為獨(dú)立于機(jī)器人的其它設(shè)備或系統(tǒng)等,例如智能家居控制系統(tǒng)。為了便于說(shuō)明,圖1僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,圖1示例的機(jī)器人的行進(jìn)控制方法可由步驟s101、步驟s102和步驟s103實(shí)現(xiàn),步驟s101、步驟s102和步驟s103的執(zhí)行可為在機(jī)器人運(yùn)動(dòng)過(guò)程中執(zhí)行。其中,本發(fā)明中所提到的機(jī)器人包括行走機(jī)器人、無(wú)人機(jī)、無(wú)人船等各種能夠自動(dòng)規(guī)劃行進(jìn)路徑的智能設(shè)備。
s101,獲取機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)在全局地圖坐標(biāo)系下的當(dāng)前位置坐標(biāo)以及機(jī)器人的當(dāng)前行進(jìn)方向與全局地圖坐標(biāo)系的坐標(biāo)軸之間的第一偏轉(zhuǎn)角。
可選的是,機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)可為機(jī)器人包絡(luò)的中心點(diǎn),將機(jī)器人包絡(luò)的中心點(diǎn)作為機(jī)器人的抽象表達(dá)可較為準(zhǔn)確地確定機(jī)器人當(dāng)前位置,且便于機(jī)器人位置在全局地圖坐標(biāo)系下的量化計(jì)算。
可選的是,全局地圖坐標(biāo)系可為空間坐標(biāo)系或平面坐標(biāo)系,全局地可為直角坐標(biāo)系或極坐標(biāo)系,可為相對(duì)坐標(biāo)系或絕對(duì)坐標(biāo)系,可為前述坐標(biāo)系統(tǒng)的組合,例如相對(duì)的平面直接坐標(biāo)系,該全局地圖坐標(biāo)系可為機(jī)器人行進(jìn)中當(dāng)前位置及與當(dāng)前位置相關(guān)的位置建立統(tǒng)一的位置基準(zhǔn),簡(jiǎn)化和量化空間關(guān)系,便于后續(xù)計(jì)算和控制,簡(jiǎn)單而言,該全局地圖坐標(biāo)系可等同于能夠確定空間位置關(guān)系的任何方法和要素。
可選的是,全局坐標(biāo)系的原點(diǎn)或極點(diǎn)可根據(jù)需要在空間任意點(diǎn)中選定,在此不作具體限定。
可選的是,機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)在全局地圖坐標(biāo)系下的當(dāng)前位置坐標(biāo)可用以表征機(jī)器人在全局地圖坐標(biāo)系下的位置,事實(shí)而言,機(jī)器人在占據(jù)一定的空間。
可選的是,機(jī)器人的當(dāng)前行進(jìn)方向可指機(jī)器人當(dāng)前朝向,具體而言,可為根據(jù)機(jī)器人行進(jìn)部件(例如主動(dòng)輪和/或從動(dòng)輪)所確定的當(dāng)前行進(jìn)方向。
可選的是,全局地圖坐標(biāo)系的坐標(biāo)軸可為極軸或直角坐標(biāo)軸的其中之一,該全局地圖坐標(biāo)系的坐標(biāo)軸的可為機(jī)器人行進(jìn)中的當(dāng)前行進(jìn)方向與當(dāng)前行進(jìn)方向相關(guān)的方向建立統(tǒng)一的角度計(jì)算基準(zhǔn),簡(jiǎn)化和量化空間關(guān)系,便于后續(xù)計(jì)算和控制,簡(jiǎn)單而言,該全局地圖坐標(biāo)系的坐標(biāo)軸可等同于能夠確定空間角度關(guān)系的任何方法和要素,例如機(jī)器人的當(dāng)前行進(jìn)方向與全局地圖坐標(biāo)系的坐標(biāo)軸之間的第一偏轉(zhuǎn)角可等同于機(jī)器人的當(dāng)前行進(jìn)方向與直角坐標(biāo)系的角平分線之間的夾角。
可選的是,全局坐標(biāo)系的坐標(biāo)軸方向可根據(jù)需要在空間方向中選定,在此不作具體限定。
例如,參閱圖2,圖2示出了本發(fā)明第一實(shí)施例提供的機(jī)器人的行進(jìn)控制方法中的場(chǎng)景示意圖,圖2僅是便于說(shuō)明的示例性圖示及描述,圖2中全局地圖坐標(biāo)系xoy,機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)o',以半徑為r的圓o'抽象表達(dá)機(jī)器人在全局地圖坐標(biāo)系xoy平面內(nèi)的投影,機(jī)器人當(dāng)前位置位于點(diǎn)f1,即機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)o'在全局地圖坐標(biāo)系xoy下的當(dāng)前位置坐標(biāo)為
可選的是,本發(fā)明實(shí)施例中,步驟s101可包括步驟s1011和步驟s1012。
s1011,利用機(jī)器人上設(shè)置的環(huán)境感知模塊對(duì)周圍環(huán)境進(jìn)行掃描,并根據(jù)掃描結(jié)果形成全局地圖。
可選的是,環(huán)境感知模塊可包括導(dǎo)航模塊、電磁波傳感器(例如激光雷達(dá),單、雙目攝像頭,rgbd傳感器)、陀螺儀、加速度計(jì)以及編碼器中至少一個(gè)。
可選的是,根據(jù)環(huán)境感知模塊及其掃描方式的不同,形成的全局地圖可為點(diǎn)云地圖、柵格地圖、矢量地圖、矢量和柵格混合地圖中至少一種。
需要說(shuō)明的是,形成全局地圖便于確定機(jī)器人自身位置、行進(jìn)方向及與周圍環(huán)境的拓?fù)潢P(guān)系,便于計(jì)算,方便機(jī)器人行進(jìn)、執(zhí)行指定操作和對(duì)機(jī)器人進(jìn)行控制,例如利于機(jī)器人對(duì)周圍環(huán)境進(jìn)行清潔、機(jī)器人充電以及沿墻行進(jìn)等。
s1012,基于全局地圖獲取當(dāng)前位置坐標(biāo)和第一偏轉(zhuǎn)角。
可選的是,基于全局地圖獲取的當(dāng)前位置坐標(biāo)和第一偏轉(zhuǎn)角的表示方式可與全局地圖的位置表達(dá)方式相同,例如當(dāng)前位置用橫軸和縱軸表示,也可以可與全局地圖的位置表示方式不同,例如可用極角和極徑表示。
可選的是,基于全局地圖獲取第一偏轉(zhuǎn)角可指獲取第一偏轉(zhuǎn)角的角度值。
例如,對(duì)應(yīng)步驟s101中前面描述,參閱圖2,基于全局地圖獲取的當(dāng)前位置坐標(biāo)和第一偏轉(zhuǎn)角分別可為
s102,獲取墻體上最接近第一參考點(diǎn)的第二參考點(diǎn)與第一參考點(diǎn)之間的第一距離以及第一參考點(diǎn)和第二參考點(diǎn)之間連線與當(dāng)前行進(jìn)方向之間的第二偏轉(zhuǎn)角。
可選的是,墻體可為廣義上的起承重、圍護(hù)或分隔空間的作用的建筑物、構(gòu)筑物或人工建造物。
例如,參閱圖2,圖2中示出了墻體w,墻體w上最接近第一參考點(diǎn)o'的第二參考點(diǎn)wn與第一參考點(diǎn)o'之間的第一距離ρ,第一參考點(diǎn)o'和第二參考點(diǎn)wn之間連線與當(dāng)前行進(jìn)方向(點(diǎn)f1指向點(diǎn)h1的方向)之間的第二偏轉(zhuǎn)角θ。
可選的是,本發(fā)明實(shí)施例中,步驟s102可包括步驟s1021和步驟s1022:
s1021,通過(guò)對(duì)全局地圖進(jìn)行裁切而獲取包含墻體的局部地圖。
可選的是,對(duì)全局地圖的進(jìn)行裁切的方式可為規(guī)則或不規(guī)則裁切。
可選的是,通過(guò)對(duì)全局地圖進(jìn)行裁切而獲取包含墻體的局部地圖可指獲取的包含墻體的局部地圖包括步驟s102中描述的第二參考點(diǎn)。
需要說(shuō)明的是,對(duì)全局地圖進(jìn)行裁切而獲取包含墻體的局部地圖,通過(guò)縮小第二參考點(diǎn)在地圖中的候選位置,可大大減少計(jì)算量,使得快速獲取到第一距離和第二偏轉(zhuǎn)角,有效避免了機(jī)器人在行進(jìn)時(shí)由于計(jì)算太耗時(shí),使得機(jī)器人需要較長(zhǎng)時(shí)間等待計(jì)算結(jié)果而導(dǎo)致的機(jī)器人停滯,同時(shí)對(duì)全局地圖進(jìn)行裁切也降低該全局地圖存儲(chǔ)需要的空間容量。
例如,參閱圖3,圖3示出了本發(fā)明第一實(shí)施例提供的機(jī)器人的行進(jìn)控制方法中形成的局部地圖區(qū)域的示意圖。機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)o',以圓o'抽象表達(dá)機(jī)器人在全局地圖坐標(biāo)系xoy平面內(nèi)的投影,以點(diǎn)o'為起點(diǎn)過(guò)點(diǎn)h1的線表示機(jī)器人當(dāng)前行進(jìn)方向,圓心在o'半徑為r的虛線圓表示機(jī)器人掃描周圍環(huán)境形成全局地圖的范圍,四邊形abcd表示的陰影區(qū)為對(duì)全局地圖的范圍在當(dāng)前行進(jìn)方向線上向前和向后均以距離l向垂直于墻體w進(jìn)行裁切而獲取到的包含部分墻體w的局部地圖的區(qū)域,如此縮小了距離第一參考點(diǎn)o'為ρ的第二參考點(diǎn)wn在地圖中的候選位置,可大大減少計(jì)算量,但是裁切時(shí)候需要考慮局部地圖包括區(qū)域的大小,防止墻體w上最接近第一參考點(diǎn)o'的第二參考點(diǎn)wn被裁切掉,因此輔助裁切的參數(shù)l可根據(jù)多次的經(jīng)驗(yàn)值來(lái)確定,圖3中未述及的字母、標(biāo)示等的含義可以圖2相同,在此不再贅述。
需要說(shuō)明的是,本發(fā)明實(shí)施例中只是給出了一種裁切的示例性描述,事實(shí)上,只要符合要求的裁切方法均可,例如可根據(jù)形成全局地圖的掃描半徑r來(lái)確定,具體如裁取半徑r的圓與墻體的交點(diǎn),以及機(jī)器人當(dāng)前行進(jìn)方向所處的線所決定的直角梯形區(qū)域,此時(shí),墻體w上最接近第一參考點(diǎn)o'的第二參考點(diǎn)wn定然會(huì)落入覆蓋該直角梯形區(qū)域的局部地圖中。
s1022,基于局部地圖獲取第一距離和第二偏轉(zhuǎn)角。
需要說(shuō)明的是,基于局部地圖獲取第一距離(例如圖2中ρ)和第二偏轉(zhuǎn)角(例如圖2中θ)的需要時(shí)間將大大減小。
需要說(shuō)明的是,相比于現(xiàn)有技術(shù)中的機(jī)器人采用額外的距離傳感器測(cè)量機(jī)器人到墻體的距離,本發(fā)明實(shí)施例中通過(guò)建立全局地圖,并定位機(jī)器人在全局地圖坐標(biāo)系下的當(dāng)前位置,并基于建立的地圖獲取機(jī)器人到墻體的距離,無(wú)需增加額外的距離傳感器,如此用“軟件”代替“硬件”,可減少成本。
可選的是,本發(fā)明實(shí)施例中,步驟s1022可包括步驟s10221和步驟s10222:
s10221,獲取墻體上的多個(gè)候選參考點(diǎn)與第一參考點(diǎn)之間的第一距離。
例如,參閱圖4,圖4示出了本發(fā)明第一實(shí)施例提供的機(jī)器人的行進(jìn)控制方法中確定第二參考點(diǎn)的示意圖,如圖4所示,獲取墻體w上的候選參考點(diǎn)w1、w2、……wn+m分別與第一參考點(diǎn)o'的第一距離ρ1、ρ2、……ρm+n,其中,ρn(圖未示)等于ρ。參考點(diǎn)w1、w2、……wn+m可以是在環(huán)境感知模塊在對(duì)周圍遠(yuǎn)景進(jìn)行感知時(shí)獲取的采樣點(diǎn),也可以是通過(guò)對(duì)上述采樣點(diǎn)進(jìn)行插值或其他擬合運(yùn)算獲取的擬合點(diǎn)。
s10222,從多個(gè)候選參考點(diǎn)中選擇第一距離最小的候選參考點(diǎn)作為第二參考點(diǎn)。
可選的是,對(duì)第一距離進(jìn)行排序,選擇第一距離最小的候選參考點(diǎn)作為第二參考點(diǎn)。
例如,參閱圖4,通過(guò)對(duì)第一距離ρ1、ρ2、……ρm+n進(jìn)行排序,選擇第一距離ρ1、ρ2、……ρm+n中最小的候選參考點(diǎn)作為第二參考點(diǎn),此時(shí)選定ρn為最小,則ρn對(duì)應(yīng)的wn為第二參考點(diǎn),在確定了第二參考點(diǎn)wn的基礎(chǔ)上就可確定前述的第二偏轉(zhuǎn)角θ,圖4中未述及的字母、標(biāo)示等的含義可以圖2和/或圖3相同,在此不再贅述。
需要說(shuō)明的是,隨著候選參考點(diǎn)的增多,第一距離(例如ρ)的值會(huì)越來(lái)越接近機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)到墻體的垂直距離,即抽象的點(diǎn)到面的垂直距離。
可選的是,候選參考點(diǎn)的數(shù)量可根據(jù)多次選取候選參考點(diǎn)后計(jì)算、控制的反饋經(jīng)驗(yàn)確定一個(gè)合理的范圍,如此可兼顧計(jì)算時(shí)間和控制精度,使二者同時(shí)達(dá)到最優(yōu)化。
s103,根據(jù)當(dāng)前位置坐標(biāo)、第一偏轉(zhuǎn)角、第一距離、第二偏轉(zhuǎn)角、預(yù)設(shè)的第一參考點(diǎn)與墻體所需保持的第二距離以及沿墻體的平行方向的行進(jìn)步長(zhǎng)計(jì)算機(jī)器人的當(dāng)前目標(biāo)行進(jìn)點(diǎn)在全局地圖坐標(biāo)系下的目標(biāo)位置坐標(biāo)。
可選的是,預(yù)設(shè)的第一參考點(diǎn)與墻體所需保持的第二距離可根據(jù)機(jī)器人的高度、機(jī)器人的平均半徑及經(jīng)驗(yàn)值中至少一個(gè)確定。
例如,參閱圖2,圖2中預(yù)設(shè)的第一參考點(diǎn)與墻體所需保持的第二距離l。
可選的是,預(yù)設(shè)的沿墻體的平行方向的行進(jìn)步長(zhǎng)可根據(jù)多次控制的結(jié)果來(lái)確定,最終得到一個(gè)比較合理的值。
例如,參閱圖2,圖2中預(yù)設(shè)的沿墻體的平行方向的行進(jìn)步長(zhǎng)d。
需要說(shuō)明的是,預(yù)設(shè)的沿墻體的平行方向的行進(jìn)步長(zhǎng)體現(xiàn)了機(jī)器人的跟蹤精度,理論上而言,該預(yù)設(shè)的沿墻體的平行方向的行進(jìn)步長(zhǎng)越小越跟蹤精度越高,但實(shí)際中小于某個(gè)閾值時(shí),已經(jīng)不具有意義,因此預(yù)設(shè)的沿墻體的平行方向的行進(jìn)步長(zhǎng)可根據(jù)經(jīng)驗(yàn)或需要確定一個(gè)比較合理值。
可選的是,預(yù)設(shè)的第一參考點(diǎn)與墻體所需保持的第二距離和預(yù)設(shè)的沿墻體的平行方向的行進(jìn)步長(zhǎng)均可改變。
需要說(shuō)明的是,機(jī)器人的當(dāng)前目標(biāo)行進(jìn)點(diǎn)實(shí)際是機(jī)器人當(dāng)前位置對(duì)應(yīng)的當(dāng)前目標(biāo)行進(jìn)點(diǎn)。
需要說(shuō)明的是,機(jī)器人的當(dāng)前目標(biāo)行進(jìn)點(diǎn)只是機(jī)器人當(dāng)前準(zhǔn)備行進(jìn)到的目標(biāo),不能說(shuō)明機(jī)器人會(huì)行進(jìn)到該當(dāng)前目標(biāo)行進(jìn)點(diǎn),原因在于:機(jī)器人一般會(huì)在還未到達(dá)該當(dāng)前目標(biāo)行進(jìn)點(diǎn)時(shí),就計(jì)算出了相對(duì)該當(dāng)前位置的下一刻的當(dāng)前位置對(duì)應(yīng)的當(dāng)前目標(biāo)行進(jìn)點(diǎn),此時(shí)機(jī)器人會(huì)向該下一刻的當(dāng)前位置對(duì)應(yīng)的當(dāng)前目標(biāo)行進(jìn)點(diǎn)行進(jìn),如此循環(huán)進(jìn)行。
如圖2所示,在確定上述參數(shù)后,本領(lǐng)域技術(shù)人員完全可以根據(jù)現(xiàn)有幾何知識(shí)計(jì)算出當(dāng)前目標(biāo)行進(jìn)點(diǎn)t1,以使得當(dāng)前目標(biāo)行進(jìn)點(diǎn)t1與墻體w之前的垂直距離為l。
例如,參閱圖2,機(jī)器人的當(dāng)前坐標(biāo)位置點(diǎn)f1,當(dāng)前位置
可選的是,本發(fā)明實(shí)施例中,步驟s103可包括步驟s1031、步驟s1032、步驟s1033和步驟s1034:
s1031,根據(jù)第一距離、第二距離以及行進(jìn)步長(zhǎng)計(jì)算出當(dāng)前目標(biāo)行進(jìn)點(diǎn)與第一參考點(diǎn)之間連線相對(duì)于第一參考點(diǎn)和第二參考點(diǎn)之間連線之間的第三偏轉(zhuǎn)角。
需要說(shuō)明的是,根據(jù)余弦定理或其他三角定理,只有在三邊的長(zhǎng)度已知的情況下才可求出三角形的內(nèi)角,目前僅知三角形的兩邊長(zhǎng)度,即第一距離減去第二距離與行進(jìn)步長(zhǎng),若欲求三角形的內(nèi)角,需要假定其它要素。
可選的是,假定第二距離與行進(jìn)步長(zhǎng)所在的線互相垂直,即在預(yù)設(shè)第二距離與行進(jìn)步長(zhǎng)的時(shí)候,就指定二者所在的線垂直。
可選的是,本發(fā)明實(shí)施例中,步驟s1031可包括步驟s10311:
s10311,通過(guò)公式
例如,參閱圖2,如圖2所示,在假定第二距離l與行進(jìn)步長(zhǎng)d時(shí),就指定第二距離l與行進(jìn)步長(zhǎng)d所在的線互相垂直,此時(shí)可知圖2中第三偏轉(zhuǎn)角α、第一距離ρ、第二距離l和行進(jìn)步長(zhǎng)d之間存在關(guān)系
s1032,根據(jù)第一偏轉(zhuǎn)角、第二偏轉(zhuǎn)角以及第三偏轉(zhuǎn)角計(jì)算當(dāng)前目標(biāo)行進(jìn)點(diǎn)與第一參考點(diǎn)之間連線相對(duì)于坐標(biāo)軸之間的第四偏轉(zhuǎn)角。
例如,參閱圖2,根據(jù)圖2中所示的第一偏轉(zhuǎn)角
可選的是,本發(fā)明實(shí)施例中,步驟s1032可包括步驟s10321和步驟s10322:
s10321,根據(jù)第二偏轉(zhuǎn)角以及第三偏轉(zhuǎn)角計(jì)算目標(biāo)行進(jìn)點(diǎn)與第一參考點(diǎn)之間連線相對(duì)于當(dāng)前行進(jìn)方向的第五偏轉(zhuǎn)角。
例如,參閱圖2,根據(jù)圖2中所示的第二偏轉(zhuǎn)角θ以及第三偏轉(zhuǎn)角α計(jì)算目標(biāo)行進(jìn)點(diǎn)t1與第一參考點(diǎn)o'之間連線相對(duì)于當(dāng)前行進(jìn)方向(點(diǎn)f1指向點(diǎn)h1的方向)的第五偏轉(zhuǎn)角ε,可知它們之間存在關(guān)系ε=θ-α。
s10322,根據(jù)第一偏轉(zhuǎn)角和第五偏轉(zhuǎn)角計(jì)算第四偏轉(zhuǎn)角。
例如,參閱圖2,根據(jù)圖2中所示的第一偏轉(zhuǎn)角
s1033,根據(jù)第一距離、第二距離以及行進(jìn)步長(zhǎng)計(jì)算出當(dāng)前目標(biāo)行進(jìn)點(diǎn)與第一參考點(diǎn)之間的第三距離。
可選的是,本發(fā)明實(shí)施例中,步驟s1033可包括步驟s10331:
s10331,通過(guò)公式
例如,參閱圖2,根據(jù)圖2中所示的第一距離ρ、第二距離l以及行進(jìn)步長(zhǎng)d計(jì)算出當(dāng)前目標(biāo)行進(jìn)點(diǎn)t1與第一參考點(diǎn)o'之間的第三距離β,假定第二距離l與行進(jìn)步長(zhǎng)d所在的線互相垂直。此時(shí)可知圖2中第三距離β、第一距離ρ、第二距離l和行進(jìn)步長(zhǎng)d之間存在關(guān)系
s1034,根據(jù)當(dāng)前位置坐標(biāo)、第三距離以及第四偏轉(zhuǎn)角計(jì)算目標(biāo)位置坐標(biāo)。
例如,參閱圖2,根據(jù)當(dāng)前位置坐標(biāo)
可選的是,本發(fā)明實(shí)施例中,步驟s1034可包括步驟s10341和步驟s10342:
s10341,根據(jù)第三距離以及第四偏轉(zhuǎn)角計(jì)算第三距離在坐標(biāo)軸上的投影。
例如,參閱圖2,根據(jù)圖2中所示的第三距離β以及第四偏轉(zhuǎn)角δ計(jì)算第三距離β在坐標(biāo)軸x和y上的投影,第三距離β在坐標(biāo)軸x上的投影為δx=βcosδ,第三距離β在坐標(biāo)軸y上的投影為δy=βsinδ。
s10342,根據(jù)當(dāng)前位置坐標(biāo)和投影計(jì)算目標(biāo)位置坐標(biāo)。
例如,參閱圖2,根據(jù)圖2中所示的當(dāng)前位置坐標(biāo)
可選的是,本發(fā)明實(shí)施例中的偏轉(zhuǎn)角(例如第一偏轉(zhuǎn)角、第二偏轉(zhuǎn)角等)可理解為夾角。
需要說(shuō)明的是,本發(fā)明實(shí)施例中涉及公式及與公式相關(guān)的附圖中的字母標(biāo)注均是便于說(shuō)明的示例性定義和描述,均可進(jìn)行變換,例如每個(gè)角度值均可變換為π與其補(bǔ)角之差,正弦和余弦之間也可進(jìn)行相互變換,因此具體公式只是示例性描述,本領(lǐng)域技術(shù)人員可根據(jù)本申請(qǐng)的描述的思想在具體的情況下(例如墻體與機(jī)器人的相對(duì)位置發(fā)生變化時(shí))采用合適的公式或算法實(shí)現(xiàn)本申請(qǐng)文件中的步驟,因此在不脫離本申請(qǐng)思想的前提下,變換的公式及字母均與本申請(qǐng)內(nèi)容實(shí)質(zhì)上相同。
可選的是,在根據(jù)當(dāng)前位置坐標(biāo)、第一偏轉(zhuǎn)角、第一距離、第二偏轉(zhuǎn)角、預(yù)設(shè)的第一參考點(diǎn)與墻體所需保持的第二距離以及沿墻體的平行方向的行進(jìn)步長(zhǎng)計(jì)算機(jī)器人的當(dāng)前目標(biāo)行進(jìn)點(diǎn)在全局地圖坐標(biāo)系下的目標(biāo)位置坐標(biāo)之后,機(jī)器人的行進(jìn)控制方法可包括:采用當(dāng)前位置坐標(biāo)和第一偏轉(zhuǎn)角以及目標(biāo)位置坐標(biāo)確定機(jī)器人行進(jìn)的參數(shù);輸出參數(shù),控制機(jī)器人向當(dāng)前目標(biāo)行進(jìn)點(diǎn)行進(jìn);在輸出參數(shù),控制機(jī)器人向當(dāng)前目標(biāo)行進(jìn)點(diǎn)行進(jìn)時(shí),循環(huán)執(zhí)行步驟:獲取機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)在全局地圖坐標(biāo)系下的當(dāng)前位置坐標(biāo)以及機(jī)器人的當(dāng)前行進(jìn)方向與全局地圖坐標(biāo)系的坐標(biāo)軸之間的第一偏轉(zhuǎn)角;獲取墻體上最接近第一參考點(diǎn)的第二參考點(diǎn)與第一參考點(diǎn)之間的第一距離以及第一參考點(diǎn)和第二參考點(diǎn)之間連線與當(dāng)前行進(jìn)方向之間的第二偏轉(zhuǎn)角;根據(jù)當(dāng)前位置坐標(biāo)、第一偏轉(zhuǎn)角、第一距離、第二偏轉(zhuǎn)角、預(yù)設(shè)的第一參考點(diǎn)與墻體所需保持的第二距離以及沿墻體的平行方向的行進(jìn)步長(zhǎng)計(jì)算機(jī)器人的當(dāng)前目標(biāo)行進(jìn)點(diǎn)在全局地圖坐標(biāo)系下的目標(biāo)位置坐標(biāo);采用當(dāng)前位置坐標(biāo)和第一偏轉(zhuǎn)角以及目標(biāo)位置坐標(biāo)確定機(jī)器人行進(jìn)的參數(shù);輸出參數(shù),控制機(jī)器人向當(dāng)前目標(biāo)行進(jìn)點(diǎn)行進(jìn)。
需要說(shuō)明的是,前述循環(huán)執(zhí)行步驟將機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)在全局地圖坐標(biāo)系下的當(dāng)前位置坐標(biāo)、機(jī)器人在全局地圖坐標(biāo)系的當(dāng)前行進(jìn)方向以及機(jī)器人的目標(biāo)行進(jìn)點(diǎn)在全局地圖坐標(biāo)系下的目標(biāo)位置坐標(biāo)做閉環(huán)的行進(jìn)控制,可不斷將控制的結(jié)果(下一時(shí)刻的器人上預(yù)設(shè)的第一參考點(diǎn)在全局地圖坐標(biāo)系下的當(dāng)前位置坐標(biāo)、下一時(shí)刻機(jī)器人在全局地圖坐標(biāo)系的當(dāng)前行進(jìn)方向)反饋回來(lái),作為下一步控制的輸入基本量,進(jìn)行后續(xù)控制,本發(fā)明實(shí)施例以漸進(jìn)的方式不斷調(diào)整、控制機(jī)器人的行進(jìn),大大提高了控制精度,減小跟蹤偏差。
可選的是,采用當(dāng)前位置坐標(biāo)和第一偏轉(zhuǎn)角以及目標(biāo)位置坐標(biāo)確定機(jī)器人行進(jìn)的參數(shù)可包括:求取當(dāng)前位置坐標(biāo)與目標(biāo)位置坐標(biāo)的差距;將差距和第五偏轉(zhuǎn)角輸入跟蹤控制算法,執(zhí)行所述跟蹤控制算法,得到機(jī)器人行進(jìn)控制的速度與角速度。
需要說(shuō)明的是,跟蹤控制算法為現(xiàn)有技術(shù),在此不在贅述。
承前所述,為使得本申請(qǐng)的技術(shù)方案、技術(shù)效果更加清楚明白,如下從機(jī)器人行進(jìn)控制的動(dòng)態(tài)角度進(jìn)行說(shuō)明。參閱圖5,圖5示出了循環(huán)執(zhí)行本發(fā)明第一實(shí)施例提供的機(jī)器人的行進(jìn)控制方法的機(jī)器人的行進(jìn)示意圖,以圓o'抽象表達(dá)機(jī)器人在全局地圖坐標(biāo)系xoy平面內(nèi)的投影,處于運(yùn)動(dòng)狀態(tài)下的機(jī)器人與墻體w的相對(duì)位置如圖5所示,獲取到的機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)o'在全局地圖坐標(biāo)系xoy下的當(dāng)前位置坐標(biāo)為
需要說(shuō)明的是,從前述整個(gè)過(guò)程可知,正是由于執(zhí)行本發(fā)明實(shí)施例提供的機(jī)器人的行進(jìn)控制方法,才能在該行進(jìn)控制方法的基礎(chǔ)上,將控制的結(jié)果(機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)在全局地圖坐標(biāo)系下的當(dāng)前位置坐標(biāo)、機(jī)器人在全局地圖坐標(biāo)系的當(dāng)前行進(jìn)方向)反饋回來(lái),作為下一步控制的輸入基本量,進(jìn)行后續(xù)控制,以漸進(jìn)的方式控制機(jī)器人的行進(jìn),達(dá)到減小跟蹤偏差的目的,因此正是由于本發(fā)明實(shí)施例通過(guò)精準(zhǔn)地計(jì)算機(jī)器人的目標(biāo)行進(jìn)點(diǎn),才可大大提高機(jī)器人行進(jìn)的控制精度。
相比于現(xiàn)有技術(shù)中對(duì)機(jī)器人行進(jìn)控制的精度低,本發(fā)明實(shí)施例通過(guò)利用機(jī)器人上預(yù)設(shè)的第一參考點(diǎn)在全局地圖坐標(biāo)系下的當(dāng)前位置坐標(biāo)、機(jī)器人在全局地圖坐標(biāo)系的當(dāng)前行進(jìn)方向,和獲取到的墻體上最接近第一參考點(diǎn)的第二參考點(diǎn)與第一參考點(diǎn)之間的第一距離以及獲取到的第一參考點(diǎn)和第二參考點(diǎn)之間連線與當(dāng)前行進(jìn)方向之間的第二偏轉(zhuǎn)角,與預(yù)設(shè)的第一參考點(diǎn)與墻體所需保持的第二距離和沿墻體的平行方向的行進(jìn)步長(zhǎng)計(jì)算出機(jī)器人的目標(biāo)行進(jìn)點(diǎn)在全局地圖坐標(biāo)系下的目標(biāo)位置坐標(biāo),本發(fā)明實(shí)施例通過(guò)精準(zhǔn)地計(jì)算機(jī)器人的目標(biāo)行進(jìn)點(diǎn),因此可大大提高機(jī)器人行進(jìn)的控制精度。
為了有效解決現(xiàn)有的對(duì)機(jī)器人行進(jìn)的控制精度低的問(wèn)題。本發(fā)明第二實(shí)施例提供的機(jī)器人包括處理器和存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)有指令,所述處理器通過(guò)運(yùn)行所述指令執(zhí)行第一實(shí)施例中任意一項(xiàng)所述方法的步驟。以下進(jìn)行詳細(xì)說(shuō)明。
參閱圖6,圖6示出了本發(fā)明第二實(shí)施例提供的一種機(jī)器人300的示意結(jié)構(gòu),為了便于說(shuō)明,圖6僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,圖6示例的機(jī)器人300包括:處理器301和存儲(chǔ)器302,存儲(chǔ)器302存儲(chǔ)有指令(圖未示),處理器301通過(guò)運(yùn)行指令執(zhí)行第一實(shí)施例中任意一項(xiàng)方法的步驟。
可選的是,處理器301可以是cpu(centralprocessingunit,中央處理單元)。也可以是一種集成電路芯片,具有計(jì)算(包括判斷)和控制能力,處理器301還可以是通用處理器、專用集成電路(asic)、現(xiàn)成可編程門陣列(fpga)或其他可編程邏輯器件、分立門或晶體管邏輯器件,或者分立硬件組件等,在此不作具體限定。通用處理器可以是微處理器或者任何常規(guī)的處理器等。
可選的是,處理器301,可用于執(zhí)行圖第一實(shí)施例中所有步驟,例如,處理器301可處理激光雷達(dá)對(duì)周圍環(huán)境掃描測(cè)量的數(shù)據(jù)以及慣性傳感器傳回的數(shù)據(jù),處理器301可建立地圖并定位機(jī)器人當(dāng)前位置,處理器301可控制機(jī)器人沿墻體行走,處理器301可對(duì)指定區(qū)域進(jìn)行清掃。
可選的是,存儲(chǔ)器302,可為機(jī)器人300的內(nèi)存、緩存,也可為機(jī)器人300的外部存儲(chǔ)器。
可選的是,存儲(chǔ)器302可用于存儲(chǔ)第一實(shí)施例中的指令。
可選的是,存儲(chǔ)器302存儲(chǔ)的指令在被處理器301讀取并運(yùn)行行時(shí),執(zhí)行第一實(shí)施例中任意一項(xiàng)所述方法的步驟。
可選的是,從機(jī)器人300組成的層次結(jié)構(gòu)而言,機(jī)器人300的指令分為微指令,機(jī)器指令和宏指令,其中,微指令是微程序級(jí)的命令,屬于硬件;宏指令是由若干條機(jī)器指令組成的軟件指令,屬于軟件;機(jī)器指令,介于微指令和宏指令之間,通常簡(jiǎn)稱為指令,每一條指令可以完成一個(gè)獨(dú)立的算術(shù)運(yùn)算或邏輯運(yùn)算操作等,如上也在某種程度上說(shuō)明了在機(jī)器人300系統(tǒng)(例如計(jì)算機(jī)系統(tǒng))中,軟件和硬件沒(méi)有明確的界限,軟件實(shí)現(xiàn)的功能可以用硬件來(lái)實(shí)現(xiàn)(硬化);硬件實(shí)現(xiàn)的功能也可以用軟件來(lái)實(shí)現(xiàn)(軟化),如常用播放軟件代替視頻卡。
程序即機(jī)器人300可以識(shí)別運(yùn)行的指令集合,因此機(jī)器人300還可包括程序,程序又可包括系統(tǒng)程序和應(yīng)用程序,程序可以是后臺(tái)服務(wù)、系統(tǒng)服務(wù)等。程序可用于被處理器301運(yùn)行時(shí)執(zhí)行第一實(shí)施例中描述計(jì)算、獲取等動(dòng)作。
可選的是,機(jī)器人300還可包括環(huán)境感知模塊,用于對(duì)周圍環(huán)境進(jìn)行掃描,并根據(jù)掃描結(jié)果形成全局地圖。
可選的是,環(huán)境感知模塊可包括導(dǎo)航模塊、電磁波傳感器(例如激光雷達(dá),單、雙目攝像頭,rgbd傳感器)、陀螺儀、加速度計(jì)以及編碼器中至少一個(gè)。
可選的是,機(jī)器人300還可包括移動(dòng)行進(jìn)模塊,用于提供機(jī)器人的前進(jìn)、后退以及轉(zhuǎn)向所需要的動(dòng)力。
可選的是,移動(dòng)行進(jìn)模塊可包括兩個(gè)驅(qū)動(dòng)輪和一個(gè)萬(wàn)向輪,驅(qū)動(dòng)輪包含其配套直流電機(jī)以及驅(qū)動(dòng)器等裝置。驅(qū)動(dòng)輪在機(jī)器人中軸線的位置,由處理器301控制,萬(wàn)向輪可位于機(jī)器人的前部居中的位置,可以輔助驅(qū)動(dòng)輪轉(zhuǎn)彎并且提供一定程度上的支撐。
可選的是,機(jī)器人300還可包括操作模塊,用于在機(jī)器人周圍的環(huán)境中執(zhí)行指定的操作,例如機(jī)器人300還可包括清潔模塊,該清潔模塊可包括灰塵收集裝置、風(fēng)機(jī)、邊刷以及滾毛刷等。邊刷可位于機(jī)器人的底面前方的位置,滾毛刷可位于機(jī)器人底面靠中間的位置并且與灰塵收集裝置相連接。工作時(shí),邊刷和滾毛刷一同清掃地面,并且在風(fēng)機(jī)的作用下,將清掃的灰塵與垃圾一同吸入到灰塵收集裝置中暫時(shí)儲(chǔ)存。
可選的是,邊刷、滾毛刷以及灰塵收集裝置都可拆卸,如此方便使用者進(jìn)行清潔。
前述第一實(shí)施例中對(duì)相應(yīng)名詞、句子含義的解釋均可用于本實(shí)施例,在此不再贅述。
為了有效解決現(xiàn)有的對(duì)機(jī)器人行進(jìn)的控制精度低的問(wèn)題。本發(fā)明第三實(shí)施例提供的一種具有存儲(chǔ)功能的裝置,裝置上存儲(chǔ)有指令,指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一實(shí)施例中描述的任意一項(xiàng)方法的步驟。
可選的是,具有存儲(chǔ)功能的裝置可指存儲(chǔ)數(shù)據(jù)的載體,例如軟盤、光盤、dvd、機(jī)械硬盤、固態(tài)硬盤、閃存、u盤、cf卡、sd卡、mmc卡、sm卡、記憶棒(memorystick)、xd卡、基因硬盤以及用在各種終端、服務(wù)器和芯片及其中的存儲(chǔ)介質(zhì)等,在此不作具體限定。
可選的是,具有存儲(chǔ)功能的裝置可為dna硬盤。
前述第一實(shí)施例和第二實(shí)施例中對(duì)相應(yīng)名詞、句子含義的解釋均可用于本實(shí)施例,在此不再贅述。
需要說(shuō)明的是,前述第二實(shí)施例中機(jī)器人和第三實(shí)施例中具有存儲(chǔ)功能的裝置的內(nèi)容及實(shí)施例的整體內(nèi)容,由于與本發(fā)明第一實(shí)施例基于同一構(gòu)思,其帶來(lái)的技術(shù)效果與本發(fā)明第一實(shí)施例相同,具體內(nèi)容可參見(jiàn)本發(fā)明第一實(shí)施例中的敘述,不再贅述。
需要說(shuō)明的是,本發(fā)明所有實(shí)施例中涉及“第一”、“第二”等詞,例如第一參考點(diǎn)、第二參考點(diǎn)等在此僅為表述和指代的方便。
以上所述僅為結(jié)合具體的實(shí)施例對(duì)本發(fā)明原理及實(shí)施方式所作的進(jìn)一步較詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明,只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員而言,在不脫離本發(fā)明構(gòu)思的前提下,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,都應(yīng)當(dāng)視為屬于本發(fā)明的專利保護(hù)范圍。