亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于ROS的服務(wù)機器人及其室內(nèi)導(dǎo)航方法與流程

文檔序號:11229766閱讀:1762來源:國知局
一種基于ROS的服務(wù)機器人及其室內(nèi)導(dǎo)航方法與流程

本發(fā)明屬于服務(wù)機器人技術(shù)領(lǐng)域,特別是涉及一種基于ros的服務(wù)機器人及其室內(nèi)導(dǎo)航方法。



背景技術(shù):

近年來,隨著科學技術(shù)的飛速發(fā)展和社會的需要,服務(wù)機器人技術(shù)也得到了不斷的發(fā)展,服務(wù)機器人已經(jīng)逐漸進入到家用,商用,導(dǎo)游,醫(yī)療,教育,安保等日常生活的各個領(lǐng)域。在人口老齡化加劇,生活壓力增大的當今社會,人們需要服務(wù)機器人能夠提供更加優(yōu)質(zhì)的服務(wù)。根據(jù)目前市場數(shù)據(jù)顯示,在家用服務(wù)機器人中,大部分是清潔機器人和除草機器人,他們大多只能按照預(yù)先設(shè)定的命令完成任務(wù),缺乏解決突發(fā)事件的能力,甚至缺少豐富的人機交互功能,此外,目前投入使用的送餐機器人,在送餐過程中需要沿著預(yù)先設(shè)定的磁性導(dǎo)航條來指引行走,導(dǎo)航過程中自主性較低。針對傳統(tǒng)服務(wù)機器人的這些不足之處,研發(fā)出一款具有豐富的人機交互能力與自主導(dǎo)航能力的服務(wù)機器人成為社會發(fā)展的必然趨勢。

2007年,斯坦福大學人工智能實驗室與機器人技術(shù)公司willowgarage合作開發(fā)出了機器人操作系統(tǒng),2008年以后由willowgarage推廣并更新。至今,已經(jīng)更新到kinetic版本。ros的中文名稱是機器人操作系統(tǒng),作為一種跨平臺的開源的次級操作系統(tǒng),它能夠提供一些常用功能的功能包,同時也提供一些工具程序和庫程序。ros的設(shè)計目標是提高代碼的復(fù)用率,能夠滿足社會各界的研究學者的使用需求,因此,在目前的科技領(lǐng)域發(fā)展相當迅速。我們使用ros這個次級的操作系統(tǒng),主要是因為它點對點的設(shè)計,支持多種語言設(shè)計,如java,python,c++等,并且自由開源。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的是加強服務(wù)機器人的人機交互功能,在導(dǎo)航過程中實現(xiàn)自主導(dǎo)航,自主避障等功能。因為,現(xiàn)有的服務(wù)機器人大多存在人機交互內(nèi)容匱乏,導(dǎo)航過程中自主性較差,不足以解決突發(fā)事件,如室內(nèi)有移動的人或者新的障礙物等不足。針對這些不足之處,本發(fā)明提出了一種基于ros的服務(wù)機器人導(dǎo)航方法。

為實現(xiàn)上述目的,本發(fā)明解決問題所采取的技術(shù)方案是:

一種基于ros的服務(wù)機器人,其特征在于,所述服務(wù)機器人是一種人形機器人,包含運動底盤、外殼9、支撐架8、客戶端pc和底層pc3。其中運動底盤包含有車輪組5,電機11,編碼器12,電機控制板1,供電模塊4,運動導(dǎo)航模塊2,防碰撞模塊6,數(shù)據(jù)采集模塊7。外殼上安裝有觸摸屏顯示器10。所述底層pc3通過usb串口分別與所述防碰撞模塊6,數(shù)據(jù)采集模塊7,電機控制板1進行通信。供電模塊4包含電池和電源轉(zhuǎn)換模塊,電池電壓通過電源轉(zhuǎn)換模塊轉(zhuǎn)換為其他電壓,供其他設(shè)備使用。

其中,上述所述車輪組5由兩個萬向輪和兩個驅(qū)動輪組成,安裝在所述服務(wù)機器人移動底盤底部。

上述所述防碰撞模塊6包含一組超聲波傳感器,平均的分散在服務(wù)機器人底盤的正前方。

上述所述數(shù)據(jù)采集模塊7采用北陽的激光測距儀。供電

上述所述的上層pc和底層pc3均安裝有機器人操作系統(tǒng)ros。

上述所述運動導(dǎo)航模塊2包含陀螺儀和電子羅盤。

上述所述的基于ros的服務(wù)機器人的室內(nèi)導(dǎo)航方法,包含以下步驟:

