999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

駕駛行為機器人仿真環(huán)境與擁堵算法的研究

2022-11-24 03:32:15李雨松徐野哈樂
科技資訊 2022年20期

李雨松 徐野 哈樂

(1.沈陽理工大學自動化與電氣工程學院 遼寧沈陽 110159;2.北部戰(zhàn)區(qū)總醫(yī)院醫(yī)學工程科 遼寧沈陽 110000)

強化學習已經(jīng)在游戲、機器人領(lǐng)域中開花結(jié)果,可 以說強化學習算法正在改變和影響著世界,掌握了這門技術(shù)就掌握了改變世界和影響世界的工具。Deep-Mind(AlphaGo 的創(chuàng)造者)提出了一種結(jié)合深度學習和強化學習的方式,就是DQN(Deep Q Network)[1]。

與人工駕駛相比,機器駕駛車輛的重復(fù)性較好、駕駛精度較高。目前,駕駛機器人已經(jīng)成功地應(yīng)用于汽車排放耐久性試驗。無人駕駛機器人進行轉(zhuǎn)向操縱具有精度高、重復(fù)性好的特點,而人類駕駛員則具有平穩(wěn)轉(zhuǎn)向的特點。在要求無人駕駛機器人能進行高精度和高重復(fù)性的車輛駕駛的同時,對駕駛員駕駛行為的研究必不可少[2-4]。

該文創(chuàng)新之處在于仿真環(huán)境的構(gòu)建,仿真環(huán)境的構(gòu)建對于駕駛行為機器人的訓練十分的重要,一個好的仿真環(huán)境,可以讓算法來訓練駕駛行為機器人,讓其更加真實。該文的思路是創(chuàng)造一個虛擬駕駛環(huán)境,隨機生成一條路,并設(shè)置好擁堵的各種情況讓機器人不斷地去學習,最后實現(xiàn)更快、更安全地到達終點[5]。

1 環(huán)境設(shè)置-動作獎勵

1.1 環(huán)境設(shè)置

包含的環(huán)境有:天氣、道路等級、道路類型、路況、汽車數(shù)據(jù)、行駛環(huán)境。

環(huán)境分類:晴/陰/多云、霧、雨、雪、高速(>60 km/h,<120 km/h)、城市大路(<70 km/h)、城市小路(<40 km/h)、省道(<80 km/h)、國道(<90 km/h)、環(huán)島(<30 km/h)、路口(<30 km/h)、橋梁(<30 km/h)、隧道(<70 km/h)、紅燈/擁堵、行駛里程Sall、總駕駛時長、位置、速度v、白天、夜間。

1.2 動作

踩油門(加速)、剎車(減速)、急踩油門(急加速)、急剎車(急減速)、勻速。

1.3 動作本身的獎勵

采取的動作:急剎車、急加速、踩油門、剎車、勻速。

對應(yīng)的獎勵:-3,-2,0,0,0。

1.4 動作導(dǎo)致狀態(tài)改變的獎勵

動作導(dǎo)致狀態(tài)改變:車與目的地的距離>0,到達目的地(Sall-S0≤0),發(fā)生事故(車輛碰撞與其他物體距離≤0),晴/陰/多云超速20%以內(nèi),晴/陰/多云超速(超速百分比20%/50%/100%),速度在上限速度的90%以內(nèi),速度在上限速度的90%以上但未超速,駕駛時間t≤4,駕駛時 間t≥4,雨天超速(超速百分20%/50%/100%)×0.8,雪天超速(超速百分20%/50%/100%)×0.5,霧天超速(超速百分20%/50%/100%)×0.5,雨天超速20%以內(nèi)×(0.8),雪天超速20%以內(nèi)×(0.8),霧天超速20%以內(nèi)×(0.8),高速小于最低限速。

獎勵:-0.05,100,-100,-10,-20(-50/-100),0,0.1,0,-50,-20(-50/-100),-20(-50/-100),-20(-50/-100),-10,-10,-10,-10。

1.5 環(huán)境配置

導(dǎo)入gym 庫,通過make()函數(shù)得到環(huán)境對象,每一個環(huán)境都有一個ID,格式“Xxxx-vd”。

env=gym.make('UBI_Robot-v0',randomRouteOr-RealworldRoute='RandomRoute',staticOrRandom='random')

env.step(env.action_space.sample()) 隨機選擇加減速或者勻速

