国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ROS的服務(wù)機器人關(guān)鍵技術(shù)研究與實現(xiàn)

2019-12-19 02:07孫弋張松
軟件 2019年11期
關(guān)鍵詞:人機交互

孫弋 張松

摘? 要: 針對服務(wù)機器人服務(wù)業(yè)務(wù)的無監(jiān)督實現(xiàn)問題,設(shè)計并實現(xiàn)了一種基于ROS(機器人操作系統(tǒng))的智能服務(wù)機器人系統(tǒng)。該系統(tǒng)包括管理中心、機器人本體和客戶端,采用基于ROS系統(tǒng)的node節(jié)點分布式架構(gòu)。管理中心由服務(wù)器組成,管理中心是任務(wù)管理與執(zhí)行調(diào)度的核心組成部分,負(fù)責(zé)對系統(tǒng)內(nèi)各種資源進(jìn)行管理和調(diào)度,機器人本體使用高性能核心處理器搭載環(huán)境傳感器,通過基于EKF(擴展卡爾曼濾波)的SLAM算法解決移動機器人導(dǎo)航問題,客戶端與機器人本體的信息交互采用基于rosbridge的節(jié)點通信技術(shù)。機器人系統(tǒng)通過語音交互技術(shù)實現(xiàn)了語音自主導(dǎo)航。本設(shè)計在實驗室環(huán)境采用Turtlebot機器人進(jìn)行實際測試,測試結(jié)果表明本方案可以初步實現(xiàn)機器人基礎(chǔ)服務(wù)場景中的自主定位與導(dǎo)航及語音控制功能。

關(guān)鍵詞: ROS;自主導(dǎo)航;服務(wù)機器人;人機交互

【Abstract】: Aiming at the unsupervised implementation of service robot service business, an intelligent service robot system based on ROS (Robot Operating System) is designed and implemented. The system includes management center, robot ontology and client, and adopts node node distributed architecture based on ROS system. Robot ontology uses high-performance core processor to carry environmental sensors. SLAM algorithm based on EKF (Extended Kalman Filter) is used to solve the navigation problem of mobile robots. Rosbridge-based node communication technology is used for information interaction between client and robot ontology. Robot system realizes speech autonomous navigation through voice interaction technology. The design uses Turtlebot robot to test in the laboratory environment. The test results show that the scheme can initially realize autonomous positioning, navigation and voice control functions in the basic service scenario of the robot.

【Key words】: ROS; Autonomous navigation; Service robot; Human-computer interaction

0? 引言

隨著人工智能和物聯(lián)網(wǎng)技術(shù)的發(fā)展,服務(wù)機器人在服務(wù)行業(yè)開始得到廣泛應(yīng)用,服務(wù)機器人成為節(jié)約人力和經(jīng)濟成本,解決老齡人口護理等方面的一種可行方案[1],服務(wù)機器人在特定場景下的應(yīng)用成為當(dāng)前機器人應(yīng)用研究領(lǐng)域的難點和重點,美國卡耐基梅隆大學(xué)與Intel公司共同研制出助老助殘的服務(wù)機器人,可以完成擺放桌椅、端茶端菜等基本的日常生活服務(wù)[2],文獻(xiàn)[3]研制的Care-O-bot4機器人為應(yīng)對多樣性的環(huán)境而采用了模塊化設(shè)計,通過自身的攜帶傳感器識別特定人員的手勢或者語音來完成相應(yīng)的指定任務(wù)。上海交通大學(xué)研制出“交龍”餐廳仿人雙臂移動服務(wù)機器人利用人臉識別技術(shù)[4]可以和語音交互[5]。同時該機器人搭載激光雷達(dá)? 可用于室內(nèi)自主定位與導(dǎo)航[6],可用于餐廳和展覽館。本文針對服務(wù)機器人在服務(wù)場景中自主導(dǎo)航? 及語音交互技術(shù)進(jìn)行了分析,并設(shè)計實現(xiàn)了基于ROS[7]的服務(wù)型機器人以滿足在不同場景下完成服務(wù)任務(wù)。

1? 系統(tǒng)設(shè)計方案