(1)初始化:啟動服務(wù)機器人,數(shù)據(jù)采集模塊7,啟動控制模塊

(2)所述控制模塊控制服務(wù)機器人在室內(nèi)行走,所述數(shù)據(jù)采集模塊7檢測室內(nèi)環(huán)境信息

(3)服務(wù)機器人運用ros提供的slam_gmapping功能包,利用步驟(2)中的信息,建立室內(nèi)環(huán)境地圖

(4)服務(wù)機器人在可視化窗口中加載步驟(3)中建立的室內(nèi)環(huán)境地圖,

(5)在步驟(4)可視化窗口中的地圖中,設(shè)置目標位置,即想要去往的位置

(6)服務(wù)機器人運用ros開源的acml功能包提供的粒子濾波算法,完成在室內(nèi)環(huán)境的自定位,在步驟(4)的可視化窗口中顯示

(7)服務(wù)機器人運用ros開源的全局路徑規(guī)劃接口,完成在全局范圍內(nèi)的路徑規(guī)劃,規(guī)劃出一條從出發(fā)點到目標點的安全,無障礙,無碰撞的軌跡

(8)服務(wù)機器人運用ros開源的move_base接口,控制服務(wù)機器人按照步驟(7)規(guī)劃的軌跡向目標位置運行

(9)判斷服務(wù)機器人在導(dǎo)航過程中是否遇到未知障礙物(如行走的人)

(10)當服務(wù)機器人沒有遇到步驟(3)中地圖未知的障礙物時,則按照步驟(7)規(guī)劃出的軌跡行走,到達目標位置,完成導(dǎo)航,任務(wù)結(jié)束。

(11)當服務(wù)機器人遇到未知的障礙物時,服務(wù)機器人運用ros開源的局部路徑規(guī)劃接口,規(guī)劃出躲避步驟(3)中地圖未知障礙物的軌跡,重復(fù)步驟(6)到步驟(11)的方法直到服務(wù)機器人到達目標位置為止

(12)任務(wù)結(jié)束。

上述所述基于ros的服務(wù)機器人室內(nèi)導(dǎo)航方法,其特征在于,步驟(7)所述的全局路徑規(guī)劃接口為dijkstra算法。

上述所述基于ros的服務(wù)機器人室內(nèi)導(dǎo)航方法,其特征在于,步驟(10)所述的局部路徑規(guī)劃接口為動態(tài)窗口法。

有益效果:本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點和有益效果

1、服務(wù)機器人采用目前流行的機器人操作系統(tǒng)——ros,由于其本身的開源性,使得機器人軟件系統(tǒng)對環(huán)境的適應(yīng)性更強,同時也提高了軟件系統(tǒng)的實時性。

2、服務(wù)機器人使用激光測距儀檢測環(huán)境中的障礙物信息,檢測精度高,速度快,抗干擾能力強。

3、服務(wù)機器人在路徑規(guī)劃中采用了全局路徑規(guī)劃與局部路徑規(guī)劃相結(jié)合的方式,能夠有效的實現(xiàn)服務(wù)機器人在導(dǎo)航過程中自主避障的功能。

4、服務(wù)機器人使用了觸摸屏顯示器,使用者能夠隨自己的意愿設(shè)定想要去往的地方,而不需要設(shè)計人員預(yù)先設(shè)定目標位置,豐富了人機交互的功能。

附圖說明

圖1為服務(wù)機器人結(jié)構(gòu)圖

圖2為服務(wù)機器人導(dǎo)航流程圖

圖3為dijkstra算法流程圖

具體實施方式

下面結(jié)合附圖,進一步闡述本發(fā)明。