在configs 文件中設(shè)置好相應(yīng)的動作獎勵、狀態(tài)獎勵、天氣和道路類型和道路等級的概率,產(chǎn)生紅燈和擁堵的概率,消失一個擁堵產(chǎn)生一個新的擁堵的概率、設(shè)置擁堵時長、紅綠燈轉(zhuǎn)換時間、白天夜間的時間,設(shè)置疲勞駕駛的時間以及疲勞駕駛恢復(fù)時間。

在RandomRoute 里創(chuàng)建一個類,其中包含[(產(chǎn)生鏈路//包含所有內(nèi)容)、(產(chǎn)生隨機鏈路)、(產(chǎn)生靜態(tài)鏈路)、(根據(jù)路長返回天氣list)、(隨機產(chǎn)生系列紅燈/擁堵)、(每次動作后更新self.jam)、(疲勞駕駛:如果速度為0 且剎車,則停車一秒,按比率-12)、(根據(jù)生成路、紅燈、天氣等信息,更新state)、(獲取總的狀態(tài))、(獲取jam 離車的距離)、(獲取當前天氣ID)(獲取小車當前相對位置)、(未歸一化的最高限速)、(未歸一化的最低限速)、(獲取當前未歸一化的速度,單位:m/s)、(獲取當前路類型ID)、(獲取當前的加速度,考慮了天氣原因的變化)、(更新基于當前位置pos 的路段ID 天氣ID道路類型ID)、(執(zhí)行相應(yīng)動作,更新所有參數(shù),返回:更新后的state)]方法。

每次測試后都生成一個日志,日志級別包括debug、info、warning、error、critical。在每一次運行時,日志開頭輸出開始運行游戲環(huán)境,當前世界路類型,當前路的產(chǎn)生類型。將總級別設(shè)置成info、路總長度、擁堵返回值、道路類型、天氣、當前處于第幾段路、運行時間、路長、歸一化位置、速度、疲勞駕駛時間、動作ID、19 個狀態(tài)()、終點獎勵、碰撞獎勵、超速獎勵、疲勞駕駛獎勵、每秒總獎勵、游戲提示結(jié)束等設(shè)置為info 級別。其余的(擁堵統(tǒng)計情況、總共擁堵、最近擁堵、當前總共擁堵情況、疲勞駕駛折扣時間)設(shè)置為debug 級別。這樣保證了當總級別設(shè)置為info時,debug級別不顯示在日志上,當總級別為debug 時,全部顯示在日志中。

2 關(guān)于機器人訓練環(huán)境擁堵方面的研究

2.1 擁堵算法設(shè)計

該研究在擁堵這一方面設(shè)置為產(chǎn)生車輛擁堵和紅燈擁堵兩種擁堵情況。其中高速和隧道沒有紅燈,只有車輛擁堵。其中,產(chǎn)生紅燈擁堵概率為0.7,產(chǎn)生車輛擁堵的概率為0.3。[[0.05,0.05,0.05,0.15,0.20,0.20,0.20,0.20,0.10],[0.00,0.10,0.10,0.20,0.20,0.30,0.30,0.05,0.00],](前者為車輛擁堵產(chǎn)生的概率,后者為紅燈擁堵產(chǎn)生的概率)在不同道路類型和道路等級[高速0、國道1、省道2、城市大路3、城市小路4、環(huán)島5、路口6、橋梁7、隧道8]的情況下產(chǎn)生車輛擁堵和紅燈擁堵的概率,每200 m隨機一次[6]。

擁堵算法總體構(gòu)架:按照概率隨機產(chǎn)生擁堵—返回當前最近擁堵—(當前小車位置大于擁堵位置—游戲結(jié)束/當前小車位置小于擁堵位置—游戲繼續(xù)進行)。

擁堵算法流程設(shè)計:按照概率隨機產(chǎn)生擁堵—(紅燈(當綠燈時間變?yōu)?)—(當紅燈時間變?yōu)?)綠燈/車輛擁堵—(當小車未經(jīng)過車輛擁堵時車輛擁堵時間為0)按照概率產(chǎn)生一個,兩個,或者不產(chǎn)生車輛擁堵)。

2.2 擁堵算法的詳細設(shè)計

在generateJams 中,首先,按照概率判斷是產(chǎn)生紅燈擁堵還是車輛擁堵,紅燈擁堵車輛擁堵概率分別為(0.7,0.3);其次,按照在不同的道路等級和道路類型上產(chǎn)生紅燈和車輛擁堵的概率,按照概率隨機產(chǎn)生擁堵,(每200 m 隨機一次)。紅燈的起始時間為1~90 s 隨機,車輛擁堵的起始時間為90~300 s 隨機。最后用append 累計輸出總的擁堵情況(擁堵位置,是否擁堵,擁堵類型,擁堵時間)。

