Files
PathPlanning/Search-based Planning/Search_3D/__pycache__/utils3D.cpython-37.pyc
T

95 lines
5.9 KiB
Plaintext
Raw Normal View History

2020-06-27 09:58:58 -07:00
B
2020-07-09 17:30:32 -07:00
ƒ³ã@ddlZddlZddlmZddZddZddZd d
2020-07-09 03:01:40 -07:00
Zd d Z d
2020-07-09 17:30:32 -07:00
dZ
ddZ ddZ ddZ
2020-07-09 03:01:40 -07:00
d%ddZddZddZddZddZd&dd „Zd!d"„Zed#kr¸d$ZeeeƒƒdS)'éN)Ú defaultdictcCs<|d|d|d|d|d|dg}t ||g¡S)Nréé)ÚnpÚarray)Údirec©r
2020-07-09 17:30:32 -07:00
ú‡c:\Users\39131\Desktop\github\path-planning-algorithms\Search-based Planning\Search_3D/../../Search-based Planning\Search_3D\utils3D.pyÚgetRays.r cCsDt t|d|dd|d|dd|d|ddgƒ¡S)Nrrr)rÚsqrtÚsum)Úpos1Úpos2r
2020-07-09 03:01:40 -07:00
r
r ÚgetDist srcCs>tt|d|dƒt|d|dƒt|d|dƒgƒS)Nrrr)rÚabs)rrr
2020-07-09 17:30:32 -07:00
r
2020-07-09 03:01:40 -07:00
r Ú
getManDistsrcCs6d\}}x(|D] }t||ƒ}||kr||}}qW|S)z!get the nearest point on the grid)N)r)ÚSpaceÚptZmindisZminptÚptsÚdisr
2020-07-09 17:30:32 -07:00
r
2020-07-09 00:46:50 -07:00
r Ú
2020-07-09 03:01:40 -07:00
getNearests 

