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

?

基于多線程的NAO機器人同步啟動技術(shù)研究與實現(xiàn)

2017-07-12 09:08郭敏鄭定富
軟件導刊 2017年6期
關(guān)鍵詞:多線程機器人

郭敏+鄭定富

摘要:探討采用多線程軟件編程技術(shù)實現(xiàn)多個NAO機器人的同步啟動。首先,以 NAO 機器人為基礎,將多線程同步技術(shù)應用到多臺 NAO機器人的協(xié)調(diào)控制中,使多臺機器人在同一時刻同時啟動。其次,通過多線程方法執(zhí)行并行任務,使多機器人在同一個系統(tǒng)中同時執(zhí)行各自的任務,具有較穩(wěn)定的同步性。最后,通過實驗驗證了該方法的有效性和可靠性。

關(guān)鍵詞:NAO 機器人;多線程;同步啟動;軟件編程

DOIDOI:10.11907/rjdk.171046

中圖分類號:TP319

文獻標識碼:A 文章編號:1672-7800(2017)006-0127-03

0 引言

“仿人”是機器人研究與發(fā)展的一個主要方向,制造出全智能的機器人朋友是人類為之努力的目標。近幾十年來,通過科學家們的不懈努力,機器人領(lǐng)域已經(jīng)擁有了不少令人驚嘆的偉大成果,仿人機器人也逐漸走進了人們的生活。2016年春晚,集體舞《心中的英雄》給億萬觀眾帶來了無限驚喜,跳舞機器人整齊的隊列、靈活的舞姿,耗費的是臺下無數(shù)科技人員的心血與努力。在集體表演中,要完成整齊劃一的舞蹈表演,準確實現(xiàn)多機器人的同步技術(shù)是關(guān)鍵。雖然數(shù)千個關(guān)節(jié)實現(xiàn)動作的協(xié)調(diào)性和一致性都離不開表演機器人硬件的支持,然而軟件編程更是機器人行為同步的重要組成。多線程同步方法為多機器人同步提供了新的可能,在機器人研究領(lǐng)域內(nèi)具有重要的實踐意義。本文以Aldebaran Robotics公司的Nao機器人為研究對象,對多機器人同步技術(shù)進行研究,其硬件特性為:擁有25個自由度,具有一系列可以感知較為全面環(huán)境信息的傳感器,如攝像頭(2個)、麥克風(4個)、超聲波距離傳感器(1個)、慣性板(1個)、觸覺傳感器(9個)、壓力傳感器(8個)、紅外發(fā)射器和接收板(2個)。

多線程程序設計是指單個程序中使用多個線程,這些線程在同一時間并發(fā)運行,執(zhí)行不同的任務[1]。在多線程、多任務操作系統(tǒng)中,系統(tǒng)每一個應用程序?qū)粋€進程。一個進程又可以包含多個并發(fā)的線程,同時系統(tǒng)也可以將進程作為主線程來調(diào)度。多線程同步把多個機器人看作進程中的多個線程,執(zhí)行多個任務,通過主線程的調(diào)度,實現(xiàn)多任務的同時動作,從而實現(xiàn)多機器人同步[2-4]。

近些年來,機器人技術(shù)研究已經(jīng)取得了豐富研究成果。仿人Nao機器人的研究主要集中于基于Kinect的體感研究、動態(tài)穩(wěn)定控制和機器人導航等方面。

針對Nao機器人的同步啟動研究也取得了進展。方法一:使用一臺機器人作為主機,將剩余機器人作為從機,由主機向從機發(fā)送命令,但由于該方法為點對點通訊,導致同步性不高;方法二:通過時鐘的某一設定值完成同步啟動,雖然肉眼基本同步,但由于每個機器人內(nèi)的內(nèi)部時鐘有著幾秒甚至幾分鐘的誤差,導致無法調(diào)整的誤差。文獻[5]中利用socket套接字編程,以一臺PC作為主機,廣播向多個機器人發(fā)送指令,實現(xiàn)了良好的實時同步效果,但同步動作還存在一定的穩(wěn)定性不足問題。

本文將Nao機器人與多線程方法相結(jié)合,多個線程(即多個任務)并發(fā)運行,實現(xiàn)了多個Nao機器人的同步啟動。該方法對機器人數(shù)量沒有限制,通過主機PC控制,使多個Nao機器人實現(xiàn)精確啟動,穩(wěn)定可靠。

1 方案設計

本文采用兩種方法來研究Nao機器人的同步啟動問題。方法一是利用NAO機器人自帶圖形化界面軟件Choregreaphe。以聲音信號為觸發(fā)信號來啟動多個機器人。即當機器人獲得某一指定聲音信號后,啟動并觸發(fā)機器人系統(tǒng)中的某個程序使機器人作出指定動作,如圖2、圖3所示。

Nao端的指令盒主要程序如下:

運用這種方法,機器人數(shù)量少時可以實現(xiàn)同步啟動。但是當機器人數(shù)量增多,或是機器人間隔增大以及人的位置變化,實驗結(jié)果顯示其動作同步性并不穩(wěn)定,并且無法對其誤差進行調(diào)整,實驗效果并不理想。

方法二是利用圖4所示的網(wǎng)絡結(jié)構(gòu)來對多個NAO機器人來進行控制,利用無線局域網(wǎng)實現(xiàn)多個機器人的同時啟動。圖中通用PC和NAO機器人都代表了網(wǎng)絡中的任意節(jié)點,因此其中的數(shù)量N是不確定的,可以為任意整數(shù),即可以控制任意數(shù)量的機器人系統(tǒng)。

在多線程同步編程中,線程同步方法主要包含鎖、信號量和事件。本文采用event事件方式實現(xiàn)python多線程同步,一個線程可以發(fā)送信號,其它線程接收到信號后執(zhí)行操作。Event內(nèi)部包含了一個標志位,初始為false,使用set()來將其設置為true,或者使用clear()將其重新設置為false,is_set()可以檢查標志位的狀態(tài),當標志位置為true時,將各個客戶端的ip地址加入線程列表,通過服務端發(fā)送消息給各個IP地址,實現(xiàn)多個客戶端的線程同步。

以threading多線程編程為基礎,將一臺PC端作為主機,命令的發(fā)送端,而每一個NAO機器人即代表一個thread線程,從PC端接收動作指令后動作,其主要Python流程,如圖5、圖6所示。

通過以上程序,無線局域網(wǎng)中的各個NAO機器人開啟后,以待機姿勢等待PC端指令,按下回車后,機器人同時運行站立起來,并完成各個相同動作,經(jīng)過多次試驗后,證明該方法準確有效,同時啟動時間一致并且后續(xù)動作也統(tǒng)一整齊。

2 實驗驗證及分析

實驗主要測試其語音和動作兩個方面的同步性,PC端是以Windows系統(tǒng)為平臺,首先測試同步啟動的動作同步性,如圖7所示。

實驗證明,基于多線程的軟件編程方法可以實現(xiàn)較為穩(wěn)定的動作同步性;通過實驗,同樣,聲音也具有較好的同步性。

基于Python的多線程同步編程,實現(xiàn)多個NAO機器人的同時啟動,是將來實現(xiàn)智能化人形機器人協(xié)同的基礎,是機器人協(xié)同控制研究的良好開端,基于多線程同步的控制方法較為簡便和穩(wěn)定。

3 結(jié)語

本文將多線程與NAO機器人相結(jié)合,研究多臺Nao機器人的同步啟動問題。在集體表演中多機器人同步是必須解決的重點和難點。針對這一問題,通過兩個方法對比驗證,即利用NAO機器人自帶圖形化界面軟件Choregreaphe,以聲音信號為觸發(fā)信號來啟動多個機器人和在無線局域網(wǎng)內(nèi)將一臺PC端作為主機,通過多線程同步來控制多個Nao機器人。實驗結(jié)果最終證明基于多線程的同步啟動方法最為穩(wěn)定有效?;诖搜芯拷Y(jié)果,后續(xù)將對多機器人協(xié)同作進一步研究。

參考文獻:

[1]程俊波.基于java多線程的實時數(shù)據(jù)庫系統(tǒng)[J]. 網(wǎng)絡安全技術(shù)與應用, 2016(10):67-68.

[2]陳寧,程磊,王永驥.基于多線程同步的多機器人協(xié)調(diào)技術(shù)和實現(xiàn) [A].中國人工智能學會第十屆全國學術(shù)年會論文集 , 2003:923-926.

[3]丁一恒,李志宏,賈蘋.基于 Windows2000 的多線程串行通信技術(shù)[J]. 武漢理工大學學報: 交通科學與工程版, 2003, 27(1):109-111.

[4]JIM BEVERIDGE.Multithreading applicationsin Win32[M].侯捷,譯.武漢:華中科技大學出版社,2012:26-27

[5]高帥, 楊翊坤, 周曉萌, 等. NAO機器人迎賓與多臺同時啟動設計方案[J]. 企業(yè)技術(shù)開發(fā), 2015, 34(11):1-2.

(責任編輯:陳福時)

英文摘要Abstract:Multithreading software programming technology is used to study the problem about several Nao robots starting synchronously and achieve the goal of synchronous start of multi-robot. Firstly, basing on NAO robot, this paper applies multithreading synchronization technique to coordination control of several Nao robots which makes several robots start at the same time. Secondly, parallel tasks in multithreading make several robots perform their tasks simultaneously in the same system, which has stable synchronization. Finally, effectiveness and reliability of the method is proved by some actual experiments.

英文關(guān)鍵詞Key Words: NAO Robot; Multithreading; Starting Synchronously; Software Programming

猜你喜歡
多線程機器人
機器人,讓未來走近你
Java并發(fā)工具包對并發(fā)編程的優(yōu)化