產(chǎn)生擁堵設(shè)計:

{先按照概率隨機選出擁堵類型jamtype為紅燈擁堵還是車輛擁堵。

If(jamtype==’車輛擁堵’)

If(當前單路類型或者道路等級產(chǎn)生車輛擁堵的概率<cofigs.py 中不同道路類型道路等級產(chǎn)生車輛擁堵的概率)

jamSituation='擁堵'

else:

jamSituation='無擁堵'

If(jamtype==’紅燈’)

If(當前單路類型或者道路等級產(chǎn)生紅燈擁堵的概率<cofigs.py 中不同道路類型道路等級產(chǎn)生紅燈的概率)

jamSituation='擁堵'

else:

jamSituation='無擁堵'

紅燈(signalTime)和車輛擁堵(jamTime)起始時間為configs.py中規(guī)定的起始時間中隨機選擇一個值。

if(jamSituation=='擁堵'and jamType=='紅燈'):

jamSummary=[當前位置,到當前位置+configs.py中每多少米隨機可能產(chǎn)生一個擁堵的距離,是否有擁堵,擁堵類型,信號燈時間]

self.jam.append(jamSummary)(把所有擁堵情況放到self.jam中)

lastPosition=lastPosition+ConfigRandomRoute.congestionDistance(下一次可能產(chǎn)生擁堵的位置)

allJams=allJams+1(擁堵數(shù)量+1)

elif(jamSituation=='擁堵'and jamType=='車輛擁堵'):

jamSummary=[random.randint(lastPosition+1,last-Position+ConfigRandomRoute.congestionDistance)/ (self.roadLength),jamSituation,jamType,jamTime]

self.jam.append(jamSummary)

lastPosition=lastPosition+ConfigRandomRoute.congestionDistance

allJams=allJams+1

else:

lastPosition=lastPosition+ConfigRandomRoute.congestionDistance

在日志中輸出總的擁堵情況統(tǒng)計self.jam 及總共擁堵數(shù)量allJams

return self.jam}

在updateJams 中,當紅燈時間歸零后,變?yōu)榫G燈,此時為不擁堵的情況,綠燈時間為90 s,如果綠燈時間未到0小車通過當前的綠燈,那么不算碰撞游戲繼續(xù),刪除這個擁堵情況;如果綠燈時間歸零小車還未到此綠燈,那么綠燈變?yōu)榧t燈,此時為擁堵的情況,時間為90 s(紅綠燈轉(zhuǎn)換時間為90 s),如果當車輛擁堵時間未到0,而小車通過了此處車輛擁堵,那么即小車發(fā)生了碰撞,游戲結(jié)束了;如果當前車輛擁堵時間到0,而小車還未到達此處車輛擁堵,那么按照概率,70%的概率在小車當前位置到終點產(chǎn)生新?lián)矶拢?0%的概率在小車當前位置到終點不產(chǎn)生新的擁堵。如果產(chǎn)生了新的擁堵,那么有50%的概率在小車當前位置到終點產(chǎn)生兩個新?lián)矶拢?0%的概率在小車當前位置到終點產(chǎn)生一個新?lián)矶隆N覀兪紫纫_定一下是否在當前位置到終點處有擁堵的情況,如果有則返回最近的擁堵位置,沒有則返回-1。如果前方有擁堵情況,創(chuàng)建一個realJams=[],realJams.append(當前的擁堵情況),如果沒擁堵則返回10,如果有擁堵,判斷,該擁堵如果距離小車1 000 m以外則返回-1,如果該擁堵在離小車1 000 m之內(nèi)則返回當前擁堵歸一化位置減去小車歸一化位置值為(0,1)之間,如果當前小車超過了擁堵位置即發(fā)生了碰撞,則返回-10,游戲結(jié)束。最后如果游戲繼續(xù),則按照擁堵位置大小,一次排序進行下一次秒的更新。

擁堵更新算法設(shè)計:

if 前方無擁堵:

jamDistance=-1

return jamDistance

else:

realJams=[]

for語句找到當前所有的擁堵

realJams.append(self.jam[i])都放在realJams中

if len(realJams)==0:前方無擁堵