服務(wù)機器人系統(tǒng)主要功能由管理中心、機器人本體和客戶端實現(xiàn),如圖1所示。管理中心由服務(wù)器組成、機器人本體采用高性能處理器作為主控板,嵌入式計算單元作為從控制器。主控制板負(fù)責(zé)各個子模塊,包括控制機器人運動底盤的運動功能實現(xiàn),機載傳感器數(shù)據(jù)采集及處理、系統(tǒng)各功能模塊的數(shù)據(jù)交互及通信及服務(wù)業(yè)務(wù)的管理與實現(xiàn)等,從控制器負(fù)責(zé)運動底盤相關(guān)傳感器數(shù)據(jù)采集與處理和電機的實時控制等;客戶端系統(tǒng)主要負(fù)責(zé)服務(wù)對象在服務(wù)區(qū)域內(nèi)服務(wù)任務(wù)的管理和人機交互界面的設(shè)計與實現(xiàn),具體開發(fā)過程中,各模塊硬件以及軟件部分進(jìn)行模塊化開發(fā),為今后的更新和后續(xù)升級提供? 便利。

(1)管理中心:管理中心由服務(wù)器承載,負(fù)責(zé)將服務(wù)機器人的任務(wù)信息進(jìn)行持久化及任務(wù)調(diào)度規(guī)劃。在系統(tǒng)運行期間,因此數(shù)據(jù)持久化的實現(xiàn)對機器人的任務(wù)管理與調(diào)度、系統(tǒng)性能分析等具有重要的意義。

(2)機器人主控模塊:即機器人的處理中心。本機器人采用interi5來實現(xiàn)。主要接收服務(wù)對象的請求命令、任務(wù);機器人根據(jù)設(shè)定任務(wù)自主的導(dǎo)航和速度控制,并自主導(dǎo)航到指定服務(wù)區(qū)域。

(3)定位模塊:本文中定位模塊采用IMU模塊,達(dá)到機器人準(zhǔn)確的移動到指定位置區(qū)域。

(4)避障模塊:為了避免機器人在運動過程中發(fā)生故障或碰撞,保障安全性,本系統(tǒng)在機器人上搭載激光雷達(dá)和碰撞檢測模塊,進(jìn)行障礙物判斷實時避障。

(5)運動驅(qū)動模塊:主要由電機驅(qū)動器和兩個大功率直流減速電機組成。驅(qū)動模塊根據(jù)主控制器發(fā)送控制命令驅(qū)動電機運動。

(6)客戶端系統(tǒng):客戶端由平板電腦承載,實現(xiàn)觸摸、語音等人機交互,從而提高用戶體驗。

2? 軟件系統(tǒng)設(shè)計

系統(tǒng)軟件主要包含三個部分,分別為管理中心、服務(wù)機器人系統(tǒng)和客戶端。機器人控制系統(tǒng)軟件主要負(fù)責(zé)服務(wù)機器人的動作自主導(dǎo)航,完成服務(wù)功能;客戶端界面主要負(fù)責(zé)顧客的位置信息、發(fā)送請求服務(wù)指令等。

2.1? 管理中心

管理中心包括訪問用戶管理模塊、服務(wù)管理模塊以及任務(wù)調(diào)度模塊。其主要功能有:

(1)信息管理:信息管理包含了對用戶的信息管理及服務(wù)業(yè)務(wù)的信息管理,常見有插入記錄、刪除記錄、更新記錄、清除數(shù)據(jù)和查詢記錄等。

(2)服務(wù)任務(wù)的調(diào)度:通過獲取和處理任務(wù)請求信息:負(fù)責(zé)提取請求(Request)中的信息,并根據(jù)請求類型調(diào)用相應(yīng)邏輯處理函數(shù);完成任務(wù)調(diào)? ?度規(guī)劃返回響應(yīng)(Response),管理中心設(shè)計如圖2所示。

2.2? 機器人本體軟件設(shè)計

機器人接受的消息主要包括目標(biāo)點坐標(biāo)信息及機器人交互信息,機器人接受服務(wù)請求后明確目標(biāo)點坐標(biāo)信息后導(dǎo)航系統(tǒng)根據(jù)環(huán)境進(jìn)行機器人的導(dǎo)航,并將導(dǎo)航的處理結(jié)果以轉(zhuǎn)速和轉(zhuǎn)矩的方式發(fā)送到運動控制層;運動控制層控制電機的轉(zhuǎn)動,實現(xiàn)運動的控制,使機器人移動到目標(biāo)點。服務(wù)機器人工作流程圖如圖3所示。