本發(fā)明涉及一種基于ros的服務(wù)機器人及其在室內(nèi)環(huán)境導(dǎo)航方法,所述服務(wù)機器人是一種人形機器人,包含移動底盤、外殼9、支撐架8、上層pc和底層pc3,兩臺pc機同時安裝有相同版本的機器人操作系統(tǒng),并通過wifi連接。啟動服務(wù)機器人,啟動數(shù)據(jù)采集模塊7和控制模塊后,利用控制模塊控制服務(wù)機器人在室內(nèi)運行,數(shù)據(jù)采集模塊7獲取室內(nèi)環(huán)境信息,即室內(nèi)障礙物信息,利用slam_gmapping功能包創(chuàng)建室內(nèi)環(huán)境地圖,接著服務(wù)機器人加載創(chuàng)建好的室內(nèi)地圖,在機器人前胸上安裝的觸摸屏上可以看到一個室內(nèi)環(huán)境的二維地圖,我們可以人為的在地圖中設(shè)置要前往的位置即目標位置,也就是服務(wù)機器人路徑規(guī)劃的目標點,服務(wù)機器人利用acml功能包提供的粒子濾波算法完成在地圖中的自定位,也就是確定服務(wù)機器人路徑規(guī)劃的出發(fā)點;服務(wù)機器人利用ros提供的全局路徑規(guī)劃接口規(guī)劃出一條從出發(fā)點到目標點的軌跡,是的服務(wù)機器人可以沿著這條軌跡安全、無碰撞的到達目標位置,但是在實際的情況中,室內(nèi)的環(huán)境信息往往不是一成不變的,會有隨時走動的人,或者偶爾移動的桌椅櫥柜等,就會導(dǎo)致原來創(chuàng)建的地圖不能有效實時的反應(yīng)出實際的室內(nèi)環(huán)境,因此,我們加入了局部路徑規(guī)劃接口,使得服務(wù)機器人在運行過程中能夠有效的躲避一些位置的障礙物,安全的到達目標位置。

本發(fā)明服務(wù)機器人外形如圖1所示,包括移動底盤、外殼9、支撐架8、上層pc和底層pc3,其中移動底盤包含有車輪組5,電機11,編碼器12,電機控制板1,供電模塊4,運動導(dǎo)航模塊2,防碰撞模塊6,數(shù)據(jù)采集模塊7。外殼9上安裝有觸摸屏顯示器10。車輪組5主要包含兩個驅(qū)動輪和兩個萬向輪,安裝在服務(wù)機器人底盤的底部;防碰撞模塊6主要使用了一組超聲波傳感器,均勻的分布在服務(wù)機器人底盤的正前方,用來檢測小范圍內(nèi)的障礙物,防止在移動過程中發(fā)生碰撞;數(shù)據(jù)采集模塊7主要使用的是北陽的激光測距儀,用來采集室內(nèi)環(huán)境信息;運動導(dǎo)航模塊2包含電子羅盤和陀螺儀,用來監(jiān)測服務(wù)機器人的朝向和測量服務(wù)機器人運動加速度。底層pc3和上層pc上均安裝有相同版本的機器人操作系統(tǒng)ros。底層pc3通過usb串口分別與所述防碰撞模塊6,數(shù)據(jù)采集模塊7,電機控制板2進行通信。供電模塊4包含電池和電源轉(zhuǎn)換模塊,電池電壓通過電源轉(zhuǎn)換模塊轉(zhuǎn)換為其他電壓,供其他設(shè)備使用。

如圖2所示,本發(fā)明的基于ros的服務(wù)機器人室內(nèi)導(dǎo)航方法,步驟如下:

(1)初始化:啟動服務(wù)機器人,環(huán)境探測模塊,控制模塊

(2)所述控制模塊控制服務(wù)機器人在室內(nèi)行走,所述環(huán)境探測模塊檢測室內(nèi)環(huán)境信息

(3)服務(wù)機器人運用ros提供的slam_gmapping功能包,利用步驟(2)中的信息,建立室內(nèi)環(huán)境地圖

(4)服務(wù)機器人在可視化窗口中加載步驟(3)中建立的室內(nèi)環(huán)境地圖,

(5)在步驟(4)可視化窗口中的地圖中,設(shè)置目標位置,即想要去往的位置

(6)服務(wù)機器人運用ros開源的acml功能包提供的粒子濾波算法,完成在室內(nèi)環(huán)境的自定位,在步驟(4)的可視化窗口中顯示

(7)服務(wù)機器人運用ros開源的全局路徑規(guī)劃接口,完成在全局范圍內(nèi)的路徑規(guī)劃,在規(guī)劃路徑的過程中利用global_planner功能包中提供的makeplan接口規(guī)劃出從start到goal的路徑,并通過publishplan接口發(fā)布到可視化的窗口中,將這條規(guī)劃出來的路徑真實的展現(xiàn)在可視化窗口中加載的地圖中。

(8)服務(wù)機器人move_base節(jié)點接收到global_planner發(fā)布的plan,驅(qū)動服務(wù)機器人按照步驟(7)規(guī)劃的路徑向目標位置運行,也就是所謂的導(dǎo)航

(9)判斷服務(wù)機器人在導(dǎo)航過程中是否遇到未知的障礙物,也就是運動的物體或者未知的區(qū)域,即步驟(4)的地圖中未標識的障礙物(如行走的人等)

