本發(fā)明涉及一種機(jī)器人物品傳送方法和控制系統(tǒng),特別是一種基于ROS(Robot Operating System,機(jī)器人操作系統(tǒng))的機(jī)器人物品傳送方法和控制系統(tǒng),屬于機(jī)器人操作系統(tǒng)應(yīng)用技術(shù)領(lǐng)域。
背景技術(shù):
信息的傳送在移動(dòng)互聯(lián)網(wǎng)的發(fā)展推動(dòng)下得到了快速的發(fā)展,人們可以方便地利用社交軟甲、電子郵件等方式進(jìn)行信息的交流,相比之下,以人工為主的實(shí)物交付方式與當(dāng)今信息社會(huì)的發(fā)展極不相稱。人工派送貨運(yùn)時(shí)間長,時(shí)效性差,工作效率低下。經(jīng)濟(jì)的發(fā)展、生活水平的提高使得物件傳送的需求在人們的日常生活中越來越高,現(xiàn)代物件的運(yùn)送情況主要表現(xiàn)為遠(yuǎn)距離傳送和近距離傳送交付兩種方式。
遠(yuǎn)距離的物件傳送主要依托于鐵路、公路、航空等公共交通網(wǎng)絡(luò),隨著人們網(wǎng)購熱情的提升,快遞行業(yè)在近幾年得到了迅猛的發(fā)展,但其受到“隔夜送達(dá)難”、“服務(wù)態(tài)度難保證”以及“人力成本高”等因素的制約,無法滿足現(xiàn)代人快節(jié)奏、高質(zhì)量生活水平的需求。相比之下,小物件、近距離、高頻次的物件傳送需求在人們的日常生活中則顯得更加迫切,辦公室、學(xué)校、醫(yī)院等室內(nèi)環(huán)境以及樓宇之間頻繁的物件交付很大程度上影響了人們的工作效率,迫切需要一種更加便捷智能的物件傳送方式來將人們從繁瑣的實(shí)物交付工作中解脫出來。
針對上述更加便捷智能的物件傳送方式,無人機(jī)派送是人們所做的一次嘗試。無人機(jī)配送作為一種創(chuàng)意配送方式還未真正投入商業(yè)使用,近日亞馬遜“無人機(jī)配送”或?qū)⒔Y(jié)合貨車配送,從而有望讓無人機(jī)送貨成為現(xiàn)實(shí)。無人機(jī)配送具有速度快等優(yōu)點(diǎn),但是在操作、成本和管制方便還存在諸多問題。無人機(jī)的運(yùn)載能力僅為幾斤,而網(wǎng)點(diǎn)對網(wǎng)點(diǎn)之間的準(zhǔn)運(yùn)需求以百斤計(jì),且室內(nèi)的實(shí)物交付不可能通過無人機(jī)實(shí)現(xiàn);而且無人機(jī)續(xù)航能力僅20分鐘上下,配送范圍很受限制。此外,天氣影響、電磁干擾、安全問題等都是需要考慮的因素。
技術(shù)實(shí)現(xiàn)要素:
針對現(xiàn)有技術(shù)存在的缺陷,本發(fā)明的目的是提供一種基于ROS的機(jī)器人物品傳送方法和控制系統(tǒng)。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
一種基于ROS的機(jī)器人物品傳送方法,包括如下步驟:
步驟1、Nvidia Jetson TK1中安裝ROS操作系統(tǒng),利用Kinect獲取帶有深度信息的RGB-D圖像,在ROS中利用RTAB-Map算法進(jìn)行處理建立二維導(dǎo)航地圖,將二維導(dǎo)航地圖存儲(chǔ)到Nvidia Jetson TK1中;
步驟2、在客戶端中輸入自己的位置和目的地位置,并將位置信息傳送服務(wù)器,服務(wù)器將位置信息發(fā)送到Nvidia Jetson TK1;
步驟3、Nvidia Jetson TK1將位置信息與二維導(dǎo)航地圖中的位置數(shù)據(jù)進(jìn)行匹配,得到匹配結(jié)果后利用Dijkstra算法生成規(guī)劃路徑,并根據(jù)規(guī)劃路徑生成序列操作指令;
步驟4、Nvidia Jetson TK1將生成的序列操作指令發(fā)送到單片機(jī),單片機(jī)根據(jù)序列操作指令控制機(jī)器人按序列執(zhí)行命令,以完成客戶端指定的取件和送件操作,完成客戶端指定操作后,機(jī)器人返回初始位置;
步驟5、通過服務(wù)器向客戶端推送取件和送件完成信息;
步驟6、通過機(jī)器人攜帶的Kinect檢測機(jī)器人在按序執(zhí)行命令過程中碰到的障礙物,并將數(shù)據(jù)發(fā)送給Nvidia Jetson TK1,Nvidia Jetson TK1中的ROS操作系統(tǒng)利用動(dòng)態(tài)窗口法(DWA)來進(jìn)行局部路徑規(guī)劃,以避開障礙物。
進(jìn)一步的,客戶端界面,通過輸入自己和目的地的位置,以發(fā)送請求指令至服務(wù)器,服務(wù)器接收指令后發(fā)送至Nvidia Jetson TK1,Nvidia Jetson TK1根據(jù)指令改變機(jī)器人的行走方向,完成到指定地點(diǎn)取件和送件的動(dòng)作。
進(jìn)一步的,在步驟3中,Nvidia Jetson TK1獲取服務(wù)器發(fā)送的文本指令中的位置信息后與后臺儲(chǔ)存的二維導(dǎo)航地圖中的位置數(shù)據(jù)進(jìn)行匹配,得到匹配結(jié)果后生成規(guī)劃路徑,并根據(jù)規(guī)劃路徑生成序列操作指令。
進(jìn)一步的,在步驟6中,Nvidia Jetson TK1獲取Kinect的RGB-D圖像數(shù)據(jù)、單片機(jī)的里程計(jì)數(shù)據(jù), ROS操作系統(tǒng)根據(jù)讀取的數(shù)據(jù)利用動(dòng)態(tài)窗口法(DWA)來進(jìn)行局部路徑規(guī)劃并將發(fā)送路徑信息給單片機(jī),單片機(jī)根據(jù)路徑信息和IMU慣性測量單元的機(jī)器人姿態(tài)數(shù)據(jù)運(yùn)用PID算法進(jìn)行運(yùn)算,將計(jì)算得到的PWM值賦予給電機(jī)以調(diào)整驅(qū)動(dòng)輪的轉(zhuǎn)速,以控制機(jī)器人的行走速度和轉(zhuǎn)向。
進(jìn)一步的,在客戶端輸入自己的位置和目的地位置,并將位置信息發(fā)送到服務(wù)器,服務(wù)器根據(jù)機(jī)器人的狀態(tài)將調(diào)度命令發(fā)送給機(jī)器人,Nvidia Jetson TK1將調(diào)度信息中的位置信息和后臺存儲(chǔ)的二維導(dǎo)航地圖中的位置數(shù)據(jù)進(jìn)行匹配,得到匹配結(jié)果后生成規(guī)劃路徑并根據(jù)規(guī)劃路徑生成序列操作指令;Nvidia Jetson TK1將序列操作指令發(fā)送給單片機(jī),單片機(jī)根據(jù)指令和姿態(tài)信息生成控制信息,控制機(jī)器人按序執(zhí)行命令到達(dá)指定位置完成取件送件的任務(wù),完成任務(wù)后返回初始位置待命。
另外,本發(fā)明提供了一種實(shí)現(xiàn)機(jī)器人物品傳送方法的機(jī)器人物品傳送控制系統(tǒng),包括客戶端、服務(wù)器,以及安裝于機(jī)器人上的Nvidia Jetson TK1、Kinect傳感器和揚(yáng)聲器,還包括控制機(jī)器人姿態(tài)的Arduino UNO單片機(jī)、IMU慣性測量單元和履帶車,所述客戶端與所述服務(wù)器通訊,所述服務(wù)器與所述Nvidia Jetson TK1通訊,所述Nvidia Jetson TK1分別與所述Kinect傳感器、揚(yáng)聲器和Arduino UNO單片機(jī)相連接,所述Arduino UNO單片機(jī)分別與所述IMU慣性測量單元和履帶車相連接。
進(jìn)一步的,所述履帶車由底座、支撐裝置、物件存放裝置、轉(zhuǎn)向裝置和行進(jìn)裝置組成,所述支撐裝置與所述底座、物件存放裝置、行進(jìn)裝置和轉(zhuǎn)向裝置相連接,所述行進(jìn)裝置由電機(jī)和驅(qū)動(dòng)輪組成,所述Arduino UNO單片機(jī)與所述電機(jī)相連接,所述電機(jī)與驅(qū)動(dòng)輪相連接。
進(jìn)一步的,所述機(jī)器人還安裝有GPRS模塊,所述Nvidia Jetson TK1與所述GPRS模塊相連接,所述機(jī)器人通過GPRS模塊與所述服務(wù)器通訊。
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn):
本發(fā)明利用Kinect雙目攝像頭通過搜集所有視線范圍內(nèi)的點(diǎn)形成一副景深圖像,用來表示周圍環(huán)境,這種景深圖像相對于RGB彩色圖像,深度圖像具有不受陰影、光照、色度等因素影響的優(yōu)點(diǎn),并且能直接反應(yīng)出物體表面的三維特征信息。
本發(fā)明采用RTAB-Map算法在ROS操作系統(tǒng)中進(jìn)行處理建立二維導(dǎo)航地圖,相比于經(jīng)常使用的GMAPPING算法,該算法是一種基于全局貝葉斯閉環(huán)檢測的RGB-D Graph SLAM方法,它可以用Kinect的深度信息結(jié)合Kinect變換得到的激光數(shù)據(jù)進(jìn)行即時(shí)定位與建圖,而GMAPPING算法只用到了Kinect轉(zhuǎn)換得到的激光數(shù)據(jù),丟失了深度信息。
本發(fā)明在進(jìn)行控速處理時(shí),通過編碼器對機(jī)器人的輪轉(zhuǎn)數(shù)進(jìn)行計(jì)數(shù),并保存在單片機(jī)中,之后使用增量式PID算法計(jì)算出實(shí)際速度值,在此過程中需要不斷地調(diào)試PID參數(shù)以獲得能使實(shí)際速度穩(wěn)定在預(yù)設(shè)速度值的PID參數(shù)。相比起普通控速算法,本系統(tǒng)使用的控速處理大大提升了系統(tǒng)的穩(wěn)定性,使得機(jī)器人在摩擦力不同的地方做跟隨處理時(shí)仍能穩(wěn)定的維持在預(yù)設(shè)速度值。
本發(fā)明適用于小范圍內(nèi)物品傳送,在物品傳送過程中完全是通過客戶端指令控制機(jī)器人,相比人力參與的物品傳送,本發(fā)明擁有智能、方便、快捷等優(yōu)點(diǎn),大大提高近距離、高頻次物品傳送的效率。
附圖說明
圖1為本發(fā)明實(shí)施例的框架原理圖。
具體實(shí)施方式
下面結(jié)合附圖對發(fā)明進(jìn)一步的說明,但不用來限制本發(fā)明的范圍。
實(shí)施例:本發(fā)明提供了一種基于ROS的機(jī)器人物品傳送方法,包括如下步驟:
步驟1、Nvidia Jetson TK14中安裝ROS操作系統(tǒng),利用Kinect3獲取帶有深度信息的RGB-D圖像,在ROS中利用RTAB-Map算法進(jìn)行處理建立二維導(dǎo)航地圖,將二維導(dǎo)航地圖存儲(chǔ)到Nvidia Jetson TK14中;
步驟2、在客戶端1中輸入自己的位置和目的地位置,并將位置信息傳送服務(wù)器2,服務(wù)器2將位置信息發(fā)送到Nvidia Jetson TK14;
步驟3、Nvidia Jetson TK14將位置信息與二維導(dǎo)航地圖中的位置數(shù)據(jù)進(jìn)行匹配,得到匹配結(jié)果后利用Dijkstra算法生成規(guī)劃路徑,并并根據(jù)規(guī)劃路徑生成序列操作指令;
步驟4、Nvidia Jetson TK14將生成的序列操作指令發(fā)送到單片機(jī)6,單片機(jī)6根據(jù)序列操作指令控制機(jī)器人按序列執(zhí)行命令,以完成客戶端1指定的取件和送件操作,完成客戶端1指定操作后,機(jī)器人返回初始位置;
步驟5、通過服務(wù)器2向客戶端推送取件和送件完成信息;
步驟6、通過機(jī)器人攜帶的Kinect3檢測機(jī)器人在按序執(zhí)行命令過程中碰到的障礙物,并將數(shù)據(jù)發(fā)送給Nvidia Jetson TK14,Nvidia Jetson TK14中的ROS操作系統(tǒng)利用動(dòng)態(tài)窗口法(DWA)來進(jìn)行局部路徑規(guī)劃,以避開障礙物。
客戶端1界面,通過輸入自己和目的地的位置,以發(fā)送請求指令至服務(wù)器2,服務(wù)器2接收指令后發(fā)送至Nvidia Jetson TK14,Nvidia Jetson TK14根據(jù)指令改變機(jī)器人的行走方向,完成到指定地點(diǎn)取件和送件的動(dòng)作。通過客戶端1可以實(shí)現(xiàn)控制機(jī)器人到指定地點(diǎn)取件,將物品送至指定目的地,在客戶端1實(shí)時(shí)顯示物品的傳送狀態(tài)。
在步驟3中,Nvidia Jetson TK14獲取服務(wù)器2發(fā)送的文本指令中的位置信息后與后臺儲(chǔ)存的二維導(dǎo)航地圖中的位置數(shù)據(jù)進(jìn)行匹配,得到匹配結(jié)果后生成規(guī)劃路徑,并根據(jù)規(guī)劃路徑生成序列操作指令。
在步驟6中,Nvidia Jetson TK14獲取Kinect3的RGB-D圖像數(shù)據(jù)、單片機(jī)6的里程計(jì)10數(shù)據(jù), ROS操作系統(tǒng)根據(jù)讀取的數(shù)據(jù)利用動(dòng)態(tài)窗口法(DWA)來進(jìn)行局部路徑規(guī)劃并將發(fā)送路徑信息給單片機(jī)6,單片機(jī)6根據(jù)路徑信息和IMU慣性測量單元8的機(jī)器人姿態(tài)數(shù)據(jù)運(yùn)用PID算法進(jìn)行運(yùn)算,將計(jì)算得到的PWM值賦予給電機(jī)以調(diào)整驅(qū)動(dòng)輪的轉(zhuǎn)速,以控制機(jī)器人的行走速度和轉(zhuǎn)向。
在客戶端1輸入自己的位置和目的地位置,并將位置信息發(fā)送到服務(wù)器2,服務(wù)器2根據(jù)機(jī)器人的狀態(tài)將調(diào)度命令發(fā)送給機(jī)器人,Nvidia Jetson TK14將調(diào)度信息中的位置信息和后臺存儲(chǔ)的二維導(dǎo)航地圖中的位置數(shù)據(jù)進(jìn)行匹配,得到匹配結(jié)果后生成規(guī)劃路徑并根據(jù)規(guī)劃路徑生成序列操作指令;Nvidia Jetson TK14將序列操作指令發(fā)送給單片機(jī)6,單片機(jī)6根據(jù)指令和姿態(tài)信息生成控制信息,控制機(jī)器人按序執(zhí)行命令到達(dá)指定位置完成取件送件的任務(wù),完成任務(wù)后返回初始位置待命。
另外,如圖1所示,本發(fā)明提供了一種實(shí)現(xiàn)機(jī)器人物品傳送方法的機(jī)器人物品傳送控制系統(tǒng),包括客戶端1、服務(wù)器2,以及安裝于機(jī)器人上的Nvidia Jetson TK14、Kinect傳感器3和揚(yáng)聲器5,還包括控制機(jī)器人姿態(tài)的Arduino UNO單片機(jī)6、IMU慣性測量單元8和履帶車9,所述客戶端1與所述服務(wù)器2通訊,所述服務(wù)器2與所述Nvidia Jetson TK14通訊,所述Nvidia Jetson TK14分別與所述Kinect傳感器3、揚(yáng)聲器5和Arduino UNO單片機(jī)6相連接,所述Arduino UNO單片機(jī)6分別與所述IMU慣性測量單元8和履帶車9相連接。
本發(fā)明機(jī)器人物件傳送控制系統(tǒng)的所述履帶車9由底座、支撐裝置、物件存放裝置、轉(zhuǎn)向裝置和行進(jìn)裝置組成,所述支撐裝置與所述底座、物件存放裝置、行進(jìn)裝置和轉(zhuǎn)向裝置相連接,所述行進(jìn)裝置由電機(jī)和驅(qū)動(dòng)輪組成,所述Arduino UNO單片機(jī)6與所述電機(jī)相連接,所述電機(jī)與所述驅(qū)動(dòng)輪相連接。
本發(fā)明機(jī)器人物件傳送控制系統(tǒng)的所述機(jī)器人還安裝有GPRS模塊7,所述Nvidia Jetson TK14與所述GPRS模塊相連接,所述機(jī)器人通過GPRS模塊7與所述服務(wù)器通訊。
通過以下實(shí)施例進(jìn)行具體說明:
一、要求機(jī)器人從自己這里拿東西去某地:在客戶端1輸入起始地和目的地的,服務(wù)器2獲取到位置信息,根據(jù)各機(jī)器人的狀態(tài)進(jìn)行機(jī)器人的調(diào)度,將位置信息發(fā)送給相應(yīng)的機(jī)器人;Nvidia Jetson TK14將調(diào)度信息中的位置信息和后臺存儲(chǔ)的二維導(dǎo)航地圖中的位置數(shù)據(jù)進(jìn)行匹配,得到匹配結(jié)果后生成規(guī)劃路徑并根據(jù)規(guī)劃路徑生成序列操作指令;機(jī)器人根據(jù)序列操作指令到達(dá)起始地后,取得物品并根據(jù)序列指令到達(dá)目的地,此時(shí),客戶端1顯示送件完成信息,機(jī)器人返回初始位置。
二、要求機(jī)器人從某地拿東西給自己:在客戶端1輸入起始地和目的地的,服務(wù)器2獲取到位置信息,根據(jù)各機(jī)器人的狀態(tài)進(jìn)行機(jī)器人的調(diào)度,將位置信息發(fā)送給相應(yīng)的機(jī)器人,對應(yīng)人員的客戶端1會(huì)通知取件,進(jìn)行信息提醒;Nvidia Jetson TK14將調(diào)度信息中的位置信息和后臺存儲(chǔ)的二維導(dǎo)航地圖中的位置數(shù)據(jù)進(jìn)行匹配,得到匹配結(jié)果后生成規(guī)劃路徑并根據(jù)規(guī)劃路徑生成序列操作指令;機(jī)器人根據(jù)序列操作指令到達(dá)起始地后,取得物品并根據(jù)序列指令到達(dá)目的地,此時(shí),對應(yīng)人員的客戶端1顯示送件完成信息,機(jī)器人返回初始位置。