服務(wù)機器人導(dǎo)航過程中可能需要對原始地圖據(jù)處理,且可能會遇到一些靜態(tài)和動態(tài)障礙物,需要實時獲取機器人位置信息以及障礙物位置信息,并對這些障礙物進(jìn)行避讓。本文使用自適應(yīng)蒙特卡洛定位算法(AMCL),AMCL是自主移動機器人在二維環(huán)境下的基于概率的定位系統(tǒng),它主要使用粒子濾波對機器人在已知的地圖中進(jìn)行定位。導(dǎo)航時機器人首先會進(jìn)行全局路徑規(guī)劃,從而計算出移動機器人從出發(fā)點到目標(biāo)點的運動路線。路徑規(guī)劃是通過Dijkstra最短路徑的算法實現(xiàn)。導(dǎo)航過程中的局部路徑規(guī)劃會對局部進(jìn)行避障的規(guī)劃,其實現(xiàn)的算法是動態(tài)窗口法(Dynamic Windows Approach)[8],最終機器人依照局部的最優(yōu)路徑運動,通過對路徑的分解融合,生成實時環(huán)境中的運動控制序列發(fā)布給里程計,讓移動機器人進(jìn)行自主導(dǎo)航。

2.3? 客戶端軟件設(shè)計

客戶端作為服務(wù)機器人系統(tǒng)的一部分,為了有效的完成與機器人之間的交互就需要客戶端的機器人配合一起使用,如圖4所示用戶通過客戶端與后

臺通信完成登錄及授權(quán)等業(yè)務(wù)內(nèi)容后,客戶端將會把該用戶的位置的信息發(fā)送到機器人。同時客戶端能顯示機器人所在的位置。機器人在接收到請求后會對請求做出響應(yīng),如自動導(dǎo)航到指定的位置等。

本項目中使用了語音識別、義識別、語音合成等功能模塊。配合了ROS機器人操作系統(tǒng),同時使用離線與在線功能結(jié)合的方式構(gòu)建整個語音交互系統(tǒng)活,更加智能的與機器人進(jìn)行交互。

3? 關(guān)鍵技術(shù)

服務(wù)機器人的在服務(wù)區(qū)完成自主導(dǎo)航的同步定位與建圖技術(shù),客戶端節(jié)點,管理中心節(jié)點,機器人節(jié)點之間的通信技術(shù),用戶與機器人語音交互技術(shù)等復(fù)雜多任務(wù)的處理是實現(xiàn)服務(wù)機器人業(yè)務(wù)能力關(guān)鍵,因此需采用分布式的系統(tǒng)管理架構(gòu)對各個節(jié)點進(jìn)行管理,機器人操作系統(tǒng)(Robot Operating? System)是一個應(yīng)用于機器人上的操作系統(tǒng),通過點對點的設(shè)計讓機器人的進(jìn)程可以分別獨立運行,適用于機器人這種多任務(wù)的復(fù)雜場景。

3.1? 分布式系統(tǒng)框架

ROS作為一款次級操作系統(tǒng),運行與Linux之上提供類似于操作系統(tǒng)的功能。ROS的分布式架構(gòu),使得每個程序運行節(jié)點都是獨立的,且可根據(jù)要求使其獨立或松耦合運行。程序運行時,所有進(jìn)程以及所進(jìn)行的數(shù)據(jù)處理,將會通過一種點對點的網(wǎng)絡(luò)形式表現(xiàn)出來,主要包括:節(jié)點(node)、節(jié)點管理器(Master)、消息(message)、主題(topic)、服務(wù)(service)。

(1)節(jié)點(Node):表示可執(zhí)行任務(wù)程序。在ROS中每一個節(jié)點負(fù)責(zé)一個任務(wù),從而對每個節(jié)點實現(xiàn)松散耦合,不同的節(jié)點可以構(gòu)成成一個完整的系統(tǒng)。

(2)節(jié)點管理器(Master):主要用于管理節(jié)點的名稱注冊和查找。同時可以設(shè)置節(jié)點之間的通信。

(3)消息(Message)是節(jié)點之間通信的內(nèi)容,消息包含一個節(jié)點到另一個節(jié)點的信息數(shù)據(jù)。

(4)主題(Topic):表示消息通信媒介。每條消息發(fā)布到相應(yīng)的主題,主題對其名稱和內(nèi)容進(jìn)行識別。節(jié)點可以通過訂閱某個主題,接收來自其他節(jié)點的消息。

(5)服務(wù)(Service):是節(jié)點間另一種通信方式,在ROS中,發(fā)布主題時,正在發(fā)送的數(shù)據(jù)能夠以多對多的方式交互。但要求請求和回復(fù)是成對的消息結(jié)構(gòu)時需要通過服務(wù)來進(jìn)行。