(10)當服務(wù)機器人沒有遇到未知障礙物時,即服務(wù)機器人在導(dǎo)航過程中,步驟(4)中創(chuàng)建的地圖與當前室內(nèi)環(huán)境完全匹配,此時服務(wù)機器人繼續(xù)按照步驟(7)規(guī)劃出的路徑完成導(dǎo)航,到達目標位置,導(dǎo)航結(jié)束。

(11)當服務(wù)機器人遇到未知的障礙物時,步驟(7)中規(guī)劃出來的路徑已經(jīng)不能使得服務(wù)機器人由起點安全、無碰撞的運行到終點,也就意味著,服務(wù)機器人需要在未知障礙物附近重新規(guī)劃出一條路徑,以躲避障礙物,此時服務(wù)機器人運用局部路徑規(guī)劃接口,規(guī)劃出躲避未知障礙物的路徑,然后重復(fù)步驟(6)到步驟(11)的方法直到服務(wù)機器人到達目標位置為止

(12)結(jié)束。

上述所述基于ros的服務(wù)機器人室內(nèi)導(dǎo)航方法,其特征在于,步驟(7)所述的全局路徑規(guī)劃接口為dijkstra算法。如圖3所示,包括以下步驟:

設(shè)置開啟列表為o,關(guān)閉列表為c,起點s在關(guān)閉列表中,costmap中除起點s外的其他定點均位于開啟列表中,d(i,j)表示點i到點j的非負代價,即點i到點j之間的距離,costmap中任意兩個定點之間的非負代價值位于d中,為則dijkstra算法步驟如下:

(1)起點s位于關(guān)閉列表c中,判斷關(guān)閉列表是否為空,若為空,則算法結(jié)束

(2)關(guān)閉列表不為空,則分別計算關(guān)閉列表c中各定點到與其相鄰的定點之間的非負代價,并從中選擇非負代價最小的鄰點pnew加入到關(guān)閉列表c中,其中pnew表示關(guān)閉列表中最新加入的定點

(3)從步驟(2)中選擇非負代價最小的鄰點pnew加入到關(guān)閉列表c中,并從開啟列表o中刪除,其中pnew表示關(guān)閉列表中最新加入的定點

(4)判斷關(guān)閉列表c中的pnew是否為目標點,若pnew點是目標點,則算法結(jié)束

(5)若pnew點不是目標點,則返回步驟(2)繼續(xù)尋找新的定點pnew。

上述所述基于ros的服務(wù)機器人室內(nèi)導(dǎo)航方法,其特征在于,步驟(10)所述的局部路徑規(guī)劃接口為動態(tài)窗口法。動態(tài)窗口法是在速度(v,ω)空間中采樣多組速度,并模擬服務(wù)機器人在這些速度下一定時間(sim_period)內(nèi)的軌跡,在得到多組軌跡以后,對這些軌跡進行評價,選取最優(yōu)軌跡所對應(yīng)的速度來驅(qū)動機器人運行。動態(tài)窗口法包含以下步驟:

(1)建立運動模型:在動態(tài)窗口算法中,要模擬服務(wù)機器人的軌跡,就需要建立服務(wù)機器人的運動模型。本發(fā)明中服務(wù)機器人是全向移動的,因此運動模型定義為:

θt+1=θt+ωt*δt

其中服務(wù)機器人在當前時刻的位姿為(x,y,θ),t+1時刻的位姿為(xt,yt,θt),服務(wù)機器人的速度參數(shù)為(vx,vy,ωt),δt為采樣周期

(2)采樣速度:在服務(wù)機器人的速度空間中存在無窮多組速度,因此需要對采樣的速度限制在一定的范圍內(nèi),本發(fā)明是根據(jù)服務(wù)機器人自身速度大小的限制條件:

vm={v∈[vmin,vmax],ω∈[ωmin,ωmax]}

(3)評價函數(shù):在采樣的速度組中,有若干條軌跡是可行的,需要在其中找出最優(yōu)軌跡,采用的評價函數(shù)為:

g(v,ω)=α*heading(v,ω)+β*dist(v,ω)+γ*velocity(v,ω)

其中:heading(v,ω)用來評價下一時刻服務(wù)機器人朝向目標位置的程度,本發(fā)明中heading(v,ω)=180-θ;dist(v,ω)表示服務(wù)機器人與障礙物之間的距離,在本發(fā)明中,一旦模擬的軌跡上出現(xiàn)障礙物,就舍棄該條軌跡;velocity(v,ω)用來評價當前軌跡的速度。

通過以上三個步驟可以使服務(wù)機器人躲開障礙物,向目標行進。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1