minDistanceJamFront=10

else:

minDistanceJamFront=realJams[0][0](最近的擁堵值的位置)

if 當前位置<=(minDistanceJamFront -1000/ (路總長)):

jamDistance=-1

elif 當前位置>(minDistanceJamFront -1000/ (路總長))and 當前位置<minDistanceJamFront:

jamDistance=(minDistanceJamFront -當前位置)/(1000/(路總長))

else:#當前位置==minDistanceJam

if(realJams[0][2]=='紅燈')or(realJams[0][2]=='車輛擁堵'):

jamDistance=-10

else:

jamDistance=-1

日志中輸出當前共有的擁堵數(shù)量

2.3 碰撞檢測

碰撞檢測即為判斷駕駛機器人位置是否超過了擁堵位置。

檢測判斷:駕駛機器人當前位置<最近擁堵,駕駛機器人當前位置>=最近擁堵;

判斷結(jié)果:沒發(fā)生碰撞,游戲繼續(xù)進行。發(fā)生了碰撞,游戲結(jié)束。

用DDQN 算法訓練駕駛機器人,隨著訓練次數(shù)增加獎勵穩(wěn)步也在穩(wěn)定地提升,剛開始時波動比較大,隨著學習次數(shù)增加獎勵越來越高波動越來越小。

3 結(jié)語

仿真環(huán)境的構(gòu)建對于機器人訓練順利進行起著重要的作用,擁堵算法的設(shè)計要切合實際,要聯(lián)想到生活當中,在駕駛時可能遇到的擁堵情況,一個好的虛擬鏈路仿真環(huán)境,可以讓游戲更加地切合實際,以便于之后用算法來訓練機器人,讓機器人不斷地去學習,最后實現(xiàn)更快、更安全地到達終點的目的。

主站蜘蛛池模板: 高清国产va日韩亚洲免费午夜电影| 欧美中文字幕一区二区三区| 色偷偷一区| 综合久久久久久久综合网| 国产精品毛片一区| 日韩在线欧美在线| 亚洲日韩精品综合在线一区二区| 中文字幕亚洲综久久2021| 一级成人欧美一区在线观看| 美女毛片在线| 亚洲精品成人片在线播放| 久久一日本道色综合久久| 国产综合精品日本亚洲777| 国产主播一区二区三区| 亚洲专区一区二区在线观看| 天堂成人av| 婷婷开心中文字幕| 99免费在线观看视频| 精品1区2区3区| 婷婷激情亚洲| AV天堂资源福利在线观看| 国内精品视频在线| 色噜噜狠狠狠综合曰曰曰| 手机成人午夜在线视频| 国产1区2区在线观看| 国产成人高清亚洲一区久久| 久久男人资源站| 91av国产在线| 国产午夜看片| 丰满人妻久久中文字幕| а∨天堂一区中文字幕| 九色在线观看视频| 久久一级电影| 一本一道波多野结衣一区二区| 色噜噜狠狠色综合网图区| 成人国产精品一级毛片天堂 | 欧美第一页在线| 国产成人免费高清AⅤ| 亚洲欧美日韩色图| 国产精品免费露脸视频| 精品国产一区91在线| 亚洲an第二区国产精品| 天堂亚洲网| 亚洲VA中文字幕| 最新国产高清在线| 国产精品久久久久久久久kt| 国内精品自在欧美一区| 91九色最新地址| 国产永久免费视频m3u8| 日韩国产综合精选| 美女一级免费毛片| 免费全部高H视频无码无遮掩| 欧美性久久久久| 国产成人综合在线观看| 亚洲毛片网站| 老司机午夜精品网站在线观看 | 日韩欧美国产三级| 欧美三级视频在线播放| 免费激情网站| 波多野结衣无码AV在线| 国产91小视频| 久久久久中文字幕精品视频| 国产xxxxx免费视频| 中国一级特黄视频| 麻豆国产原创视频在线播放| 亚洲精品无码久久久久苍井空| 亚洲欧美日韩另类| 污网站在线观看视频| 亚洲精品视频在线观看视频| 久久精品女人天堂aaa| 伊人色在线视频| 久久国产免费观看| 98超碰在线观看| 国产精品成人久久| 欧美精品影院| 欧美性猛交一区二区三区| 国产丰满大乳无码免费播放 | 中文字幕久久精品波多野结| 自拍偷拍一区| 日韩无码一二三区| 日韩不卡免费视频| 免费一级毛片不卡在线播放|