3.2? 同時定位與地圖構(gòu)建(SLAM)技術(shù)

移動機器人SLAM問題是移動機器人在陌生環(huán)境中,通過外部傳感器(如測距傳感器和深度傳感器等)開始采集周圍環(huán)境信息。然后將里程計采集到的機器人數(shù)據(jù)和外部傳感器采集到的環(huán)境信息相融合構(gòu)建環(huán)境地圖,最后通過構(gòu)建好的環(huán)境地圖來實現(xiàn)移動機器人的自定位?;贓KF的SLAM算法能夠很好地處理不確定信息,可用來處理移動機器人導(dǎo)航問題。整個擴展卡爾曼SLAM(EKF—SLAM)算法的過程可分為下列四個過程:預(yù)測、觀測、數(shù)據(jù)關(guān)聯(lián)、更新。其中定義A、H分別是f、h對X偏導(dǎo)的雅可比矩陣:

3.3? 機器人系統(tǒng)通信技術(shù)

機器人的服務(wù)能力是通過組件之間通信交互,rosbridge是ROS官方為開發(fā)者提供的ROS與非ROS通信功能包,rosbridge主要包含兩個部分,Rosbridge Protocol和Rosbridge Implementation。其中Protocol部分提供了非ROS系統(tǒng)和ROS系統(tǒng)通信的具體格式,包括話題的訂閱,消息的發(fā)布,服務(wù)的調(diào)用,參數(shù)的設(shè)置和獲取,圖片信息的傳遞等等,Implementation部分是rosbridge的具體實現(xiàn)。

ROS的通信核心是節(jié)點,由服務(wù)節(jié)點發(fā)出話題,其他節(jié)點進(jìn)行訂閱,來完成數(shù)據(jù)交換。如圖5所示,rosbridge忽略掉ROS內(nèi)部通信規(guī)則,提升了抽象級別,內(nèi)部用topic和services完成通信,在外部用JSON數(shù)據(jù)格式進(jìn)行通信,目前支持的外部協(xié)議有websocket、TCP以及UDP[9]計中使用基于TCP協(xié)議的rosbridge。

3.4? 語音交互技術(shù)

系統(tǒng)獲得語音識別結(jié)果后,利用本地相對粗糙的語言模型預(yù)先對說話人的意圖進(jìn)行推理,如果本地推理機接受推理,則會通過資源搜索模塊對本地資源進(jìn)行調(diào)度以作出相應(yīng)的決倘若無法在本地解析出說話人的意圖,則轉(zhuǎn)向云端后臺接入語音云服務(wù),最終將結(jié)果返回。語音合成將返回的文本信息轉(zhuǎn)換成音頻輸出。

4? 系統(tǒng)測試

本文采用Turtlebot兩輪差分式運動機器人作為實驗平臺,使用Inter i5作為核心處理器,機器人上搭載思嵐公司激光雷達(dá)rplidear A1作為視覺傳感器模塊。

客戶端與機器人通過Rosbridge完成websocke連接然后按照協(xié)議接收或者發(fā)送ROS消息將地圖顯示在客戶端(如圖7)。

(2)自主導(dǎo)航功能

在客戶端點擊目標(biāo)點A,會將目標(biāo)點A的位置信息發(fā)送到機器人,機器人在接受到目標(biāo)點信息后將進(jìn)行自主導(dǎo)航,同時客戶端可以實時顯示機器人導(dǎo)航的位置信息如圖10所示。機器人使用Dijkstra算法規(guī)劃的全局路徑,在實驗環(huán)境中設(shè)置動態(tài)未知障礙物,會顯示局部規(guī)劃路徑功能。局部規(guī)劃路徑如圖8紅線所示。

從調(diào)試結(jié)果來看,在機器人行駛過程中,行人走到機器人前方阻止機器人行駛,圖中紅色軌跡是遇到動態(tài)障礙物后的軌跡,和全局路徑有一定的偏差,但可以正常到達(dá)目標(biāo)點,可以看出在局部路徑規(guī)劃中機器人能夠完成對未知動態(tài)障礙物的避障。

(3)語音交互實現(xiàn)

