• 
    

    
    

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

      ?

      機(jī)器魚水中全局救援策略的改進(jìn)與創(chuàng)新

      2018-02-22 03:07:06林志舟夏慶鋒南京大學(xué)金陵學(xué)院南京210089
      關(guān)鍵詞:同心圓支柱機(jī)器

      林志舟 張 燕 夏慶鋒 (南京大學(xué)金陵學(xué)院,南京,210089)

      0 引言

      機(jī)器人的應(yīng)用已成為全球工業(yè)的必然趨勢[1]。在這一趨勢下應(yīng)運(yùn)而生的各類機(jī)器人比賽,它們不僅可以對研究成果進(jìn)行檢驗,還可以探索機(jī)器人在不可預(yù)測的動態(tài)環(huán)境中如何應(yīng)對、解決問題,以使機(jī)器人技術(shù)更加成熟,加速機(jī)器人商品化、產(chǎn)品化的進(jìn)程[2]。

      國際水中機(jī)器人大賽是一項由中國發(fā)起創(chuàng)立的國際性機(jī)器人大賽,它以智能仿生機(jī)器魚為主題,在水中進(jìn)行各類競賽,涉及機(jī)械電子學(xué)、機(jī)器人學(xué)、傳感器信息融合、智能控制、通信、計算機(jī)視覺、計算機(jī)圖形學(xué)、人工智能等領(lǐng)域[3]。在綜合多門學(xué)科的基礎(chǔ)上,智能算法如何實現(xiàn)尤為重要。在水中全局救援項目策略中,本文針對機(jī)器魚甩尾救援策略的不足,提出一種雙態(tài)三環(huán)同心圓策略。

      1 甩尾策略

      1.1 基本思路

      水中全局救援比賽要求機(jī)器魚救下受困于瓶中的小魚,每支參賽隊伍按照抽簽順序派出1 條機(jī)器魚參加比賽。如圖1 所示,在水池中放置5 個支柱,其中編號為1、2、3 的支柱是最低難度的支柱,4 號支柱為中等難度的支柱,5 號支柱為最高難度的支柱。每個支柱頂部放置一個裝有真魚的透明盒子,盒子上方貼有與支柱直徑相當(dāng)?shù)募t色色標(biāo),整個盒子代表受困待救的小魚。機(jī)器魚從水池右側(cè)池壁中心點出發(fā),逐一沖撞支柱,若支柱頂部的盒子落入水中,則代表營救成功受困的小魚[4]。

      原甩尾策略為機(jī)器魚設(shè)置了5 個目標(biāo)點,根據(jù)機(jī)器魚與目標(biāo)點距離的遠(yuǎn)近,將機(jī)器魚撞擊的整體動作分為準(zhǔn)備態(tài)、攻擊態(tài)和撤離態(tài)3 個狀態(tài)。當(dāng)滿足準(zhǔn)備態(tài)條件時,機(jī)器魚進(jìn)入準(zhǔn)備狀態(tài),靠近目標(biāo);當(dāng)目標(biāo)處于攻擊范圍內(nèi)時,機(jī)器魚進(jìn)入攻擊態(tài),對目標(biāo)做出甩尾動作;攻擊結(jié)束后,機(jī)器魚將狀態(tài)切換為撤離態(tài),離開目標(biāo)一定距離后進(jìn)入下一個動作周期,實現(xiàn)循環(huán)救援。甩尾策略設(shè)計思路如圖2 所示[5]。

      圖1 救援目標(biāo)點平面示意

      圖2 甩尾策略示意圖

      1.2 算法缺點分析

      1.2.1 慣性誤差

      準(zhǔn)備態(tài)與攻擊態(tài)的速度要求不同,當(dāng)機(jī)器魚經(jīng)過二者邊界時,由于本身具有一定的速度,不能立即達(dá)到攻擊態(tài)要求的速度,從而錯過最佳撞擊時機(jī),造成救援效率低下,無法滿足救援要求。

      1.2.2 甩尾動力不足

      在救援項目比賽中,共有5 個目標(biāo)點,如圖1 所示。其中,五號目標(biāo)點質(zhì)量大,且重心低,經(jīng)過多次實踐與改進(jìn),筆者得出結(jié)論:簡單的甩尾動作沖擊力能夠撞下五號目標(biāo)點的概率較小。

      1.2.3 循環(huán)攻擊缺陷

      在進(jìn)行循環(huán)攻擊時,機(jī)器魚剛離開圖2 所示的同心圓外環(huán)時,就會執(zhí)行底層Roundp2p 函數(shù),如圖3 所示,機(jī)器魚頭部、機(jī)器魚中心、目標(biāo)點3 點構(gòu)成夾角α,該函數(shù)表示通過α 的大小決定機(jī)器魚游動方向的關(guān)系,α 越大,機(jī)器魚擺動幅度也越大。

      在循環(huán)攻擊時,目標(biāo)點與機(jī)器魚魚頭連線所構(gòu)成的矢量與機(jī)器魚本身的方向矢量的角度相差近180°,這會導(dǎo)致機(jī)器魚一離開外環(huán),便大幅度改變游動方向再次進(jìn)入圓環(huán),也意味著再次進(jìn)入準(zhǔn)備態(tài),使得機(jī)器魚進(jìn)入準(zhǔn)備態(tài)的方向與預(yù)期的進(jìn)入準(zhǔn)備態(tài)方向相差較大,最終使得循環(huán)攻擊的準(zhǔn)確性比第一次攻擊的準(zhǔn)確性降低許多。雖然在改進(jìn)的甩尾方案中,可以使機(jī)器魚到達(dá)一個定點后再向目標(biāo)點游去,但出現(xiàn)了效率低下等新問題。

      1.2.4 攻擊次數(shù)不足

      在甩尾策略中,機(jī)器魚每次靠近目標(biāo)點,甩尾一次后就會轉(zhuǎn)為撤離態(tài),需要重新退出同心圓,才可以進(jìn)行下一次攻擊。如果機(jī)器魚不能第一次就撞下目標(biāo)點,則整個救援過程會循環(huán)很長時間,無論是在水中機(jī)器人競賽中還是應(yīng)用到實際救援中,都體現(xiàn)不出高效與實時的特性。

      圖3 Roundp2p 函數(shù)夾角示意圖

      2 雙態(tài)三環(huán)同心圓策略

      2.1 基本思路

      圖4 初態(tài)分區(qū)示意圖

      圖5 次態(tài)分區(qū)示意圖

      雙態(tài)三環(huán)同心圓策略是根據(jù)機(jī)器魚完成的動作,將其狀態(tài)分為初態(tài)和次態(tài),其中,初態(tài)是指機(jī)器魚還未撞擊目標(biāo)點的狀態(tài),次態(tài)是指已經(jīng)至少完成一次撞擊后的狀態(tài)。

      在初態(tài)下,機(jī)器魚攻擊目標(biāo)點,需要經(jīng)過準(zhǔn)備區(qū)、緩沖區(qū)和最佳撞擊區(qū),3 個區(qū)共同構(gòu)成一個三環(huán)同心圓,具體如圖4 所示;次態(tài)對應(yīng)的是與初態(tài)不同的另一個同心圓,如圖5所示,次態(tài)下的同心圓有內(nèi)區(qū)和外區(qū)2 個區(qū),若在內(nèi)區(qū)中,則表示機(jī)器魚當(dāng)前的狀態(tài)適合繼續(xù)撞擊,機(jī)器魚會再次進(jìn)入初態(tài)中最佳撞擊區(qū)進(jìn)行再次撞擊動作。需要注意的是,這時的機(jī)器魚本身并沒有進(jìn)入初態(tài),只是再次進(jìn)入了初態(tài)中定義的最佳撞擊區(qū)。

      綜合初態(tài)與次態(tài),如圖6所示,實線區(qū)域是初態(tài)下的區(qū)域,虛線區(qū)域是次態(tài)下的區(qū)域,次態(tài)的內(nèi)區(qū)比初態(tài)的最佳撞擊區(qū)要大,若機(jī)器魚在撞擊目標(biāo)點一次后仍在內(nèi)區(qū)中,則繼續(xù)撞擊;若在外區(qū),則退出到外區(qū)后再將狀態(tài)重置為初態(tài),進(jìn)行下一次進(jìn)攻。

      圖6 初態(tài)次態(tài)綜合圖

      2.2 初態(tài)分析

      雙態(tài)三環(huán)同心圓策略中的初態(tài)與甩尾策略中的準(zhǔn)備態(tài)和攻擊態(tài)近似,不過筆者在初態(tài)中加入一個緩沖區(qū),并且將原先的甩尾動作改為甩頭動作。

      2.2.1 添加緩沖區(qū)

      上文1.2.1 中提到,由于機(jī)器魚自身具有慣性,其速度無法立即從準(zhǔn)備態(tài)的速度降到攻擊態(tài)(即進(jìn)入最佳撞擊區(qū))要求的速度,故引入緩沖區(qū)來解決這一問題,從而使得機(jī)器魚能夠進(jìn)入最佳撞擊區(qū),更加準(zhǔn)確、高效地尋找最佳撞擊點。

      2.2.2 甩頭動作

      在初態(tài)中將原策略的甩尾動作改為甩頭動作,主要原因是:第一,機(jī)器魚頭部安有位置傳感器而尾部沒有,采用甩頭策略更有利于準(zhǔn)確尋找最佳撞擊點(在甩尾策略中,依靠頭部坐標(biāo)計算尾部坐標(biāo)的方法難以實現(xiàn),因為機(jī)器魚并非一直呈筆直狀態(tài));第二,機(jī)器魚采用甩頭策略第一次進(jìn)攻時,若在撞擊一次后未撞下目標(biāo),則可能會連續(xù)撞擊目標(biāo),如圖7所示,連續(xù)撞擊的機(jī)器魚會在狀態(tài)A 和狀態(tài)B 之間不斷切換,在筆者所做的實驗中,機(jī)器魚最多連續(xù)撞擊3 次即可撞下目標(biāo)點。因此,采用甩頭策略可以提高機(jī)器魚撞下目標(biāo)點的概率。

      圖7 連續(xù)撞擊的2 個狀態(tài)

      2.3 次態(tài)分析

      上文提到,次態(tài)是機(jī)器魚已經(jīng)完成至少一次撞擊后的狀態(tài)。在次態(tài)下,機(jī)器魚有可能繼續(xù)撞擊,也有可能離開圓環(huán),這取決于機(jī)器魚所處的位置。機(jī)器魚在次態(tài)中沒有采用與初態(tài)相同的同心圓,通常會出現(xiàn)以下幾種情況(在甩尾策略中,撤離時所采用的同心圓與準(zhǔn)備和進(jìn)攻時采用的同心圓為同一個)。

      2.3.1 外區(qū)擴(kuò)大

      在次態(tài)中,外區(qū)邊界與撞擊目標(biāo)的距離為初態(tài)同心圓外邊界(即圖6 中最大的實線同心圓)到撞擊目標(biāo)距離的2 倍。這樣設(shè)置是為了解決上文提到的循環(huán)攻擊所帶來的問題,如此,機(jī)器魚進(jìn)入準(zhǔn)備態(tài)的方向與預(yù)期準(zhǔn)備態(tài)的方向更加接近。

      2.3.2 取消緩沖態(tài)

      機(jī)器魚撤離時不再需要考慮找點的準(zhǔn)確性,只要求盡快撤離,若仍采用緩沖區(qū)則會使機(jī)器魚退出次態(tài)的時間變長,導(dǎo)致救援效率低下。

      2.3.3 創(chuàng)造內(nèi)區(qū)

      機(jī)器魚實現(xiàn)多次撞擊主要依靠內(nèi)區(qū)。當(dāng)機(jī)器魚處在內(nèi)區(qū)時,即使退出最佳撞擊區(qū)(圖6中內(nèi)區(qū)比最佳撞擊區(qū)大),也能夠以較好的狀態(tài)再次迅速進(jìn)入最佳撞擊區(qū),實現(xiàn)一次初態(tài)、多次撞擊,而且在內(nèi)區(qū)中多次撞擊的實現(xiàn)算法相對簡單,容易實現(xiàn)。

      2.4 多次撞擊

      在雙態(tài)三環(huán)同心圓策略中,機(jī)器魚實現(xiàn)多次撞擊有2種途徑:一種是依賴撞擊時甩頭方向的改變來實現(xiàn)多次撞擊,如圖7 所示,該算法較為復(fù)雜,實現(xiàn)時可以根據(jù)CPU的時鐘頻率來設(shè)計較為精準(zhǔn)的延時函數(shù),也可以直接調(diào)用庫函數(shù),同時還需要實時判斷機(jī)器魚方向與目標(biāo)點和機(jī)器魚連線矢量的方向關(guān)系,并控制好機(jī)器魚的速度;另一種途徑則是依靠內(nèi)區(qū),在2.3 節(jié)的次態(tài)分析中已提到,在此不再贅述。

      需要采用延時函數(shù)是因為:當(dāng)機(jī)器魚處于圖7 狀態(tài)A時,若要切換到狀態(tài)B,只需改變方向參數(shù)并給予一定速度即可,但是控制平臺會在很短的時間周期內(nèi)遍歷執(zhí)行策略代碼,并周而復(fù)始地循環(huán)該周期,給定的方向和速度只能在瞬間生效,若沒有延時函數(shù),機(jī)器魚來不及轉(zhuǎn)換到對應(yīng)狀態(tài)就會執(zhí)行下一次遍歷代碼,并被設(shè)置成新的方向和速度,導(dǎo)致無法實現(xiàn)在狀態(tài)A 和B 之間的連續(xù)轉(zhuǎn)換。因此,只有采用延時函數(shù),機(jī)器魚保持給定方向和速度一段時間后,才可轉(zhuǎn)換成功。

      2.5 算法實現(xiàn)建議

      雙態(tài)三環(huán)同心圓策略共使用5 個范圍常量(對應(yīng)圖5中所有同心圓的半徑)和 1 個布爾型變量(用來判斷機(jī)器魚處于初態(tài)還是次態(tài))。其中,筆者將布爾型變量命名為AlreadyAttack,其初始值為false,表示機(jī)器魚處于初態(tài)。由于控制平臺在短周期內(nèi)會遍歷執(zhí)行策略代碼,并且不斷循環(huán)該周期,為了避免 AlreadyAttack 被重復(fù)初始化,筆者將其定義為靜態(tài)變量。經(jīng)過一次撞擊后,AlreadyAttack的值為true,則表明機(jī)器魚進(jìn)入次態(tài)。若撞擊后機(jī)器魚處于次態(tài)的外區(qū)時,便以最快速度向區(qū)域外游去,一旦游出外區(qū)邊界,立即將AlreadyAttack 賦值為false,使機(jī)器魚重新進(jìn)入初態(tài),開始下一輪的救援行動。為了體現(xiàn)封裝性,將目標(biāo)點撞倒與否的條件放在上層調(diào)用函數(shù)中判斷,新策略中不作判斷。一旦撞倒目標(biāo)點,機(jī)器魚就停止游動。

      3 實踐分析

      機(jī)器魚在實際水池中游動會受到水波的影響以及光線等因素的干擾,這樣可能會造成機(jī)器魚或者目標(biāo)點坐標(biāo)丟失,降低救援效率。原甩尾策略沒有很好地規(guī)避這些因素的干擾,但是新策略在一定程度上改變了這些不良影響。例如,當(dāng)機(jī)器魚因外在因素導(dǎo)致坐標(biāo)位置丟失,按照原甩尾策略則會采取默認(rèn)的應(yīng)對游動機(jī)制,離開最佳撞擊區(qū);而新策略在內(nèi)區(qū)做了改進(jìn):若機(jī)器魚離開最佳撞擊區(qū)后仍在內(nèi)區(qū)中,并會再次進(jìn)入最佳撞擊區(qū)進(jìn)行救援(這也是內(nèi)區(qū)存在的原因之一)。

      另外,在設(shè)計該策略時,高效救援的原則在實踐中得到了較好的應(yīng)用。通過連續(xù)撞擊的實現(xiàn)方式,機(jī)器魚在第一次撞擊時就撞倒目標(biāo)的概率增加,避免了多次重復(fù)在初態(tài)和次態(tài)之間的轉(zhuǎn)換,大大縮短了平均救援時間。

      4 結(jié)語

      正如機(jī)器人的不斷改進(jìn)與優(yōu)化一樣,機(jī)器魚水中全局救援策略的改進(jìn)也不會止步,只要把握好設(shè)計策略的基本原則和設(shè)計思想,救援策略就能夠不斷地得到優(yōu)化。同理,當(dāng)下應(yīng)運(yùn)而生的各種機(jī)器人比賽,使得各比賽策略不斷得到實踐優(yōu)化,從而幫助機(jī)器人的應(yīng)用技術(shù)更加成熟。

      猜你喜歡
      同心圓支柱機(jī)器
      機(jī)器狗
      同心圓夢再出發(fā)
      黃河之聲(2022年1期)2022-03-16 02:41:22
      機(jī)器狗
      同心圓夢再出發(fā)
      黃河之聲(2021年21期)2021-03-22 03:27:08
      繡出里下河畔最美“同心圓”
      華人時刊(2020年19期)2020-11-17 07:09:56
      同心圓變變變
      未來機(jī)器城
      電影(2018年8期)2018-09-21 08:00:06
      國電數(shù)字物資的三大支柱
      能源(2017年7期)2018-01-19 05:05:05
      實施五大支柱 落實五大任務(wù)
      建一座帶支柱的房子
      钟山县| 铁力市| 新和县| 台山市| 嘉峪关市| 台东县| 乌兰察布市| 尚志市| 太仓市| 松江区| 肥城市| 关岭| 朝阳县| 晋宁县| 枣阳市| 巨鹿县| 兖州市| 晋城| 汉阴县| 花莲市| 子长县| 江阴市| 长阳| 句容市| 金华市| 清水县| 毕节市| 阿拉善盟| 鹿邑县| 灵寿县| 手机| 合江县| 蒙阴县| 革吉县| 迁安市| 专栏| 咸阳市| 商洛市| 浮梁县| 新泰市| 游戏|