本發(fā)明屬于點(diǎn)云精密分割,具體涉及一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云精密分割方法。
背景技術(shù):
1、商品車(chē)轉(zhuǎn)運(yùn)機(jī)器人在汽車(chē)制造和港口物流領(lǐng)域中扮演著重要角色。商品車(chē)轉(zhuǎn)運(yùn)機(jī)器人(automated?guided?vehicle,agv)負(fù)責(zé)將商品車(chē)從一個(gè)地點(diǎn)轉(zhuǎn)移到另一個(gè)地點(diǎn),例如從生產(chǎn)線到倉(cāng)庫(kù)或運(yùn)輸車(chē)輛。在這個(gè)過(guò)程中,商品車(chē)轉(zhuǎn)運(yùn)機(jī)器人需要獲取周?chē)沫h(huán)境信息,從而依據(jù)這些信息來(lái)執(zhí)行相應(yīng)的操作。例如商品車(chē)轉(zhuǎn)運(yùn)機(jī)器人前方若為待轉(zhuǎn)運(yùn)的商品車(chē),商品車(chē)轉(zhuǎn)運(yùn)機(jī)器人需要根據(jù)檢測(cè)到的商品車(chē)的方位來(lái)進(jìn)行取車(chē)作業(yè);若車(chē)輛行駛前方有障礙物,根據(jù)探測(cè)到的障礙物信息進(jìn)行避障停車(chē)等緊急操作。
2、傳統(tǒng)的解決方案通常針對(duì)激光雷達(dá)獲取到的所有信息進(jìn)行決策,這些信息中包含大量的無(wú)關(guān)信息,導(dǎo)致獲取到的信息精度不足并且計(jì)算效率低下,對(duì)硬件的要求更高。基于此,提出一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云精密分割方法。
技術(shù)實(shí)現(xiàn)思路
1、為了克服現(xiàn)有技術(shù)中的問(wèn)題,本發(fā)明提出了一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云精密分割方法。
2、本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案如下:
3、本發(fā)明提供了一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云精密分割方法,包括以下步驟:
4、步驟1:獲取原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù);
5、步驟2:將所獲取的原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù)劃分為多個(gè)區(qū)域;
6、步驟3:當(dāng)車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人在不同的工作模態(tài)時(shí),處理車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人對(duì)應(yīng)區(qū)域的原始環(huán)境點(diǎn)云數(shù)據(jù),為車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人的控制提供信息。
7、進(jìn)一步地,所述步驟1中,獲取原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù),包括:
8、在車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人四角各安裝一個(gè)多線激光雷達(dá),采用多線激光雷達(dá)對(duì)轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境進(jìn)行掃描,獲取各個(gè)激光雷達(dá)的周?chē)h(huán)境點(diǎn)云數(shù)據(jù);
9、將獲取到的各個(gè)激光雷達(dá)的周?chē)h(huán)境點(diǎn)云數(shù)據(jù)分別建立在激光雷達(dá)坐標(biāo)系下,并分別將激光雷達(dá)的周?chē)h(huán)境點(diǎn)云數(shù)據(jù)從激光雷達(dá)坐標(biāo)系轉(zhuǎn)換到車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人的基坐標(biāo)系下;
10、完成坐標(biāo)變換之后,將四個(gè)多線激光雷達(dá)的周?chē)h(huán)境點(diǎn)云數(shù)據(jù)合并到同一個(gè)點(diǎn)云數(shù)組中,得到原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù)。
11、進(jìn)一步地,所述步驟2中對(duì)獲取的原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù)進(jìn)行分割之前,預(yù)定義分割區(qū)域,所述預(yù)定義分割區(qū)域包括:轉(zhuǎn)運(yùn)機(jī)器人前中區(qū)域、前側(cè)區(qū)域、左側(cè)區(qū)域、右側(cè)區(qū)域、后中區(qū)域、后側(cè)區(qū)域、內(nèi)部區(qū)域,所述前側(cè)區(qū)域包括左前邊區(qū)域、右前邊區(qū)域,所述后側(cè)區(qū)域包括左后邊區(qū)域、右后邊區(qū)域。
12、進(jìn)一步地,所述步驟2中,采用八叉樹(shù)數(shù)據(jù)結(jié)構(gòu),對(duì)獲取的原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù)進(jìn)行分割,包括以下步驟:
13、初始化原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù)及八叉樹(shù)結(jié)構(gòu);
14、基于預(yù)定義的分割區(qū)域,查找位于分割區(qū)域的三維空間范圍內(nèi)的所有點(diǎn);
15、利用八叉樹(shù)執(zhí)行空間查詢(xún)來(lái)分割原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云,使用點(diǎn)的索引列表來(lái)保存查詢(xún)結(jié)果;
16、使用查詢(xún)結(jié)果中的點(diǎn)索引,從原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù)中提取對(duì)應(yīng)的點(diǎn)云子集,這些點(diǎn)云子集即為分割之后的點(diǎn)云。
17、進(jìn)一步地,利用八叉樹(shù)執(zhí)行空間查詢(xún)來(lái)分割原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云,使用點(diǎn)的索引列表來(lái)保存查詢(xún)結(jié)果,具體包括:
18、遍歷八叉樹(shù),從八叉樹(shù)的根節(jié)點(diǎn)開(kāi)始,根據(jù)分割區(qū)域的三維空間范圍,決定是否需要繼續(xù)遍歷當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn);
19、對(duì)于每個(gè)可能包含查詢(xún)區(qū)域內(nèi)點(diǎn)的節(jié)點(diǎn),檢查其是否完全在分割區(qū)域內(nèi)部、部分重疊或完全不相交;
20、若節(jié)點(diǎn)完全位于分割區(qū)域內(nèi),則將該節(jié)點(diǎn)下所有點(diǎn)的索引添加到結(jié)果列表中;若節(jié)點(diǎn)與分割區(qū)域部分重疊,則進(jìn)一步遍歷該節(jié)點(diǎn)的子節(jié)點(diǎn),重復(fù)上述查詢(xún)過(guò)程;若節(jié)點(diǎn)與分割區(qū)域完全不相交,則跳過(guò)該節(jié)點(diǎn)及其所有子節(jié)點(diǎn);
21、在查詢(xún)過(guò)程中,將找到的點(diǎn)的索引添加到列表中,所述列表作為查詢(xún)結(jié)果。
22、進(jìn)一步地,所述步驟2中,還包括:多線程并行處理八叉樹(shù)原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云分割。
23、進(jìn)一步地,所述多線程并行處理八叉樹(shù)原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云分割,包括:
24、為每個(gè)分割區(qū)域創(chuàng)建一個(gè)查詢(xún)?nèi)蝿?wù),所述查詢(xún)?nèi)蝿?wù)包括該分割區(qū)域的三維空間范圍,以及處理該區(qū)域所需的其他參數(shù),所述其他參數(shù)包括分辨率;
25、為每個(gè)查詢(xún)?nèi)蝿?wù)創(chuàng)建一個(gè)線程,線程的執(zhí)行函數(shù)將接受查詢(xún)?nèi)蝿?wù)作為參數(shù),并執(zhí)行相應(yīng)的空間查詢(xún)操作;
26、每個(gè)線程在完成任務(wù)后,將其查詢(xún)結(jié)果存儲(chǔ)在共享的數(shù)據(jù)結(jié)構(gòu)中。
27、進(jìn)一步地,使用互斥鎖同步機(jī)制,通過(guò)互斥鎖的鎖定和解鎖操作實(shí)現(xiàn)線程之間的同步。
28、進(jìn)一步地,所述步驟1中獲取原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù)之后,還包括對(duì)所獲取的原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù)進(jìn)行預(yù)處理,所述預(yù)處理包括濾波。
29、進(jìn)一步地,所述步驟3中,車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人工作模態(tài)包括:取車(chē)模態(tài)、密停放車(chē)模態(tài)、正向取車(chē)模態(tài)、前進(jìn)模態(tài)與避障、反向取車(chē)模態(tài)、后退模態(tài)與避障、橫移和自轉(zhuǎn)時(shí)的避障。
30、與現(xiàn)有技術(shù)相比,本發(fā)明具有如下技術(shù)效果:
31、本發(fā)明提供了一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人的點(diǎn)云精密分割方法。該方法將多個(gè)激光雷達(dá)數(shù)據(jù)融合后得到的車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人全周點(diǎn)云,按照實(shí)際用途分割成為了多個(gè)區(qū)域,不同的區(qū)域在應(yīng)用中有不同的功能。通過(guò)使用這種點(diǎn)云分割方式,可以有效的減小程序的計(jì)算量,提高車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人工作的精度。相對(duì)于傳統(tǒng)的方法,本發(fā)明對(duì)激光雷達(dá)數(shù)據(jù)進(jìn)行了針對(duì)性的處理,這一處理方案可以大大降低計(jì)算量,提高作業(yè)精度,起到了很強(qiáng)的“降本增效”的作用。
1.一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云精密分割方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云精密分割方法,其特征在于,所述步驟1中,獲取原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù),包括:
3.根據(jù)權(quán)利要求1所述的一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云精密分割方法,其特征在于,所述步驟2中對(duì)獲取的原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù)進(jìn)行分割之前,預(yù)定義分割區(qū)域,所述預(yù)定義分割區(qū)域包括:轉(zhuǎn)運(yùn)機(jī)器人前中區(qū)域、前側(cè)區(qū)域、左側(cè)區(qū)域、右側(cè)區(qū)域、后中區(qū)域、后側(cè)區(qū)域、內(nèi)部區(qū)域,所述前側(cè)區(qū)域包括左前邊區(qū)域、右前邊區(qū)域,所述后側(cè)區(qū)域包括左后邊區(qū)域、右后邊區(qū)域。
4.根據(jù)權(quán)利要求3所述的一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云精密分割方法,其特征在于,所述步驟2中,采用八叉樹(shù)數(shù)據(jù)結(jié)構(gòu),對(duì)獲取的原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù)進(jìn)行分割,包括以下步驟:
5.根據(jù)權(quán)利要求4所述的一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云精密分割方法,其特征在于,利用八叉樹(shù)執(zhí)行空間查詢(xún)來(lái)分割原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云,使用點(diǎn)的索引列表來(lái)保存查詢(xún)結(jié)果,具體包括:
6.根據(jù)權(quán)利要求5所述的一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云精密分割方法,其特征在于,所述步驟2中,還包括:多線程并行處理八叉樹(shù)原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云分割。
7.根據(jù)權(quán)利要求6所述的一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云精密分割方法,其特征在于,所述多線程并行處理八叉樹(shù)原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云分割,包括:
8.根據(jù)權(quán)利要求7所述的一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云精密分割方法,其特征在于,使用互斥鎖同步機(jī)制,通過(guò)互斥鎖的鎖定和解鎖操作實(shí)現(xiàn)線程之間的同步。
9.根據(jù)權(quán)利要求1所述的一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云精密分割方法,其特征在于,所述步驟1中獲取原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù)之后,還包括對(duì)所獲取的原始車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人周?chē)h(huán)境點(diǎn)云數(shù)據(jù)進(jìn)行預(yù)處理,所述預(yù)處理包括濾波。
10.根據(jù)權(quán)利要求1所述的一種車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人點(diǎn)云精密分割方法,其特征在于,所述步驟3中,車(chē)輛轉(zhuǎn)運(yùn)機(jī)器人工作模態(tài)包括:取車(chē)模態(tài)、密停放車(chē)模態(tài)、正向取車(chē)模態(tài)、前進(jìn)模態(tài)與避障、反向取車(chē)模態(tài)、后退模態(tài)與避障、橫移和自轉(zhuǎn)時(shí)的避障。