• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于ROS的遠(yuǎn)程呈現(xiàn)移動(dòng)機(jī)器人系統(tǒng)設(shè)計(jì)

      2019-09-27 05:05:24張華健
      制造業(yè)自動(dòng)化 2019年9期
      關(guān)鍵詞:PC機(jī)工控機(jī)移動(dòng)機(jī)器人

      張華健,錢 鈞

      ZHANG Hua-jian,QIAN Jun

      (合肥工業(yè)大學(xué),合肥 230009)

      0 引言

      在機(jī)器人和互聯(lián)網(wǎng)的高速發(fā)展中,遠(yuǎn)程呈現(xiàn)技術(shù)[1]正在不斷改變我們的生活方式,廣泛應(yīng)用于安防、醫(yī)療、教育、實(shí)時(shí)監(jiān)控、遠(yuǎn)程會(huì)議等領(lǐng)域。遠(yuǎn)程呈現(xiàn)移動(dòng)機(jī)器人[2]是一個(gè)集成了視頻通信和遙控功能的移動(dòng)的機(jī)器人,用戶可以通過視頻通信功能與他人通信,并通過遙控功能控制機(jī)器人的行走和其他動(dòng)作,來達(dá)到替代人物虛擬出場(chǎng)的目的。在眾多的移動(dòng)機(jī)器人的研究中,如Cambridge公司推出的VGO機(jī)器人[3]、上海交大醫(yī)學(xué)院的艾菲仕醫(yī)療服務(wù)機(jī)器人[4]等,雖然這些機(jī)器人功能強(qiáng)大,但價(jià)格昂貴,在代碼的復(fù)用性和移植性方面表現(xiàn)得比較差,不利于二次開發(fā)和維護(hù)。

      針對(duì)這些不足,本研究以機(jī)器人操作系統(tǒng)(ROS)[5]為軟件平臺(tái),搭建一款低成本、高性能、開源的遠(yuǎn)程呈現(xiàn)移動(dòng)機(jī)器人平臺(tái),并實(shí)現(xiàn)其軟、硬件系統(tǒng)設(shè)計(jì)。

      1 移動(dòng)機(jī)器人硬件系統(tǒng)設(shè)計(jì)

      1.1 本體設(shè)計(jì)

      為了便于設(shè)計(jì)、安裝和維護(hù),結(jié)合模塊化設(shè)計(jì)思想,移動(dòng)機(jī)器人采用三輪機(jī)構(gòu),其中,前輪為主動(dòng)輪,采用獨(dú)立驅(qū)動(dòng)和轉(zhuǎn)向機(jī)構(gòu)于一體的結(jié)構(gòu)方式,后輪使用兩個(gè)固定從動(dòng)輪。主動(dòng)輪集成了獨(dú)立驅(qū)動(dòng)、轉(zhuǎn)向和減震的功能。同時(shí),通過2個(gè)增量式編碼器可實(shí)時(shí)測(cè)得驅(qū)動(dòng)輪的驅(qū)動(dòng)速度和轉(zhuǎn)向角度。下位機(jī)為Beaglebone Black開源控制器;上位機(jī)包括裝有ROS和Ubuntu系統(tǒng)的工控機(jī)和作為遠(yuǎn)程控制平臺(tái)的可聯(lián)網(wǎng)PC機(jī)和遙桿,可實(shí)現(xiàn)遠(yuǎn)程呈現(xiàn)和控制。機(jī)器人系統(tǒng)組成如圖1所示。

      圖1 移動(dòng)機(jī)器人系統(tǒng)組成

      1.2 運(yùn)動(dòng)學(xué)模型

      本研究的移動(dòng)機(jī)器人運(yùn)動(dòng)學(xué)模型如圖2所示。

      圖2 運(yùn)動(dòng)學(xué)模型

      以移動(dòng)機(jī)器人的兩后輪中心連線的中點(diǎn)O1作為參考點(diǎn),結(jié)合文獻(xiàn)[6]和文獻(xiàn)[7]可將運(yùn)動(dòng)學(xué)模型描述為:

      由此可知,只要知道移動(dòng)機(jī)器人的初始位姿,就可通過遞推求得任意時(shí)刻移動(dòng)機(jī)器人的位姿。

      1.3 硬件系統(tǒng)

      移動(dòng)機(jī)器人的硬件系統(tǒng)主要由上位機(jī)和下位機(jī)兩部分組成,其硬件系統(tǒng)框圖如圖3所示。

      圖3 硬件系統(tǒng)框圖

      上位機(jī)使用工控機(jī)和PC機(jī),工控機(jī)裝有Ubuntu操作系統(tǒng)和機(jī)器人操作系統(tǒng)(ROS),負(fù)責(zé)人機(jī)交互,便于進(jìn)行傳感器數(shù)據(jù)采集與處理、機(jī)器人控制和軟件集成,同時(shí),通過Kinect[8]視覺傳感器和單目攝像頭實(shí)現(xiàn)環(huán)境感知能力;PC機(jī)主要實(shí)現(xiàn)遠(yuǎn)程控制和獲取機(jī)器人的臨場(chǎng)環(huán)境,采用任意可聯(lián)網(wǎng)的筆記本電腦即可。下位機(jī)主要由主控制器、驅(qū)動(dòng)模塊、傳感器模塊和電源模塊組成。主控制器采用基于ARM-Cortex A8內(nèi)核的嵌入式處理器BeagleBone Black[9],主要負(fù)責(zé)控制指令的執(zhí)行和部分傳感器數(shù)據(jù)的采集;驅(qū)動(dòng)模塊由MAXON RE40直流伺服電機(jī)和ELMO的SimplIQ系列的驅(qū)動(dòng)器組成;傳感器模塊由安裝在同步帶輪的增量式旋轉(zhuǎn)編碼器和倍加福的 UB4000-F42-U-V15系列的超聲波傳感器組成。

      2 移動(dòng)機(jī)器人軟件系統(tǒng)設(shè)計(jì)

      移動(dòng)機(jī)器人平臺(tái)軟件系統(tǒng)設(shè)計(jì)的好壞關(guān)系到移動(dòng)機(jī)器人能否正常實(shí)現(xiàn)其功能,以及運(yùn)行的穩(wěn)定性、實(shí)時(shí)性和魯棒性等[10]。如圖4所示,整個(gè)軟件系統(tǒng)可分為上位機(jī)和下位機(jī)。上位機(jī)軟件系統(tǒng)包括PC和工控機(jī),其中工控機(jī)軟件系統(tǒng)是在Ubuntu環(huán)境下,基于ROS框架搭建,具有運(yùn)動(dòng)決策、圖像處理、數(shù)據(jù)處理等功能,PC作遠(yuǎn)程呈現(xiàn)和控制;下位機(jī)通過SOCKET與上位機(jī)通信,主要接收運(yùn)動(dòng)指令和發(fā)送相關(guān)傳感器數(shù)據(jù),包括電機(jī)驅(qū)動(dòng)、超聲波和編碼器數(shù)據(jù)獲取和傳輸。

      圖4 軟件系統(tǒng)框圖

      2.1 上位機(jī)軟件設(shè)計(jì)

      上位機(jī)中主要由PC機(jī)和工控機(jī)組成。工控機(jī)主要用于運(yùn)動(dòng)決策、圖像處理、數(shù)據(jù)處理;PC機(jī)與工控機(jī)通信后獲取圖像信息,用于遠(yuǎn)程呈現(xiàn)和控制。軟件設(shè)計(jì)框架如圖5所示。

      在運(yùn)動(dòng)決策中,考慮到移動(dòng)機(jī)器人安全問題,初步采用2個(gè)超聲波傳感器進(jìn)行避障,由于超聲波的采樣頻率比較低,當(dāng)速度超過0.4m/s時(shí),就無法進(jìn)行實(shí)時(shí)的避障,結(jié)合Kinect攝像頭的深度信息和超聲波數(shù)據(jù),進(jìn)行分級(jí)減速,即可達(dá)到避障目的。其設(shè)計(jì)流程如圖6所示。

      圖5 上位機(jī)軟件框架

      圖6 避障流程圖

      2.2 下位機(jī)軟件設(shè)計(jì)

      下位機(jī)主要用來接收運(yùn)動(dòng)指令和傳遞編碼器、超聲波數(shù)據(jù)。BeagleBone Black(BBB)控制器具有ADC、UART、I2C、SPI、PWM、GPIO等接口,這得BBB在機(jī)器人控制方面有很大優(yōu)勢(shì),擬采用BBB作為下位機(jī)控制電機(jī)和傳感器數(shù)據(jù)采集的設(shè)備。由于BBB內(nèi)部裝有Debian系統(tǒng),為了合理利用資源、程序的可擴(kuò)展性和減少數(shù)據(jù)傳輸?shù)难訒r(shí)誤差,采用線程的方式進(jìn)行軟件設(shè)計(jì)。主線程主要運(yùn)行套接字通訊程序,發(fā)送和接收相關(guān)數(shù)據(jù)、指令;4個(gè)子線程主要用作超聲波數(shù)據(jù)的采集和發(fā)送、編碼器數(shù)據(jù)的采集和發(fā)送、轉(zhuǎn)向電機(jī)控制和驅(qū)動(dòng)電機(jī)控制。

      由于本文設(shè)計(jì)的模塊化車輪結(jié)構(gòu)上具有耦合,當(dāng)存在轉(zhuǎn)向時(shí),需要進(jìn)行速度補(bǔ)償來消除這種耦合現(xiàn)象,其公式如式(3)所示。本研究采用脈沖控制方式,占空比始終為50%,其中b為轉(zhuǎn)向指令,DP為驅(qū)動(dòng)脈沖周期,TP為轉(zhuǎn)向脈沖周期,DP'為速度補(bǔ)償后的驅(qū)動(dòng)脈沖周期。

      3 遠(yuǎn)程呈現(xiàn)與控制

      遠(yuǎn)程圖像傳輸與控制是遠(yuǎn)程呈現(xiàn)移動(dòng)機(jī)器人的一項(xiàng)基本功能[11]。簡(jiǎn)單的方法是采用雙ROS之間的通信機(jī)制來實(shí)現(xiàn)PC與工控機(jī)之間通信,該方法只需簡(jiǎn)單的配置即可實(shí)現(xiàn)通信,但該方法局限于兩臺(tái)電腦都要裝有ROS和Linux系統(tǒng),且需在同一局域網(wǎng)內(nèi)才能實(shí)現(xiàn)通信。針對(duì)這類局限性,本文采用蒲公英VPN第三方軟件構(gòu)建異地虛擬局域網(wǎng),實(shí)現(xiàn)不同局域網(wǎng)內(nèi)移動(dòng)機(jī)器人的遠(yuǎn)程呈現(xiàn)和控制。

      在圖像傳輸和運(yùn)動(dòng)指令收發(fā)中,采用C/S通信模式。服務(wù)器端和遠(yuǎn)程客戶端均采用線程方式發(fā)送和接收數(shù)據(jù)。在圖像傳輸中,自定義傳輸類型,包括校驗(yàn)碼、每秒幀數(shù)、圖像分辨率、圖像質(zhì)量等,這樣可避免圖像接收過程中的數(shù)據(jù)發(fā)生紊亂。

      服務(wù)器端程序設(shè)計(jì)如圖7所示,其中,圖像傳輸線程主要通過OpenCV模塊進(jìn)行攝像頭數(shù)據(jù)采集,以每秒24幀、分辨率調(diào)到640×480,則攝像頭傳輸視頻所需要的速率為1.2Mbps,為減小數(shù)據(jù)傳輸量,將壓縮成JPEG格式[12],然后按照自定義的傳輸類型進(jìn)行打包編碼傳輸;指令收發(fā)線程接收運(yùn)動(dòng)指令,在ROS中轉(zhuǎn)化為自定義消息類型,然后利用“話題”的方式發(fā)布出去。遠(yuǎn)程客戶端程序和服務(wù)器端類似,圖像傳輸線程主要接收?qǐng)D像信息,解包、解碼后利用OpenCV播放;指令發(fā)送線程利用Pygame模塊獲取搖桿數(shù)據(jù),經(jīng)處理后發(fā)送給服務(wù)器端。

      圖7 服務(wù)器端程序設(shè)計(jì)流程圖

      4 移動(dòng)機(jī)器人實(shí)驗(yàn)

      本文設(shè)計(jì)的移動(dòng)機(jī)器人主要實(shí)現(xiàn)其遠(yuǎn)程呈現(xiàn)和控制。將工控機(jī)和Beaglebone Black控制器連接同一個(gè)局域網(wǎng),PC機(jī)連接4G網(wǎng)(保證PC與工控機(jī)在不同局域網(wǎng)內(nèi)),工控機(jī)和PC機(jī)上分別運(yùn)行同一賬號(hào)的蒲公英VPN軟件后,在Beaglebone Black控制器運(yùn)行下位機(jī)程序,工控機(jī)中通過ROS啟動(dòng)所有節(jié)點(diǎn)和服務(wù)器端程序,PC機(jī)中運(yùn)行遠(yuǎn)程客戶端程序,即可實(shí)現(xiàn)遠(yuǎn)程呈現(xiàn)和控制。

      4.1 避障測(cè)試實(shí)驗(yàn)

      在進(jìn)行移動(dòng)機(jī)器人避障實(shí)驗(yàn)中,采用Kinect的深度攝像頭,如圖8所示,對(duì)深度信息進(jìn)行圖像處理后,當(dāng)檢測(cè)到1m范圍內(nèi)有障礙物信息并且障礙物面積達(dá)到給定值后,通過ROS生成一個(gè)指令消息并發(fā)送出去,在基于ROS的運(yùn)動(dòng)決策程序中,結(jié)合Kinect深度信息和超聲波數(shù)據(jù)實(shí)現(xiàn)相應(yīng)的避障決策。實(shí)驗(yàn)測(cè)得,結(jié)合Kinect和超聲波基本可實(shí)現(xiàn)實(shí)時(shí)避障。

      圖8 深度攝像頭測(cè)得障礙物輪廓

      4.2 指令延時(shí)測(cè)試實(shí)驗(yàn)

      本研究中的一個(gè)運(yùn)動(dòng)指令包括轉(zhuǎn)向、驅(qū)動(dòng)和運(yùn)動(dòng)觸發(fā)3個(gè)參數(shù),這3個(gè)參數(shù)由遙桿的兩個(gè)軸和一個(gè)按鈕組成。當(dāng)一個(gè)運(yùn)動(dòng)指令從遙桿發(fā)送出去時(shí),各參數(shù)從發(fā)布到底層控制器接收所需要的時(shí)間主要包括遠(yuǎn)程PC機(jī)與工控機(jī)以及工控機(jī)與底層控制器(BBB)之間指令傳輸時(shí)間。利用時(shí)間戳的方式,編寫一段測(cè)試程序,測(cè)出20次這兩段時(shí)間內(nèi)一個(gè)指令發(fā)布的延時(shí)時(shí)間,結(jié)果如圖9所示。由于在數(shù)據(jù)傳輸過程中網(wǎng)絡(luò)具有較大的波動(dòng),圖中顯示數(shù)據(jù)傳輸延時(shí)時(shí)高時(shí)低,可知一個(gè)指令發(fā)布最多需要53ms時(shí)間,基本滿足要求。

      圖9 指令發(fā)布延時(shí)

      4.3 圖像傳輸實(shí)時(shí)性測(cè)試實(shí)驗(yàn)

      本研究的圖像傳輸產(chǎn)生延時(shí)的環(huán)節(jié)包括:視頻采集與編碼、發(fā)送給遠(yuǎn)程客戶端的傳輸、遠(yuǎn)程客戶端的播放。其中,延時(shí)消耗最大的是視頻采集與編碼和遠(yuǎn)程客戶端播放2個(gè)環(huán)節(jié),它們都涉及到編碼、解碼部分;至于發(fā)送給給遠(yuǎn)程客戶端的傳輸過程屬于網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)與傳輸部分,耗時(shí)比較小,主要與網(wǎng)絡(luò)質(zhì)量和程序有關(guān),可采用TCP丟幀的方式減少長期的延時(shí)。采用精確到毫秒的計(jì)時(shí)器,測(cè)量在局域網(wǎng)內(nèi)圖像傳輸過程中的延時(shí)問題。結(jié)果如圖10所示。由于網(wǎng)絡(luò)波動(dòng)影響,圖像傳輸延時(shí)在100ms~600ms之間,滿足視頻傳輸要求,能進(jìn)行基本的雙向互動(dòng)。不同局域網(wǎng)內(nèi),由于網(wǎng)絡(luò)帶寬和波動(dòng)影響,測(cè)得圖像傳輸延時(shí)約為2s,僅適合單向觀看。

      圖10 圖像傳輸延時(shí)

      5 結(jié)語

      本研究結(jié)合Linux系統(tǒng)和開源機(jī)器人操作系統(tǒng)ROS,設(shè)計(jì)了一個(gè)低成本、可擴(kuò)展、高性能的開源移動(dòng)機(jī)器人。該移動(dòng)機(jī)器人在同一局域網(wǎng)內(nèi)可實(shí)現(xiàn)低延時(shí)的遠(yuǎn)程圖像傳輸和控制,同時(shí)結(jié)合超聲波傳感器和Kinect深度信息實(shí)現(xiàn)實(shí)時(shí)的避障。后續(xù)將在不同局域網(wǎng)內(nèi),針對(duì)降低圖像傳輸延時(shí)問題進(jìn)行深一步的研究。

      猜你喜歡
      PC機(jī)工控機(jī)移動(dòng)機(jī)器人
      移動(dòng)機(jī)器人自主動(dòng)態(tài)避障方法
      定制工控機(jī)在老舊線路計(jì)算機(jī)聯(lián)鎖設(shè)備中的應(yīng)用
      中壓電子束焊工控機(jī)Windows NT系統(tǒng)文件丟失故障的修復(fù)方法
      基于PC機(jī)與單片機(jī)的多機(jī)通信技術(shù)及抗干擾方法
      基于三菱FXPLC的感應(yīng)淬火機(jī)床與PC機(jī)的串行通信實(shí)現(xiàn)
      基于Twincat的移動(dòng)機(jī)器人制孔系統(tǒng)
      VC.NET下實(shí)現(xiàn)dsPIC單片機(jī)與PC機(jī)的通信
      電子制作(2017年23期)2017-02-02 07:16:47
      中國工控機(jī)市場(chǎng)新Style
      新漢 前插拔CoreTM-i系列無風(fēng)扇工控機(jī)
      極坐標(biāo)系下移動(dòng)機(jī)器人的點(diǎn)鎮(zhèn)定
      乌恰县| 金昌市| 囊谦县| 横峰县| 内江市| 开原市| 抚远县| 广州市| 江山市| 丹巴县| 资阳市| 安宁市| 淮阳县| 新干县| 临清市| 铁岭市| 禹州市| 湖北省| 宁强县| 宜春市| 渭南市| 巴楚县| 洛浦县| 浠水县| 信丰县| 溧水县| 芦山县| 孟连| 东光县| 普安县| 连山| 呼图壁县| 镶黄旗| 尚义县| 淮南市| 永和县| 丰顺县| 团风县| 商都县| 搜索| 瓦房店市|