在語音交互模式下,系統(tǒng)開啟后會進(jìn)入語音喚醒監(jiān)聽狀態(tài),機器人會等待用戶使用預(yù)設(shè)關(guān)鍵詞來開啟語音交互功能。當(dāng)語音狀態(tài)喚醒后,機器人會進(jìn)入語音識別監(jiān)聽狀態(tài),該狀態(tài)下,會根據(jù)用戶的不同語音指令來開啟相應(yīng)的語音服務(wù),本實驗以尋找商品為例,當(dāng)機器人接收到用戶語音指令信息后,機器人將啟動機器人導(dǎo)航模塊,包括機器人路徑規(guī)劃等,帶領(lǐng)用戶到達(dá)商品的所在位置如圖10所示。

5? 結(jié)論

針對服務(wù)機器人服務(wù)業(yè)務(wù)的需求及關(guān)鍵技術(shù),本文將機器人開發(fā)技術(shù)、物聯(lián)網(wǎng)技術(shù)、語音識別技術(shù)等多項前沿的技術(shù)進(jìn)行整合,綜合實現(xiàn)信息之間的高效地連接,實現(xiàn)了一種基于ROS的分布式管理的服務(wù)機器人系統(tǒng)。在管理中心實現(xiàn)了對用戶和任務(wù)的管理,基于rosbridge客戶端實現(xiàn)了基礎(chǔ)業(yè)務(wù)中的機器人位置信息交互及與控制中心服務(wù)信息交互,通過語音交互技術(shù)實現(xiàn)了用戶語音控制機器人,同時機器人本體實行了自主導(dǎo)航功能,測試結(jié)果表明本方案可以初步滿足機器人基礎(chǔ)場景中業(yè)務(wù)服務(wù)功能。為滿足不同業(yè)務(wù)場景下的機器人服務(wù)任務(wù)奠定了基礎(chǔ)。

參考文獻(xiàn)

[1]于清曉. 輪式餐廳服務(wù)機器人移動定位技術(shù)研究[D]. 上海: 上海交通大學(xué), 2013.

[2]Srinivasa S S, Ferguson D, Helfrich C J, et al. HERB: a home exploring robotic butler[J]. Autonomous Robots, 2010, 28(1): 5-20.

[3]Kittmann R, Frohlich T, Schafer J, et al. Let me introduce myself: I am Care-O-bot4, a gentleman robot[J]. Mensch and Computer 2015-Proceedings, 2015: 223-232.

[4]Liu. M, Li S, Shan S, et al. AU-inspired Deep Networks for Facial Expression Feature Learing[J]. Neurocompting, 2015, 159(C): 126-136.

[5]譚耀. 基于語音控制的移動機器人控制系統(tǒng)設(shè)計與實現(xiàn)[D]. 哈爾濱: 哈爾濱工業(yè)大學(xué), 2012: 50-55.

[6]張文. 基于多傳感器融合的室內(nèi)機器人自主導(dǎo)航方法研究[D]. 中國科學(xué)技術(shù)大學(xué), 2017.

[7]左軒塵, 韓亮亮, 莊杰, 等. 基于ROS的空間機器人人機交互系統(tǒng)設(shè)計[J]. 計算機工程與設(shè)計, 2015(12): 3370-3374.

[8]張華. 基于ROS的自主移動機器人系統(tǒng)設(shè)計與實現(xiàn)[D]. 哈爾濱: 哈爾濱工業(yè)大學(xué), 2016.

[9]金光, 江先亮. 無線網(wǎng)絡(luò)技術(shù)教程(第三版)[M]. 清華大學(xué)出版社, 2017.

[10]王瑤, 曾慶寧, 毛維. 低信噪比環(huán)境下語音端點檢測改進(jìn)方發(fā)[J]. 技術(shù), 2018, 37(5): 457-467.

猜你喜歡
人機交互
人機交互課程創(chuàng)新實驗
圖像處理耦合模板定位的答題卡識別研究與應(yīng)用
玉林市| 河池市| 西乌珠穆沁旗| 图片| 阿合奇县| 桦甸市| 昌黎县| 清水县| 龙门县| 河西区| 怀集县| 元朗区| 吉林市| 新沂市| 渝北区| 乌拉特中旗| 盈江县| 青阳县| 荔波县| 德昌县| 江川县| 和田市| 永胜县| 江北区| 夹江县| 仙居县| 伊金霍洛旗| 卢湾区| 云和县| 九龙城区| 桂平市| 双城市| 道孚县| 鄂尔多斯市| 当雄县| 逊克县| 武冈市| 秀山| 中卫市| 高台县| 丹凤县|