From 4147484c1b8fde57df4421b4bd9222fc669adebe Mon Sep 17 00:00:00 2001 From: eleurent Date: Sat, 11 Nov 2023 22:23:23 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20Farama-F?= =?UTF-8?q?oundation/HighwayEnv@a2497054390a5018060b1731bf643bcab3c53cd3?= =?UTF-8?q?=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/_images/index_1_1.png | Bin 7972 -> 7965 bytes main/_images/index_2_1.png | Bin 10439 -> 10343 bytes main/_images/index_2_2.png | Bin 12438 -> 12357 bytes main/_images/index_2_3.png | Bin 14109 -> 13987 bytes main/_images/index_3_1.png | Bin 24822 -> 25282 bytes main/_images/multi_agent_0_1.png | Bin 11479 -> 11479 bytes main/_images/multi_agent_1_1.png | Bin 21969 -> 21969 bytes main/_images/quickstart_0_3.png | Bin 7702 -> 7521 bytes main/_images/quickstart_2_0.png | Bin 6263 -> 6105 bytes .../envs/intersection_env/index.html | 2 +- .../highway_env/vehicle/controller/index.html | 2 +- main/observations/index.html | 20 +++++++++--------- main/searchindex.js | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/main/_images/index_1_1.png b/main/_images/index_1_1.png index 6b5c4d356ffd08813c589cb98100e8550148905f..2305a80013498871c9b054cc95a1104ba80dad3b 100644 GIT binary patch literal 7965 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 S&jcfrpl{q($dY^b?0*3Ly++*t literal 7972 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 C4lzam diff --git a/main/_images/index_2_1.png b/main/_images/index_2_1.png index 49eba51f7e56908c0e97c4b1e9ea892bf4a61360..5e3999c05b60f62ea88ead48cca3ef67600afa18 100644 GIT binary patch literal 10343 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 Ox-an%{ZU-+>Hh)(9SWEL literal 12438 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 OQ0mIsN+p*p@BA-l5%3@Y diff --git a/main/_images/index_2_3.png b/main/_images/index_2_3.png index 3d59cb4fbe0138a292ba2997a3e244bc1ceb179d..dbf22d721ff096142cdbe9e3636308f2125bc0cf 100644 GIT binary patch literal 13987 zcmch81z42p+vlsOpaO!VfRu`g0}@J?2%=Jo5+l+jIW$OnL_ktR29Qz^krt4a5@AFT zL`i9e?(W$8)$@J-v%CMj_S$Q|-MOxFteIz?_lf)d6;E%eC{P?>I)Wew#f|H7Y6wEo z0>6(WI|TpNqki}Tei3z)*K)jrGj((^us1=J4IFK)aE?~yhV0HJ_73Ja8$n(XUVaSw z14l<&2eFG6t^e~4yf}Nai$5}HBw&!kw%4%^2y)B-{cqnp=~QzB5u&;wcjc~Y+)VF7 z*SqpbQoF+OO%>0dV4gjBfAB8-;lmtO;bfeg`$I7cltd?!7w&Y!F$?0{lkq1!4&BcV zZCLNQ-TL(UEvm<4$sC8-sp>ze$nHPvYh^q)J>l3f7q(rh?7N&si7l)KK3p0l=LjC7;UX8->V8EYO=0S!Qxj(Px#Q|KLzhBQk%U}BQ*6`E3Nl*X0 z^Rykc@}D=Jej4=P&l@>!+?S*I^UfPXoG<^p@%r(94Y_GWz0>DD$8qTrZD?p{Kw#jf zX6d~iP4B>fO)>|iOCo#?a_wQFTzM>>c>#SDp5pCU+WsNT!kiZ_9Hlv{@_Bn>$!_LX zLB+a*Tq|j`QBw6IELWaaBY(I_F12hxU!VEiyR>gr;sY!9cIFVITsQ31EA~vCGJ5ZA zBAc>JM#t1`HMRZ1!or=Moy*Q`0f!E99GIM%qGn_yi%iG$-Le-H6?$QYf2x$fj1eTr z*>8$9utYrFOb`{-SX*VoSz2B-HRaNE9Xv>EzROKFG&E$pJl-<(wWzQ#si2^3eQs#T zFqlocq9{ZD(m6UhI)nB3!SV_{2M2O^Ea4ipyhaw9-nfb{0tDlv-7^tHT|GHX4Gr1U zpViIHIStJ_+uP3~A{=x!lw*Yk+cfpcXUAx`lzg(XtZ|xQ4{m**a1?Qxr0wbH*)-l8 z9c9$VKXv=`108ckNzXLKNZ|G!-&sO=MSxJp(Tg8_oTl1O>}9n)prWNcpslU#7kB;9 znesD1SguJ?#d-k;B}a#76V9o#zh|+vzFyVdPCqg-qT{8jt4rzay*Kq$TtuX*y83ld z#uYi?>K+!7MuG4%L(xjcJ0e^(*aY3mrAOuEl5dq_{u&-OCN?j-Nj{H=pgwuBx7#~3 zU=#W0W=eQ2I?uv<3|1!F;7G_A8=vm;+OobRBs3JRz&a5mtsv*=Bg)0Zg3gG*LW9Li zVdXCBRj|Msx^9d_-PX|XyAi=<&|l%%(M$Cx0K@Rl(J`KjapSSCTOJGy4nC@nIJ;Cw zD%T5(^`)ulnvTxNp59*4QZeDr7@G5c?<)E&W-6iXd*<_hpY+GAKGH+!;)R8Uw=#GN z-Q-R`{d25Z2C6VLE0jUXEedR&2Q)Q19%Ua2m$!KEpeo*_PxO1+vriZrr{;U;9>mmP zXt2@__Exz;<1b$_Jt+9~AMa%x=e}-)e_CqBgEb9(ssz8yOcWI@?37<#YL;$hW}|Yt zn);K%k?swDgIsSu9zA$(;kWJ0aV$%9hX2)f@wwZp3*Y0V_coes?d5FdGkhpZ+FLawq$HzY|Jdr3hqFmb@w5J z?8uQ%zX~j0tHnq$EKH;(CcSxcV5%d>zr4J>KCjeRFe2dT&Wu8GpIhV?&_Nb4_P^RJiiW-McU9^CBZ7JM&DAjyA;ymCaRXTkI)> zvDRkml)ZPJxp&~;!5EDD=CZlR=0qxjczb(GY)$9i%20M`nCUJ$b@nVNvyhcfetv#^ z-qz|&O_=m984@k=P+*8iRK|Bqt+rRD9{MBt! zrktLw=ea`Hlpq;2mgv3f=QL{tD|}s1v1W5+YH(&Is~88h%cb9w!P(haE8jH4uzz!% z7-l!yBZ^dgdUBMSnb|V$< zAL^}nbw36ilUheIG_pRysWs2byrQOd{KwCqxdt_dTwPtGF|l~O-<^r?*U^oGZF;dnuAB_qcON~hrz)?tqPBl`n*G9 z&4~m!RH~V}p4+`O#QhQhE7FN=nMk_XZ>ql9I|c4&&cBrn~Y<_g3`w zo*2~l!C6=wzTvUEF^2e5Rmp6xdG8e&R&EXjU9_F}aYkZqd&$<(@e-CEc^MmWhlfikTHihviud;1-tI;Ei@L$l(Tou$mKGN8 z;d8JGvRN8Ny`@f!Vvg_XtwY(QL*cv;W6Tn+Jb3U99zM})^ZZRk#ayo)x6ZDv7)+VN zm`a?)!{gA}B%oZ=u4T1Zz{cR%+1Zf{%^V@D2H7LDL!rkX(cf4ci57E8ueT=moSiM3 ztLrIoP{tSF?KYadcLiBao?K`WpR4NXI-x4D;5(GNnj9u2tErX~yYww6_~J z;CTWT|6)kUz!8wNOacf$el#->YuiSkf zLL`L207p6IVWi~pavcjDBwD!A#>(pR=(kuq!bunXt~`^#twUZhdeWQY$&A7_arJqA zPWzDJl9C(EImb?l`L0ZL)HF0S7e+gcwUgxBZs@bI7)9H#i*qAi`bQt&K+zAS)}g5t8Xea+{GuCF)%PpbaeOiQAXZ8sHdk_YaJIKZ(wN|#BtT{`dq*5tCQ%ELQre!=4Pg+`3ygk z)m~}u?LBEx!1Vg{Yg;F$%UI_x&p7JlbaZs+rjmb7=)<6A&z|*t^5h0jlC`z9fsql( z#fukfcQn=2onl^4FbgT!@jn=Mc=YH|-43&W0fm@Zi6G44-Cgdqinj0H^{s>>Z=#3x zyp53-`{ve`;+hT$Lw@~o)*fs6`0=B@k&bgzBu=Wc=%0Ny!Q1O(^prR#sNHp7OS~?}wiH{Y+J5u5@vB7E0io45iwy zqM|}2%Z|Y)+2#J+(BkMGgSrOYFhviitW1HFtkTLNKCOot71<-6wzs$Q?r^iS%cNi2 zZ@-hiv~CXb85q!CUtf>z83ojZh}9*-YDZ(VH8f1OVRv-X^-k2SegA%|_Qu)o{8#Q| zw5bu@;T84dQDS1^UA+&vxsSra!VJ3t1CJ2xuBWJRh=?%4@^BTM$6yY8cal&8__SYK zT-?{skGts+%F-fU zcU+StBVs2jY*Z07v&C=b%}rZT*3E^5Ldf{f)k}P-A!1S1I2<9@h;U0&lhnn&|$Ov+lN?D&!V%Qif=O?iF#&0g>@@uMH($m#d!5atbU9!$|%7`N+!hoOo$K5 zD(_7=BzYnOVLx@M#xOtg1+i(fRBy*^Z*=*BB4Ze`v=upcnuNUr$CD;WK~4~G7?l|< zOcf;rC$MOme7(0>ygh|kBe=F|IuM!&sxsMgtB$js3`FYh`J&H6iMREN%)Eo=Dy0@o zZsH13QG|1$B`YgS=aAsQ=DsFchp$YIvoZq9Zk|#5RBnt_-}F;S6;#=DE93PUDL9J+ znX5WX?O*m}cH*^cnqqt){MFvfv)4wlt5Vdnp~s7C*}7k#D3Ju;mf*8N5LC2Oby&ku zys-B;g>TKt^px1Y>D4$pwL0BEOh423DD!dyNv}<%>5ON?kGfNZW@|RB38Nn_;xO0# zj|t1aB6D$5b7Qiq`=AXSkUG~c_g+4MLxOaAV-Gtl4WN22sNxwsBRa4A3E)W%}5 zBF@u{8kt)AplC#xIN00I*Bp~ZknQd5`PlyLYYQC2e(ya=ZfsDz5^)?#v~Dnhgj-9h3Oth3}_NvWSe568Y@MC6$Pg*q1M#J$vReKX2O@C;HPE zo23y1Af~mWg9Jf)Je0SHZdwKgBj{VjTeD@2%!`0>BC<|_5<_R5@RWGyW(;4kWByR!5Z;n)@z7ZK!6s!HUf!{Nh+$qpZ` zh9*uowSW7^7(MU(fcNkDB2030%KTs*jYb<|fSKTb?a55?65dQ_VQ0v09~RU9v({gZ_UkwwSMno z$o#@W_2NhaVDXCf`8n@B=GxlYfUvMXSX_o6s7-VHI50uq;$o2qlNC3~itRNZ=|G_1=~6 z+FnqQSRZ&yMn=YmZP%acD}R@s{^@Jv1-dbrw6wG@4GlGLyfZudeL|&*th3{_;sY}YW)^N57Ahzx=q$8mMrnIM09k}dmdSmu#rm^@fYd*KmJ<;Z z8+t^_daDNzVa1i(x2X|*SiwMtct5{Gr%#_A2o;~Lf|HmsX%an!(JmxMTTBB}`#}Wy zC5L2X)3kb$8gP8b)q@FhvSlqVBBFyb><{fdqqrsErl4N&H52CHpU9)G|V;D=hpHjG4R|o-d3&u`t{Rn zZyEK86KTcoFz3$67#ebNsl=VTd>a}^!Sb>rd_>i*YHxwS783LTss~1=^e#UpRW)~odO=_PwaiUIs8328DF%%RE zv?f}#o~!+hG|SzK?5HIz+cCBBn*ayi12C79m%nk58@-JmKT7lf{hME11w@|H!OYNd z)t@rbBDu!@STalys@-iC76Q z>(!ZVe>U%JYKPIrYU`q2Slnt@o$tSX1(LG5$}Gs$Ku^1M_wMO7^ae-4roh=vi+lU# z4I@L#owrK2C33x1Ce^L_D|99qt$2uw=pIc@272#p_1n6*L|GI;7dgSuBCs^|_3KUa zh%`p?{~)N=Y`X!C4kXk<6(@53s;!lG^YR3))&op8@N5vY1vukf8%`D$+>T=Lt)&Pb z&I=T*dC%q3RC*buUXpBA>!BuD;cx z0IKh8a{RSqeqCz^XJ-u-IbSNMh<{~e@%WLSNYY|>Wi+Uxu72>?v17G@ zs7nxW`VUlbI2>`$zy+TE_MJNn0NMdrgjp4GYjFaQE+PwQlgZ{x)UQ*jfHVsJOF zv5Kp=ZY1w};^BBJ90IfL;d1$Im(Spii%o zO5(%onIY~+eBWqS^QxkPH6$cN&DvPR2Jw0P_;Kq(W@#ytTeQJ?^6 z#6$Cni4i9<$O#63kf3>f`GYpSdUK5P%v34`SS%?TCo}~J!FW7} zCy0wV`8^%P+w$@U@87>qt9l(4rbw*$B&=V`SVx{`Mh@ZBD>Dc7n1$Y|IMHW=#rqsF z(32=zOC({JQ?}w%QX|A{kkJ*<8ZD<};`=}9+;DwF%GtMaBx#^SFoo0=S4E(8#n<1T z*qU~yE`n?HkH%QoSMCSs7Ch0B}q%${W{PN(aSU9;8asZ!b-@OY-vt zw|92jQ~l&LJ~cI|OghNQ5XKN@CZ^!MSzM#QZBmfPYkQ7xKs$mK*V5W*%>P&n)`^pu znOQ_!{DPNFds7poELqT3E0<`KQaXSo+@VE&%{Wy1FDWUJPH!_3b_(gSeVnD|EhE9f zv2Sm)qjF$wE(`#~U`mwk)HGf0l0J&O2dehf+5=qGV-woA zUrj>W5FTV@aE4-#LUpDy(a*s*!m5e1D@5vqIK!xV%Uj;{@ z0Wd$BXs?gN1nd_6%lpce zeJY7kAutTL)Tgu$A7}|-Y^2{8oWr{E&90^h>Fudrfm%1&cMtJ z#VcZrdskPN+DcjYBjD-)yxr?n!szFQQC*bewWgHY<{zIai=%}p#RDG3aO zv+5lYXH}CjGs$yva|4C5>H(nxW-&A}N|}Ae?OO#<8dZX5Xp*(0BqdLRCx!UH!Wy-{ zyUo=Aw~h16nS+4P<`(Izm|G?suiv=AFO}@ExjX?)n7>3B6d|w8iL*Tq$KnGc#2>>J z3;{0!3jHJ^BBDNz;iB$mSeAWAMMVW@rW!qazz9G!@Xbq^Rb9Q(h4njP1*f($ACILD`s7{`w0KqY$ z`>v)YaelA{?1#Le?j2~}&tASfQm%UpJdm~=UY$~3L9-_PrZ~|+O}d*mZ$1kT-}lN$ zLO??8%ZtoR%v}wQq3p8R=Weu$?(X80EF$b}Ilfe|yz+oSkn1ZM(Ba>tqznT0xix(( zo^T3^S7U-Cb9Qz%&}eRMS&#tXpxO0~Ih8qVuiHJi#PplcP&!Vwo`3P;#Q+ShCUFSt z4^dE)l;XwIbGPAy-2(W5{P5)E;h}(oRXyI4tc)*@u`8*}p9U`WnDp2uko_jL+?U61 z!)Zbgo5~&M+KqzOxF>#ohTH24YAdBJ_fy3I+=#d>pYsWg&8lz8$|(iH4dQc8+E=+;2A0S()BTNlM(EJY~6&%D2O_hi03rt!V$ zHzu$tIMnXkkvBI_TgXUDyFtbw=jB!5I#bXgckPn6igUro`R7#i+`2c$~R8HPmjJ zX34d<#mHdPf0NE+-Xua5B;9K#NFkywTmc5-JY)*sz00f!mIq@!-s~yK9~=I z?Wl>-*45>OJBL0PICL+erfT+>0+WZy%NiRSGkR-iYhOSD;G{WlN(^9Ux7C3Uz@g$m zjiFkhcUf6Nj{d#X|!Z(P?0{hw%LsAINLrFZI! z_tyH{RdYRbbmEK065Kyq=9F{oxPgOl8r`g$Hvx_n@_Rd=B>dNPKGhvA6_{n>(@ z^h)eg9#~r5=@|tKaQr9(FD(>THBY(ZmH_A`0T6BA##>uj(xApv`vif_`|fYKos*mU zCQ7ezt!~_S8hzOkkA4q;grxWHZ`sA-Dt9#Cgatq%;`*2&C~k)J&(8n~!RAg+jw3?CjHHH5YpsHs5?rZb>YHNg8965`Xdv#){n|La=v6<62dp%?<_ zPQQHu;P;PGR8=SHWb^Pq=k^)3UN^M;f9~ zszRht|MlzF{Ki<~+IqewN#sZqxn~3D3=82Wfena?iq?r=dik^HS}-Gr&KUTTX#GgX zMMgyt!MA1%0Bp)G+VF)%Xn1eAf_f}*{H zLrZ)6A%s!X{>>2GySln-!((HLC;cg)y`j8K*$ebxCkb% z&O$snVhiPtNOw+JT6#iiY<8B{^Xdz5&;dOj215=gI_QkHEUQaPHL&*`$rx?fP;tRv z1wWTyu;k8H{H*()V_cUE1~^DNzw+kE69OrnyVC^O@IkumVqNnOG_bhFP_afF!0{@0T*nDf8Dfhl?j zI@(xo7ly;MYm#%YDG5tGFgNE1e*_{fC}ds0eriuIDe1}-?-vsjL**Gr4P1j3+^=p$ zHU5n`Xob$S%Pk+{E92mhk9DbCo}ZU_@ZcPn+#xucvnKcilhMvn`^>$)L=ziI*tGSH zjX}_V>9@|Eu&lzYRaQSANeC|St9|hBVTpV>y=BLkF#V||^rGbWe1YIeHJJUkbag{P zCt5N1wh3k>>`&=IR&tFeh=_1AZ^c%x>prU zTOeAr(*C!Bb%2}(`0ZRDT`Lnvu!cY0+)#6Ay4tDXA(mSo| z@3bcM?#r!_psr|{5);hu6{L`$-vGC)FaZ-A9_zZEy0g9gUmyVp2nejlVDhwzZsOIs z=|IhUgCidw9zFnJ8-VlLy_PB3&9G{rf)&!oQhlB-=+oTEAZiW__jy za(%ZvT!mY*(!sF>7Db{%aUN8Nwahah7KNKb)NTb0Mr=9H!X5^Bh?9q(`3_R$^74ny zqL6*?&*X~Dz;sXhqd7Hbf`&PAmAji$5O`r3x1hqFwk+L84$6|GC7Sdz1}(vO=a1{K zHrM|ra<-aXkN1HvU_ya$j3}2t$e)3t;hI7_hSz^xy1V~u!Rt1W>}YI60U4U z2pkfoO318PZTAA2_6HvYHGDvWLT!j2DT?j|pX6FWQTd%wq@aXdaJn5^{^%YB8kh9a z)ztL&-d##uM*~P5IxhPVsf}S8u(&7zyVra$|7lZEDA#KF-+i2a>!u@6@%X08XGb8Qfz9EcOIIlfj9JE)!;`)Gs0t!nKDD*CpS*n#jlX7U7d5TpLax=kqFLep=Ttmx zCaE>SCu9^fC0|@x8U+0dj1Z7IoX_9U)%B`rc4dSsTGiWIjy}c3e|~hs#)7){`*$Az z1)PwR0-NCxXiOlIg;X|!1O<)+kZaGMbZ3$({<(XYL@aI$1^>AZS~z`uebMXBENtTo z`jbZX{lg%+OF(u>tH|ag$WH^av!ReK;}jEn=|Xurj}N_PMxjp+k)jicE(oY_Tj7RJ zJxx#NhLoaVUGNFiw+EGcAA&1ip@+;b1n&F*W;7;Bvw<+>m3TKUz%BG2VNom_xPdp;uQV+whOPs{GFms(mwpJ z#Pq*C>;Dg~&%cIDBQ4!u$>ob6O3z9l@>%z2rRHdJ`lVjwsCGO9h6wW z>4iGSwC;3+jIO5_2B`AgUHnEGx#`BJ)*bH;m)cvMQP8mtf6{|LwL3R14wzc+v^MBR?*f!OZ?=a2NlTGv_}d@mS7(E%N^+JfHVPei^(; ze+XEC)C_d+h%^KmWi;!PJ}!Q}02b@SA{{HM&9*0a)(Kvl=3r;kw6)QJm~i#s!wsa} zbpVz0g6MfXeYq=(Sy;%hK#(xY0e4j6yYL+ltOW8*iddl9nNKHZbz>E?)7nm&X;2^AwF8XSSN3lWet z;sc&3gvxoX8Ch9F!HO>&%z+~RDl;=vQTw5*D?2y$*G>%xOFv0XMFpr}6Ho!b%y^cN z&^PB)c&IV=Vf08W0kcM7+9lDr_{|9K&gNjn3Ky!ETeR?L9S z(3#}!g$5crx+huMMTU^PhrGwJTeoic0I^O24h3%jlIx$EY8GYP>DM9n!9Q(R19JMH zBRX%C-^=ogiel)_XNJRKTH?aj;Q1H}TeL=LTC&DZSd1q2*<}oCNq(neU*gevU$wsD zdzgj_zU$dDDzJ+`)z`xYU6UJy?);}V^An6IgG!Ij5Q!w(+TByLj+%ddN?~7mkxG@^bDK4&kzrq7c#_<^yk05GY3xSl{v^%MvhiZdr1E^2Q0SB~WTkCNML*?x2 zs;Ufdr|IE>&;y@lc^73&7i}ckm?vTSP@k{CKHB7Aqy3&y=m;O|vk?czhMLEhYOZ1{ zn~ai@9_&w4E@TmRwtAIed>ax}yikmM!SO~}DVik*AyRm^0<^5{-L*=FtA6Cv5ViTO zZ+-XxS3|;9O-=29&r}5}ANr0LQ|u{TEI$p$))(yPXmOWpu&ZYB!k~fY+K=2EoSfta zJFymG_nh!^KBNO}S`7conx;htt$Vz3s_$>0-rkTTMf3MhI2qUfe`>>T_KsPkeN_u@ UdHo1}U<|n-uOgQ%tN+)31AW<2LI3~& literal 14109 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 VpkQ!chp(!kZpy33<;$8p{vRb1&FKID diff --git a/main/_images/index_3_1.png b/main/_images/index_3_1.png index d2e1d64f539bb5b06b59840cafa3ca90626ada99..60fe7fb9432f38d9228a87b01004a8a87cc2ee9f 100644 GIT binary patch literal 25282 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 XXjHZ{eFonrLE5@$=f9rVxt#wuVR+|G literal 24822 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 delta 41 xcmcZ}c|CH1hn#_qLPkkRL9vy-er{q(K~8>2PG*u`eo?x<>BgMTp002{$5On|m diff --git a/main/_images/multi_agent_1_1.png b/main/_images/multi_agent_1_1.png index efc5f929803d7279370c75a4775484ac67fa3b0e..e77ef386e7a4bba909e532564d7066153d3fb260 100644 GIT binary patch delta 43 zcmcb(n(^Xl#t9yBhB^uvB_##LR{Hw6i6sR&`6W4-NqYH3>H3$}2-|E-%MJwqZiNuK delta 43 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 LjkSt29q#`d1z_-n literal 7702 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 diff --git a/main/_images/quickstart_2_0.png b/main/_images/quickstart_2_0.png index ab2d15824041c0d19523f1c643ce20b934d194f9..0837433e90515aa3ed438d66a02eaef0c3c37f0e 100644 GIT binary patch literal 6105 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 G&;A2V>4kX! literal 6263 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 code for highway_env.envs.intersection_env
-
[[ 1.          1.          0.08        1.          0.          1.
+
[[ 1.          1.          0.          1.          0.          1.
    0.        ]
- [ 1.          0.19849771 -0.08       -0.17327027  0.          1.
+ [ 1.          0.20323725  0.04       -0.07361443  0.          1.
    0.        ]
- [ 1.          0.40577605 -0.04       -0.0777458   0.          1.
+ [ 1.          0.39618185  0.08       -0.11105874  0.          1.
    0.        ]
- [ 1.          0.6178002   0.         -0.05545885  0.          1.
+ [ 1.          0.6169058   0.04       -0.17033932  0.          1.
    0.        ]
- [ 1.          0.8213279  -0.08       -0.06065813  0.          1.
+ [ 1.          0.83093834  0.08       -0.0526074   0.          1.
    0.        ]
- [ 1.          1.          0.         -0.10840534  0.          1.
+ [ 1.          1.          0.12       -0.18704522  0.          1.
    0.        ]
- [ 1.          1.          0.04       -0.05941435  0.          1.
+ [ 1.          1.          0.04       -0.1492452   0.          1.
    0.        ]
- [ 1.          1.         -0.04       -0.09407181  0.          1.
+ [ 1.          1.          0.08       -0.05019206  0.          1.
    0.        ]
- [ 1.          1.          0.         -0.17338553  0.          1.
+ [ 1.          1.          0.         -0.07072275  0.          1.
    0.        ]
- [ 1.          1.         -0.08       -0.05116639  0.          1.
+ [ 1.          1.          0.08       -0.18716832  0.          1.
    0.        ]
  [ 0.          0.          0.          0.          0.          0.
    0.        ]
diff --git a/main/searchindex.js b/main/searchindex.js
index c52c250b7..7590d8d4a 100644
--- a/main/searchindex.js
+++ b/main/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["404", "actions/index", "bibliography/index", "dynamics/index", "dynamics/road/lane", "dynamics/road/regulation", "dynamics/road/road", "dynamics/vehicle/behavior", "dynamics/vehicle/controller", "dynamics/vehicle/kinematics", "environments/highway", "environments/index", "environments/intersection", "environments/merge", "environments/parking", "environments/racetrack", "environments/roundabout", "faq", "graphics/index", "index", "installation", "make_your_own", "multi_agent", "observations/index", "quickstart", "rewards/index", "user_guide"], "filenames": ["404.md", "actions/index.md", "bibliography/index.md", "dynamics/index.md", "dynamics/road/lane.md", "dynamics/road/regulation.md", "dynamics/road/road.md", "dynamics/vehicle/behavior.md", "dynamics/vehicle/controller.md", "dynamics/vehicle/kinematics.md", "environments/highway.md", "environments/index.md", "environments/intersection.md", "environments/merge.md", "environments/parking.md", "environments/racetrack.md", "environments/roundabout.md", "faq.md", "graphics/index.md", "index.md", "installation.md", "make_your_own.md", "multi_agent.md", "observations/index.md", "quickstart.md", "rewards/index.md", "user_guide.md"], "titles": ["404", "Actions", "Bibliography", "Dynamics", "Lane", "Road regulation", "Road", "Behavior", "Control", "Kinematics", "Highway", "The environments", "Intersection", "Merge", "Parking", "Racetrack", "Roundabout", "Frequently Asked Questions", "Graphics", "Welcome to highway-env\u2019s documentation!", "Installation", "Make your own environment", "The Multi-Agent setting", "Observations", "Getting Started", "Rewards", "User Guide"], "terms": {"similarli": 1, "observ": [1, 2, 10, 12, 13, 14, 15, 16, 21, 24, 25, 26], "sever": [1, 7, 10, 12, 17, 21, 23, 24], "type": [1, 4, 10, 12, 13, 14, 15, 16, 21, 22, 23, 24], "can": [1, 4, 6, 7, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25], "us": [1, 7, 8, 9, 14, 18, 19, 20, 21, 23, 24, 25], "everi": [1, 3, 25], "environ": [1, 3, 10, 12, 13, 14, 15, 16, 18, 19, 22, 23, 26], "thei": [1, 5, 7, 13, 18, 23, 25], "ar": [1, 3, 4, 5, 6, 7, 8, 9, 10, 18, 21, 22, 23, 24, 25], "defin": [1, 4, 6, 10, 12, 13, 14, 15, 16, 18, 21, 23, 24, 25], "modul": [1, 21, 23], "each": [1, 5, 6, 8, 9, 12, 17, 18, 22, 23], "come": [1, 12, 23], "default": [1, 7, 8, 9, 18, 21, 23, 24], "which": [1, 4, 5, 6, 7, 8, 12, 14, 17, 18, 20, 21, 22, 23, 24, 25], "chang": [1, 2, 4, 7, 8, 16, 17, 21, 23, 24, 26], "customis": [1, 23], "configur": [1, 18, 22, 25, 26], "For": [1, 6, 7, 17, 22, 23, 24], "instanc": [1, 4, 6, 7, 8, 9, 23, 24], "import": [1, 3, 17, 21, 22, 23, 24], "gymnasium": [1, 18, 21, 22, 23, 24], "gym": [1, 10, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 24], "env": [1, 10, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24], "make": [1, 2, 10, 12, 13, 14, 15, 16, 18, 19, 22, 23, 26], "highwai": [1, 11, 13, 15, 18, 20, 22, 23, 24], "v0": [1, 10, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 24], "config": [1, 4, 10, 12, 13, 14, 15, 16, 18, 21, 22, 23, 24], "continuousact": [1, 14, 15], "The": [1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 15, 16, 18, 19, 20, 21, 23, 24, 25, 26], "allow": [1, 7, 8, 21], "agent": [1, 10, 12, 13, 14, 15, 18, 21, 23, 25, 26], "directli": [1, 23, 25], "set": [1, 2, 4, 5, 6, 8, 14, 18, 23, 26], "low": [1, 8], "level": [1, 2, 4, 8, 17], "vehicl": [1, 2, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 24, 25, 26], "kinemat": [1, 2, 3, 6, 8, 10, 12, 22, 24, 26], "name": [1, 23], "throttl": [1, 8], "steer": [1, 7, 8, 9, 14], "angl": [1, 4, 7, 8, 9, 18, 23], "delta": [1, 7, 8, 9], "enabl": [1, 23], "disabl": 1, "through": [1, 2, 3, 5, 8, 21, 25], "longitudin": [1, 4, 9, 12, 15, 16, 18, 23], "later": [1, 4, 12, 15, 18, 23], "respect": [1, 7, 8, 18, 25], "thu": [1, 17, 25], "space": [1, 7, 9, 14, 18, 21, 23, 26], "either": 1, "1d": [1, 7], "2d": [1, 4, 7], "discreteact": 1, "i": [1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 21, 22, 24, 25], "uniform": [1, 8, 23], "quantiz": 1, "abov": 1, "actions_per_axi": 1, "paramet": [1, 4, 5, 6, 7, 8, 9, 12, 14, 18, 21, 23, 25], "step": [1, 5, 6, 7, 9, 12, 16, 17, 21, 22, 23, 24], "axi": [1, 7, 8, 9, 23], "separ": [1, 18], "discretemetaact": [1, 10, 12, 13, 16, 22, 24], "add": [1, 21], "layer": [1, 23], "speed": [1, 7, 8, 9, 10, 13, 14, 21, 25], "top": [1, 8, 23], "so": [1, 7, 13, 14, 17, 18, 21, 23], "ego": [1, 7, 10, 12, 13, 14, 16, 18, 21, 25], "automat": [1, 8, 16, 21], "follow": [1, 2, 6, 7, 8, 15, 16, 17, 18, 21, 23, 24], "road": [1, 4, 7, 8, 9, 10, 12, 13, 18, 21, 23, 25, 26], "desir": [1, 7, 8, 14, 21, 23, 25], "veloc": [1, 5, 7, 8, 23, 25], "Then": 1, "avail": [1, 10, 24], "consist": [1, 2], "target": [1, 5, 7, 8], "lane": [1, 2, 3, 5, 6, 7, 8, 9, 10, 16, 17, 18, 21, 22, 23, 24], "setpoint": 1, "full": [1, 24], "correspond": [1, 4, 8, 14, 17, 18, 21, 23], "actions_al": [1, 22], "0": [1, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25], "lane_left": 1, "1": [1, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 22, 23, 24, 25], "idl": [1, 23, 24], "2": [1, 2, 7, 8, 9, 10, 20, 22, 23, 24], "lane_right": 1, "3": [1, 7, 10, 12, 13, 15, 18, 20, 23, 24], "faster": [1, 8, 23], "4": [1, 7, 10, 15, 18, 23, 24], "slower": [1, 8], "some": [1, 5, 8, 13, 25], "might": 1, "alwai": [1, 18, 23], "edg": [1, 6], "acceler": [1, 7, 8, 9, 14], "decelr": 1, "beyond": 1, "maximum": [1, 7, 9, 21, 23, 25], "minimum": [1, 7, 9, 25], "list": [1, 3, 4, 5, 6, 7, 8, 9, 17, 18, 21, 23, 24], "access": [1, 13, 21, 24], "get_available_act": 1, "method": [1, 4, 5, 7, 8, 9, 16, 21, 25], "take": [1, 5, 7, 23, 24], "an": [1, 5, 6, 7, 8, 9, 12, 18, 19, 21, 22, 23, 25], "unavail": 1, "equival": 1, "intersect": [1, 5, 6, 8, 11, 24], "onli": [1, 7, 9, 21, 22, 24, 25], "while": [1, 9, 10, 13, 15, 16, 17, 21, 22, 24], "perform": [1, 7, 8, 12, 21, 23, 24], "track": [1, 8, 15], "simul": [1, 2, 7, 8, 9, 12, 17, 18, 21, 23], "manual_control": [1, 24], "true": [1, 4, 7, 10, 12, 13, 14, 15, 16, 17, 23, 24], "reset": [1, 17, 18, 21, 22, 23, 24], "done": [1, 16, 17, 18, 22, 23, 24], "fals": [1, 4, 5, 6, 10, 12, 13, 14, 15, 16, 17, 18, 22, 23, 24], "action_spac": [1, 17, 21], "sampl": [1, 17, 21], "ignor": 1, "direct": [1, 7, 8, 9, 23], "arrow": 1, "kei": [1, 16, 18, 23], "eventhandl": 1, "class": [1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21, 22, 23], "highway_env": [1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 24], "common": [1, 18, 21, 22, 23], "actiontyp": 1, "abstractenv": [1, 18, 21, 23], "kwarg": [1, 23], "sourc": [1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21, 23], "A": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 18, 21, 22, 23, 24], "specifi": [1, 8, 21, 25], "its": [1, 4, 6, 7, 8, 9, 16, 17, 22, 24], "definit": 1, "how": [1, 3, 7, 22, 24], "execut": [1, 7, 12, 21, 22], "properti": [1, 7, 8, 9, 21], "vehicle_class": [1, 21], "callabl": [1, 18], "abl": [1, 8, 17, 21], "must": [1, 6, 14, 18, 20, 21, 22, 24, 25], "return": [1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21, 22, 23, 25], "subclass": 1, "act": [1, 6, 7, 8, 9], "int": [1, 4, 6, 7, 8, 9, 12, 18, 21, 23, 24], "ndarrai": [1, 4, 7, 8, 9, 12, 14, 18, 21, 23], "none": [1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21, 23, 24], "most": [1, 5, 22, 26], "mechan": 1, "actual": [1, 6, 17, 22], "implement": [1, 4, 7, 8, 10, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 24], "where": [1, 6, 7, 8, 9, 14, 15, 21, 23, 25], "pre": 1, "process": [1, 2], "appli": [1, 8], "base": [1, 5, 7, 9, 24], "controlled_vehicl": [1, 15, 22, 24], "upon": 1, "If": [1, 7, 8, 9, 16, 19, 21, 23], "first": [1, 5, 17, 18, 21, 22, 23], "acceleration_rang": 1, "tupl": [1, 4, 6, 7, 8, 12, 18, 21, 22, 23], "float": [1, 4, 5, 6, 7, 8, 9, 12, 14, 18, 21, 23], "steering_rang": 1, "speed_rang": 1, "bool": [1, 4, 5, 6, 7, 12, 18, 21, 23], "dynam": [1, 5, 6, 7, 8, 9, 12, 21, 24, 26], "clip": [1, 23], "both": [1, 4, 7, 22, 23], "thi": [1, 4, 7, 10, 12, 13, 16, 17, 20, 21, 22, 23, 24, 25], "order": [1, 9, 17, 22, 23, 25], "interv": 1, "map": [1, 10, 23], "creat": [1, 4, 7, 8, 9, 18, 24, 26], "rang": [1, 7, 8, 9, 10, 23, 24, 25], "valu": [1, 16, 21, 23, 24], "m": [1, 4, 7, 8, 9, 10, 16, 18, 21, 23], "s\u00b2": 1, "rad": [1, 4, 7, 8], "reachabl": [1, 4, 9], "": [1, 5, 6, 7, 8, 9, 10, 12, 13, 16, 17, 18, 21, 22, 23, 24, 25], "whether": [1, 4, 5, 6, 7, 18, 21, 23], "e": [1, 2, 17], "friction": 1, "rather": [1, 25], "than": [1, 7, 17, 23, 25], "5": [1, 7, 9, 10, 12, 13, 14, 15, 16, 20, 22, 23, 24], "x": [1, 4, 9, 12, 14, 18, 23, 25], "7853981633974483": 1, "box": 1, "target_spe": [1, 7, 8], "sequenc": [1, 4, 7, 8, 9, 18, 23], "cruis": [1, 8], "point": [1, 2, 4], "includ": [1, 5, 6, 22], "index": [1, 6, 7, 8, 23], "label": 1, "actions_longi": 1, "actions_lat": 1, "get": [1, 4, 8, 20, 22, 23], "current": [1, 6, 8, 9, 20, 21, 23, 25], "boundari": 1, "maxim": [1, 7], "minim": [1, 7], "multiagentact": [1, 22], "action_config": [1, 22], "dict": [1, 4, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21, 23, 24], "awr": [2, 24], "17": [2, 24], "marcin": 2, "andrychowicz": 2, "filip": 2, "wolski": 2, "alex": 2, "rai": 2, "jona": 2, "schneider": 2, "rachel": 2, "fong": 2, "peter": 2, "welind": 2, "bob": 2, "mcgrew": 2, "josh": 2, "tobin": 2, "pieter": 2, "abbeel": 2, "wojciech": 2, "zaremba": 2, "hindsight": [2, 24], "experi": [2, 22, 24], "replai": [2, 24], "In": [2, 7, 10, 13, 16, 17, 21, 22, 23, 25], "advanc": 2, "neural": 2, "inform": [2, 14, 17, 21, 23], "system": [2, 4, 9, 12, 18], "2017": 2, "arxiv": 2, "1707": 2, "01495": 2, "hm08": [2, 24], "jean": 2, "fran": 2, "\u00e7": 2, "oi": 2, "hren": 2, "r": [2, 7, 8, 25], "\u00e9": 2, "mi": 2, "muno": 2, "optimist": 2, "plan": [2, 8, 16, 24], "determinist": [2, 24], "lectur": 2, "note": [2, 25], "comput": [2, 4, 7, 8, 21], "scienc": 2, "2008": 2, "kth07": [2, 7], "arn": 2, "kest": 2, "martin": 2, "treiber": 2, "dirk": 2, "helb": 2, "gener": [2, 5, 6, 17, 21, 22, 25], "model": [2, 3, 7, 8, 9, 21, 22, 24], "mobil": [2, 7], "car": 2, "transport": 2, "research": 2, "record": [2, 5, 6, 17], "2007": 2, "doi": 2, "10": [2, 7, 12, 23], "3141": 2, "1999": 2, "lm19": [2, 17, 24], "edouard": [2, 19], "leurent": [2, 19], "mercat": 2, "social": [2, 24], "attent": [2, 24], "autonom": [2, 19], "decis": [2, 7, 12, 19, 21], "dens": [2, 12], "traffic": [2, 12, 13, 16], "machin": 2, "learn": [2, 15, 24, 25], "drive": [2, 5, 6, 8, 9, 10, 13, 18, 19, 21, 24, 25], "workshop": 2, "thirti": 2, "third": 2, "confer": 2, "neurip": 2, "2019": [2, 24], "montreal": 2, "canada": 2, "decemb": 2, "1911": 2, "12250": 2, "mk": [2, 25], "15": [2, 10, 12, 13, 14, 15, 16, 17, 18, 23, 24, 25], "volodymyr": 2, "mnih": 2, "korai": 2, "kavukcuoglu": 2, "david": 2, "silver": 2, "andrei": 2, "rusu": 2, "joel": 2, "veness": 2, "marc": 2, "g": [2, 17], "bellemar": 2, "grave": 2, "riedmil": 2, "andrea": 2, "k": [2, 16, 18], "fidjeland": 2, "georg": 2, "ostrovski": 2, "stig": 2, "petersen": 2, "charl": 2, "beatti": 2, "amir": 2, "sadik": 2, "ioanni": 2, "antonogl": 2, "helen": 2, "king": 2, "dharshan": 2, "kumaran": 2, "daan": 2, "wierstra": 2, "shane": 2, "legg": 2, "demi": 2, "hassabi": 2, "human": 2, "control": [2, 3, 7, 14, 15, 16, 21, 26], "deep": [2, 24, 25], "reinforc": [2, 24, 25], "natur": [2, 23], "518": 2, "7540": 2, "529": 2, "533": 2, "2015": 2, "paltchedandrean17": [2, 9], "philip": 2, "polack": 2, "florent": 2, "altch": 2, "brigitt": 2, "d": [2, 7], "andr": 2, "novel": [2, 17], "bicycl": [2, 9], "feasibl": 2, "trajectori": [2, 5, 6, 8, 9, 24, 25], "ieee": 2, "intellig": [2, 7], "symposium": 2, "page": [2, 24], "6": [2, 7, 12, 16, 23], "8": [2, 23, 24], "qsmg17": [2, 17], "qi": 2, "hao": 2, "su": 2, "kaichun": 2, "mo": 2, "leonida": 2, "j": [2, 23], "guiba": 2, "pointnet": 2, "3d": 2, "classif": 2, "segment": 2, "1612": 2, "00593": 2, "thh00": [2, 7], "ansgar": 2, "henneck": 2, "congest": 2, "state": [2, 7, 8, 9, 17, 21, 22, 23, 25], "empir": 2, "microscop": 2, "physic": [2, 3], "review": 2, "statist": 2, "plasma": 2, "fluid": 2, "relat": 2, "interdisciplinari": 2, "topic": 2, "62": 2, "1805": 2, "1824": 2, "2000": 2, "describ": [3, 4, 5, 6, 10, 17, 19, 21, 22, 23], "move": [3, 9, 18, 23], "behav": [3, 5], "time": [3, 5, 7, 8, 16, 25, 26], "There": [3, 24], "two": [3, 5, 7, 8, 15, 17, 18, 22, 23, 25], "section": 3, "affect": 3, "descript": [3, 19, 23, 24], "behavior": [3, 5, 10, 12, 13, 16, 21, 24], "compos": [3, 6, 25], "roadnetwork": [3, 5, 6, 21], "regul": 3, "geometri": [4, 6, 21], "abstractlan": [4, 6, 18], "object": [4, 5, 6, 7, 8, 9, 10, 13, 18, 21, 23], "parametr": [4, 24], "center": [4, 7, 8, 9, 18, 23], "line": [4, 8, 18], "curv": [4, 24], "provid": [4, 8, 17, 18, 19, 21, 24], "local": [4, 6, 17, 18], "coordin": [4, 6, 18, 23], "convers": [4, 23], "between": [4, 5, 7, 8, 9, 18, 23, 25], "longi": 4, "lat": [4, 8, 18], "frenet": 4, "frame": [4, 17, 18, 21, 23], "global": 4, "y": [4, 9, 12, 14, 18, 20, 23, 25], "ensur": 4, "posit": [4, 6, 7, 9, 14, 18, 23], "local_coordin": 4, "main": [4, 13], "straightlan": 4, "sinelan": 4, "circularlan": 4, "central": [4, 12, 22], "metaclass__": 4, "alia": 4, "abcmeta": 4, "abstract": [4, 21], "convert": [4, 8, 18, 23], "world": [4, 23, 26], "heading_at": 4, "head": [4, 7, 9, 14, 23], "given": [4, 6, 7, 8, 9, 14, 17, 18, 21], "width_at": 4, "width": [4, 9, 16, 18], "classmethod": [4, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21], "from_config": 4, "from": [4, 6, 7, 8, 9, 10, 14, 21, 22, 23, 24, 25], "json": [4, 22], "to_config": 4, "write": 4, "serial": 4, "on_lan": 4, "margin": [4, 18], "option": [4, 19, 21], "known": 4, "supplementari": [4, 14], "around": [4, 18, 23], "is_reachable_from": 4, "distanc": [4, 7, 18, 21, 23, 25], "l1": 4, "distance_with_head": 4, "heading_weight": 4, "weight": [4, 7, 14, 23, 25], "local_angl": 4, "long_offset": 4, "non": [4, 7, 8, 23], "normalis": [4, 23], "linetyp": 4, "side": [4, 10, 18], "start": [4, 6, 9, 13, 18, 19], "end": [4, 6, 8, 9, 12, 18, 21, 22], "default_width": 4, "line_typ": 4, "forbidden": 4, "speed_limit": 4, "20": [4, 10, 12, 23, 24], "prioriti": [4, 5], "go": [4, 6], "straight": [4, 10, 23], "new": [4, 5, 6, 7, 8, 9, 17, 21], "determin": [4, 5], "who": [4, 5], "ha": [4, 15, 16, 20, 21, 22, 23, 24, 25], "right": [4, 5, 7, 8, 10, 18, 22, 23], "wai": [4, 5, 12, 17, 24], "amplitud": 4, "pulsat": 4, "phase": 4, "sinusoid": 4, "oscil": 4, "initi": [4, 8, 9, 14, 15, 18, 21, 22], "radiu": 4, "start_phas": 4, "end_phas": 4, "clockwis": 4, "circl": 4, "arc": 4, "polylanefixedwidth": 4, "lane_point": 4, "fix": [4, 21, 23], "approxim": [4, 7], "hermit": 4, "polynomi": 4, "polylan": 4, "left_boundary_point": 4, "right_boundary_point": 4, "regulatedroad": 5, "give": [5, 6, 21, 23], "attribut": [5, 24], "On": 5, "rule": 5, "enforc": 5, "usual": [5, 17], "howev": [5, 17, 24, 25], "try": [5, 7], "predict": [5, 8, 9, 12, 22, 23, 24], "collis": [5, 10, 12, 13, 15, 16, 25, 26], "other": [5, 7, 8, 9, 10, 12, 15, 21, 22, 23], "is_conflict_poss": 5, "when": [5, 7, 8, 10], "case": [5, 6, 17, 23], "arbitr": 5, "respect_prior": 5, "yield": [5, 8, 24, 25], "until": [5, 9, 12, 21], "conflict": 5, "resolv": 5, "network": [5, 6, 8, 21, 23], "obstacl": [5, 6, 23], "np_random": [5, 6], "randomst": [5, 6], "record_histori": [5, 6], "road_object": [5, 6], "landmark": [5, 6], "np": [5, 6], "random": [5, 6, 9, 24], "number": [5, 6, 9, 16, 18, 23, 24, 26], "behaviour": [5, 6, 7, 12, 18, 21, 25], "recent": [5, 6], "should": [5, 6, 7, 17, 18, 21, 22, 23, 25], "displai": [5, 6, 9, 16, 18], "dt": [5, 6, 7, 8, 9], "entiti": [5, 6], "timestep": [5, 6, 7, 8, 9, 12, 21], "enforce_road_rul": 5, "find": [5, 6, 8], "them": [5, 18, 24, 25], "assign": 5, "stop": [5, 7, 9], "static": [5, 18], "v1": 5, "v2": 5, "second": [5, 6, 16, 21, 22], "topologi": [6, 21], "infrastructur": 6, "graph": 6, "repres": [6, 9, 18, 23], "node": [6, 8, 9], "It": [6, 7, 8, 9, 12, 13, 14, 16], "contain": [6, 21, 22, 23], "dictionari": [6, 21, 23, 24], "store": [6, 7, 9], "laneindex": 6, "string": 6, "identifi": 6, "integ": 6, "uniqu": 6, "lab": 6, "pub": 6, "obtain": [6, 24], "road_network": 6, "roadobject": [6, 18], "decid": [6, 7, 22], "action": [6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 21, 24, 26], "neighbour_vehicl": 6, "lane_index": [6, 7], "str": [6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 21, 23], "preced": [6, 7], "whose": [6, 7], "neighbour": [6, 10], "found": [6, 25], "look": [6, 23], "doesn": [6, 7], "t": [6, 7, 16, 23], "have": [6, 7, 14, 21, 25], "also": [6, 10, 13, 17, 18, 23, 24, 25], "anoth": 6, "project": [6, 7, 19, 20, 25], "consid": [6, 19, 23], "simpl": [7, 8, 12, 25], "realist": [7, 25], "dictat": 7, "idmvehicl": [7, 10, 13, 16, 21, 24], "driver": 7, "idm": 7, "dot": [7, 8, 9], "v": [7, 8, 9, 23, 25], "left": [7, 8, 18, 22, 23], "frac": [7, 8, 9, 25], "v_0": 7, "d_0": 7, "tv": 7, "sqrt": 7, "ab": 7, "front": [7, 8, 9, 25], "parametris": 7, "target_veloc": 7, "gap": 7, "time_w": 7, "jam": 7, "distance_w": 7, "b": [7, 25], "deceler": 7, "comfort_acc_max": 7, "comfort_acc_min": 7, "expon": 7, "discret": [7, 8, 26], "overal": 7, "brake": [7, 9, 25], "induc": 7, "accord": 7, "safe": [7, 13, 25], "do": [7, 17, 25], "cut": 7, "tild": 7, "_n": 7, "geq": 7, "b_": 7, "text": [7, 8, 25], "incent": 7, "possibli": 7, "underbrac": 7, "_c": 7, "a_c": 7, "_": [7, 22, 23, 24, 25], "p": [7, 8, 14, 25], "a_n": 7, "_o": 7, "a_o": 7, "old": 7, "a_": 7, "th": 7, "c": [7, 18, 23], "o": [7, 18], "befor": [7, 22], "n": 7, "after": [7, 22, 24], "polit": 7, "coeffici": [7, 25], "gain": [7, 8], "requir": [7, 20, 21], "trigger": 7, "lane_change_min_acc_gain": 7, "impos": 7, "dure": [7, 18], "lane_change_max_braking_impos": 7, "linearvehicl": 7, "linear": [7, 8], "featur": [7, 12, 14, 15, 25], "differ": [7, 17, 23], "lead": [7, 23, 25], "target_lane_index": [7, 8], "rout": [7, 8, 16], "enable_lane_chang": 7, "timer": 7, "polici": [7, 21, 22, 24, 25], "nearbi": [7, 23], "place": [7, 8, 9, 23], "cartesian": [7, 8, 9], "surfac": [7, 8, 9, 26], "horizont": [7, 8, 9], "acc_max": 7, "term": [7, 25], "delta_rang": 7, "chosen": [7, 9, 18], "randomli": [7, 9], "create_from": [7, 8, 9], "controlledvehicl": [7, 8], "exist": [7, 8, 9, 21, 23], "one": [7, 8, 9, 18, 22], "copi": [7, 8, 9, 17, 21], "same": [7, 8, 9], "now": [7, 13, 21, 22, 23], "support": [7, 22], "becaus": [7, 17], "all": [7, 12, 17, 21, 23], "own": [7, 12, 22, 26], "increas": [7, 23, 26], "ego_vehicl": 7, "front_vehicl": 7, "rear_vehicl": 7, "command": [7, 8, 9], "reach": [7, 10, 14], "maintain": [7, 13], "safeti": 7, "w": [7, 18, 23, 25], "doe": [7, 17, 24], "why": 7, "reason": [7, 12, 17], "about": [7, 17, 24], "even": [7, 18], "though": 7, "mai": [7, 23, 25], "s2": [7, 8], "desired_gap": 7, "being": [7, 9, 25], "change_lane_polici": 7, "frequenc": [7, 17, 18, 21], "close": [7, 17, 18, 21], "more": [7, 10, 12, 13, 14, 15, 16, 17, 21], "unsaf": 7, "candid": 7, "recover_from_stop": 7, "wrong": 7, "revers": 7, "maneuv": 7, "suggest": [7, 17], "recov": 7, "stuck": 7, "data": [7, 21, 23], "resp": 7, "lower": [7, 21], "higher": 7, "steering_control": [7, 8], "overrid": 7, "wheel": [7, 8, 9], "steering_featur": 7, "collect": [7, 19, 23], "arrai": [7, 18, 22, 23], "collect_data": 7, "output": [7, 17], "regress": 7, "aggressivevehicl": 7, "defensivevehicl": 7, "call": [8, 10, 12, 13, 14, 15, 16, 17, 18, 21], "proport": 8, "k_p": 8, "v_r": 8, "refer": [8, 21], "kp_a": 8, "speed_control": 8, "deriv": 8, "combin": 8, "invert": 8, "those": [8, 24], "v_": [8, 25], "k_": 8, "delta_": 8, "psi_": 8, "arcsin": 8, "psi_r": 8, "psi_l": 8, "psi": [8, 9, 25], "_r": 8, "l": [8, 9, 18, 23], "variat": 8, "lookahead": 8, "anticip": 8, "turn": 8, "yaw": 8, "rate": 8, "pilot": 8, "high": [8, 10, 13, 14], "cascad": 8, "plan_route_to": 8, "destin": [8, 12, 23, 25], "updat": [8, 9, 18, 20, 22, 23], "follow_road": 8, "At": 8, "switch": 8, "next": [8, 12, 21, 23], "get_routes_at_intersect": 8, "set_route_at_intersect": 8, "_to": 8, "eras": 8, "predict_trajectory_constant_spe": 8, "futur": [8, 9], "along": [8, 18, 23], "under": 8, "constant": [8, 21, 23], "mdpvehicl": 8, "handl": [8, 16, 18], "choos": [8, 25], "els": [8, 23], "forward": [8, 9, 18], "handler": 8, "index_to_spe": 8, "among": 8, "speed_to_index": 8, "closest": [8, 23], "assum": [8, 23], "avoid": [8, 10, 12, 13, 15, 16, 25], "search": 8, "input": [8, 9, 18], "speed_to_index_default": 8, "predict_trajectori": [8, 9], "action_dur": [8, 9], "trajectory_timestep": [8, 9], "durat": [8, 9, 10, 12, 15, 16, 24], "save": [8, 9, 24], "co": [9, 25], "beta": 9, "sin": [9, 25], "tan": 9, "slip": 9, "graviti": 9, "These": [9, 21, 23], "calcul": 9, "appear": 9, "predition_typ": 9, "constant_st": 9, "modifi": [9, 21], "propag": 9, "depend": [9, 17, 20, 21], "length": [9, 18], "default_initial_spe": 9, "23": 9, "25": [9, 23], "max_spe": 9, "40": [9, 10, 24], "min_spe": 9, "history_s": 9, "30": [9, 10, 24], "histori": 9, "create_random": 9, "lane_from": 9, "lane_to": 9, "lane_id": 9, "behind": [9, 23], "last": [9, 21, 23], "densiti": 9, "spawn": 9, "id": [9, 21], "ratio": 9, "repeat": 9, "integr": 9, "1st": 9, "respons": 9, "crash": [9, 16], "overridden": 9, "errat": 9, "complet": 9, "task": [10, 12, 13, 14, 16, 21, 24], "multilan": 10, "popul": [10, 21], "reward": [10, 12, 13, 14, 17, 21, 22, 23, 24, 26], "lanes_count": [10, 24], "vehicles_count": [10, 12, 22, 23, 24], "50": [10, 18, 24], "initial_spac": 10, "collision_reward": [10, 12, 15, 24], "receiv": 10, "collid": [10, 23], "reward_speed_rang": [10, 24], "linearli": 10, "highwayenv": 10, "high_speed_reward": [10, 24], "simulation_frequ": [10, 13, 14, 15, 16, 18, 24], "hz": [10, 13, 16, 17], "policy_frequ": [10, 13, 14, 15, 16, 23, 24], "other_vehicles_typ": [10, 13, 16, 24], "screen_width": [10, 12, 13, 14, 15, 16, 18, 24], "600": [10, 12, 13, 14, 15, 16, 24], "px": [10, 13, 16, 18], "screen_height": [10, 12, 13, 14, 15, 16, 18, 24], "150": [10, 13, 24], "centering_posit": [10, 12, 13, 14, 15, 16, 18, 23, 24], "scale": [10, 12, 13, 14, 15, 16, 18, 23, 24, 25], "show_trajectori": [10, 13, 14, 15, 16, 24], "render_ag": [10, 13, 14, 15, 16, 24], "offscreen_rend": [10, 13, 14, 15, 16, 24], "specif": [10, 12, 13, 14, 15, 16, 18, 23], "default_config": [10, 12, 13, 14, 15, 16, 21], "overload": [10, 12, 13, 14, 15, 16, 21, 25], "x15": 10, "speedup": 10, "fast": [10, 16, 24], "detail": [10, 19], "here": [10, 17, 21, 22, 23, 24], "render_mod": [10, 12, 13, 14, 15, 16, 21, 22, 23, 24], "stai": [10, 23], "rightmost": 10, "merg": [11, 24], "roundabout": [11, 18, 24], "park": [11, 23, 24, 25], "racetrack": [11, 24], "negoti": [12, 13], "quit": 12, "hard": 12, "up": [12, 26], "good": 12, "decentr": 12, "Of": 12, "cours": 12, "could": [12, 22, 25], "achiev": [12, 14, 21], "sophist": 12, "schedul": 12, "light": 12, "keep": [12, 25], "thing": 12, "rudimentari": 12, "wa": [12, 14, 18], "ad": [12, 21], "sometim": 12, "fail": 12, "result": [12, 24], "block": 12, "figur": [12, 22, 23, 24], "fine": 12, "my": [12, 24], "purpos": [12, 19], "sinc": [12, 22, 23, 25], "did": [12, 21], "happen": 12, "too": 12, "often": [12, 25], "expect": [12, 23, 25], "simpli": 12, "wait": 12, "episod": [12, 17, 21, 22, 24, 25], "situat": 12, "But": 12, "agre": 12, "ideal": 12, "welcom": [12, 21], "ani": [12, 14, 21, 23, 25], "contribut": [12, 19], "matter": 12, "presenc": [12, 15], "vx": [12, 14, 23], "vy": [12, 14, 23], "cos_h": [12, 14, 23], "sin_h": [12, 14, 23], "features_rang": [12, 23], "100": [12, 14, 23], "absolut": [12, 23], "flatten": 12, "observe_intent": [12, 23], "13": [12, 23], "o1": 12, "initial_vehicle_count": 12, "spawn_prob": 12, "intersectionenv": [12, 22], "normalize_reward": [12, 24], "intersection_env": 12, "termin": [12, 21, 25], "truncat": [12, 16, 17, 21, 22, 23, 24], "info": [12, 14, 17, 21, 22, 23, 24], "soon": 13, "approach": [13, 16, 23], "junction": 13, "incom": 13, "ramp": 13, "room": 13, "timetocollis": [13, 16, 23], "mergeenv": 13, "merge_env": 13, "goal": [14, 24, 26], "condit": [14, 24], "continu": [14, 15, 18, 26], "appropri": [14, 25], "kinematicsgo": 14, "normal": [14, 23, 25], "300": [14, 15], "7": [14, 15], "parkingenv": 14, "parking_env": 14, "credit": [14, 15], "munir": 14, "jojo": 14, "verg": 14, "idea": [14, 15], "define_spac": [14, 21], "compute_reward": 14, "achieved_go": 14, "desired_go": 14, "proxim": 14, "we": [14, 17, 18, 20, 21, 23, 25], "norm": [14, 25], "lp": 14, "kurtosi": 14, "he": 15, "mani": [15, 18], "thank": [15, 18], "supperted825": 15, "occupancygrid": [15, 23], "on_road": 15, "grid_siz": [15, 23], "18": [15, 23], "grid_step": [15, 23], "as_imag": [15, 23], "align_to_vehicle_ax": [15, 23], "lane_centering_cost": 15, "action_reward": 15, "other_vehicl": 15, "racetrackenv": 15, "racetrack_env": 15, "need": [15, 17], "skill": 15, "see": [15, 17, 21, 22, 23, 24, 25], "http": [15, 18, 19, 20], "github": [15, 19, 20], "com": [15, 18, 19, 20], "eleur": [15, 19, 20, 22, 24], "issu": 15, "231": 15, "flow": 16, "pass": [16, 22, 23], "possibl": [16, 17, 25], "incoming_vehicle_destin": 16, "11": 16, "run": [16, 17, 21, 22, 24], "still": [16, 21], "hasn": 16, "express": 16, "variabl": 16, "equal": 16, "pygam": [16, 18, 20], "window": [16, 18], "height": 16, "smaller": 16, "southeast": 16, "area": [16, 18], "roundaboutenv": 16, "roundabout_env": 16, "feel": 17, "free": 17, "entri": 17, "probabl": 17, "you": [17, 19, 21, 23], "instal": [17, 18, 21], "instead": [17, 25], "work": 17, "repositori": [17, 19], "code": [17, 22], "regist": [17, 26], "register_highway_env": [17, 21], "tend": 17, "sub": 17, "pair": [17, 21, 23], "argu": 17, "inde": 17, "revisit": 17, "scene": [17, 23, 26], "reus": 17, "past": 17, "struggl": 17, "address": [17, 25], "permut": 17, "invari": [17, 25], "architectur": [17, 24], "sensit": 17, "exampl": [17, 21, 22], "dqn": [17, 22, 23, 24], "sb3": [17, 24], "ppo": 17, "grayscal": [17, 26], "imag": [17, 18, 21, 24, 26], "cnn": [17, 24], "suitabl": 17, "singl": [17, 21, 22, 25], "typic": 17, "long": 17, "render": [17, 18, 21, 22, 23, 24], "intermedi": [17, 21], "wrap": [17, 21, 26], "recordvideo": [17, 21], "wrapper": [17, 21], "video_fold": 17, "episode_trigg": 17, "lambda": 17, "send": [17, 22], "unwrap": 17, "set_record_video_wrapp": 17, "ob": [17, 21, 22, 23, 24], "Its": 18, "dimens": 18, "640": 18, "480": 18, "roadsurfac": 18, "locat": [18, 23], "zoom": 18, "By": 18, "offset": [18, 23], "roadgraph": 18, "vehiclegraph": 18, "envview": 18, "viewer": [18, 21], "set_agent_displai": 18, "agent_displai": 18, "callback": 18, "dedic": 18, "set_agent_action_sequ": 18, "handle_ev": 18, "event": 18, "get_imag": 18, "rgb": [18, 23], "channel": [18, 23], "convent": [18, 25], "h": [18, 23], "window_posit": 18, "worldsurfac": 18, "size": [18, 22, 23, 24], "flag": 18, "surf": 18, "pix": 18, "pixel": 18, "pos2pix": 18, "vec2pix": 18, "vec": 18, "is_vis": 18, "visibl": 18, "param": [18, 23], "test": [18, 24], "move_display_window_to": 18, "origin": 18, "lanegraph": 18, "visual": 18, "stripe_spac": 18, "33": 18, "stripe": 18, "stripe_length": 18, "stripe_width": 18, "striped_lin": 18, "stripes_count": 18, "draw": 18, "continuous_curv": 18, "continuous_lin": 18, "would": [18, 23, 25], "drawn": 18, "draw_strip": 18, "display_traff": 18, "offscreen": 18, "without": 18, "screen": 18, "display_road_object": 18, "roadobjectgraph": 18, "object_": 18, "transpar": 18, "color": 18, "rotat": 18, "rectangl": [18, 23], "slightli": 18, "blit_rot": 18, "po": 18, "origin_po": 18, "show_rect": 18, "stackoverflow": 18, "54714144": 18, "gather": 19, "quick": [19, 24], "guid": 19, "custom": 19, "nut": 19, "bolt": 19, "packag": 19, "pleas": 19, "piec": 19, "bibtex": 19, "misc": 19, "author": 19, "titl": [19, 22], "year": 19, "2018": 19, "publish": 19, "journal": 19, "howpublish": 19, "url": 19, "python3": 20, "graphic": [20, 26], "itself": 20, "manual": [20, 21, 26], "sudo": 20, "apt": 20, "python": [20, 21, 22], "dev": 20, "libsdl": 20, "image1": 20, "mixer1": 20, "ttf2": 20, "libsdl1": 20, "libsmpeg": 20, "numpi": 20, "subvers": 20, "libportmidi": 20, "ffmpeg": 20, "libswscal": 20, "libavformat": 20, "libavcodec": 20, "libfreetype6": 20, "gcc": 20, "recommend": 20, "anaconda": 20, "To": [20, 21, 22], "latest": 20, "pip": 20, "user": 20, "git": 20, "pull": 21, "request": 21, "your_env": 21, "py": [21, 22], "yourenv": 21, "inherit": 21, "function": [21, 24, 25], "choic": [21, 25], "_make_road": 21, "self": [21, 22], "field": [21, 22, 23], "action_typ": [21, 23, 24], "freeli": 21, "part": [21, 23], "config_kei": 21, "onc": 21, "other_valu": 21, "__init__": 21, "entry_point": 21, "registr": 21, "hook": 21, "reinstal": 21, "setup": 21, "altern": 21, "That": 21, "themselv": 21, "variou": 21, "involv": 21, "perception_dist": 21, "200": [21, 24], "present": 21, "_reward": [21, 25], "associ": 21, "multi": [21, 26], "vector": 21, "aggreg": 21, "scalar": 21, "insid": [21, 25], "reward_nam": 21, "reward_valu": 21, "_is_termin": 21, "check": [21, 23], "_is_trunc": 21, "_info": 21, "addit": 21, "seed": [21, 22, 24], "prng": 21, "_reset": 21, "_simul": 21, "Will": 21, "_automatic_rend": 21, "ongo": 21, "whole": 21, "video": [21, 22, 24], "been": [21, 22, 25], "captur": 21, "simplifi": 21, "distant": 21, "remov": 21, "meant": 21, "load": [21, 24], "preserv": 21, "optim": [21, 25], "change_vehicl": 21, "vehicle_class_path": 21, "path": [21, 22], "multiagentwrapp": 21, "obstyp": 21, "acttyp": 21, "modular": 21, "transform": 21, "overwritten": 21, "version": 22, "rgb_arrai": [22, 23, 24], "sake": 22, "visualis": 22, "matplotlib": [22, 23, 24], "pyplot": [22, 23, 24], "plt": [22, 23, 24], "inlin": [22, 23, 24], "imshow": [22, 23, 24], "green": 22, "show": [22, 23, 24], "640x480": [22, 23, 24], "ax": [22, 23, 24], "accept": 22, "standard": 22, "ax1": 22, "ax2": 22, "subplot": [22, 23], "nrow": 22, "set_titl": 22, "action_1": 22, "action_2": 22, "what": [22, 23], "As": 22, "far": 22, "multiagentobserv": 22, "observation_config": 22, "pprint": [22, 24], "90797305": 22, "3125": 22, "10906096": 22, "04341291": 22, "33000726": 22, "dtype": 22, "float32": 22, "pseudo": 22, "train": 22, "dummi": 22, "rl": [22, 24], "algorithm": 22, "transit": 22, "def": 22, "next_ob": 22, "dispatch": 22, "obs_i": 22, "action_i": 22, "next_obs_i": 22, "zip": 22, "cd": 22, "script": [22, 24], "evalu": 22, "env_multi_ag": 22, "dqnagent": 22, "ego_attention_2h": 22, "3000": 22, "27": 23, "observation_factori": 23, "kinematicobserv": 23, "f": 23, "v_y": [23, 25], "12": 23, "22": 23, "row": 23, "within": 23, "05": 23, "04": 23, "75": 23, "08": 23, "675": 23, "222": 23, "105": 23, "9": 23, "025": 23, "rel": 23, "except": 23, "075": 23, "172": 23, "065": 23, "fewer": 23, "placehold": 23, "fill": 23, "zero": 23, "detect": 23, "disambigu": 23, "radian": 23, "trigonometr": 23, "cos_d": 23, "sin_d": 23, "long_": 23, "off": 23, "lat_": 23, "ang_": 23, "angular": 23, "sort": 23, "print": 23, "19849771": 23, "17327027": 23, "40577605": 23, "0777458": 23, "6178002": 23, "05545885": 23, "8213279": 23, "06065813": 23, "10840534": 23, "05941435": 23, "09407181": 23, "17338553": 23, "05116639": 23, "grayscaleobserv": 23, "observation_shap": 23, "sum": 23, "stack_siz": 23, "customari": 23, "128": 23, "64": 23, "2989": 23, "5870": 23, "1140": 23, "fig": 23, "ncol": 23, "figsiz": 23, "enumer": 23, "flat": 23, "cmap": 23, "get_cmap": 23, "grai": 23, "1200x500": 23, "three": 23, "actions_index": [23, 24], "occupancygridobserv": 23, "shape": 23, "discretis": 23, "cell": 23, "resolut": 23, "like": 23, "timetocollisionobserv": 23, "hot": 23, "encod": 23, "over": 23, "bin": 23, "25m": 23, "infti": 23, "middl": 23, "bottom": 23, "horizon": 23, "lidarobserv": 23, "divid": 23, "sector": 23, "per": 23, "column": 23, "nearest": 23, "compon": 23, "south": 23, "west": 23, "meter": 23, "awai": 23, "toward": 23, "1m": 23, "maximum_rang": 23, "84": 23, "see_behind": 23, "include_obstacl": 23, "min": [23, 25], "max": [23, 25], "shuffl": 23, "normalize_ob": 23, "df": 23, "datafram": 23, "real": 23, "min_x": 23, "max_x": 23, "min_i": 23, "max_i": 23, "step_x": 23, "step_i": 23, "align": 23, "pos_to_index": 23, "otherwis": 23, "alreadi": 23, "fill_road_layer_by_lan": 23, "layer_index": 23, "lane_perception_dist": 23, "onroad": 23, "offroad": 23, "iter": 23, "regularli": 23, "waypoint": 23, "larg": 23, "small": 23, "fill_road_layer_by_cel": 23, "kinematicsgoalobserv": 23, "exitobserv": 23, "exit_env": 23, "exit": 23, "creation": 24, "ego_spac": 24, "initial_lane_id": 24, "lane_change_reward": 24, "offroad_termin": 24, "real_time_rend": 24, "right_lane_reward": 24, "vehicles_dens": 24, "effect": 24, "librari": 24, "openai": 24, "baselin": 24, "stabl": 24, "baselines3": 24, "mlp": 24, "stable_baselines3": 24, "mlppolici": 24, "policy_kwarg": 24, "net_arch": 24, "256": 24, "learning_r": 24, "5e": 24, "buffer_s": 24, "15000": 24, "learning_start": 24, "batch_siz": 24, "32": 24, "gamma": 24, "train_freq": 24, "gradient_step": 24, "target_update_interv": 24, "verbos": 24, "tensorboard_log": 24, "highway_dqn": 24, "2e4": 24, "_state": 24, "25mn": 24, "laptop": 24, "fp": 24, "14": 24, "better": 24, "vanilla": 24, "q": 24, "extens": 24, "doubl": 24, "duel": 24, "priorit": 24, "improv": 24, "faq": 24, "notebook": 24, "few": 24, "opd": 24, "tutori": 24, "written": 24, "rlss": 24, "demonstr": 24, "principl": 24, "her": 24, "cross": 24, "challeng": 25, "problem": 25, "particular": 25, "wish": 25, "aspect": 25, "straightforward": 25, "adequ": 25, "emerg": 25, "perspect": 25, "robust": 25, "against": 25, "uncertain": 25, "focu": 25, "progress": 25, "quickli": 25, "bound": 25, "shift": 25, "practic": 25, "benefici": 25, "forbid": 25, "neg": 25, "encourag": 25, "prefer": 25, "earli": 25, "caus": 25, "risk": 25, "suffer": 25, "satisfi": 25, "penalti": 25, "collision_penalti": 25, "replac": 25, "s_g": 25, "v_x": 25, "x_g": 25, "y_g": 25, "psi_g": 25, "sum_i": 25, "w_i": 25, "x_i": 25, "euclidean": 25, "narrow": 25, "spike": 25, "occup": 26, "grid": 26, "lidar": 26, "api": 26, "meta": 26, "your": 26, "file": 26, "profit": 26}, "objects": {"highway_env": [[21, 0, 0, "-", "__init__"]], "highway_env.__init__": [[21, 1, 1, "", "register_highway_envs"]], "highway_env.envs.common": [[21, 0, 0, "-", "abstract"], [1, 0, 0, "-", "action"], [18, 0, 0, "-", "graphics"], [23, 0, 0, "-", "observation"]], "highway_env.envs.common.abstract": [[21, 2, 1, "", "AbstractEnv"], [21, 2, 1, "", "MultiAgentWrapper"]], "highway_env.envs.common.abstract.AbstractEnv": [[21, 3, 1, "", "PERCEPTION_DISTANCE"], [21, 4, 1, "", "_automatic_rendering"], [21, 4, 1, "", "_info"], [21, 4, 1, "", "_is_terminated"], [21, 4, 1, "", "_is_truncated"], [21, 4, 1, "", "_reset"], [21, 4, 1, "", "_reward"], [21, 4, 1, "", "_rewards"], [21, 4, 1, "", "_simulate"], [21, 4, 1, "", "change_vehicles"], [21, 4, 1, "", "close"], [21, 4, 1, "", "default_config"], [21, 4, 1, "", "define_spaces"], [21, 4, 1, "", "render"], [21, 4, 1, "", "reset"], [21, 4, 1, "", "simplify"], [21, 4, 1, "", "step"], [21, 5, 1, "", "vehicle"]], "highway_env.envs.common.abstract.MultiAgentWrapper": [[21, 4, 1, "", "step"]], "highway_env.envs.common.action": [[1, 2, 1, "", "ActionType"], [1, 2, 1, "", "ContinuousAction"], [1, 2, 1, "", "DiscreteAction"], [1, 2, 1, "", "DiscreteMetaAction"], [1, 2, 1, "", "MultiAgentAction"]], "highway_env.envs.common.action.ActionType": [[1, 4, 1, "", "act"], [1, 5, 1, "", "controlled_vehicle"], [1, 4, 1, "", "get_available_actions"], [1, 4, 1, "", "space"], [1, 5, 1, "", "vehicle_class"]], "highway_env.envs.common.action.ContinuousAction": [[1, 3, 1, "", "ACCELERATION_RANGE"], [1, 3, 1, "", "STEERING_RANGE"], [1, 4, 1, "", "act"], [1, 4, 1, "", "space"], [1, 5, 1, "", "vehicle_class"]], "highway_env.envs.common.action.DiscreteAction": [[1, 4, 1, "", "act"], [1, 4, 1, "", "space"]], "highway_env.envs.common.action.DiscreteMetaAction": [[1, 3, 1, "", "ACTIONS_ALL"], [1, 3, 1, "", "ACTIONS_LAT"], [1, 3, 1, "", "ACTIONS_LONGI"], [1, 4, 1, "", "act"], [1, 4, 1, "", "get_available_actions"], [1, 4, 1, "", "space"], [1, 5, 1, "", "vehicle_class"]], "highway_env.envs.common.action.MultiAgentAction": [[1, 4, 1, "", "act"], [1, 4, 1, "", "get_available_actions"], [1, 4, 1, "", "space"], [1, 5, 1, "", "vehicle_class"]], "highway_env.envs.common.graphics": [[18, 2, 1, "", "EnvViewer"]], "highway_env.envs.common.graphics.EnvViewer": [[18, 4, 1, "", "close"], [18, 4, 1, "", "display"], [18, 4, 1, "", "get_image"], [18, 4, 1, "", "handle_events"], [18, 4, 1, "", "set_agent_action_sequence"], [18, 4, 1, "", "set_agent_display"], [18, 4, 1, "", "window_position"]], "highway_env.envs.common.observation": [[23, 2, 1, "", "ExitObservation"], [23, 2, 1, "", "GrayscaleObservation"], [23, 2, 1, "", "KinematicObservation"], [23, 2, 1, "", "KinematicsGoalObservation"], [23, 2, 1, "", "OccupancyGridObservation"]], "highway_env.envs.common.observation.ExitObservation": [[23, 4, 1, "", "observe"]], "highway_env.envs.common.observation.GrayscaleObservation": [[23, 4, 1, "", "observe"], [23, 4, 1, "", "space"]], "highway_env.envs.common.observation.KinematicObservation": [[23, 4, 1, "", "normalize_obs"], [23, 4, 1, "", "observe"], [23, 4, 1, "", "space"]], "highway_env.envs.common.observation.KinematicsGoalObservation": [[23, 4, 1, "", "observe"], [23, 4, 1, "", "space"]], "highway_env.envs.common.observation.OccupancyGridObservation": [[23, 4, 1, "", "fill_road_layer_by_cell"], [23, 4, 1, "", "fill_road_layer_by_lanes"], [23, 4, 1, "", "normalize"], [23, 4, 1, "", "observe"], [23, 4, 1, "", "pos_to_index"], [23, 4, 1, "", "space"]], "highway_env.envs.highway_env": [[10, 2, 1, "", "HighwayEnv"]], "highway_env.envs.highway_env.HighwayEnv": [[10, 4, 1, "", "default_config"]], "highway_env.envs.intersection_env": [[12, 2, 1, "", "IntersectionEnv"]], "highway_env.envs.intersection_env.IntersectionEnv": [[12, 4, 1, "", "default_config"], [12, 4, 1, "", "step"]], "highway_env.envs.merge_env": [[13, 2, 1, "", "MergeEnv"]], "highway_env.envs.merge_env.MergeEnv": [[13, 4, 1, "", "default_config"]], "highway_env.envs.parking_env": [[14, 2, 1, "", "ParkingEnv"]], "highway_env.envs.parking_env.ParkingEnv": [[14, 4, 1, "", "compute_reward"], [14, 4, 1, "", "default_config"], [14, 4, 1, "", "define_spaces"]], "highway_env.envs.racetrack_env": [[15, 2, 1, "", "RacetrackEnv"]], "highway_env.envs.racetrack_env.RacetrackEnv": [[15, 4, 1, "", "default_config"]], "highway_env.envs.roundabout_env": [[16, 2, 1, "", "RoundaboutEnv"]], "highway_env.envs.roundabout_env.RoundaboutEnv": [[16, 4, 1, "", "default_config"]], "highway_env.road": [[18, 0, 0, "-", "graphics"], [4, 0, 0, "-", "lane"], [5, 0, 0, "-", "regulation"], [6, 0, 0, "-", "road"]], "highway_env.road.graphics": [[18, 2, 1, "", "LaneGraphics"], [18, 2, 1, "", "RoadGraphics"], [18, 2, 1, "", "RoadObjectGraphics"], [18, 2, 1, "", "WorldSurface"]], "highway_env.road.graphics.LaneGraphics": [[18, 3, 1, "", "STRIPE_LENGTH"], [18, 3, 1, "", "STRIPE_SPACING"], [18, 3, 1, "", "STRIPE_WIDTH"], [18, 4, 1, "", "continuous_curve"], [18, 4, 1, "", "continuous_line"], [18, 4, 1, "", "display"], [18, 4, 1, "", "draw_stripes"], [18, 4, 1, "", "striped_line"]], "highway_env.road.graphics.RoadGraphics": [[18, 4, 1, "", "display"], [18, 4, 1, "", "display_road_objects"], [18, 4, 1, "", "display_traffic"]], "highway_env.road.graphics.RoadObjectGraphics": [[18, 4, 1, "", "blit_rotate"], [18, 4, 1, "", "display"]], "highway_env.road.graphics.WorldSurface": [[18, 4, 1, "", "handle_event"], [18, 4, 1, "", "is_visible"], [18, 4, 1, "", "move_display_window_to"], [18, 4, 1, "", "pix"], [18, 4, 1, "", "pos2pix"], [18, 4, 1, "", "vec2pix"]], "highway_env.road.lane": [[4, 2, 1, "", "AbstractLane"], [4, 2, 1, "", "CircularLane"], [4, 2, 1, "", "LineType"], [4, 2, 1, "", "PolyLane"], [4, 2, 1, "", "PolyLaneFixedWidth"], [4, 2, 1, "", "SineLane"], [4, 2, 1, "", "StraightLane"]], "highway_env.road.lane.AbstractLane": [[4, 4, 1, "", "distance"], [4, 4, 1, "", "distance_with_heading"], [4, 4, 1, "", "from_config"], [4, 4, 1, "", "heading_at"], [4, 4, 1, "", "is_reachable_from"], [4, 4, 1, "", "local_angle"], [4, 4, 1, "", "local_coordinates"], [4, 3, 1, "", "metaclass__"], [4, 4, 1, "", "on_lane"], [4, 4, 1, "", "position"], [4, 4, 1, "", "to_config"], [4, 4, 1, "", "width_at"]], "highway_env.road.lane.CircularLane": [[4, 4, 1, "", "from_config"], [4, 4, 1, "", "heading_at"], [4, 4, 1, "", "local_coordinates"], [4, 4, 1, "", "position"], [4, 4, 1, "", "to_config"], [4, 4, 1, "", "width_at"]], "highway_env.road.lane.PolyLane": [[4, 4, 1, "", "to_config"], [4, 4, 1, "", "width_at"]], "highway_env.road.lane.PolyLaneFixedWidth": [[4, 4, 1, "", "from_config"], [4, 4, 1, "", "heading_at"], [4, 4, 1, "", "local_coordinates"], [4, 4, 1, "", "position"], [4, 4, 1, "", "to_config"], [4, 4, 1, "", "width_at"]], "highway_env.road.lane.SineLane": [[4, 4, 1, "", "from_config"], [4, 4, 1, "", "heading_at"], [4, 4, 1, "", "local_coordinates"], [4, 4, 1, "", "position"], [4, 4, 1, "", "to_config"]], "highway_env.road.lane.StraightLane": [[4, 4, 1, "", "from_config"], [4, 4, 1, "", "heading_at"], [4, 4, 1, "", "local_coordinates"], [4, 4, 1, "", "position"], [4, 4, 1, "", "to_config"], [4, 4, 1, "", "width_at"]], "highway_env.road.regulation": [[5, 2, 1, "", "RegulatedRoad"]], "highway_env.road.regulation.RegulatedRoad": [[5, 4, 1, "", "enforce_road_rules"], [5, 4, 1, "", "respect_priorities"], [5, 4, 1, "", "step"]], "highway_env.road.road": [[6, 2, 1, "", "Road"]], "highway_env.road.road.Road": [[6, 4, 1, "", "act"], [6, 4, 1, "", "neighbour_vehicles"], [6, 4, 1, "", "step"]], "highway_env.vehicle": [[7, 0, 0, "-", "behavior"], [8, 0, 0, "-", "controller"], [18, 0, 0, "-", "graphics"], [9, 0, 0, "-", "kinematics"]], "highway_env.vehicle.behavior": [[7, 2, 1, "", "AggressiveVehicle"], [7, 2, 1, "", "DefensiveVehicle"], [7, 2, 1, "", "IDMVehicle"], [7, 2, 1, "", "LinearVehicle"]], "highway_env.vehicle.behavior.AggressiveVehicle": [[7, 3, 1, "", "target_speed"]], "highway_env.vehicle.behavior.DefensiveVehicle": [[7, 3, 1, "", "target_speed"]], "highway_env.vehicle.behavior.IDMVehicle": [[7, 3, 1, "", "ACC_MAX"], [7, 3, 1, "", "COMFORT_ACC_MAX"], [7, 3, 1, "", "COMFORT_ACC_MIN"], [7, 3, 1, "", "DELTA"], [7, 3, 1, "", "DELTA_RANGE"], [7, 3, 1, "", "DISTANCE_WANTED"], [7, 3, 1, "", "TIME_WANTED"], [7, 4, 1, "", "acceleration"], [7, 4, 1, "", "act"], [7, 4, 1, "", "change_lane_policy"], [7, 4, 1, "", "create_from"], [7, 4, 1, "", "desired_gap"], [7, 4, 1, "", "mobil"], [7, 4, 1, "", "recover_from_stop"], [7, 4, 1, "", "step"], [7, 3, 1, "", "target_speed"]], "highway_env.vehicle.behavior.LinearVehicle": [[7, 3, 1, "", "TIME_WANTED"], [7, 4, 1, "", "acceleration"], [7, 4, 1, "", "act"], [7, 4, 1, "", "collect_data"], [7, 4, 1, "", "steering_control"], [7, 4, 1, "", "steering_features"], [7, 3, 1, "", "target_speed"]], "highway_env.vehicle.controller": [[8, 2, 1, "", "ControlledVehicle"], [8, 2, 1, "", "MDPVehicle"]], "highway_env.vehicle.controller.ControlledVehicle": [[8, 4, 1, "", "act"], [8, 4, 1, "", "create_from"], [8, 4, 1, "", "follow_road"], [8, 4, 1, "", "get_routes_at_intersection"], [8, 4, 1, "", "plan_route_to"], [8, 4, 1, "", "predict_trajectory_constant_speed"], [8, 4, 1, "", "set_route_at_intersection"], [8, 4, 1, "", "speed_control"], [8, 4, 1, "", "steering_control"], [8, 3, 1, "", "target_speed"]], "highway_env.vehicle.controller.MDPVehicle": [[8, 4, 1, "", "act"], [8, 4, 1, "", "index_to_speed"], [8, 4, 1, "", "predict_trajectory"], [8, 4, 1, "", "speed_to_index"], [8, 4, 1, "", "speed_to_index_default"], [8, 3, 1, "", "target_speed"]], "highway_env.vehicle.kinematics": [[9, 2, 1, "", "Vehicle"]], "highway_env.vehicle.kinematics.Vehicle": [[9, 3, 1, "", "DEFAULT_INITIAL_SPEEDS"], [9, 3, 1, "", "HISTORY_SIZE"], [9, 3, 1, "", "LENGTH"], [9, 3, 1, "", "MAX_SPEED"], [9, 3, 1, "", "MIN_SPEED"], [9, 3, 1, "", "WIDTH"], [9, 4, 1, "", "act"], [9, 4, 1, "", "create_from"], [9, 4, 1, "", "create_random"], [9, 4, 1, "", "predict_trajectory"], [9, 4, 1, "", "step"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "property", "Python property"]}, "titleterms": {"404": 0, "page": 0, "Not": 0, "found": 0, "action": [1, 22], "continu": 1, "discret": 1, "meta": 1, "manual": 1, "control": [1, 8, 22], "api": [1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21, 23], "bibliographi": 2, "dynam": 3, "road": [3, 5, 6], "vehicl": [3, 21, 22, 23], "lane": 4, "regul": 5, "behavior": 7, "longitudin": [7, 8], "later": [7, 8], "posit": 8, "head": 8, "kinemat": [9, 17, 23], "highwai": [10, 17, 19], "usag": [10, 12, 13, 14, 15, 16], "default": [10, 12, 13, 14, 15, 16], "configur": [10, 12, 13, 14, 15, 16, 21, 23, 24], "faster": 10, "variant": 10, "The": [11, 22], "environ": [11, 17, 21, 24, 25], "intersect": 12, "merg": 13, "park": 14, "racetrack": 15, "roundabout": 16, "frequent": 17, "ask": 17, "question": 17, "when": 17, "i": [17, 23], "try": 17, "make": [17, 21, 24], "an": [17, 24], "get": [17, 24], "error": 17, "gymnasium": 17, "namenotfound": 17, "doesn": 17, "t": 17, "exist": 17, "train": [17, 24], "agent": [17, 22, 24], "us": 17, "observ": [17, 22, 23], "mlp": 17, "model": 17, "result": 17, "polici": 17, "optim": 17, "why": 17, "my": 17, "video": 17, "ar": 17, "too": 17, "fast": 17, "have": 17, "low": 17, "framer": 17, "graphic": 18, "world": 18, "surfac": 18, "scene": [18, 21], "welcom": 19, "env": 19, "": 19, "document": 19, "how": 19, "cite": 19, "thi": 19, "work": 19, "instal": 20, "prerequisit": 20, "ubuntu": 20, "window": 20, "10": 20, "stabl": 20, "releas": 20, "develop": 20, "version": 20, "your": 21, "own": 21, "set": [21, 22], "up": [21, 22], "file": 21, "creat": 21, "regist": 21, "profit": 21, "multi": 22, "increas": 22, "number": 22, "chang": 22, "space": 22, "wrap": 22, "exampl": [23, 24], "grayscal": 23, "imag": 23, "illustr": 23, "stack": 23, "mechan": 23, "occup": 23, "grid": 23, "presenc": 23, "featur": 23, "one": 23, "close": 23, "north": 23, "farther": 23, "east": 23, "v_x": 23, "drive": 23, "same": 23, "speed": 23, "ego": 23, "bit": 23, "slower": 23, "time": 23, "collis": 23, "lidar": 23, "start": 24, "all": 24, "googl": 24, "colab": 24, "reward": 25, "most": 25, "goal": 25, "user": 26, "guid": 26}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinxcontrib.bibtex": 9, "sphinx": 60}, "alltitles": {"404": [[0, "id1"]], "Page Not Found": [[0, "page-not-found"]], "Actions": [[1, "actions"]], "Continuous Actions": [[1, "continuous-actions"]], "Discrete Actions": [[1, "discrete-actions"]], "Discrete Meta-Actions": [[1, "discrete-meta-actions"]], "Manual control": [[1, "manual-control"]], "API": [[1, "module-highway_env.envs.common.action"], [4, "module-highway_env.road.lane"], [5, "module-highway_env.road.regulation"], [6, "module-highway_env.road.road"], [7, "module-highway_env.vehicle.behavior"], [8, "module-highway_env.vehicle.controller"], [9, "module-highway_env.vehicle.kinematics"], [10, "api"], [12, "api"], [13, "api"], [14, "api"], [15, "api"], [16, "api"], [18, "module-highway_env.envs.common.graphics"], [21, "module-highway_env.__init__"], [23, "module-highway_env.envs.common.observation"]], "Bibliography": [[2, "bibliography"]], "Dynamics": [[3, "dynamics"]], "Roads": [[3, "roads"]], "Vehicles": [[3, "vehicles"]], "Lane": [[4, "lane"]], "Road regulation": [[5, "road-regulation"]], "Road": [[6, "road"]], "Behavior": [[7, "behavior"]], "Longitudinal Behavior": [[7, "longitudinal-behavior"]], "Lateral Behavior": [[7, "lateral-behavior"]], "Control": [[8, "control"]], "Longitudinal controller": [[8, "longitudinal-controller"]], "Lateral controller": [[8, "lateral-controller"]], "Position control": [[8, "position-control"]], "Heading control": [[8, "heading-control"]], "Kinematics": [[9, "kinematics"], [23, "kinematics"]], "Highway": [[10, "highway"]], "Usage": [[10, "usage"], [12, "usage"], [13, "usage"], [14, "usage"], [15, "usage"], [16, "usage"]], "Default configuration": [[10, "default-configuration"], [12, "default-configuration"], [13, "default-configuration"], [14, "default-configuration"], [15, "default-configuration"], [16, "default-configuration"]], "Faster variant": [[10, "faster-variant"]], "The environments": [[11, "the-environments"]], "Intersection": [[12, "intersection"]], "Merge": [[13, "merge"]], "Parking": [[14, "parking"]], "Racetrack": [[15, "racetrack"]], "Roundabout": [[16, "roundabout"]], "Frequently Asked Questions": [[17, "frequently-asked-questions"]], "When I try to make an environment, I get an error gymnasium.error.NameNotFound: Environment highway doesn't exist.": [[17, "when-i-try-to-make-an-environment-i-get-an-error-gymnasium-error-namenotfound-environment-highway-doesn-t-exist"]], "I try to train an agent using the Kinematics Observation and an MLP model, but the resulting policy is not optimal. Why?": [[17, "i-try-to-train-an-agent-using-the-kinematics-observation-and-an-mlp-model-but-the-resulting-policy-is-not-optimal-why"]], "My videos are too fast / have a low framerate.": [[17, "my-videos-are-too-fast-have-a-low-framerate"]], "Graphics": [[18, "id1"]], "World surface": [[18, "world-surface"]], "Scene graphics": [[18, "scene-graphics"]], "Welcome to highway-env\u2019s documentation!": [[19, "welcome-to-highway-env-s-documentation"]], "How to cite this work?": [[19, "how-to-cite-this-work"]], "Installation": [[20, "installation"]], "Prerequisites": [[20, "prerequisites"]], "Ubuntu": [[20, "ubuntu"]], "Windows 10": [[20, "windows-10"]], "Stable release": [[20, "stable-release"]], "Development version": [[20, "development-version"]], "Make your own environment": [[21, "make-your-own-environment"]], "Set up files": [[21, "set-up-files"]], "Create the scene": [[21, "create-the-scene"]], "Create the vehicles": [[21, "create-the-vehicles"]], "Make the environment configurable": [[21, "make-the-environment-configurable"]], "Register the environment": [[21, "register-the-environment"]], "Profit": [[21, "profit"]], "The Multi-Agent setting": [[22, "the-multi-agent-setting"]], "Increase the number of controlled vehicles": [[22, "increase-the-number-of-controlled-vehicles"]], "Change the action space": [[22, "change-the-action-space"]], "Change the observation space": [[22, "change-the-observation-space"]], "Wrapping it up": [[22, "wrapping-it-up"]], "Observations": [[23, "id1"]], "Example configuration": [[23, "example-configuration"], [23, "grayscale-example-configuration"], [23, "id4"], [23, "id5"], [23, "id6"]], "Grayscale Image": [[23, "grayscale-image"]], "Illustration of the stack mechanism": [[23, "illustration-of-the-stack-mechanism"]], "Occupancy grid": [[23, "occupancy-grid"]], "presence feature: one vehicle is close to the north, and one is farther to the east.": [[23, "id7"]], "v_x feature: the north vehicle drives at the same speed as the ego-vehicle, and the east vehicle a bit slower": [[23, "id8"]], "Time to collision": [[23, "time-to-collision"]], "Lidar": [[23, "lidar"]], "the Lidar observation": [[23, "id9"]], "Getting Started": [[24, "getting-started"]], "Making an environment": [[24, "making-an-environment"]], "All the environments": [[24, "all-the-environments"]], "Configuring an environment": [[24, "configuring-an-environment"]], "Training an agent": [[24, "training-an-agent"]], "Examples on Google Colab": [[24, "examples-on-google-colab"]], "Rewards": [[25, "rewards"]], "Most environments": [[25, "most-environments"]], "Goal environments": [[25, "goal-environments"]], "User Guide": [[26, "user-guide"]]}, "indexentries": {"acceleration_range (highway_env.envs.common.action.continuousaction attribute)": [[1, "highway_env.envs.common.action.ContinuousAction.ACCELERATION_RANGE"]], "actions_all (highway_env.envs.common.action.discretemetaaction attribute)": [[1, "highway_env.envs.common.action.DiscreteMetaAction.ACTIONS_ALL"]], "actions_lat (highway_env.envs.common.action.discretemetaaction attribute)": [[1, "highway_env.envs.common.action.DiscreteMetaAction.ACTIONS_LAT"]], "actions_longi (highway_env.envs.common.action.discretemetaaction attribute)": [[1, "highway_env.envs.common.action.DiscreteMetaAction.ACTIONS_LONGI"]], "actiontype (class in highway_env.envs.common.action)": [[1, "highway_env.envs.common.action.ActionType"]], "continuousaction (class in highway_env.envs.common.action)": [[1, "highway_env.envs.common.action.ContinuousAction"]], "discreteaction (class in highway_env.envs.common.action)": [[1, "highway_env.envs.common.action.DiscreteAction"]], "discretemetaaction (class in highway_env.envs.common.action)": [[1, "highway_env.envs.common.action.DiscreteMetaAction"]], "multiagentaction (class in highway_env.envs.common.action)": [[1, "highway_env.envs.common.action.MultiAgentAction"]], "steering_range (highway_env.envs.common.action.continuousaction attribute)": [[1, "highway_env.envs.common.action.ContinuousAction.STEERING_RANGE"]], "act() (highway_env.envs.common.action.actiontype method)": [[1, "highway_env.envs.common.action.ActionType.act"]], "act() (highway_env.envs.common.action.continuousaction method)": [[1, "highway_env.envs.common.action.ContinuousAction.act"]], "act() (highway_env.envs.common.action.discreteaction method)": [[1, "highway_env.envs.common.action.DiscreteAction.act"]], "act() (highway_env.envs.common.action.discretemetaaction method)": [[1, "highway_env.envs.common.action.DiscreteMetaAction.act"]], "act() (highway_env.envs.common.action.multiagentaction method)": [[1, "highway_env.envs.common.action.MultiAgentAction.act"]], "controlled_vehicle (highway_env.envs.common.action.actiontype property)": [[1, "highway_env.envs.common.action.ActionType.controlled_vehicle"]], "get_available_actions() (highway_env.envs.common.action.actiontype method)": [[1, "highway_env.envs.common.action.ActionType.get_available_actions"]], "get_available_actions() (highway_env.envs.common.action.discretemetaaction method)": [[1, "highway_env.envs.common.action.DiscreteMetaAction.get_available_actions"]], "get_available_actions() (highway_env.envs.common.action.multiagentaction method)": [[1, "highway_env.envs.common.action.MultiAgentAction.get_available_actions"]], "highway_env.envs.common.action": [[1, "module-highway_env.envs.common.action"]], "module": [[1, "module-highway_env.envs.common.action"], [4, "module-highway_env.road.lane"], [5, "module-highway_env.road.regulation"], [6, "module-highway_env.road.road"], [7, "module-highway_env.vehicle.behavior"], [8, "module-highway_env.vehicle.controller"], [9, "module-highway_env.vehicle.kinematics"], [18, "module-highway_env.envs.common.graphics"], [18, "module-highway_env.road.graphics"], [18, "module-highway_env.vehicle.graphics"], [21, "module-highway_env.__init__"], [21, "module-highway_env.envs.common.abstract"], [23, "module-highway_env.envs.common.observation"]], "space() (highway_env.envs.common.action.actiontype method)": [[1, "highway_env.envs.common.action.ActionType.space"]], "space() (highway_env.envs.common.action.continuousaction method)": [[1, "highway_env.envs.common.action.ContinuousAction.space"]], "space() (highway_env.envs.common.action.discreteaction method)": [[1, "highway_env.envs.common.action.DiscreteAction.space"]], "space() (highway_env.envs.common.action.discretemetaaction method)": [[1, "highway_env.envs.common.action.DiscreteMetaAction.space"]], "space() (highway_env.envs.common.action.multiagentaction method)": [[1, "highway_env.envs.common.action.MultiAgentAction.space"]], "vehicle_class (highway_env.envs.common.action.actiontype property)": [[1, "highway_env.envs.common.action.ActionType.vehicle_class"]], "vehicle_class (highway_env.envs.common.action.continuousaction property)": [[1, "highway_env.envs.common.action.ContinuousAction.vehicle_class"]], "vehicle_class (highway_env.envs.common.action.discretemetaaction property)": [[1, "highway_env.envs.common.action.DiscreteMetaAction.vehicle_class"]], "vehicle_class (highway_env.envs.common.action.multiagentaction property)": [[1, "highway_env.envs.common.action.MultiAgentAction.vehicle_class"]], "abstractlane (class in highway_env.road.lane)": [[4, "highway_env.road.lane.AbstractLane"]], "circularlane (class in highway_env.road.lane)": [[4, "highway_env.road.lane.CircularLane"]], "linetype (class in highway_env.road.lane)": [[4, "highway_env.road.lane.LineType"]], "polylane (class in highway_env.road.lane)": [[4, "highway_env.road.lane.PolyLane"]], "polylanefixedwidth (class in highway_env.road.lane)": [[4, "highway_env.road.lane.PolyLaneFixedWidth"]], "sinelane (class in highway_env.road.lane)": [[4, "highway_env.road.lane.SineLane"]], "straightlane (class in highway_env.road.lane)": [[4, "highway_env.road.lane.StraightLane"]], "distance() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.distance"]], "distance_with_heading() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.distance_with_heading"]], "from_config() (highway_env.road.lane.abstractlane class method)": [[4, "highway_env.road.lane.AbstractLane.from_config"]], "from_config() (highway_env.road.lane.circularlane class method)": [[4, "highway_env.road.lane.CircularLane.from_config"]], "from_config() (highway_env.road.lane.polylanefixedwidth class method)": [[4, "highway_env.road.lane.PolyLaneFixedWidth.from_config"]], "from_config() (highway_env.road.lane.sinelane class method)": [[4, "highway_env.road.lane.SineLane.from_config"]], "from_config() (highway_env.road.lane.straightlane class method)": [[4, "highway_env.road.lane.StraightLane.from_config"]], "heading_at() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.heading_at"]], "heading_at() (highway_env.road.lane.circularlane method)": [[4, "highway_env.road.lane.CircularLane.heading_at"]], "heading_at() (highway_env.road.lane.polylanefixedwidth method)": [[4, "highway_env.road.lane.PolyLaneFixedWidth.heading_at"]], "heading_at() (highway_env.road.lane.sinelane method)": [[4, "highway_env.road.lane.SineLane.heading_at"]], "heading_at() (highway_env.road.lane.straightlane method)": [[4, "highway_env.road.lane.StraightLane.heading_at"]], "highway_env.road.lane": [[4, "module-highway_env.road.lane"]], "is_reachable_from() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.is_reachable_from"]], "local_angle() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.local_angle"]], "local_coordinates() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.local_coordinates"]], "local_coordinates() (highway_env.road.lane.circularlane method)": [[4, "highway_env.road.lane.CircularLane.local_coordinates"]], "local_coordinates() (highway_env.road.lane.polylanefixedwidth method)": [[4, "highway_env.road.lane.PolyLaneFixedWidth.local_coordinates"]], "local_coordinates() (highway_env.road.lane.sinelane method)": [[4, "highway_env.road.lane.SineLane.local_coordinates"]], "local_coordinates() (highway_env.road.lane.straightlane method)": [[4, "highway_env.road.lane.StraightLane.local_coordinates"]], "metaclass__ (highway_env.road.lane.abstractlane attribute)": [[4, "highway_env.road.lane.AbstractLane.metaclass__"]], "on_lane() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.on_lane"]], "position() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.position"]], "position() (highway_env.road.lane.circularlane method)": [[4, "highway_env.road.lane.CircularLane.position"]], "position() (highway_env.road.lane.polylanefixedwidth method)": [[4, "highway_env.road.lane.PolyLaneFixedWidth.position"]], "position() (highway_env.road.lane.sinelane method)": [[4, "highway_env.road.lane.SineLane.position"]], "position() (highway_env.road.lane.straightlane method)": [[4, "highway_env.road.lane.StraightLane.position"]], "to_config() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.to_config"]], "to_config() (highway_env.road.lane.circularlane method)": [[4, "highway_env.road.lane.CircularLane.to_config"]], "to_config() (highway_env.road.lane.polylane method)": [[4, "highway_env.road.lane.PolyLane.to_config"]], "to_config() (highway_env.road.lane.polylanefixedwidth method)": [[4, "highway_env.road.lane.PolyLaneFixedWidth.to_config"]], "to_config() (highway_env.road.lane.sinelane method)": [[4, "highway_env.road.lane.SineLane.to_config"]], "to_config() (highway_env.road.lane.straightlane method)": [[4, "highway_env.road.lane.StraightLane.to_config"]], "width_at() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.width_at"]], "width_at() (highway_env.road.lane.circularlane method)": [[4, "highway_env.road.lane.CircularLane.width_at"]], "width_at() (highway_env.road.lane.polylane method)": [[4, "highway_env.road.lane.PolyLane.width_at"]], "width_at() (highway_env.road.lane.polylanefixedwidth method)": [[4, "highway_env.road.lane.PolyLaneFixedWidth.width_at"]], "width_at() (highway_env.road.lane.straightlane method)": [[4, "highway_env.road.lane.StraightLane.width_at"]], "regulatedroad (class in highway_env.road.regulation)": [[5, "highway_env.road.regulation.RegulatedRoad"]], "enforce_road_rules() (highway_env.road.regulation.regulatedroad method)": [[5, "highway_env.road.regulation.RegulatedRoad.enforce_road_rules"]], "highway_env.road.regulation": [[5, "module-highway_env.road.regulation"]], "respect_priorities() (highway_env.road.regulation.regulatedroad static method)": [[5, "highway_env.road.regulation.RegulatedRoad.respect_priorities"]], "step() (highway_env.road.regulation.regulatedroad method)": [[5, "highway_env.road.regulation.RegulatedRoad.step"]], "road (class in highway_env.road.road)": [[6, "highway_env.road.road.Road"]], "act() (highway_env.road.road.road method)": [[6, "highway_env.road.road.Road.act"]], "highway_env.road.road": [[6, "module-highway_env.road.road"]], "neighbour_vehicles() (highway_env.road.road.road method)": [[6, "highway_env.road.road.Road.neighbour_vehicles"]], "step() (highway_env.road.road.road method)": [[6, "highway_env.road.road.Road.step"]], "acc_max (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.ACC_MAX"]], "aggressivevehicle (class in highway_env.vehicle.behavior)": [[7, "highway_env.vehicle.behavior.AggressiveVehicle"]], "comfort_acc_max (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.COMFORT_ACC_MAX"]], "comfort_acc_min (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.COMFORT_ACC_MIN"]], "delta (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.DELTA"]], "delta_range (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.DELTA_RANGE"]], "distance_wanted (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.DISTANCE_WANTED"]], "defensivevehicle (class in highway_env.vehicle.behavior)": [[7, "highway_env.vehicle.behavior.DefensiveVehicle"]], "idmvehicle (class in highway_env.vehicle.behavior)": [[7, "highway_env.vehicle.behavior.IDMVehicle"]], "linearvehicle (class in highway_env.vehicle.behavior)": [[7, "highway_env.vehicle.behavior.LinearVehicle"]], "time_wanted (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.TIME_WANTED"]], "time_wanted (highway_env.vehicle.behavior.linearvehicle attribute)": [[7, "highway_env.vehicle.behavior.LinearVehicle.TIME_WANTED"]], "acceleration() (highway_env.vehicle.behavior.idmvehicle method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.acceleration"]], "acceleration() (highway_env.vehicle.behavior.linearvehicle method)": [[7, "highway_env.vehicle.behavior.LinearVehicle.acceleration"]], "act() (highway_env.vehicle.behavior.idmvehicle method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.act"]], "act() (highway_env.vehicle.behavior.linearvehicle method)": [[7, "highway_env.vehicle.behavior.LinearVehicle.act"]], "change_lane_policy() (highway_env.vehicle.behavior.idmvehicle method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.change_lane_policy"]], "collect_data() (highway_env.vehicle.behavior.linearvehicle method)": [[7, "highway_env.vehicle.behavior.LinearVehicle.collect_data"]], "create_from() (highway_env.vehicle.behavior.idmvehicle class method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.create_from"]], "desired_gap() (highway_env.vehicle.behavior.idmvehicle method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.desired_gap"]], "highway_env.vehicle.behavior": [[7, "module-highway_env.vehicle.behavior"]], "mobil() (highway_env.vehicle.behavior.idmvehicle method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.mobil"]], "recover_from_stop() (highway_env.vehicle.behavior.idmvehicle method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.recover_from_stop"]], "steering_control() (highway_env.vehicle.behavior.linearvehicle method)": [[7, "highway_env.vehicle.behavior.LinearVehicle.steering_control"]], "steering_features() (highway_env.vehicle.behavior.linearvehicle method)": [[7, "highway_env.vehicle.behavior.LinearVehicle.steering_features"]], "step() (highway_env.vehicle.behavior.idmvehicle method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.step"]], "target_speed (highway_env.vehicle.behavior.aggressivevehicle attribute)": [[7, "highway_env.vehicle.behavior.AggressiveVehicle.target_speed"]], "target_speed (highway_env.vehicle.behavior.defensivevehicle attribute)": [[7, "highway_env.vehicle.behavior.DefensiveVehicle.target_speed"]], "target_speed (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.target_speed"]], "target_speed (highway_env.vehicle.behavior.linearvehicle attribute)": [[7, "highway_env.vehicle.behavior.LinearVehicle.target_speed"]], "controlledvehicle (class in highway_env.vehicle.controller)": [[8, "highway_env.vehicle.controller.ControlledVehicle"]], "mdpvehicle (class in highway_env.vehicle.controller)": [[8, "highway_env.vehicle.controller.MDPVehicle"]], "act() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.act"]], "act() (highway_env.vehicle.controller.mdpvehicle method)": [[8, "highway_env.vehicle.controller.MDPVehicle.act"]], "create_from() (highway_env.vehicle.controller.controlledvehicle class method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.create_from"]], "follow_road() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.follow_road"]], "get_routes_at_intersection() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.get_routes_at_intersection"]], "highway_env.vehicle.controller": [[8, "module-highway_env.vehicle.controller"]], "index_to_speed() (highway_env.vehicle.controller.mdpvehicle method)": [[8, "highway_env.vehicle.controller.MDPVehicle.index_to_speed"]], "plan_route_to() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.plan_route_to"]], "predict_trajectory() (highway_env.vehicle.controller.mdpvehicle method)": [[8, "highway_env.vehicle.controller.MDPVehicle.predict_trajectory"]], "predict_trajectory_constant_speed() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.predict_trajectory_constant_speed"]], "set_route_at_intersection() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.set_route_at_intersection"]], "speed_control() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.speed_control"]], "speed_to_index() (highway_env.vehicle.controller.mdpvehicle method)": [[8, "highway_env.vehicle.controller.MDPVehicle.speed_to_index"]], "speed_to_index_default() (highway_env.vehicle.controller.mdpvehicle class method)": [[8, "highway_env.vehicle.controller.MDPVehicle.speed_to_index_default"]], "steering_control() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.steering_control"]], "target_speed (highway_env.vehicle.controller.controlledvehicle attribute)": [[8, "highway_env.vehicle.controller.ControlledVehicle.target_speed"]], "target_speed (highway_env.vehicle.controller.mdpvehicle attribute)": [[8, "highway_env.vehicle.controller.MDPVehicle.target_speed"]], "default_initial_speeds (highway_env.vehicle.kinematics.vehicle attribute)": [[9, "highway_env.vehicle.kinematics.Vehicle.DEFAULT_INITIAL_SPEEDS"]], "history_size (highway_env.vehicle.kinematics.vehicle attribute)": [[9, "highway_env.vehicle.kinematics.Vehicle.HISTORY_SIZE"]], "length (highway_env.vehicle.kinematics.vehicle attribute)": [[9, "highway_env.vehicle.kinematics.Vehicle.LENGTH"]], "max_speed (highway_env.vehicle.kinematics.vehicle attribute)": [[9, "highway_env.vehicle.kinematics.Vehicle.MAX_SPEED"]], "min_speed (highway_env.vehicle.kinematics.vehicle attribute)": [[9, "highway_env.vehicle.kinematics.Vehicle.MIN_SPEED"]], "vehicle (class in highway_env.vehicle.kinematics)": [[9, "highway_env.vehicle.kinematics.Vehicle"]], "width (highway_env.vehicle.kinematics.vehicle attribute)": [[9, "highway_env.vehicle.kinematics.Vehicle.WIDTH"]], "act() (highway_env.vehicle.kinematics.vehicle method)": [[9, "highway_env.vehicle.kinematics.Vehicle.act"]], "create_from() (highway_env.vehicle.kinematics.vehicle class method)": [[9, "highway_env.vehicle.kinematics.Vehicle.create_from"]], "create_random() (highway_env.vehicle.kinematics.vehicle class method)": [[9, "highway_env.vehicle.kinematics.Vehicle.create_random"]], "highway_env.vehicle.kinematics": [[9, "module-highway_env.vehicle.kinematics"]], "predict_trajectory() (highway_env.vehicle.kinematics.vehicle method)": [[9, "highway_env.vehicle.kinematics.Vehicle.predict_trajectory"]], "step() (highway_env.vehicle.kinematics.vehicle method)": [[9, "highway_env.vehicle.kinematics.Vehicle.step"]], "highwayenv (class in highway_env.envs.highway_env)": [[10, "highway_env.envs.highway_env.HighwayEnv"]], "default_config() (highway_env.envs.highway_env.highwayenv class method)": [[10, "highway_env.envs.highway_env.HighwayEnv.default_config"]], "intersectionenv (class in highway_env.envs.intersection_env)": [[12, "highway_env.envs.intersection_env.IntersectionEnv"]], "default_config() (highway_env.envs.intersection_env.intersectionenv class method)": [[12, "highway_env.envs.intersection_env.IntersectionEnv.default_config"]], "step() (highway_env.envs.intersection_env.intersectionenv method)": [[12, "highway_env.envs.intersection_env.IntersectionEnv.step"]], "mergeenv (class in highway_env.envs.merge_env)": [[13, "highway_env.envs.merge_env.MergeEnv"]], "default_config() (highway_env.envs.merge_env.mergeenv class method)": [[13, "highway_env.envs.merge_env.MergeEnv.default_config"]], "parkingenv (class in highway_env.envs.parking_env)": [[14, "highway_env.envs.parking_env.ParkingEnv"]], "compute_reward() (highway_env.envs.parking_env.parkingenv method)": [[14, "highway_env.envs.parking_env.ParkingEnv.compute_reward"]], "default_config() (highway_env.envs.parking_env.parkingenv class method)": [[14, "highway_env.envs.parking_env.ParkingEnv.default_config"]], "define_spaces() (highway_env.envs.parking_env.parkingenv method)": [[14, "highway_env.envs.parking_env.ParkingEnv.define_spaces"]], "racetrackenv (class in highway_env.envs.racetrack_env)": [[15, "highway_env.envs.racetrack_env.RacetrackEnv"]], "default_config() (highway_env.envs.racetrack_env.racetrackenv class method)": [[15, "highway_env.envs.racetrack_env.RacetrackEnv.default_config"]], "roundaboutenv (class in highway_env.envs.roundabout_env)": [[16, "highway_env.envs.roundabout_env.RoundaboutEnv"]], "default_config() (highway_env.envs.roundabout_env.roundaboutenv class method)": [[16, "highway_env.envs.roundabout_env.RoundaboutEnv.default_config"]], "envviewer (class in highway_env.envs.common.graphics)": [[18, "highway_env.envs.common.graphics.EnvViewer"]], "lanegraphics (class in highway_env.road.graphics)": [[18, "highway_env.road.graphics.LaneGraphics"]], "roadgraphics (class in highway_env.road.graphics)": [[18, "highway_env.road.graphics.RoadGraphics"]], "roadobjectgraphics (class in highway_env.road.graphics)": [[18, "highway_env.road.graphics.RoadObjectGraphics"]], "stripe_length (highway_env.road.graphics.lanegraphics attribute)": [[18, "highway_env.road.graphics.LaneGraphics.STRIPE_LENGTH"]], "stripe_spacing (highway_env.road.graphics.lanegraphics attribute)": [[18, "highway_env.road.graphics.LaneGraphics.STRIPE_SPACING"]], "stripe_width (highway_env.road.graphics.lanegraphics attribute)": [[18, "highway_env.road.graphics.LaneGraphics.STRIPE_WIDTH"]], "worldsurface (class in highway_env.road.graphics)": [[18, "highway_env.road.graphics.WorldSurface"]], "blit_rotate() (highway_env.road.graphics.roadobjectgraphics static method)": [[18, "highway_env.road.graphics.RoadObjectGraphics.blit_rotate"]], "close() (highway_env.envs.common.graphics.envviewer method)": [[18, "highway_env.envs.common.graphics.EnvViewer.close"]], "continuous_curve() (highway_env.road.graphics.lanegraphics class method)": [[18, "highway_env.road.graphics.LaneGraphics.continuous_curve"]], "continuous_line() (highway_env.road.graphics.lanegraphics class method)": [[18, "highway_env.road.graphics.LaneGraphics.continuous_line"]], "display() (highway_env.envs.common.graphics.envviewer method)": [[18, "highway_env.envs.common.graphics.EnvViewer.display"]], "display() (highway_env.road.graphics.lanegraphics class method)": [[18, "highway_env.road.graphics.LaneGraphics.display"]], "display() (highway_env.road.graphics.roadgraphics static method)": [[18, "highway_env.road.graphics.RoadGraphics.display"]], "display() (highway_env.road.graphics.roadobjectgraphics class method)": [[18, "highway_env.road.graphics.RoadObjectGraphics.display"]], "display_road_objects() (highway_env.road.graphics.roadgraphics static method)": [[18, "highway_env.road.graphics.RoadGraphics.display_road_objects"]], "display_traffic() (highway_env.road.graphics.roadgraphics static method)": [[18, "highway_env.road.graphics.RoadGraphics.display_traffic"]], "draw_stripes() (highway_env.road.graphics.lanegraphics class method)": [[18, "highway_env.road.graphics.LaneGraphics.draw_stripes"]], "get_image() (highway_env.envs.common.graphics.envviewer method)": [[18, "highway_env.envs.common.graphics.EnvViewer.get_image"]], "handle_event() (highway_env.road.graphics.worldsurface method)": [[18, "highway_env.road.graphics.WorldSurface.handle_event"]], "handle_events() (highway_env.envs.common.graphics.envviewer method)": [[18, "highway_env.envs.common.graphics.EnvViewer.handle_events"]], "highway_env.envs.common.graphics": [[18, "module-highway_env.envs.common.graphics"]], "highway_env.road.graphics": [[18, "module-highway_env.road.graphics"]], "highway_env.vehicle.graphics": [[18, "module-highway_env.vehicle.graphics"]], "is_visible() (highway_env.road.graphics.worldsurface method)": [[18, "highway_env.road.graphics.WorldSurface.is_visible"]], "move_display_window_to() (highway_env.road.graphics.worldsurface method)": [[18, "highway_env.road.graphics.WorldSurface.move_display_window_to"]], "pix() (highway_env.road.graphics.worldsurface method)": [[18, "highway_env.road.graphics.WorldSurface.pix"]], "pos2pix() (highway_env.road.graphics.worldsurface method)": [[18, "highway_env.road.graphics.WorldSurface.pos2pix"]], "set_agent_action_sequence() (highway_env.envs.common.graphics.envviewer method)": [[18, "highway_env.envs.common.graphics.EnvViewer.set_agent_action_sequence"]], "set_agent_display() (highway_env.envs.common.graphics.envviewer method)": [[18, "highway_env.envs.common.graphics.EnvViewer.set_agent_display"]], "striped_line() (highway_env.road.graphics.lanegraphics class method)": [[18, "highway_env.road.graphics.LaneGraphics.striped_line"]], "vec2pix() (highway_env.road.graphics.worldsurface method)": [[18, "highway_env.road.graphics.WorldSurface.vec2pix"]], "window_position() (highway_env.envs.common.graphics.envviewer method)": [[18, "highway_env.envs.common.graphics.EnvViewer.window_position"]], "abstractenv (class in highway_env.envs.common.abstract)": [[21, "highway_env.envs.common.abstract.AbstractEnv"]], "multiagentwrapper (class in highway_env.envs.common.abstract)": [[21, "highway_env.envs.common.abstract.MultiAgentWrapper"]], "perception_distance (highway_env.envs.common.abstract.abstractenv attribute)": [[21, "highway_env.envs.common.abstract.AbstractEnv.PERCEPTION_DISTANCE"]], "_automatic_rendering() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._automatic_rendering"]], "_info() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._info"]], "_is_terminated() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._is_terminated"]], "_is_truncated() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._is_truncated"]], "_reset() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._reset"]], "_reward() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._reward"]], "_rewards() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._rewards"]], "_simulate() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._simulate"]], "change_vehicles() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.change_vehicles"]], "close() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.close"]], "default_config() (highway_env.envs.common.abstract.abstractenv class method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.default_config"]], "define_spaces() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.define_spaces"]], "highway_env.__init__": [[21, "module-highway_env.__init__"]], "highway_env.envs.common.abstract": [[21, "module-highway_env.envs.common.abstract"]], "register_highway_envs() (in module highway_env.__init__)": [[21, "highway_env.__init__.register_highway_envs"]], "render() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.render"]], "reset() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.reset"]], "simplify() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.simplify"]], "step() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.step"]], "step() (highway_env.envs.common.abstract.multiagentwrapper method)": [[21, "highway_env.envs.common.abstract.MultiAgentWrapper.step"]], "vehicle (highway_env.envs.common.abstract.abstractenv property)": [[21, "highway_env.envs.common.abstract.AbstractEnv.vehicle"]], "exitobservation (class in highway_env.envs.common.observation)": [[23, "highway_env.envs.common.observation.ExitObservation"]], "grayscaleobservation (class in highway_env.envs.common.observation)": [[23, "highway_env.envs.common.observation.GrayscaleObservation"]], "kinematicobservation (class in highway_env.envs.common.observation)": [[23, "highway_env.envs.common.observation.KinematicObservation"]], "kinematicsgoalobservation (class in highway_env.envs.common.observation)": [[23, "highway_env.envs.common.observation.KinematicsGoalObservation"]], "occupancygridobservation (class in highway_env.envs.common.observation)": [[23, "highway_env.envs.common.observation.OccupancyGridObservation"]], "fill_road_layer_by_cell() (highway_env.envs.common.observation.occupancygridobservation method)": [[23, "highway_env.envs.common.observation.OccupancyGridObservation.fill_road_layer_by_cell"]], "fill_road_layer_by_lanes() (highway_env.envs.common.observation.occupancygridobservation method)": [[23, "highway_env.envs.common.observation.OccupancyGridObservation.fill_road_layer_by_lanes"]], "highway_env.envs.common.observation": [[23, "module-highway_env.envs.common.observation"]], "normalize() (highway_env.envs.common.observation.occupancygridobservation method)": [[23, "highway_env.envs.common.observation.OccupancyGridObservation.normalize"]], "normalize_obs() (highway_env.envs.common.observation.kinematicobservation method)": [[23, "highway_env.envs.common.observation.KinematicObservation.normalize_obs"]], "observe() (highway_env.envs.common.observation.exitobservation method)": [[23, "highway_env.envs.common.observation.ExitObservation.observe"]], "observe() (highway_env.envs.common.observation.grayscaleobservation method)": [[23, "highway_env.envs.common.observation.GrayscaleObservation.observe"]], "observe() (highway_env.envs.common.observation.kinematicobservation method)": [[23, "highway_env.envs.common.observation.KinematicObservation.observe"]], "observe() (highway_env.envs.common.observation.kinematicsgoalobservation method)": [[23, "highway_env.envs.common.observation.KinematicsGoalObservation.observe"]], "observe() (highway_env.envs.common.observation.occupancygridobservation method)": [[23, "highway_env.envs.common.observation.OccupancyGridObservation.observe"]], "pos_to_index() (highway_env.envs.common.observation.occupancygridobservation method)": [[23, "highway_env.envs.common.observation.OccupancyGridObservation.pos_to_index"]], "space() (highway_env.envs.common.observation.grayscaleobservation method)": [[23, "highway_env.envs.common.observation.GrayscaleObservation.space"]], "space() (highway_env.envs.common.observation.kinematicobservation method)": [[23, "highway_env.envs.common.observation.KinematicObservation.space"]], "space() (highway_env.envs.common.observation.kinematicsgoalobservation method)": [[23, "highway_env.envs.common.observation.KinematicsGoalObservation.space"]], "space() (highway_env.envs.common.observation.occupancygridobservation method)": [[23, "highway_env.envs.common.observation.OccupancyGridObservation.space"]]}})
\ No newline at end of file
+Search.setIndex({"docnames": ["404", "actions/index", "bibliography/index", "dynamics/index", "dynamics/road/lane", "dynamics/road/regulation", "dynamics/road/road", "dynamics/vehicle/behavior", "dynamics/vehicle/controller", "dynamics/vehicle/kinematics", "environments/highway", "environments/index", "environments/intersection", "environments/merge", "environments/parking", "environments/racetrack", "environments/roundabout", "faq", "graphics/index", "index", "installation", "make_your_own", "multi_agent", "observations/index", "quickstart", "rewards/index", "user_guide"], "filenames": ["404.md", "actions/index.md", "bibliography/index.md", "dynamics/index.md", "dynamics/road/lane.md", "dynamics/road/regulation.md", "dynamics/road/road.md", "dynamics/vehicle/behavior.md", "dynamics/vehicle/controller.md", "dynamics/vehicle/kinematics.md", "environments/highway.md", "environments/index.md", "environments/intersection.md", "environments/merge.md", "environments/parking.md", "environments/racetrack.md", "environments/roundabout.md", "faq.md", "graphics/index.md", "index.md", "installation.md", "make_your_own.md", "multi_agent.md", "observations/index.md", "quickstart.md", "rewards/index.md", "user_guide.md"], "titles": ["404", "Actions", "Bibliography", "Dynamics", "Lane", "Road regulation", "Road", "Behavior", "Control", "Kinematics", "Highway", "The environments", "Intersection", "Merge", "Parking", "Racetrack", "Roundabout", "Frequently Asked Questions", "Graphics", "Welcome to highway-env\u2019s documentation!", "Installation", "Make your own environment", "The Multi-Agent setting", "Observations", "Getting Started", "Rewards", "User Guide"], "terms": {"similarli": 1, "observ": [1, 2, 10, 12, 13, 14, 15, 16, 21, 24, 25, 26], "sever": [1, 7, 10, 12, 17, 21, 23, 24], "type": [1, 4, 10, 12, 13, 14, 15, 16, 21, 22, 23, 24], "can": [1, 4, 6, 7, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25], "us": [1, 7, 8, 9, 14, 18, 19, 20, 21, 23, 24, 25], "everi": [1, 3, 25], "environ": [1, 3, 10, 12, 13, 14, 15, 16, 18, 19, 22, 23, 26], "thei": [1, 5, 7, 13, 18, 23, 25], "ar": [1, 3, 4, 5, 6, 7, 8, 9, 10, 18, 21, 22, 23, 24, 25], "defin": [1, 4, 6, 10, 12, 13, 14, 15, 16, 18, 21, 23, 24, 25], "modul": [1, 21, 23], "each": [1, 5, 6, 8, 9, 12, 17, 18, 22, 23], "come": [1, 12, 23], "default": [1, 7, 8, 9, 18, 21, 23, 24], "which": [1, 4, 5, 6, 7, 8, 12, 14, 17, 18, 20, 21, 22, 23, 24, 25], "chang": [1, 2, 4, 7, 8, 16, 17, 21, 23, 24, 26], "customis": [1, 23], "configur": [1, 18, 22, 25, 26], "For": [1, 6, 7, 17, 22, 23, 24], "instanc": [1, 4, 6, 7, 8, 9, 23, 24], "import": [1, 3, 17, 21, 22, 23, 24], "gymnasium": [1, 18, 21, 22, 23, 24], "gym": [1, 10, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 24], "env": [1, 10, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24], "make": [1, 2, 10, 12, 13, 14, 15, 16, 18, 19, 22, 23, 26], "highwai": [1, 11, 13, 15, 18, 20, 22, 23, 24], "v0": [1, 10, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 24], "config": [1, 4, 10, 12, 13, 14, 15, 16, 18, 21, 22, 23, 24], "continuousact": [1, 14, 15], "The": [1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 15, 16, 18, 19, 20, 21, 23, 24, 25, 26], "allow": [1, 7, 8, 21], "agent": [1, 10, 12, 13, 14, 15, 18, 21, 23, 25, 26], "directli": [1, 23, 25], "set": [1, 2, 4, 5, 6, 8, 14, 18, 23, 26], "low": [1, 8], "level": [1, 2, 4, 8, 17], "vehicl": [1, 2, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 24, 25, 26], "kinemat": [1, 2, 3, 6, 8, 10, 12, 22, 24, 26], "name": [1, 23], "throttl": [1, 8], "steer": [1, 7, 8, 9, 14], "angl": [1, 4, 7, 8, 9, 18, 23], "delta": [1, 7, 8, 9], "enabl": [1, 23], "disabl": 1, "through": [1, 2, 3, 5, 8, 21, 25], "longitudin": [1, 4, 9, 12, 15, 16, 18, 23], "later": [1, 4, 12, 15, 18, 23], "respect": [1, 7, 8, 18, 25], "thu": [1, 17, 25], "space": [1, 7, 9, 14, 18, 21, 23, 26], "either": 1, "1d": [1, 7], "2d": [1, 4, 7], "discreteact": 1, "i": [1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 21, 22, 24, 25], "uniform": [1, 8, 23], "quantiz": 1, "abov": 1, "actions_per_axi": 1, "paramet": [1, 4, 5, 6, 7, 8, 9, 12, 14, 18, 21, 23, 25], "step": [1, 5, 6, 7, 9, 12, 16, 17, 21, 22, 23, 24], "axi": [1, 7, 8, 9, 23], "separ": [1, 18], "discretemetaact": [1, 10, 12, 13, 16, 22, 24], "add": [1, 21], "layer": [1, 23], "speed": [1, 7, 8, 9, 10, 13, 14, 21, 25], "top": [1, 8, 23], "so": [1, 7, 13, 14, 17, 18, 21, 23], "ego": [1, 7, 10, 12, 13, 14, 16, 18, 21, 25], "automat": [1, 8, 16, 21], "follow": [1, 2, 6, 7, 8, 15, 16, 17, 18, 21, 23, 24], "road": [1, 4, 7, 8, 9, 10, 12, 13, 18, 21, 23, 25, 26], "desir": [1, 7, 8, 14, 21, 23, 25], "veloc": [1, 5, 7, 8, 23, 25], "Then": 1, "avail": [1, 10, 24], "consist": [1, 2], "target": [1, 5, 7, 8], "lane": [1, 2, 3, 5, 6, 7, 8, 9, 10, 16, 17, 18, 21, 22, 23, 24], "setpoint": 1, "full": [1, 24], "correspond": [1, 4, 8, 14, 17, 18, 21, 23], "actions_al": [1, 22], "0": [1, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25], "lane_left": 1, "1": [1, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 22, 23, 24, 25], "idl": [1, 23, 24], "2": [1, 2, 7, 8, 9, 10, 20, 22, 23, 24], "lane_right": 1, "3": [1, 7, 10, 12, 13, 15, 18, 20, 23, 24], "faster": [1, 8, 23], "4": [1, 7, 10, 15, 18, 23, 24], "slower": [1, 8], "some": [1, 5, 8, 13, 25], "might": 1, "alwai": [1, 18, 23], "edg": [1, 6], "acceler": [1, 7, 8, 9, 14], "decelr": 1, "beyond": 1, "maximum": [1, 7, 9, 21, 23, 25], "minimum": [1, 7, 9, 25], "list": [1, 3, 4, 5, 6, 7, 8, 9, 17, 18, 21, 23, 24], "access": [1, 13, 21, 24], "get_available_act": 1, "method": [1, 4, 5, 7, 8, 9, 16, 21, 25], "take": [1, 5, 7, 23, 24], "an": [1, 5, 6, 7, 8, 9, 12, 18, 19, 21, 22, 23, 25], "unavail": 1, "equival": 1, "intersect": [1, 5, 6, 8, 11, 24], "onli": [1, 7, 9, 21, 22, 24, 25], "while": [1, 9, 10, 13, 15, 16, 17, 21, 22, 24], "perform": [1, 7, 8, 12, 21, 23, 24], "track": [1, 8, 15], "simul": [1, 2, 7, 8, 9, 12, 17, 18, 21, 23], "manual_control": [1, 24], "true": [1, 4, 7, 10, 12, 13, 14, 15, 16, 17, 23, 24], "reset": [1, 17, 18, 21, 22, 23, 24], "done": [1, 16, 17, 18, 22, 23, 24], "fals": [1, 4, 5, 6, 10, 12, 13, 14, 15, 16, 17, 18, 22, 23, 24], "action_spac": [1, 17, 21], "sampl": [1, 17, 21], "ignor": 1, "direct": [1, 7, 8, 9, 23], "arrow": 1, "kei": [1, 16, 18, 23], "eventhandl": 1, "class": [1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21, 22, 23], "highway_env": [1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 24], "common": [1, 18, 21, 22, 23], "actiontyp": 1, "abstractenv": [1, 18, 21, 23], "kwarg": [1, 23], "sourc": [1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21, 23], "A": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 18, 21, 22, 23, 24], "specifi": [1, 8, 21, 25], "its": [1, 4, 6, 7, 8, 9, 16, 17, 22, 24], "definit": 1, "how": [1, 3, 7, 22, 24], "execut": [1, 7, 12, 21, 22], "properti": [1, 7, 8, 9, 21], "vehicle_class": [1, 21], "callabl": [1, 18], "abl": [1, 8, 17, 21], "must": [1, 6, 14, 18, 20, 21, 22, 24, 25], "return": [1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21, 22, 23, 25], "subclass": 1, "act": [1, 6, 7, 8, 9], "int": [1, 4, 6, 7, 8, 9, 12, 18, 21, 23, 24], "ndarrai": [1, 4, 7, 8, 9, 12, 14, 18, 21, 23], "none": [1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21, 23, 24], "most": [1, 5, 22, 26], "mechan": 1, "actual": [1, 6, 17, 22], "implement": [1, 4, 7, 8, 10, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 24], "where": [1, 6, 7, 8, 9, 14, 15, 21, 23, 25], "pre": 1, "process": [1, 2], "appli": [1, 8], "base": [1, 5, 7, 9, 24], "controlled_vehicl": [1, 15, 22, 24], "upon": 1, "If": [1, 7, 8, 9, 16, 19, 21, 23], "first": [1, 5, 17, 18, 21, 22, 23], "acceleration_rang": 1, "tupl": [1, 4, 6, 7, 8, 12, 18, 21, 22, 23], "float": [1, 4, 5, 6, 7, 8, 9, 12, 14, 18, 21, 23], "steering_rang": 1, "speed_rang": 1, "bool": [1, 4, 5, 6, 7, 12, 18, 21, 23], "dynam": [1, 5, 6, 7, 8, 9, 12, 21, 24, 26], "clip": [1, 23], "both": [1, 4, 7, 22, 23], "thi": [1, 4, 7, 10, 12, 13, 16, 17, 20, 21, 22, 23, 24, 25], "order": [1, 9, 17, 22, 23, 25], "interv": 1, "map": [1, 10, 23], "creat": [1, 4, 7, 8, 9, 18, 24, 26], "rang": [1, 7, 8, 9, 10, 23, 24, 25], "valu": [1, 16, 21, 23, 24], "m": [1, 4, 7, 8, 9, 10, 16, 18, 21, 23], "s\u00b2": 1, "rad": [1, 4, 7, 8], "reachabl": [1, 4, 9], "": [1, 5, 6, 7, 8, 9, 10, 12, 13, 16, 17, 18, 21, 22, 23, 24, 25], "whether": [1, 4, 5, 6, 7, 18, 21, 23], "e": [1, 2, 17], "friction": 1, "rather": [1, 25], "than": [1, 7, 17, 23, 25], "5": [1, 7, 9, 10, 12, 13, 14, 15, 16, 20, 22, 23, 24], "x": [1, 4, 9, 12, 14, 18, 23, 25], "7853981633974483": 1, "box": 1, "target_spe": [1, 7, 8], "sequenc": [1, 4, 7, 8, 9, 18, 23], "cruis": [1, 8], "point": [1, 2, 4], "includ": [1, 5, 6, 22], "index": [1, 6, 7, 8, 23], "label": 1, "actions_longi": 1, "actions_lat": 1, "get": [1, 4, 8, 20, 22, 23], "current": [1, 6, 8, 9, 20, 21, 23, 25], "boundari": 1, "maxim": [1, 7], "minim": [1, 7], "multiagentact": [1, 22], "action_config": [1, 22], "dict": [1, 4, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21, 23, 24], "awr": [2, 24], "17": [2, 24], "marcin": 2, "andrychowicz": 2, "filip": 2, "wolski": 2, "alex": 2, "rai": 2, "jona": 2, "schneider": 2, "rachel": 2, "fong": 2, "peter": 2, "welind": 2, "bob": 2, "mcgrew": 2, "josh": 2, "tobin": 2, "pieter": 2, "abbeel": 2, "wojciech": 2, "zaremba": 2, "hindsight": [2, 24], "experi": [2, 22, 24], "replai": [2, 24], "In": [2, 7, 10, 13, 16, 17, 21, 22, 23, 25], "advanc": 2, "neural": 2, "inform": [2, 14, 17, 21, 23], "system": [2, 4, 9, 12, 18], "2017": 2, "arxiv": 2, "1707": 2, "01495": 2, "hm08": [2, 24], "jean": 2, "fran": 2, "\u00e7": 2, "oi": 2, "hren": 2, "r": [2, 7, 8, 25], "\u00e9": 2, "mi": 2, "muno": 2, "optimist": 2, "plan": [2, 8, 16, 24], "determinist": [2, 24], "lectur": 2, "note": [2, 25], "comput": [2, 4, 7, 8, 21], "scienc": 2, "2008": 2, "kth07": [2, 7], "arn": 2, "kest": 2, "martin": 2, "treiber": 2, "dirk": 2, "helb": 2, "gener": [2, 5, 6, 17, 21, 22, 25], "model": [2, 3, 7, 8, 9, 21, 22, 24], "mobil": [2, 7], "car": 2, "transport": 2, "research": 2, "record": [2, 5, 6, 17], "2007": 2, "doi": 2, "10": [2, 7, 12, 23], "3141": 2, "1999": 2, "lm19": [2, 17, 24], "edouard": [2, 19], "leurent": [2, 19], "mercat": 2, "social": [2, 24], "attent": [2, 24], "autonom": [2, 19], "decis": [2, 7, 12, 19, 21], "dens": [2, 12], "traffic": [2, 12, 13, 16], "machin": 2, "learn": [2, 15, 24, 25], "drive": [2, 5, 6, 8, 9, 10, 13, 18, 19, 21, 24, 25], "workshop": 2, "thirti": 2, "third": 2, "confer": 2, "neurip": 2, "2019": [2, 24], "montreal": 2, "canada": 2, "decemb": 2, "1911": 2, "12250": 2, "mk": [2, 25], "15": [2, 10, 12, 13, 14, 15, 16, 17, 18, 23, 24, 25], "volodymyr": 2, "mnih": 2, "korai": 2, "kavukcuoglu": 2, "david": 2, "silver": 2, "andrei": 2, "rusu": 2, "joel": 2, "veness": 2, "marc": 2, "g": [2, 17], "bellemar": 2, "grave": 2, "riedmil": 2, "andrea": 2, "k": [2, 16, 18], "fidjeland": 2, "georg": 2, "ostrovski": 2, "stig": 2, "petersen": 2, "charl": 2, "beatti": 2, "amir": 2, "sadik": 2, "ioanni": 2, "antonogl": 2, "helen": 2, "king": 2, "dharshan": 2, "kumaran": 2, "daan": 2, "wierstra": 2, "shane": 2, "legg": 2, "demi": 2, "hassabi": 2, "human": 2, "control": [2, 3, 7, 14, 15, 16, 21, 26], "deep": [2, 24, 25], "reinforc": [2, 24, 25], "natur": [2, 23], "518": 2, "7540": 2, "529": 2, "533": 2, "2015": 2, "paltchedandrean17": [2, 9], "philip": 2, "polack": 2, "florent": 2, "altch": 2, "brigitt": 2, "d": [2, 7], "andr": 2, "novel": [2, 17], "bicycl": [2, 9], "feasibl": 2, "trajectori": [2, 5, 6, 8, 9, 24, 25], "ieee": 2, "intellig": [2, 7], "symposium": 2, "page": [2, 24], "6": [2, 7, 12, 16, 23], "8": [2, 23, 24], "qsmg17": [2, 17], "qi": 2, "hao": 2, "su": 2, "kaichun": 2, "mo": 2, "leonida": 2, "j": [2, 23], "guiba": 2, "pointnet": 2, "3d": 2, "classif": 2, "segment": 2, "1612": 2, "00593": 2, "thh00": [2, 7], "ansgar": 2, "henneck": 2, "congest": 2, "state": [2, 7, 8, 9, 17, 21, 22, 23, 25], "empir": 2, "microscop": 2, "physic": [2, 3], "review": 2, "statist": 2, "plasma": 2, "fluid": 2, "relat": 2, "interdisciplinari": 2, "topic": 2, "62": 2, "1805": 2, "1824": 2, "2000": 2, "describ": [3, 4, 5, 6, 10, 17, 19, 21, 22, 23], "move": [3, 9, 18, 23], "behav": [3, 5], "time": [3, 5, 7, 8, 16, 25, 26], "There": [3, 24], "two": [3, 5, 7, 8, 15, 17, 18, 22, 23, 25], "section": 3, "affect": 3, "descript": [3, 19, 23, 24], "behavior": [3, 5, 10, 12, 13, 16, 21, 24], "compos": [3, 6, 25], "roadnetwork": [3, 5, 6, 21], "regul": 3, "geometri": [4, 6, 21], "abstractlan": [4, 6, 18], "object": [4, 5, 6, 7, 8, 9, 10, 13, 18, 21, 23], "parametr": [4, 24], "center": [4, 7, 8, 9, 18, 23], "line": [4, 8, 18], "curv": [4, 24], "provid": [4, 8, 17, 18, 19, 21, 24], "local": [4, 6, 17, 18], "coordin": [4, 6, 18, 23], "convers": [4, 23], "between": [4, 5, 7, 8, 9, 18, 23, 25], "longi": 4, "lat": [4, 8, 18], "frenet": 4, "frame": [4, 17, 18, 21, 23], "global": 4, "y": [4, 9, 12, 14, 18, 20, 23, 25], "ensur": 4, "posit": [4, 6, 7, 9, 14, 18, 23], "local_coordin": 4, "main": [4, 13], "straightlan": 4, "sinelan": 4, "circularlan": 4, "central": [4, 12, 22], "metaclass__": 4, "alia": 4, "abcmeta": 4, "abstract": [4, 21], "convert": [4, 8, 18, 23], "world": [4, 23, 26], "heading_at": 4, "head": [4, 7, 9, 14, 23], "given": [4, 6, 7, 8, 9, 14, 17, 18, 21], "width_at": 4, "width": [4, 9, 16, 18], "classmethod": [4, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21], "from_config": 4, "from": [4, 6, 7, 8, 9, 10, 14, 21, 22, 23, 24, 25], "json": [4, 22], "to_config": 4, "write": 4, "serial": 4, "on_lan": 4, "margin": [4, 18], "option": [4, 19, 21], "known": 4, "supplementari": [4, 14], "around": [4, 18, 23], "is_reachable_from": 4, "distanc": [4, 7, 18, 21, 23, 25], "l1": 4, "distance_with_head": 4, "heading_weight": 4, "weight": [4, 7, 14, 23, 25], "local_angl": 4, "long_offset": 4, "non": [4, 7, 8, 23], "normalis": [4, 23], "linetyp": 4, "side": [4, 10, 18], "start": [4, 6, 9, 13, 18, 19], "end": [4, 6, 8, 9, 12, 18, 21, 22], "default_width": 4, "line_typ": 4, "forbidden": 4, "speed_limit": 4, "20": [4, 10, 12, 23, 24], "prioriti": [4, 5], "go": [4, 6], "straight": [4, 10, 23], "new": [4, 5, 6, 7, 8, 9, 17, 21], "determin": [4, 5], "who": [4, 5], "ha": [4, 15, 16, 20, 21, 22, 23, 24, 25], "right": [4, 5, 7, 8, 10, 18, 22, 23], "wai": [4, 5, 12, 17, 24], "amplitud": 4, "pulsat": 4, "phase": 4, "sinusoid": 4, "oscil": 4, "initi": [4, 8, 9, 14, 15, 18, 21, 22], "radiu": 4, "start_phas": 4, "end_phas": 4, "clockwis": 4, "circl": 4, "arc": 4, "polylanefixedwidth": 4, "lane_point": 4, "fix": [4, 21, 23], "approxim": [4, 7], "hermit": 4, "polynomi": 4, "polylan": 4, "left_boundary_point": 4, "right_boundary_point": 4, "regulatedroad": 5, "give": [5, 6, 21, 23], "attribut": [5, 24], "On": 5, "rule": 5, "enforc": 5, "usual": [5, 17], "howev": [5, 17, 24, 25], "try": [5, 7], "predict": [5, 8, 9, 12, 22, 23, 24], "collis": [5, 10, 12, 13, 15, 16, 25, 26], "other": [5, 7, 8, 9, 10, 12, 15, 21, 22, 23], "is_conflict_poss": 5, "when": [5, 7, 8, 10], "case": [5, 6, 17, 23], "arbitr": 5, "respect_prior": 5, "yield": [5, 8, 24, 25], "until": [5, 9, 12, 21], "conflict": 5, "resolv": 5, "network": [5, 6, 8, 21, 23], "obstacl": [5, 6, 23], "np_random": [5, 6], "randomst": [5, 6], "record_histori": [5, 6], "road_object": [5, 6], "landmark": [5, 6], "np": [5, 6], "random": [5, 6, 9, 24], "number": [5, 6, 9, 16, 18, 23, 24, 26], "behaviour": [5, 6, 7, 12, 18, 21, 25], "recent": [5, 6], "should": [5, 6, 7, 17, 18, 21, 22, 23, 25], "displai": [5, 6, 9, 16, 18], "dt": [5, 6, 7, 8, 9], "entiti": [5, 6], "timestep": [5, 6, 7, 8, 9, 12, 21], "enforce_road_rul": 5, "find": [5, 6, 8], "them": [5, 18, 24, 25], "assign": 5, "stop": [5, 7, 9], "static": [5, 18], "v1": 5, "v2": 5, "second": [5, 6, 16, 21, 22], "topologi": [6, 21], "infrastructur": 6, "graph": 6, "repres": [6, 9, 18, 23], "node": [6, 8, 9], "It": [6, 7, 8, 9, 12, 13, 14, 16], "contain": [6, 21, 22, 23], "dictionari": [6, 21, 23, 24], "store": [6, 7, 9], "laneindex": 6, "string": 6, "identifi": 6, "integ": 6, "uniqu": 6, "lab": 6, "pub": 6, "obtain": [6, 24], "road_network": 6, "roadobject": [6, 18], "decid": [6, 7, 22], "action": [6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 21, 24, 26], "neighbour_vehicl": 6, "lane_index": [6, 7], "str": [6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 21, 23], "preced": [6, 7], "whose": [6, 7], "neighbour": [6, 10], "found": [6, 25], "look": [6, 23], "doesn": [6, 7], "t": [6, 7, 16, 23], "have": [6, 7, 14, 21, 25], "also": [6, 10, 13, 17, 18, 23, 24, 25], "anoth": 6, "project": [6, 7, 19, 20, 25], "consid": [6, 19, 23], "simpl": [7, 8, 12, 25], "realist": [7, 25], "dictat": 7, "idmvehicl": [7, 10, 13, 16, 21, 24], "driver": 7, "idm": 7, "dot": [7, 8, 9], "v": [7, 8, 9, 23, 25], "left": [7, 8, 18, 22, 23], "frac": [7, 8, 9, 25], "v_0": 7, "d_0": 7, "tv": 7, "sqrt": 7, "ab": 7, "front": [7, 8, 9, 25], "parametris": 7, "target_veloc": 7, "gap": 7, "time_w": 7, "jam": 7, "distance_w": 7, "b": [7, 25], "deceler": 7, "comfort_acc_max": 7, "comfort_acc_min": 7, "expon": 7, "discret": [7, 8, 26], "overal": 7, "brake": [7, 9, 25], "induc": 7, "accord": 7, "safe": [7, 13, 25], "do": [7, 17, 25], "cut": 7, "tild": 7, "_n": 7, "geq": 7, "b_": 7, "text": [7, 8, 25], "incent": 7, "possibli": 7, "underbrac": 7, "_c": 7, "a_c": 7, "_": [7, 22, 23, 24, 25], "p": [7, 8, 14, 25], "a_n": 7, "_o": 7, "a_o": 7, "old": 7, "a_": 7, "th": 7, "c": [7, 18, 23], "o": [7, 18], "befor": [7, 22], "n": 7, "after": [7, 22, 24], "polit": 7, "coeffici": [7, 25], "gain": [7, 8], "requir": [7, 20, 21], "trigger": 7, "lane_change_min_acc_gain": 7, "impos": 7, "dure": [7, 18], "lane_change_max_braking_impos": 7, "linearvehicl": 7, "linear": [7, 8], "featur": [7, 12, 14, 15, 25], "differ": [7, 17, 23], "lead": [7, 23, 25], "target_lane_index": [7, 8], "rout": [7, 8, 16], "enable_lane_chang": 7, "timer": 7, "polici": [7, 21, 22, 24, 25], "nearbi": [7, 23], "place": [7, 8, 9, 23], "cartesian": [7, 8, 9], "surfac": [7, 8, 9, 26], "horizont": [7, 8, 9], "acc_max": 7, "term": [7, 25], "delta_rang": 7, "chosen": [7, 9, 18], "randomli": [7, 9], "create_from": [7, 8, 9], "controlledvehicl": [7, 8], "exist": [7, 8, 9, 21, 23], "one": [7, 8, 9, 18, 22], "copi": [7, 8, 9, 17, 21], "same": [7, 8, 9], "now": [7, 13, 21, 22, 23], "support": [7, 22], "becaus": [7, 17], "all": [7, 12, 17, 21, 23], "own": [7, 12, 22, 26], "increas": [7, 23, 26], "ego_vehicl": 7, "front_vehicl": 7, "rear_vehicl": 7, "command": [7, 8, 9], "reach": [7, 10, 14], "maintain": [7, 13], "safeti": 7, "w": [7, 18, 23, 25], "doe": [7, 17, 24], "why": 7, "reason": [7, 12, 17], "about": [7, 17, 24], "even": [7, 18], "though": 7, "mai": [7, 23, 25], "s2": [7, 8], "desired_gap": 7, "being": [7, 9, 25], "change_lane_polici": 7, "frequenc": [7, 17, 18, 21], "close": [7, 17, 18, 21], "more": [7, 10, 12, 13, 14, 15, 16, 17, 21], "unsaf": 7, "candid": 7, "recover_from_stop": 7, "wrong": 7, "revers": 7, "maneuv": 7, "suggest": [7, 17], "recov": 7, "stuck": 7, "data": [7, 21, 23], "resp": 7, "lower": [7, 21], "higher": 7, "steering_control": [7, 8], "overrid": 7, "wheel": [7, 8, 9], "steering_featur": 7, "collect": [7, 19, 23], "arrai": [7, 18, 22, 23], "collect_data": 7, "output": [7, 17], "regress": 7, "aggressivevehicl": 7, "defensivevehicl": 7, "call": [8, 10, 12, 13, 14, 15, 16, 17, 18, 21], "proport": 8, "k_p": 8, "v_r": 8, "refer": [8, 21], "kp_a": 8, "speed_control": 8, "deriv": 8, "combin": 8, "invert": 8, "those": [8, 24], "v_": [8, 25], "k_": 8, "delta_": 8, "psi_": 8, "arcsin": 8, "psi_r": 8, "psi_l": 8, "psi": [8, 9, 25], "_r": 8, "l": [8, 9, 18, 23], "variat": 8, "lookahead": 8, "anticip": 8, "turn": 8, "yaw": 8, "rate": 8, "pilot": 8, "high": [8, 10, 13, 14], "cascad": 8, "plan_route_to": 8, "destin": [8, 12, 23, 25], "updat": [8, 9, 18, 20, 22, 23], "follow_road": 8, "At": 8, "switch": 8, "next": [8, 12, 21, 23], "get_routes_at_intersect": 8, "set_route_at_intersect": 8, "_to": 8, "eras": 8, "predict_trajectory_constant_spe": 8, "futur": [8, 9], "along": [8, 18, 23], "under": 8, "constant": [8, 21, 23], "mdpvehicl": 8, "handl": [8, 16, 18], "choos": [8, 25], "els": [8, 23], "forward": [8, 9, 18], "handler": 8, "index_to_spe": 8, "among": 8, "speed_to_index": 8, "closest": [8, 23], "assum": [8, 23], "avoid": [8, 10, 12, 13, 15, 16, 25], "search": 8, "input": [8, 9, 18], "speed_to_index_default": 8, "predict_trajectori": [8, 9], "action_dur": [8, 9], "trajectory_timestep": [8, 9], "durat": [8, 9, 10, 12, 15, 16, 24], "save": [8, 9, 24], "co": [9, 25], "beta": 9, "sin": [9, 25], "tan": 9, "slip": 9, "graviti": 9, "These": [9, 21, 23], "calcul": 9, "appear": 9, "predition_typ": 9, "constant_st": 9, "modifi": [9, 21], "propag": 9, "depend": [9, 17, 20, 21], "length": [9, 18], "default_initial_spe": 9, "23": 9, "25": [9, 23], "max_spe": 9, "40": [9, 10, 24], "min_spe": 9, "history_s": 9, "30": [9, 10, 24], "histori": 9, "create_random": 9, "lane_from": 9, "lane_to": 9, "lane_id": 9, "behind": [9, 23], "last": [9, 21, 23], "densiti": 9, "spawn": 9, "id": [9, 21], "ratio": 9, "repeat": 9, "integr": 9, "1st": 9, "respons": 9, "crash": [9, 16], "overridden": 9, "errat": 9, "complet": 9, "task": [10, 12, 13, 14, 16, 21, 24], "multilan": 10, "popul": [10, 21], "reward": [10, 12, 13, 14, 17, 21, 22, 23, 24, 26], "lanes_count": [10, 24], "vehicles_count": [10, 12, 22, 23, 24], "50": [10, 18, 24], "initial_spac": 10, "collision_reward": [10, 12, 15, 24], "receiv": 10, "collid": [10, 23], "reward_speed_rang": [10, 24], "linearli": 10, "highwayenv": 10, "high_speed_reward": [10, 24], "simulation_frequ": [10, 13, 14, 15, 16, 18, 24], "hz": [10, 13, 16, 17], "policy_frequ": [10, 13, 14, 15, 16, 23, 24], "other_vehicles_typ": [10, 13, 16, 24], "screen_width": [10, 12, 13, 14, 15, 16, 18, 24], "600": [10, 12, 13, 14, 15, 16, 24], "px": [10, 13, 16, 18], "screen_height": [10, 12, 13, 14, 15, 16, 18, 24], "150": [10, 13, 24], "centering_posit": [10, 12, 13, 14, 15, 16, 18, 23, 24], "scale": [10, 12, 13, 14, 15, 16, 18, 23, 24, 25], "show_trajectori": [10, 13, 14, 15, 16, 24], "render_ag": [10, 13, 14, 15, 16, 24], "offscreen_rend": [10, 13, 14, 15, 16, 24], "specif": [10, 12, 13, 14, 15, 16, 18, 23], "default_config": [10, 12, 13, 14, 15, 16, 21], "overload": [10, 12, 13, 14, 15, 16, 21, 25], "x15": 10, "speedup": 10, "fast": [10, 16, 24], "detail": [10, 19], "here": [10, 17, 21, 22, 23, 24], "render_mod": [10, 12, 13, 14, 15, 16, 21, 22, 23, 24], "stai": [10, 23], "rightmost": 10, "merg": [11, 24], "roundabout": [11, 18, 24], "park": [11, 23, 24, 25], "racetrack": [11, 24], "negoti": [12, 13], "quit": 12, "hard": 12, "up": [12, 26], "good": 12, "decentr": 12, "Of": 12, "cours": 12, "could": [12, 22, 25], "achiev": [12, 14, 21], "sophist": 12, "schedul": 12, "light": 12, "keep": [12, 25], "thing": 12, "rudimentari": 12, "wa": [12, 14, 18], "ad": [12, 21], "sometim": 12, "fail": 12, "result": [12, 24], "block": 12, "figur": [12, 22, 23, 24], "fine": 12, "my": [12, 24], "purpos": [12, 19], "sinc": [12, 22, 23, 25], "did": [12, 21], "happen": 12, "too": 12, "often": [12, 25], "expect": [12, 23, 25], "simpli": 12, "wait": 12, "episod": [12, 17, 21, 22, 24, 25], "situat": 12, "But": 12, "agre": 12, "ideal": 12, "welcom": [12, 21], "ani": [12, 14, 21, 23, 25], "contribut": [12, 19], "matter": 12, "presenc": [12, 15], "vx": [12, 14, 23], "vy": [12, 14, 23], "cos_h": [12, 14, 23], "sin_h": [12, 14, 23], "features_rang": [12, 23], "100": [12, 14, 23], "absolut": [12, 23], "flatten": 12, "observe_intent": [12, 23], "13": [12, 23], "o1": 12, "initial_vehicle_count": 12, "spawn_prob": 12, "intersectionenv": [12, 22], "normalize_reward": [12, 24], "intersection_env": 12, "termin": [12, 21, 25], "truncat": [12, 16, 17, 21, 22, 23, 24], "info": [12, 14, 17, 21, 22, 23, 24], "soon": 13, "approach": [13, 16, 23], "junction": 13, "incom": 13, "ramp": 13, "room": 13, "timetocollis": [13, 16, 23], "mergeenv": 13, "merge_env": 13, "goal": [14, 24, 26], "condit": [14, 24], "continu": [14, 15, 18, 26], "appropri": [14, 25], "kinematicsgo": 14, "normal": [14, 23, 25], "300": [14, 15], "7": [14, 15], "parkingenv": 14, "parking_env": 14, "credit": [14, 15], "munir": 14, "jojo": 14, "verg": 14, "idea": [14, 15], "define_spac": [14, 21], "compute_reward": 14, "achieved_go": 14, "desired_go": 14, "proxim": 14, "we": [14, 17, 18, 20, 21, 23, 25], "norm": [14, 25], "lp": 14, "kurtosi": 14, "he": 15, "mani": [15, 18], "thank": [15, 18], "supperted825": 15, "occupancygrid": [15, 23], "on_road": 15, "grid_siz": [15, 23], "18": [15, 23], "grid_step": [15, 23], "as_imag": [15, 23], "align_to_vehicle_ax": [15, 23], "lane_centering_cost": 15, "action_reward": 15, "other_vehicl": 15, "racetrackenv": 15, "racetrack_env": 15, "need": [15, 17], "skill": 15, "see": [15, 17, 21, 22, 23, 24, 25], "http": [15, 18, 19, 20], "github": [15, 19, 20], "com": [15, 18, 19, 20], "eleur": [15, 19, 20, 22, 24], "issu": 15, "231": 15, "flow": 16, "pass": [16, 22, 23], "possibl": [16, 17, 25], "incoming_vehicle_destin": 16, "11": 16, "run": [16, 17, 21, 22, 24], "still": [16, 21], "hasn": 16, "express": 16, "variabl": 16, "equal": 16, "pygam": [16, 18, 20], "window": [16, 18], "height": 16, "smaller": 16, "southeast": 16, "area": [16, 18], "roundaboutenv": 16, "roundabout_env": 16, "feel": 17, "free": 17, "entri": 17, "probabl": 17, "you": [17, 19, 21, 23], "instal": [17, 18, 21], "instead": [17, 25], "work": 17, "repositori": [17, 19], "code": [17, 22], "regist": [17, 26], "register_highway_env": [17, 21], "tend": 17, "sub": 17, "pair": [17, 21, 23], "argu": 17, "inde": 17, "revisit": 17, "scene": [17, 23, 26], "reus": 17, "past": 17, "struggl": 17, "address": [17, 25], "permut": 17, "invari": [17, 25], "architectur": [17, 24], "sensit": 17, "exampl": [17, 21, 22], "dqn": [17, 22, 23, 24], "sb3": [17, 24], "ppo": 17, "grayscal": [17, 26], "imag": [17, 18, 21, 24, 26], "cnn": [17, 24], "suitabl": 17, "singl": [17, 21, 22, 25], "typic": 17, "long": 17, "render": [17, 18, 21, 22, 23, 24], "intermedi": [17, 21], "wrap": [17, 21, 26], "recordvideo": [17, 21], "wrapper": [17, 21], "video_fold": 17, "episode_trigg": 17, "lambda": 17, "send": [17, 22], "unwrap": 17, "set_record_video_wrapp": 17, "ob": [17, 21, 22, 23, 24], "Its": 18, "dimens": 18, "640": 18, "480": 18, "roadsurfac": 18, "locat": [18, 23], "zoom": 18, "By": 18, "offset": [18, 23], "roadgraph": 18, "vehiclegraph": 18, "envview": 18, "viewer": [18, 21], "set_agent_displai": 18, "agent_displai": 18, "callback": 18, "dedic": 18, "set_agent_action_sequ": 18, "handle_ev": 18, "event": 18, "get_imag": 18, "rgb": [18, 23], "channel": [18, 23], "convent": [18, 25], "h": [18, 23], "window_posit": 18, "worldsurfac": 18, "size": [18, 22, 23, 24], "flag": 18, "surf": 18, "pix": 18, "pixel": 18, "pos2pix": 18, "vec2pix": 18, "vec": 18, "is_vis": 18, "visibl": 18, "param": [18, 23], "test": [18, 24], "move_display_window_to": 18, "origin": 18, "lanegraph": 18, "visual": 18, "stripe_spac": 18, "33": 18, "stripe": 18, "stripe_length": 18, "stripe_width": 18, "striped_lin": 18, "stripes_count": 18, "draw": 18, "continuous_curv": 18, "continuous_lin": 18, "would": [18, 23, 25], "drawn": 18, "draw_strip": 18, "display_traff": 18, "offscreen": 18, "without": 18, "screen": 18, "display_road_object": 18, "roadobjectgraph": 18, "object_": 18, "transpar": 18, "color": 18, "rotat": 18, "rectangl": [18, 23], "slightli": 18, "blit_rot": 18, "po": 18, "origin_po": 18, "show_rect": 18, "stackoverflow": 18, "54714144": 18, "gather": 19, "quick": [19, 24], "guid": 19, "custom": 19, "nut": 19, "bolt": 19, "packag": 19, "pleas": 19, "piec": 19, "bibtex": 19, "misc": 19, "author": 19, "titl": [19, 22], "year": 19, "2018": 19, "publish": 19, "journal": 19, "howpublish": 19, "url": 19, "python3": 20, "graphic": [20, 26], "itself": 20, "manual": [20, 21, 26], "sudo": 20, "apt": 20, "python": [20, 21, 22], "dev": 20, "libsdl": 20, "image1": 20, "mixer1": 20, "ttf2": 20, "libsdl1": 20, "libsmpeg": 20, "numpi": 20, "subvers": 20, "libportmidi": 20, "ffmpeg": 20, "libswscal": 20, "libavformat": 20, "libavcodec": 20, "libfreetype6": 20, "gcc": 20, "recommend": 20, "anaconda": 20, "To": [20, 21, 22], "latest": 20, "pip": 20, "user": 20, "git": 20, "pull": 21, "request": 21, "your_env": 21, "py": [21, 22], "yourenv": 21, "inherit": 21, "function": [21, 24, 25], "choic": [21, 25], "_make_road": 21, "self": [21, 22], "field": [21, 22, 23], "action_typ": [21, 23, 24], "freeli": 21, "part": [21, 23], "config_kei": 21, "onc": 21, "other_valu": 21, "__init__": 21, "entry_point": 21, "registr": 21, "hook": 21, "reinstal": 21, "setup": 21, "altern": 21, "That": 21, "themselv": 21, "variou": 21, "involv": 21, "perception_dist": 21, "200": [21, 24], "present": 21, "_reward": [21, 25], "associ": 21, "multi": [21, 26], "vector": 21, "aggreg": 21, "scalar": 21, "insid": [21, 25], "reward_nam": 21, "reward_valu": 21, "_is_termin": 21, "check": [21, 23], "_is_trunc": 21, "_info": 21, "addit": 21, "seed": [21, 22, 24], "prng": 21, "_reset": 21, "_simul": 21, "Will": 21, "_automatic_rend": 21, "ongo": 21, "whole": 21, "video": [21, 22, 24], "been": [21, 22, 25], "captur": 21, "simplifi": 21, "distant": 21, "remov": 21, "meant": 21, "load": [21, 24], "preserv": 21, "optim": [21, 25], "change_vehicl": 21, "vehicle_class_path": 21, "path": [21, 22], "multiagentwrapp": 21, "obstyp": 21, "acttyp": 21, "modular": 21, "transform": 21, "overwritten": 21, "version": 22, "rgb_arrai": [22, 23, 24], "sake": 22, "visualis": 22, "matplotlib": [22, 23, 24], "pyplot": [22, 23, 24], "plt": [22, 23, 24], "inlin": [22, 23, 24], "imshow": [22, 23, 24], "green": 22, "show": [22, 23, 24], "640x480": [22, 23, 24], "ax": [22, 23, 24], "accept": 22, "standard": 22, "ax1": 22, "ax2": 22, "subplot": [22, 23], "nrow": 22, "set_titl": 22, "action_1": 22, "action_2": 22, "what": [22, 23], "As": 22, "far": 22, "multiagentobserv": 22, "observation_config": 22, "pprint": [22, 24], "90797305": 22, "3125": 22, "10906096": 22, "04341291": 22, "33000726": 22, "dtype": 22, "float32": 22, "pseudo": 22, "train": 22, "dummi": 22, "rl": [22, 24], "algorithm": 22, "transit": 22, "def": 22, "next_ob": 22, "dispatch": 22, "obs_i": 22, "action_i": 22, "next_obs_i": 22, "zip": 22, "cd": 22, "script": [22, 24], "evalu": 22, "env_multi_ag": 22, "dqnagent": 22, "ego_attention_2h": 22, "3000": 22, "27": 23, "observation_factori": 23, "kinematicobserv": 23, "f": 23, "v_y": [23, 25], "12": 23, "22": 23, "row": 23, "within": 23, "05": 23, "04": 23, "75": 23, "08": 23, "675": 23, "222": 23, "105": 23, "9": 23, "025": 23, "rel": 23, "except": 23, "075": 23, "172": 23, "065": 23, "fewer": 23, "placehold": 23, "fill": 23, "zero": 23, "detect": 23, "disambigu": 23, "radian": 23, "trigonometr": 23, "cos_d": 23, "sin_d": 23, "long_": 23, "off": 23, "lat_": 23, "ang_": 23, "angular": 23, "sort": 23, "print": 23, "20323725": 23, "07361443": 23, "39618185": 23, "11105874": 23, "6169058": 23, "17033932": 23, "83093834": 23, "0526074": 23, "18704522": 23, "1492452": 23, "05019206": 23, "07072275": 23, "18716832": 23, "grayscaleobserv": 23, "observation_shap": 23, "sum": 23, "stack_siz": 23, "customari": 23, "128": 23, "64": 23, "2989": 23, "5870": 23, "1140": 23, "fig": 23, "ncol": 23, "figsiz": 23, "enumer": 23, "flat": 23, "cmap": 23, "get_cmap": 23, "grai": 23, "1200x500": 23, "three": 23, "actions_index": [23, 24], "occupancygridobserv": 23, "shape": 23, "discretis": 23, "cell": 23, "resolut": 23, "like": 23, "timetocollisionobserv": 23, "hot": 23, "encod": 23, "over": 23, "bin": 23, "25m": 23, "infti": 23, "middl": 23, "bottom": 23, "horizon": 23, "lidarobserv": 23, "divid": 23, "sector": 23, "per": 23, "column": 23, "nearest": 23, "compon": 23, "south": 23, "west": 23, "meter": 23, "awai": 23, "toward": 23, "1m": 23, "maximum_rang": 23, "84": 23, "see_behind": 23, "include_obstacl": 23, "min": [23, 25], "max": [23, 25], "shuffl": 23, "normalize_ob": 23, "df": 23, "datafram": 23, "real": 23, "min_x": 23, "max_x": 23, "min_i": 23, "max_i": 23, "step_x": 23, "step_i": 23, "align": 23, "pos_to_index": 23, "otherwis": 23, "alreadi": 23, "fill_road_layer_by_lan": 23, "layer_index": 23, "lane_perception_dist": 23, "onroad": 23, "offroad": 23, "iter": 23, "regularli": 23, "waypoint": 23, "larg": 23, "small": 23, "fill_road_layer_by_cel": 23, "kinematicsgoalobserv": 23, "exitobserv": 23, "exit_env": 23, "exit": 23, "creation": 24, "ego_spac": 24, "initial_lane_id": 24, "lane_change_reward": 24, "offroad_termin": 24, "real_time_rend": 24, "right_lane_reward": 24, "vehicles_dens": 24, "effect": 24, "librari": 24, "openai": 24, "baselin": 24, "stabl": 24, "baselines3": 24, "mlp": 24, "stable_baselines3": 24, "mlppolici": 24, "policy_kwarg": 24, "net_arch": 24, "256": 24, "learning_r": 24, "5e": 24, "buffer_s": 24, "15000": 24, "learning_start": 24, "batch_siz": 24, "32": 24, "gamma": 24, "train_freq": 24, "gradient_step": 24, "target_update_interv": 24, "verbos": 24, "tensorboard_log": 24, "highway_dqn": 24, "2e4": 24, "_state": 24, "25mn": 24, "laptop": 24, "fp": 24, "14": 24, "better": 24, "vanilla": 24, "q": 24, "extens": 24, "doubl": 24, "duel": 24, "priorit": 24, "improv": 24, "faq": 24, "notebook": 24, "few": 24, "opd": 24, "tutori": 24, "written": 24, "rlss": 24, "demonstr": 24, "principl": 24, "her": 24, "cross": 24, "challeng": 25, "problem": 25, "particular": 25, "wish": 25, "aspect": 25, "straightforward": 25, "adequ": 25, "emerg": 25, "perspect": 25, "robust": 25, "against": 25, "uncertain": 25, "focu": 25, "progress": 25, "quickli": 25, "bound": 25, "shift": 25, "practic": 25, "benefici": 25, "forbid": 25, "neg": 25, "encourag": 25, "prefer": 25, "earli": 25, "caus": 25, "risk": 25, "suffer": 25, "satisfi": 25, "penalti": 25, "collision_penalti": 25, "replac": 25, "s_g": 25, "v_x": 25, "x_g": 25, "y_g": 25, "psi_g": 25, "sum_i": 25, "w_i": 25, "x_i": 25, "euclidean": 25, "narrow": 25, "spike": 25, "occup": 26, "grid": 26, "lidar": 26, "api": 26, "meta": 26, "your": 26, "file": 26, "profit": 26}, "objects": {"highway_env": [[21, 0, 0, "-", "__init__"]], "highway_env.__init__": [[21, 1, 1, "", "register_highway_envs"]], "highway_env.envs.common": [[21, 0, 0, "-", "abstract"], [1, 0, 0, "-", "action"], [18, 0, 0, "-", "graphics"], [23, 0, 0, "-", "observation"]], "highway_env.envs.common.abstract": [[21, 2, 1, "", "AbstractEnv"], [21, 2, 1, "", "MultiAgentWrapper"]], "highway_env.envs.common.abstract.AbstractEnv": [[21, 3, 1, "", "PERCEPTION_DISTANCE"], [21, 4, 1, "", "_automatic_rendering"], [21, 4, 1, "", "_info"], [21, 4, 1, "", "_is_terminated"], [21, 4, 1, "", "_is_truncated"], [21, 4, 1, "", "_reset"], [21, 4, 1, "", "_reward"], [21, 4, 1, "", "_rewards"], [21, 4, 1, "", "_simulate"], [21, 4, 1, "", "change_vehicles"], [21, 4, 1, "", "close"], [21, 4, 1, "", "default_config"], [21, 4, 1, "", "define_spaces"], [21, 4, 1, "", "render"], [21, 4, 1, "", "reset"], [21, 4, 1, "", "simplify"], [21, 4, 1, "", "step"], [21, 5, 1, "", "vehicle"]], "highway_env.envs.common.abstract.MultiAgentWrapper": [[21, 4, 1, "", "step"]], "highway_env.envs.common.action": [[1, 2, 1, "", "ActionType"], [1, 2, 1, "", "ContinuousAction"], [1, 2, 1, "", "DiscreteAction"], [1, 2, 1, "", "DiscreteMetaAction"], [1, 2, 1, "", "MultiAgentAction"]], "highway_env.envs.common.action.ActionType": [[1, 4, 1, "", "act"], [1, 5, 1, "", "controlled_vehicle"], [1, 4, 1, "", "get_available_actions"], [1, 4, 1, "", "space"], [1, 5, 1, "", "vehicle_class"]], "highway_env.envs.common.action.ContinuousAction": [[1, 3, 1, "", "ACCELERATION_RANGE"], [1, 3, 1, "", "STEERING_RANGE"], [1, 4, 1, "", "act"], [1, 4, 1, "", "space"], [1, 5, 1, "", "vehicle_class"]], "highway_env.envs.common.action.DiscreteAction": [[1, 4, 1, "", "act"], [1, 4, 1, "", "space"]], "highway_env.envs.common.action.DiscreteMetaAction": [[1, 3, 1, "", "ACTIONS_ALL"], [1, 3, 1, "", "ACTIONS_LAT"], [1, 3, 1, "", "ACTIONS_LONGI"], [1, 4, 1, "", "act"], [1, 4, 1, "", "get_available_actions"], [1, 4, 1, "", "space"], [1, 5, 1, "", "vehicle_class"]], "highway_env.envs.common.action.MultiAgentAction": [[1, 4, 1, "", "act"], [1, 4, 1, "", "get_available_actions"], [1, 4, 1, "", "space"], [1, 5, 1, "", "vehicle_class"]], "highway_env.envs.common.graphics": [[18, 2, 1, "", "EnvViewer"]], "highway_env.envs.common.graphics.EnvViewer": [[18, 4, 1, "", "close"], [18, 4, 1, "", "display"], [18, 4, 1, "", "get_image"], [18, 4, 1, "", "handle_events"], [18, 4, 1, "", "set_agent_action_sequence"], [18, 4, 1, "", "set_agent_display"], [18, 4, 1, "", "window_position"]], "highway_env.envs.common.observation": [[23, 2, 1, "", "ExitObservation"], [23, 2, 1, "", "GrayscaleObservation"], [23, 2, 1, "", "KinematicObservation"], [23, 2, 1, "", "KinematicsGoalObservation"], [23, 2, 1, "", "OccupancyGridObservation"]], "highway_env.envs.common.observation.ExitObservation": [[23, 4, 1, "", "observe"]], "highway_env.envs.common.observation.GrayscaleObservation": [[23, 4, 1, "", "observe"], [23, 4, 1, "", "space"]], "highway_env.envs.common.observation.KinematicObservation": [[23, 4, 1, "", "normalize_obs"], [23, 4, 1, "", "observe"], [23, 4, 1, "", "space"]], "highway_env.envs.common.observation.KinematicsGoalObservation": [[23, 4, 1, "", "observe"], [23, 4, 1, "", "space"]], "highway_env.envs.common.observation.OccupancyGridObservation": [[23, 4, 1, "", "fill_road_layer_by_cell"], [23, 4, 1, "", "fill_road_layer_by_lanes"], [23, 4, 1, "", "normalize"], [23, 4, 1, "", "observe"], [23, 4, 1, "", "pos_to_index"], [23, 4, 1, "", "space"]], "highway_env.envs.highway_env": [[10, 2, 1, "", "HighwayEnv"]], "highway_env.envs.highway_env.HighwayEnv": [[10, 4, 1, "", "default_config"]], "highway_env.envs.intersection_env": [[12, 2, 1, "", "IntersectionEnv"]], "highway_env.envs.intersection_env.IntersectionEnv": [[12, 4, 1, "", "default_config"], [12, 4, 1, "", "step"]], "highway_env.envs.merge_env": [[13, 2, 1, "", "MergeEnv"]], "highway_env.envs.merge_env.MergeEnv": [[13, 4, 1, "", "default_config"]], "highway_env.envs.parking_env": [[14, 2, 1, "", "ParkingEnv"]], "highway_env.envs.parking_env.ParkingEnv": [[14, 4, 1, "", "compute_reward"], [14, 4, 1, "", "default_config"], [14, 4, 1, "", "define_spaces"]], "highway_env.envs.racetrack_env": [[15, 2, 1, "", "RacetrackEnv"]], "highway_env.envs.racetrack_env.RacetrackEnv": [[15, 4, 1, "", "default_config"]], "highway_env.envs.roundabout_env": [[16, 2, 1, "", "RoundaboutEnv"]], "highway_env.envs.roundabout_env.RoundaboutEnv": [[16, 4, 1, "", "default_config"]], "highway_env.road": [[18, 0, 0, "-", "graphics"], [4, 0, 0, "-", "lane"], [5, 0, 0, "-", "regulation"], [6, 0, 0, "-", "road"]], "highway_env.road.graphics": [[18, 2, 1, "", "LaneGraphics"], [18, 2, 1, "", "RoadGraphics"], [18, 2, 1, "", "RoadObjectGraphics"], [18, 2, 1, "", "WorldSurface"]], "highway_env.road.graphics.LaneGraphics": [[18, 3, 1, "", "STRIPE_LENGTH"], [18, 3, 1, "", "STRIPE_SPACING"], [18, 3, 1, "", "STRIPE_WIDTH"], [18, 4, 1, "", "continuous_curve"], [18, 4, 1, "", "continuous_line"], [18, 4, 1, "", "display"], [18, 4, 1, "", "draw_stripes"], [18, 4, 1, "", "striped_line"]], "highway_env.road.graphics.RoadGraphics": [[18, 4, 1, "", "display"], [18, 4, 1, "", "display_road_objects"], [18, 4, 1, "", "display_traffic"]], "highway_env.road.graphics.RoadObjectGraphics": [[18, 4, 1, "", "blit_rotate"], [18, 4, 1, "", "display"]], "highway_env.road.graphics.WorldSurface": [[18, 4, 1, "", "handle_event"], [18, 4, 1, "", "is_visible"], [18, 4, 1, "", "move_display_window_to"], [18, 4, 1, "", "pix"], [18, 4, 1, "", "pos2pix"], [18, 4, 1, "", "vec2pix"]], "highway_env.road.lane": [[4, 2, 1, "", "AbstractLane"], [4, 2, 1, "", "CircularLane"], [4, 2, 1, "", "LineType"], [4, 2, 1, "", "PolyLane"], [4, 2, 1, "", "PolyLaneFixedWidth"], [4, 2, 1, "", "SineLane"], [4, 2, 1, "", "StraightLane"]], "highway_env.road.lane.AbstractLane": [[4, 4, 1, "", "distance"], [4, 4, 1, "", "distance_with_heading"], [4, 4, 1, "", "from_config"], [4, 4, 1, "", "heading_at"], [4, 4, 1, "", "is_reachable_from"], [4, 4, 1, "", "local_angle"], [4, 4, 1, "", "local_coordinates"], [4, 3, 1, "", "metaclass__"], [4, 4, 1, "", "on_lane"], [4, 4, 1, "", "position"], [4, 4, 1, "", "to_config"], [4, 4, 1, "", "width_at"]], "highway_env.road.lane.CircularLane": [[4, 4, 1, "", "from_config"], [4, 4, 1, "", "heading_at"], [4, 4, 1, "", "local_coordinates"], [4, 4, 1, "", "position"], [4, 4, 1, "", "to_config"], [4, 4, 1, "", "width_at"]], "highway_env.road.lane.PolyLane": [[4, 4, 1, "", "to_config"], [4, 4, 1, "", "width_at"]], "highway_env.road.lane.PolyLaneFixedWidth": [[4, 4, 1, "", "from_config"], [4, 4, 1, "", "heading_at"], [4, 4, 1, "", "local_coordinates"], [4, 4, 1, "", "position"], [4, 4, 1, "", "to_config"], [4, 4, 1, "", "width_at"]], "highway_env.road.lane.SineLane": [[4, 4, 1, "", "from_config"], [4, 4, 1, "", "heading_at"], [4, 4, 1, "", "local_coordinates"], [4, 4, 1, "", "position"], [4, 4, 1, "", "to_config"]], "highway_env.road.lane.StraightLane": [[4, 4, 1, "", "from_config"], [4, 4, 1, "", "heading_at"], [4, 4, 1, "", "local_coordinates"], [4, 4, 1, "", "position"], [4, 4, 1, "", "to_config"], [4, 4, 1, "", "width_at"]], "highway_env.road.regulation": [[5, 2, 1, "", "RegulatedRoad"]], "highway_env.road.regulation.RegulatedRoad": [[5, 4, 1, "", "enforce_road_rules"], [5, 4, 1, "", "respect_priorities"], [5, 4, 1, "", "step"]], "highway_env.road.road": [[6, 2, 1, "", "Road"]], "highway_env.road.road.Road": [[6, 4, 1, "", "act"], [6, 4, 1, "", "neighbour_vehicles"], [6, 4, 1, "", "step"]], "highway_env.vehicle": [[7, 0, 0, "-", "behavior"], [8, 0, 0, "-", "controller"], [18, 0, 0, "-", "graphics"], [9, 0, 0, "-", "kinematics"]], "highway_env.vehicle.behavior": [[7, 2, 1, "", "AggressiveVehicle"], [7, 2, 1, "", "DefensiveVehicle"], [7, 2, 1, "", "IDMVehicle"], [7, 2, 1, "", "LinearVehicle"]], "highway_env.vehicle.behavior.AggressiveVehicle": [[7, 3, 1, "", "target_speed"]], "highway_env.vehicle.behavior.DefensiveVehicle": [[7, 3, 1, "", "target_speed"]], "highway_env.vehicle.behavior.IDMVehicle": [[7, 3, 1, "", "ACC_MAX"], [7, 3, 1, "", "COMFORT_ACC_MAX"], [7, 3, 1, "", "COMFORT_ACC_MIN"], [7, 3, 1, "", "DELTA"], [7, 3, 1, "", "DELTA_RANGE"], [7, 3, 1, "", "DISTANCE_WANTED"], [7, 3, 1, "", "TIME_WANTED"], [7, 4, 1, "", "acceleration"], [7, 4, 1, "", "act"], [7, 4, 1, "", "change_lane_policy"], [7, 4, 1, "", "create_from"], [7, 4, 1, "", "desired_gap"], [7, 4, 1, "", "mobil"], [7, 4, 1, "", "recover_from_stop"], [7, 4, 1, "", "step"], [7, 3, 1, "", "target_speed"]], "highway_env.vehicle.behavior.LinearVehicle": [[7, 3, 1, "", "TIME_WANTED"], [7, 4, 1, "", "acceleration"], [7, 4, 1, "", "act"], [7, 4, 1, "", "collect_data"], [7, 4, 1, "", "steering_control"], [7, 4, 1, "", "steering_features"], [7, 3, 1, "", "target_speed"]], "highway_env.vehicle.controller": [[8, 2, 1, "", "ControlledVehicle"], [8, 2, 1, "", "MDPVehicle"]], "highway_env.vehicle.controller.ControlledVehicle": [[8, 4, 1, "", "act"], [8, 4, 1, "", "create_from"], [8, 4, 1, "", "follow_road"], [8, 4, 1, "", "get_routes_at_intersection"], [8, 4, 1, "", "plan_route_to"], [8, 4, 1, "", "predict_trajectory_constant_speed"], [8, 4, 1, "", "set_route_at_intersection"], [8, 4, 1, "", "speed_control"], [8, 4, 1, "", "steering_control"], [8, 3, 1, "", "target_speed"]], "highway_env.vehicle.controller.MDPVehicle": [[8, 4, 1, "", "act"], [8, 4, 1, "", "index_to_speed"], [8, 4, 1, "", "predict_trajectory"], [8, 4, 1, "", "speed_to_index"], [8, 4, 1, "", "speed_to_index_default"], [8, 3, 1, "", "target_speed"]], "highway_env.vehicle.kinematics": [[9, 2, 1, "", "Vehicle"]], "highway_env.vehicle.kinematics.Vehicle": [[9, 3, 1, "", "DEFAULT_INITIAL_SPEEDS"], [9, 3, 1, "", "HISTORY_SIZE"], [9, 3, 1, "", "LENGTH"], [9, 3, 1, "", "MAX_SPEED"], [9, 3, 1, "", "MIN_SPEED"], [9, 3, 1, "", "WIDTH"], [9, 4, 1, "", "act"], [9, 4, 1, "", "create_from"], [9, 4, 1, "", "create_random"], [9, 4, 1, "", "predict_trajectory"], [9, 4, 1, "", "step"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "property", "Python property"]}, "titleterms": {"404": 0, "page": 0, "Not": 0, "found": 0, "action": [1, 22], "continu": 1, "discret": 1, "meta": 1, "manual": 1, "control": [1, 8, 22], "api": [1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21, 23], "bibliographi": 2, "dynam": 3, "road": [3, 5, 6], "vehicl": [3, 21, 22, 23], "lane": 4, "regul": 5, "behavior": 7, "longitudin": [7, 8], "later": [7, 8], "posit": 8, "head": 8, "kinemat": [9, 17, 23], "highwai": [10, 17, 19], "usag": [10, 12, 13, 14, 15, 16], "default": [10, 12, 13, 14, 15, 16], "configur": [10, 12, 13, 14, 15, 16, 21, 23, 24], "faster": 10, "variant": 10, "The": [11, 22], "environ": [11, 17, 21, 24, 25], "intersect": 12, "merg": 13, "park": 14, "racetrack": 15, "roundabout": 16, "frequent": 17, "ask": 17, "question": 17, "when": 17, "i": [17, 23], "try": 17, "make": [17, 21, 24], "an": [17, 24], "get": [17, 24], "error": 17, "gymnasium": 17, "namenotfound": 17, "doesn": 17, "t": 17, "exist": 17, "train": [17, 24], "agent": [17, 22, 24], "us": 17, "observ": [17, 22, 23], "mlp": 17, "model": 17, "result": 17, "polici": 17, "optim": 17, "why": 17, "my": 17, "video": 17, "ar": 17, "too": 17, "fast": 17, "have": 17, "low": 17, "framer": 17, "graphic": 18, "world": 18, "surfac": 18, "scene": [18, 21], "welcom": 19, "env": 19, "": 19, "document": 19, "how": 19, "cite": 19, "thi": 19, "work": 19, "instal": 20, "prerequisit": 20, "ubuntu": 20, "window": 20, "10": 20, "stabl": 20, "releas": 20, "develop": 20, "version": 20, "your": 21, "own": 21, "set": [21, 22], "up": [21, 22], "file": 21, "creat": 21, "regist": 21, "profit": 21, "multi": 22, "increas": 22, "number": 22, "chang": 22, "space": 22, "wrap": 22, "exampl": [23, 24], "grayscal": 23, "imag": 23, "illustr": 23, "stack": 23, "mechan": 23, "occup": 23, "grid": 23, "presenc": 23, "featur": 23, "one": 23, "close": 23, "north": 23, "farther": 23, "east": 23, "v_x": 23, "drive": 23, "same": 23, "speed": 23, "ego": 23, "bit": 23, "slower": 23, "time": 23, "collis": 23, "lidar": 23, "start": 24, "all": 24, "googl": 24, "colab": 24, "reward": 25, "most": 25, "goal": 25, "user": 26, "guid": 26}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinxcontrib.bibtex": 9, "sphinx": 60}, "alltitles": {"404": [[0, "id1"]], "Page Not Found": [[0, "page-not-found"]], "Actions": [[1, "actions"]], "Continuous Actions": [[1, "continuous-actions"]], "Discrete Actions": [[1, "discrete-actions"]], "Discrete Meta-Actions": [[1, "discrete-meta-actions"]], "Manual control": [[1, "manual-control"]], "API": [[1, "module-highway_env.envs.common.action"], [4, "module-highway_env.road.lane"], [5, "module-highway_env.road.regulation"], [6, "module-highway_env.road.road"], [7, "module-highway_env.vehicle.behavior"], [8, "module-highway_env.vehicle.controller"], [9, "module-highway_env.vehicle.kinematics"], [10, "api"], [12, "api"], [13, "api"], [14, "api"], [15, "api"], [16, "api"], [18, "module-highway_env.envs.common.graphics"], [21, "module-highway_env.__init__"], [23, "module-highway_env.envs.common.observation"]], "Bibliography": [[2, "bibliography"]], "Dynamics": [[3, "dynamics"]], "Roads": [[3, "roads"]], "Vehicles": [[3, "vehicles"]], "Lane": [[4, "lane"]], "Road regulation": [[5, "road-regulation"]], "Road": [[6, "road"]], "Behavior": [[7, "behavior"]], "Longitudinal Behavior": [[7, "longitudinal-behavior"]], "Lateral Behavior": [[7, "lateral-behavior"]], "Control": [[8, "control"]], "Longitudinal controller": [[8, "longitudinal-controller"]], "Lateral controller": [[8, "lateral-controller"]], "Position control": [[8, "position-control"]], "Heading control": [[8, "heading-control"]], "Kinematics": [[9, "kinematics"], [23, "kinematics"]], "Highway": [[10, "highway"]], "Usage": [[10, "usage"], [12, "usage"], [13, "usage"], [14, "usage"], [15, "usage"], [16, "usage"]], "Default configuration": [[10, "default-configuration"], [12, "default-configuration"], [13, "default-configuration"], [14, "default-configuration"], [15, "default-configuration"], [16, "default-configuration"]], "Faster variant": [[10, "faster-variant"]], "The environments": [[11, "the-environments"]], "Intersection": [[12, "intersection"]], "Merge": [[13, "merge"]], "Parking": [[14, "parking"]], "Racetrack": [[15, "racetrack"]], "Roundabout": [[16, "roundabout"]], "Frequently Asked Questions": [[17, "frequently-asked-questions"]], "When I try to make an environment, I get an error gymnasium.error.NameNotFound: Environment highway doesn't exist.": [[17, "when-i-try-to-make-an-environment-i-get-an-error-gymnasium-error-namenotfound-environment-highway-doesn-t-exist"]], "I try to train an agent using the Kinematics Observation and an MLP model, but the resulting policy is not optimal. Why?": [[17, "i-try-to-train-an-agent-using-the-kinematics-observation-and-an-mlp-model-but-the-resulting-policy-is-not-optimal-why"]], "My videos are too fast / have a low framerate.": [[17, "my-videos-are-too-fast-have-a-low-framerate"]], "Graphics": [[18, "id1"]], "World surface": [[18, "world-surface"]], "Scene graphics": [[18, "scene-graphics"]], "Welcome to highway-env\u2019s documentation!": [[19, "welcome-to-highway-env-s-documentation"]], "How to cite this work?": [[19, "how-to-cite-this-work"]], "Installation": [[20, "installation"]], "Prerequisites": [[20, "prerequisites"]], "Ubuntu": [[20, "ubuntu"]], "Windows 10": [[20, "windows-10"]], "Stable release": [[20, "stable-release"]], "Development version": [[20, "development-version"]], "Make your own environment": [[21, "make-your-own-environment"]], "Set up files": [[21, "set-up-files"]], "Create the scene": [[21, "create-the-scene"]], "Create the vehicles": [[21, "create-the-vehicles"]], "Make the environment configurable": [[21, "make-the-environment-configurable"]], "Register the environment": [[21, "register-the-environment"]], "Profit": [[21, "profit"]], "The Multi-Agent setting": [[22, "the-multi-agent-setting"]], "Increase the number of controlled vehicles": [[22, "increase-the-number-of-controlled-vehicles"]], "Change the action space": [[22, "change-the-action-space"]], "Change the observation space": [[22, "change-the-observation-space"]], "Wrapping it up": [[22, "wrapping-it-up"]], "Observations": [[23, "id1"]], "Example configuration": [[23, "example-configuration"], [23, "grayscale-example-configuration"], [23, "id4"], [23, "id5"], [23, "id6"]], "Grayscale Image": [[23, "grayscale-image"]], "Illustration of the stack mechanism": [[23, "illustration-of-the-stack-mechanism"]], "Occupancy grid": [[23, "occupancy-grid"]], "presence feature: one vehicle is close to the north, and one is farther to the east.": [[23, "id7"]], "v_x feature: the north vehicle drives at the same speed as the ego-vehicle, and the east vehicle a bit slower": [[23, "id8"]], "Time to collision": [[23, "time-to-collision"]], "Lidar": [[23, "lidar"]], "the Lidar observation": [[23, "id9"]], "Getting Started": [[24, "getting-started"]], "Making an environment": [[24, "making-an-environment"]], "All the environments": [[24, "all-the-environments"]], "Configuring an environment": [[24, "configuring-an-environment"]], "Training an agent": [[24, "training-an-agent"]], "Examples on Google Colab": [[24, "examples-on-google-colab"]], "Rewards": [[25, "rewards"]], "Most environments": [[25, "most-environments"]], "Goal environments": [[25, "goal-environments"]], "User Guide": [[26, "user-guide"]]}, "indexentries": {"acceleration_range (highway_env.envs.common.action.continuousaction attribute)": [[1, "highway_env.envs.common.action.ContinuousAction.ACCELERATION_RANGE"]], "actions_all (highway_env.envs.common.action.discretemetaaction attribute)": [[1, "highway_env.envs.common.action.DiscreteMetaAction.ACTIONS_ALL"]], "actions_lat (highway_env.envs.common.action.discretemetaaction attribute)": [[1, "highway_env.envs.common.action.DiscreteMetaAction.ACTIONS_LAT"]], "actions_longi (highway_env.envs.common.action.discretemetaaction attribute)": [[1, "highway_env.envs.common.action.DiscreteMetaAction.ACTIONS_LONGI"]], "actiontype (class in highway_env.envs.common.action)": [[1, "highway_env.envs.common.action.ActionType"]], "continuousaction (class in highway_env.envs.common.action)": [[1, "highway_env.envs.common.action.ContinuousAction"]], "discreteaction (class in highway_env.envs.common.action)": [[1, "highway_env.envs.common.action.DiscreteAction"]], "discretemetaaction (class in highway_env.envs.common.action)": [[1, "highway_env.envs.common.action.DiscreteMetaAction"]], "multiagentaction (class in highway_env.envs.common.action)": [[1, "highway_env.envs.common.action.MultiAgentAction"]], "steering_range (highway_env.envs.common.action.continuousaction attribute)": [[1, "highway_env.envs.common.action.ContinuousAction.STEERING_RANGE"]], "act() (highway_env.envs.common.action.actiontype method)": [[1, "highway_env.envs.common.action.ActionType.act"]], "act() (highway_env.envs.common.action.continuousaction method)": [[1, "highway_env.envs.common.action.ContinuousAction.act"]], "act() (highway_env.envs.common.action.discreteaction method)": [[1, "highway_env.envs.common.action.DiscreteAction.act"]], "act() (highway_env.envs.common.action.discretemetaaction method)": [[1, "highway_env.envs.common.action.DiscreteMetaAction.act"]], "act() (highway_env.envs.common.action.multiagentaction method)": [[1, "highway_env.envs.common.action.MultiAgentAction.act"]], "controlled_vehicle (highway_env.envs.common.action.actiontype property)": [[1, "highway_env.envs.common.action.ActionType.controlled_vehicle"]], "get_available_actions() (highway_env.envs.common.action.actiontype method)": [[1, "highway_env.envs.common.action.ActionType.get_available_actions"]], "get_available_actions() (highway_env.envs.common.action.discretemetaaction method)": [[1, "highway_env.envs.common.action.DiscreteMetaAction.get_available_actions"]], "get_available_actions() (highway_env.envs.common.action.multiagentaction method)": [[1, "highway_env.envs.common.action.MultiAgentAction.get_available_actions"]], "highway_env.envs.common.action": [[1, "module-highway_env.envs.common.action"]], "module": [[1, "module-highway_env.envs.common.action"], [4, "module-highway_env.road.lane"], [5, "module-highway_env.road.regulation"], [6, "module-highway_env.road.road"], [7, "module-highway_env.vehicle.behavior"], [8, "module-highway_env.vehicle.controller"], [9, "module-highway_env.vehicle.kinematics"], [18, "module-highway_env.envs.common.graphics"], [18, "module-highway_env.road.graphics"], [18, "module-highway_env.vehicle.graphics"], [21, "module-highway_env.__init__"], [21, "module-highway_env.envs.common.abstract"], [23, "module-highway_env.envs.common.observation"]], "space() (highway_env.envs.common.action.actiontype method)": [[1, "highway_env.envs.common.action.ActionType.space"]], "space() (highway_env.envs.common.action.continuousaction method)": [[1, "highway_env.envs.common.action.ContinuousAction.space"]], "space() (highway_env.envs.common.action.discreteaction method)": [[1, "highway_env.envs.common.action.DiscreteAction.space"]], "space() (highway_env.envs.common.action.discretemetaaction method)": [[1, "highway_env.envs.common.action.DiscreteMetaAction.space"]], "space() (highway_env.envs.common.action.multiagentaction method)": [[1, "highway_env.envs.common.action.MultiAgentAction.space"]], "vehicle_class (highway_env.envs.common.action.actiontype property)": [[1, "highway_env.envs.common.action.ActionType.vehicle_class"]], "vehicle_class (highway_env.envs.common.action.continuousaction property)": [[1, "highway_env.envs.common.action.ContinuousAction.vehicle_class"]], "vehicle_class (highway_env.envs.common.action.discretemetaaction property)": [[1, "highway_env.envs.common.action.DiscreteMetaAction.vehicle_class"]], "vehicle_class (highway_env.envs.common.action.multiagentaction property)": [[1, "highway_env.envs.common.action.MultiAgentAction.vehicle_class"]], "abstractlane (class in highway_env.road.lane)": [[4, "highway_env.road.lane.AbstractLane"]], "circularlane (class in highway_env.road.lane)": [[4, "highway_env.road.lane.CircularLane"]], "linetype (class in highway_env.road.lane)": [[4, "highway_env.road.lane.LineType"]], "polylane (class in highway_env.road.lane)": [[4, "highway_env.road.lane.PolyLane"]], "polylanefixedwidth (class in highway_env.road.lane)": [[4, "highway_env.road.lane.PolyLaneFixedWidth"]], "sinelane (class in highway_env.road.lane)": [[4, "highway_env.road.lane.SineLane"]], "straightlane (class in highway_env.road.lane)": [[4, "highway_env.road.lane.StraightLane"]], "distance() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.distance"]], "distance_with_heading() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.distance_with_heading"]], "from_config() (highway_env.road.lane.abstractlane class method)": [[4, "highway_env.road.lane.AbstractLane.from_config"]], "from_config() (highway_env.road.lane.circularlane class method)": [[4, "highway_env.road.lane.CircularLane.from_config"]], "from_config() (highway_env.road.lane.polylanefixedwidth class method)": [[4, "highway_env.road.lane.PolyLaneFixedWidth.from_config"]], "from_config() (highway_env.road.lane.sinelane class method)": [[4, "highway_env.road.lane.SineLane.from_config"]], "from_config() (highway_env.road.lane.straightlane class method)": [[4, "highway_env.road.lane.StraightLane.from_config"]], "heading_at() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.heading_at"]], "heading_at() (highway_env.road.lane.circularlane method)": [[4, "highway_env.road.lane.CircularLane.heading_at"]], "heading_at() (highway_env.road.lane.polylanefixedwidth method)": [[4, "highway_env.road.lane.PolyLaneFixedWidth.heading_at"]], "heading_at() (highway_env.road.lane.sinelane method)": [[4, "highway_env.road.lane.SineLane.heading_at"]], "heading_at() (highway_env.road.lane.straightlane method)": [[4, "highway_env.road.lane.StraightLane.heading_at"]], "highway_env.road.lane": [[4, "module-highway_env.road.lane"]], "is_reachable_from() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.is_reachable_from"]], "local_angle() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.local_angle"]], "local_coordinates() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.local_coordinates"]], "local_coordinates() (highway_env.road.lane.circularlane method)": [[4, "highway_env.road.lane.CircularLane.local_coordinates"]], "local_coordinates() (highway_env.road.lane.polylanefixedwidth method)": [[4, "highway_env.road.lane.PolyLaneFixedWidth.local_coordinates"]], "local_coordinates() (highway_env.road.lane.sinelane method)": [[4, "highway_env.road.lane.SineLane.local_coordinates"]], "local_coordinates() (highway_env.road.lane.straightlane method)": [[4, "highway_env.road.lane.StraightLane.local_coordinates"]], "metaclass__ (highway_env.road.lane.abstractlane attribute)": [[4, "highway_env.road.lane.AbstractLane.metaclass__"]], "on_lane() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.on_lane"]], "position() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.position"]], "position() (highway_env.road.lane.circularlane method)": [[4, "highway_env.road.lane.CircularLane.position"]], "position() (highway_env.road.lane.polylanefixedwidth method)": [[4, "highway_env.road.lane.PolyLaneFixedWidth.position"]], "position() (highway_env.road.lane.sinelane method)": [[4, "highway_env.road.lane.SineLane.position"]], "position() (highway_env.road.lane.straightlane method)": [[4, "highway_env.road.lane.StraightLane.position"]], "to_config() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.to_config"]], "to_config() (highway_env.road.lane.circularlane method)": [[4, "highway_env.road.lane.CircularLane.to_config"]], "to_config() (highway_env.road.lane.polylane method)": [[4, "highway_env.road.lane.PolyLane.to_config"]], "to_config() (highway_env.road.lane.polylanefixedwidth method)": [[4, "highway_env.road.lane.PolyLaneFixedWidth.to_config"]], "to_config() (highway_env.road.lane.sinelane method)": [[4, "highway_env.road.lane.SineLane.to_config"]], "to_config() (highway_env.road.lane.straightlane method)": [[4, "highway_env.road.lane.StraightLane.to_config"]], "width_at() (highway_env.road.lane.abstractlane method)": [[4, "highway_env.road.lane.AbstractLane.width_at"]], "width_at() (highway_env.road.lane.circularlane method)": [[4, "highway_env.road.lane.CircularLane.width_at"]], "width_at() (highway_env.road.lane.polylane method)": [[4, "highway_env.road.lane.PolyLane.width_at"]], "width_at() (highway_env.road.lane.polylanefixedwidth method)": [[4, "highway_env.road.lane.PolyLaneFixedWidth.width_at"]], "width_at() (highway_env.road.lane.straightlane method)": [[4, "highway_env.road.lane.StraightLane.width_at"]], "regulatedroad (class in highway_env.road.regulation)": [[5, "highway_env.road.regulation.RegulatedRoad"]], "enforce_road_rules() (highway_env.road.regulation.regulatedroad method)": [[5, "highway_env.road.regulation.RegulatedRoad.enforce_road_rules"]], "highway_env.road.regulation": [[5, "module-highway_env.road.regulation"]], "respect_priorities() (highway_env.road.regulation.regulatedroad static method)": [[5, "highway_env.road.regulation.RegulatedRoad.respect_priorities"]], "step() (highway_env.road.regulation.regulatedroad method)": [[5, "highway_env.road.regulation.RegulatedRoad.step"]], "road (class in highway_env.road.road)": [[6, "highway_env.road.road.Road"]], "act() (highway_env.road.road.road method)": [[6, "highway_env.road.road.Road.act"]], "highway_env.road.road": [[6, "module-highway_env.road.road"]], "neighbour_vehicles() (highway_env.road.road.road method)": [[6, "highway_env.road.road.Road.neighbour_vehicles"]], "step() (highway_env.road.road.road method)": [[6, "highway_env.road.road.Road.step"]], "acc_max (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.ACC_MAX"]], "aggressivevehicle (class in highway_env.vehicle.behavior)": [[7, "highway_env.vehicle.behavior.AggressiveVehicle"]], "comfort_acc_max (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.COMFORT_ACC_MAX"]], "comfort_acc_min (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.COMFORT_ACC_MIN"]], "delta (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.DELTA"]], "delta_range (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.DELTA_RANGE"]], "distance_wanted (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.DISTANCE_WANTED"]], "defensivevehicle (class in highway_env.vehicle.behavior)": [[7, "highway_env.vehicle.behavior.DefensiveVehicle"]], "idmvehicle (class in highway_env.vehicle.behavior)": [[7, "highway_env.vehicle.behavior.IDMVehicle"]], "linearvehicle (class in highway_env.vehicle.behavior)": [[7, "highway_env.vehicle.behavior.LinearVehicle"]], "time_wanted (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.TIME_WANTED"]], "time_wanted (highway_env.vehicle.behavior.linearvehicle attribute)": [[7, "highway_env.vehicle.behavior.LinearVehicle.TIME_WANTED"]], "acceleration() (highway_env.vehicle.behavior.idmvehicle method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.acceleration"]], "acceleration() (highway_env.vehicle.behavior.linearvehicle method)": [[7, "highway_env.vehicle.behavior.LinearVehicle.acceleration"]], "act() (highway_env.vehicle.behavior.idmvehicle method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.act"]], "act() (highway_env.vehicle.behavior.linearvehicle method)": [[7, "highway_env.vehicle.behavior.LinearVehicle.act"]], "change_lane_policy() (highway_env.vehicle.behavior.idmvehicle method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.change_lane_policy"]], "collect_data() (highway_env.vehicle.behavior.linearvehicle method)": [[7, "highway_env.vehicle.behavior.LinearVehicle.collect_data"]], "create_from() (highway_env.vehicle.behavior.idmvehicle class method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.create_from"]], "desired_gap() (highway_env.vehicle.behavior.idmvehicle method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.desired_gap"]], "highway_env.vehicle.behavior": [[7, "module-highway_env.vehicle.behavior"]], "mobil() (highway_env.vehicle.behavior.idmvehicle method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.mobil"]], "recover_from_stop() (highway_env.vehicle.behavior.idmvehicle method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.recover_from_stop"]], "steering_control() (highway_env.vehicle.behavior.linearvehicle method)": [[7, "highway_env.vehicle.behavior.LinearVehicle.steering_control"]], "steering_features() (highway_env.vehicle.behavior.linearvehicle method)": [[7, "highway_env.vehicle.behavior.LinearVehicle.steering_features"]], "step() (highway_env.vehicle.behavior.idmvehicle method)": [[7, "highway_env.vehicle.behavior.IDMVehicle.step"]], "target_speed (highway_env.vehicle.behavior.aggressivevehicle attribute)": [[7, "highway_env.vehicle.behavior.AggressiveVehicle.target_speed"]], "target_speed (highway_env.vehicle.behavior.defensivevehicle attribute)": [[7, "highway_env.vehicle.behavior.DefensiveVehicle.target_speed"]], "target_speed (highway_env.vehicle.behavior.idmvehicle attribute)": [[7, "highway_env.vehicle.behavior.IDMVehicle.target_speed"]], "target_speed (highway_env.vehicle.behavior.linearvehicle attribute)": [[7, "highway_env.vehicle.behavior.LinearVehicle.target_speed"]], "controlledvehicle (class in highway_env.vehicle.controller)": [[8, "highway_env.vehicle.controller.ControlledVehicle"]], "mdpvehicle (class in highway_env.vehicle.controller)": [[8, "highway_env.vehicle.controller.MDPVehicle"]], "act() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.act"]], "act() (highway_env.vehicle.controller.mdpvehicle method)": [[8, "highway_env.vehicle.controller.MDPVehicle.act"]], "create_from() (highway_env.vehicle.controller.controlledvehicle class method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.create_from"]], "follow_road() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.follow_road"]], "get_routes_at_intersection() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.get_routes_at_intersection"]], "highway_env.vehicle.controller": [[8, "module-highway_env.vehicle.controller"]], "index_to_speed() (highway_env.vehicle.controller.mdpvehicle method)": [[8, "highway_env.vehicle.controller.MDPVehicle.index_to_speed"]], "plan_route_to() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.plan_route_to"]], "predict_trajectory() (highway_env.vehicle.controller.mdpvehicle method)": [[8, "highway_env.vehicle.controller.MDPVehicle.predict_trajectory"]], "predict_trajectory_constant_speed() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.predict_trajectory_constant_speed"]], "set_route_at_intersection() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.set_route_at_intersection"]], "speed_control() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.speed_control"]], "speed_to_index() (highway_env.vehicle.controller.mdpvehicle method)": [[8, "highway_env.vehicle.controller.MDPVehicle.speed_to_index"]], "speed_to_index_default() (highway_env.vehicle.controller.mdpvehicle class method)": [[8, "highway_env.vehicle.controller.MDPVehicle.speed_to_index_default"]], "steering_control() (highway_env.vehicle.controller.controlledvehicle method)": [[8, "highway_env.vehicle.controller.ControlledVehicle.steering_control"]], "target_speed (highway_env.vehicle.controller.controlledvehicle attribute)": [[8, "highway_env.vehicle.controller.ControlledVehicle.target_speed"]], "target_speed (highway_env.vehicle.controller.mdpvehicle attribute)": [[8, "highway_env.vehicle.controller.MDPVehicle.target_speed"]], "default_initial_speeds (highway_env.vehicle.kinematics.vehicle attribute)": [[9, "highway_env.vehicle.kinematics.Vehicle.DEFAULT_INITIAL_SPEEDS"]], "history_size (highway_env.vehicle.kinematics.vehicle attribute)": [[9, "highway_env.vehicle.kinematics.Vehicle.HISTORY_SIZE"]], "length (highway_env.vehicle.kinematics.vehicle attribute)": [[9, "highway_env.vehicle.kinematics.Vehicle.LENGTH"]], "max_speed (highway_env.vehicle.kinematics.vehicle attribute)": [[9, "highway_env.vehicle.kinematics.Vehicle.MAX_SPEED"]], "min_speed (highway_env.vehicle.kinematics.vehicle attribute)": [[9, "highway_env.vehicle.kinematics.Vehicle.MIN_SPEED"]], "vehicle (class in highway_env.vehicle.kinematics)": [[9, "highway_env.vehicle.kinematics.Vehicle"]], "width (highway_env.vehicle.kinematics.vehicle attribute)": [[9, "highway_env.vehicle.kinematics.Vehicle.WIDTH"]], "act() (highway_env.vehicle.kinematics.vehicle method)": [[9, "highway_env.vehicle.kinematics.Vehicle.act"]], "create_from() (highway_env.vehicle.kinematics.vehicle class method)": [[9, "highway_env.vehicle.kinematics.Vehicle.create_from"]], "create_random() (highway_env.vehicle.kinematics.vehicle class method)": [[9, "highway_env.vehicle.kinematics.Vehicle.create_random"]], "highway_env.vehicle.kinematics": [[9, "module-highway_env.vehicle.kinematics"]], "predict_trajectory() (highway_env.vehicle.kinematics.vehicle method)": [[9, "highway_env.vehicle.kinematics.Vehicle.predict_trajectory"]], "step() (highway_env.vehicle.kinematics.vehicle method)": [[9, "highway_env.vehicle.kinematics.Vehicle.step"]], "highwayenv (class in highway_env.envs.highway_env)": [[10, "highway_env.envs.highway_env.HighwayEnv"]], "default_config() (highway_env.envs.highway_env.highwayenv class method)": [[10, "highway_env.envs.highway_env.HighwayEnv.default_config"]], "intersectionenv (class in highway_env.envs.intersection_env)": [[12, "highway_env.envs.intersection_env.IntersectionEnv"]], "default_config() (highway_env.envs.intersection_env.intersectionenv class method)": [[12, "highway_env.envs.intersection_env.IntersectionEnv.default_config"]], "step() (highway_env.envs.intersection_env.intersectionenv method)": [[12, "highway_env.envs.intersection_env.IntersectionEnv.step"]], "mergeenv (class in highway_env.envs.merge_env)": [[13, "highway_env.envs.merge_env.MergeEnv"]], "default_config() (highway_env.envs.merge_env.mergeenv class method)": [[13, "highway_env.envs.merge_env.MergeEnv.default_config"]], "parkingenv (class in highway_env.envs.parking_env)": [[14, "highway_env.envs.parking_env.ParkingEnv"]], "compute_reward() (highway_env.envs.parking_env.parkingenv method)": [[14, "highway_env.envs.parking_env.ParkingEnv.compute_reward"]], "default_config() (highway_env.envs.parking_env.parkingenv class method)": [[14, "highway_env.envs.parking_env.ParkingEnv.default_config"]], "define_spaces() (highway_env.envs.parking_env.parkingenv method)": [[14, "highway_env.envs.parking_env.ParkingEnv.define_spaces"]], "racetrackenv (class in highway_env.envs.racetrack_env)": [[15, "highway_env.envs.racetrack_env.RacetrackEnv"]], "default_config() (highway_env.envs.racetrack_env.racetrackenv class method)": [[15, "highway_env.envs.racetrack_env.RacetrackEnv.default_config"]], "roundaboutenv (class in highway_env.envs.roundabout_env)": [[16, "highway_env.envs.roundabout_env.RoundaboutEnv"]], "default_config() (highway_env.envs.roundabout_env.roundaboutenv class method)": [[16, "highway_env.envs.roundabout_env.RoundaboutEnv.default_config"]], "envviewer (class in highway_env.envs.common.graphics)": [[18, "highway_env.envs.common.graphics.EnvViewer"]], "lanegraphics (class in highway_env.road.graphics)": [[18, "highway_env.road.graphics.LaneGraphics"]], "roadgraphics (class in highway_env.road.graphics)": [[18, "highway_env.road.graphics.RoadGraphics"]], "roadobjectgraphics (class in highway_env.road.graphics)": [[18, "highway_env.road.graphics.RoadObjectGraphics"]], "stripe_length (highway_env.road.graphics.lanegraphics attribute)": [[18, "highway_env.road.graphics.LaneGraphics.STRIPE_LENGTH"]], "stripe_spacing (highway_env.road.graphics.lanegraphics attribute)": [[18, "highway_env.road.graphics.LaneGraphics.STRIPE_SPACING"]], "stripe_width (highway_env.road.graphics.lanegraphics attribute)": [[18, "highway_env.road.graphics.LaneGraphics.STRIPE_WIDTH"]], "worldsurface (class in highway_env.road.graphics)": [[18, "highway_env.road.graphics.WorldSurface"]], "blit_rotate() (highway_env.road.graphics.roadobjectgraphics static method)": [[18, "highway_env.road.graphics.RoadObjectGraphics.blit_rotate"]], "close() (highway_env.envs.common.graphics.envviewer method)": [[18, "highway_env.envs.common.graphics.EnvViewer.close"]], "continuous_curve() (highway_env.road.graphics.lanegraphics class method)": [[18, "highway_env.road.graphics.LaneGraphics.continuous_curve"]], "continuous_line() (highway_env.road.graphics.lanegraphics class method)": [[18, "highway_env.road.graphics.LaneGraphics.continuous_line"]], "display() (highway_env.envs.common.graphics.envviewer method)": [[18, "highway_env.envs.common.graphics.EnvViewer.display"]], "display() (highway_env.road.graphics.lanegraphics class method)": [[18, "highway_env.road.graphics.LaneGraphics.display"]], "display() (highway_env.road.graphics.roadgraphics static method)": [[18, "highway_env.road.graphics.RoadGraphics.display"]], "display() (highway_env.road.graphics.roadobjectgraphics class method)": [[18, "highway_env.road.graphics.RoadObjectGraphics.display"]], "display_road_objects() (highway_env.road.graphics.roadgraphics static method)": [[18, "highway_env.road.graphics.RoadGraphics.display_road_objects"]], "display_traffic() (highway_env.road.graphics.roadgraphics static method)": [[18, "highway_env.road.graphics.RoadGraphics.display_traffic"]], "draw_stripes() (highway_env.road.graphics.lanegraphics class method)": [[18, "highway_env.road.graphics.LaneGraphics.draw_stripes"]], "get_image() (highway_env.envs.common.graphics.envviewer method)": [[18, "highway_env.envs.common.graphics.EnvViewer.get_image"]], "handle_event() (highway_env.road.graphics.worldsurface method)": [[18, "highway_env.road.graphics.WorldSurface.handle_event"]], "handle_events() (highway_env.envs.common.graphics.envviewer method)": [[18, "highway_env.envs.common.graphics.EnvViewer.handle_events"]], "highway_env.envs.common.graphics": [[18, "module-highway_env.envs.common.graphics"]], "highway_env.road.graphics": [[18, "module-highway_env.road.graphics"]], "highway_env.vehicle.graphics": [[18, "module-highway_env.vehicle.graphics"]], "is_visible() (highway_env.road.graphics.worldsurface method)": [[18, "highway_env.road.graphics.WorldSurface.is_visible"]], "move_display_window_to() (highway_env.road.graphics.worldsurface method)": [[18, "highway_env.road.graphics.WorldSurface.move_display_window_to"]], "pix() (highway_env.road.graphics.worldsurface method)": [[18, "highway_env.road.graphics.WorldSurface.pix"]], "pos2pix() (highway_env.road.graphics.worldsurface method)": [[18, "highway_env.road.graphics.WorldSurface.pos2pix"]], "set_agent_action_sequence() (highway_env.envs.common.graphics.envviewer method)": [[18, "highway_env.envs.common.graphics.EnvViewer.set_agent_action_sequence"]], "set_agent_display() (highway_env.envs.common.graphics.envviewer method)": [[18, "highway_env.envs.common.graphics.EnvViewer.set_agent_display"]], "striped_line() (highway_env.road.graphics.lanegraphics class method)": [[18, "highway_env.road.graphics.LaneGraphics.striped_line"]], "vec2pix() (highway_env.road.graphics.worldsurface method)": [[18, "highway_env.road.graphics.WorldSurface.vec2pix"]], "window_position() (highway_env.envs.common.graphics.envviewer method)": [[18, "highway_env.envs.common.graphics.EnvViewer.window_position"]], "abstractenv (class in highway_env.envs.common.abstract)": [[21, "highway_env.envs.common.abstract.AbstractEnv"]], "multiagentwrapper (class in highway_env.envs.common.abstract)": [[21, "highway_env.envs.common.abstract.MultiAgentWrapper"]], "perception_distance (highway_env.envs.common.abstract.abstractenv attribute)": [[21, "highway_env.envs.common.abstract.AbstractEnv.PERCEPTION_DISTANCE"]], "_automatic_rendering() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._automatic_rendering"]], "_info() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._info"]], "_is_terminated() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._is_terminated"]], "_is_truncated() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._is_truncated"]], "_reset() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._reset"]], "_reward() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._reward"]], "_rewards() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._rewards"]], "_simulate() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv._simulate"]], "change_vehicles() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.change_vehicles"]], "close() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.close"]], "default_config() (highway_env.envs.common.abstract.abstractenv class method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.default_config"]], "define_spaces() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.define_spaces"]], "highway_env.__init__": [[21, "module-highway_env.__init__"]], "highway_env.envs.common.abstract": [[21, "module-highway_env.envs.common.abstract"]], "register_highway_envs() (in module highway_env.__init__)": [[21, "highway_env.__init__.register_highway_envs"]], "render() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.render"]], "reset() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.reset"]], "simplify() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.simplify"]], "step() (highway_env.envs.common.abstract.abstractenv method)": [[21, "highway_env.envs.common.abstract.AbstractEnv.step"]], "step() (highway_env.envs.common.abstract.multiagentwrapper method)": [[21, "highway_env.envs.common.abstract.MultiAgentWrapper.step"]], "vehicle (highway_env.envs.common.abstract.abstractenv property)": [[21, "highway_env.envs.common.abstract.AbstractEnv.vehicle"]], "exitobservation (class in highway_env.envs.common.observation)": [[23, "highway_env.envs.common.observation.ExitObservation"]], "grayscaleobservation (class in highway_env.envs.common.observation)": [[23, "highway_env.envs.common.observation.GrayscaleObservation"]], "kinematicobservation (class in highway_env.envs.common.observation)": [[23, "highway_env.envs.common.observation.KinematicObservation"]], "kinematicsgoalobservation (class in highway_env.envs.common.observation)": [[23, "highway_env.envs.common.observation.KinematicsGoalObservation"]], "occupancygridobservation (class in highway_env.envs.common.observation)": [[23, "highway_env.envs.common.observation.OccupancyGridObservation"]], "fill_road_layer_by_cell() (highway_env.envs.common.observation.occupancygridobservation method)": [[23, "highway_env.envs.common.observation.OccupancyGridObservation.fill_road_layer_by_cell"]], "fill_road_layer_by_lanes() (highway_env.envs.common.observation.occupancygridobservation method)": [[23, "highway_env.envs.common.observation.OccupancyGridObservation.fill_road_layer_by_lanes"]], "highway_env.envs.common.observation": [[23, "module-highway_env.envs.common.observation"]], "normalize() (highway_env.envs.common.observation.occupancygridobservation method)": [[23, "highway_env.envs.common.observation.OccupancyGridObservation.normalize"]], "normalize_obs() (highway_env.envs.common.observation.kinematicobservation method)": [[23, "highway_env.envs.common.observation.KinematicObservation.normalize_obs"]], "observe() (highway_env.envs.common.observation.exitobservation method)": [[23, "highway_env.envs.common.observation.ExitObservation.observe"]], "observe() (highway_env.envs.common.observation.grayscaleobservation method)": [[23, "highway_env.envs.common.observation.GrayscaleObservation.observe"]], "observe() (highway_env.envs.common.observation.kinematicobservation method)": [[23, "highway_env.envs.common.observation.KinematicObservation.observe"]], "observe() (highway_env.envs.common.observation.kinematicsgoalobservation method)": [[23, "highway_env.envs.common.observation.KinematicsGoalObservation.observe"]], "observe() (highway_env.envs.common.observation.occupancygridobservation method)": [[23, "highway_env.envs.common.observation.OccupancyGridObservation.observe"]], "pos_to_index() (highway_env.envs.common.observation.occupancygridobservation method)": [[23, "highway_env.envs.common.observation.OccupancyGridObservation.pos_to_index"]], "space() (highway_env.envs.common.observation.grayscaleobservation method)": [[23, "highway_env.envs.common.observation.GrayscaleObservation.space"]], "space() (highway_env.envs.common.observation.kinematicobservation method)": [[23, "highway_env.envs.common.observation.KinematicObservation.space"]], "space() (highway_env.envs.common.observation.kinematicsgoalobservation method)": [[23, "highway_env.envs.common.observation.KinematicsGoalObservation.space"]], "space() (highway_env.envs.common.observation.occupancygridobservation method)": [[23, "highway_env.envs.common.observation.OccupancyGridObservation.space"]]}})
\ No newline at end of file