rc
2020-07-09 17:30:32 -07:00
CsZi}xP| ¡D]D}ttt |d|d|d|d|d|dg¡ƒƒ||<qW|S)zMax norm distancerrr)ÚkeysÚmaxrrr)rÚkr
r
2020-07-09 03:01:40 -07:00
r Ú HeuristicsDrcCst|d|dkr |dkrpnnL|d|dkrD|dkrpnn(|d|dkrh|dkrpnndSdS) NréréréTFr
2020-07-09 17:30:32 -07:00
)Úirr
2020-07-09 03:01:40 -07:00
r
2020-07-09 17:30:32 -07:00
r Ú isinbound%slr#cCs"t|dd|ƒ|dkrdSdS)NrrTF)r)r"rr
2020-07-09 03:01:40 -07:00
r
r Úisinball+sr$c Cs`|dd|d}}|d|d|d|d|d|dg}|d|d|d|d|d|dg}d|d|d|d|d|d|d|d|d|d|d|d|d}|dkr"|d|d|d|d|d|d|dkr\dSn:|dkrš|d|d|d|d|d|dg}|d|d|d|d|d|d|dkr\dSnÂd|kr²dkr\nn¦|d||d|d||d|d||dg} |d| d|d| d|d| dg}
|
d|
d|
d|
2020-07-09 17:30:32 -07:00
d|
d|
2020-07-09 03:01:40 -07:00
d|dkr\dSdS)NrréÿÿÿÿrrTFr
) Úp0Úp1ÚballÚlineÚd1rÚd2rrr
2020-07-09 17:30:32 -07:00
r
2020-07-09 03:01:40 -07:00
r Ú
2020-07-09 17:30:32 -07:00
lineSphere1s$..22
2020-07-09 11:32:11 -07:00
:
.::.:r.c Cs8|d|dd|d|dd|d|ddg}|d|d||d|d||d|d|g}|d}|j}|j}|d|d|d|d|d|dg} t| dƒ|d|t|dƒkrÞdSt| dƒ|d|t|dƒkrdSt| dƒ|d|t|dƒkr2dS|dt|dƒ|dt|dƒ}
t| d|d| d|dƒ|
krˆdS|dt|dƒ|dt|dƒ}
t| d|d| d|dƒ|
2020-07-09 17:30:32 -07:00
krÞdS|dt|dƒ|dt|dƒ}
2020-07-09 11:32:11 -07:00
t| d|d| d|dƒ|
2020-07-09 17:30:32 -07:00
kr4dSdS)NrrrFT)ÚEr) r&r'ÚdistÚaabbÚmidÚhlr/r0ÚTr*r
2020-07-08 23:53:27 -07:00
r
2020-07-09 17:30:32 -07:00
r ÚlineAABBDs,::.$&&(*(*(*r7cC|j}|j}|d|||d||}}|d|||d||}}|d|||d||}} t |||¡ t¡}
t |||¡ t¡} t || |¡ t¡} tƒ}
2020-07-09 03:01:40 -07:00
x8|
D]0}x*| D]"}x| D]}|
2020-07-09 17:30:32 -07:00
 |||f¡qÎWqÄWqºW|
2020-07-08 23:53:27 -07:00
S)Nrrrr rr!)ÚboundaryÚ
resolutionrÚarangeÚastypeÚfloatÚsetÚadd)ÚenvÚfactorr8r9ÚxminÚxmaxÚyminÚymaxÚzminÚzmaxÚxarrZyarrZzarrrrrÚzr
2020-07-09 17:30:32 -07:00
r
r Ú
2020-07-09 03:01:40 -07:00
StateSpace]s"""

2020-07-09 17:30:32 -07:00

2020-07-08 23:53:27 -07:00
rIcCs*i}t|jƒ}x|D]}tj||<qW|S)z|This function is used to get nodes and discretize the space.
State space is by x*y*z,3 where each 3 is a point in 3D.)rIr?rÚinf)Ú
2020-07-09 17:30:32 -07:00
initparamsÚgrÚvr
r
2020-07-09 03:01:40 -07:00
r Úg_Spacens
2020-07-09 17:30:32 -07:00


rNcCs†t||ƒ}t|jj|ƒs d|fSx6tt|jjƒƒD]"}t||||jj|ƒr2d|fSq2Wx$|jjD]}t |||ƒrbd|fSqbWd|fS)zsee if line intersects obstacleTF)
rr#r?r8ÚrangeÚlenÚAABBr7Úballsr.)rKrÚchildr1r"r
r
r Ú isCollidexs
   rTc g}|jj}xx|jD]n}tttj|t ||¡ƒƒtfdd|jj DƒƒrNqtfdd|jj
Dƒƒrjqt |jj ˆƒr| 
ˆ¡qW|S)Ncsg|]}t|ˆƒqSr
2020-06-29 20:46:59 -07:00
)r$)Ú.0r")rSr
2020-07-09 17:30:32 -07:00
r ú
2020-07-09 03:01:40 -07:00
<listcomp>szchildren.<locals>.<listcomp>csg|]}t|ˆƒqSr
2020-07-09 17:30:32 -07:00
)r#)rUr")rSr
2020-06-29 20:46:59 -07:00
r rVs)r?r9ÚAlldirecÚtupleÚmaprr>ÚmultiplyÚanyrRÚblocksr#r8Úappend)rKrÚallchildr9r r
2020-07-09 17:30:32 -07:00
)rSr ÚchildrenŠs r_cCsDx|jjD]}t||ƒr
2020-07-09 03:01:40 -07:00
dSq
2020-07-09 17:30:32 -07:00
Wx|jjD]}t||ƒr*dSq*WdS)NFT)r?r\r#rRr$)rKrr"r
2020-07-09 03:01:40 -07:00
r
r Ú obstacleFree™s
2020-07-09 17:30:32 -07:00

2020-07-09 03:01:40 -07:00
r`cCsFt|||ƒ\}}|dkr&|r"tjS|S|dkrB|r8tjSt||ƒSdS)Nrr)rTrrJr)rKr"ÚjZsettingsZcollider1r
2020-07-09 17:30:32 -07:00
r
2020-07-09 03:01:40 -07:00
r Úcost£srbcCsLtddƒ}x:|jD]0}t||ƒ}x |D]}t|||ƒ|||<q(WqW|S)NcSsttƒS)N)rÚdictr
2020-07-09 17:30:32 -07:00
r
2020-07-09 03:01:40 -07:00
r
r Ú<lambda>³ózinitcost.<locals>.<lambda>)rÚXr_rb)rKr)ÚxiZcdrenrSr
2020-07-09 17:30:32 -07:00
r
r Úinitcost±s   

rhÚ__main__z())r)r)ÚnumpyrZpyrrÚ collectionsrr rrrrr#r$r.r7rIrNrTr_r`rbrhÚ__name__ÚprintÚlistr
r
r
r Ú<module>s*