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

96 lines
6.0 KiB
Plaintext
Raw Normal View History

2020-06-27 09:58:58 -07:00
B
2020-07-09 11:32:11 -07:00
Ybã@ddlZddlZddlmZddZddZddZd d
2020-07-09 03:01:40 -07:00
Zd d Z d
2020-07-09 11:32:11 -07:00
dZ
2020-07-09 03:01:40 -07:00
ddZ ddZ ddZ
ddZddZd)ddZddZddZdd „Zd!d"„Zd*d#d$„Zd%d&„Zed'krÈd(ZeeeƒƒdS)+éN)Ú defaultdictcCs<|d|d|d|d|d|dg}t ||g¡S)Nréé)ÚnpÚarray)Údirec©r
ú‡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
r
r ÚgetDist srcCs>tt|d|dƒt|d|dƒt|d|dƒgƒS)Nrrr)rÚabs)rrr
r
r Ú
getManDist srcCs6d\}}x(|D] }t||ƒ}||kr||}}qW|S)z!get the nearest point on the grid)N)r)ÚSpaceÚptZmindisZminptÚptsÚdisr
r
2020-07-09 00:46:50 -07:00
r Ú
2020-07-09 03:01:40 -07:00
getNearests 

rc
CsZi}xP| ¡D]D}ttt |d|d|d|d|d|dg¡ƒƒ||<qW|S)zMax norm distancerrr)ÚkeysÚmaxrrr)rÚkr
r
r Ú HeuristicsDrcCs,t|dƒdt|dƒdt|dƒS)Nrú rr)Ústr)rr
r
r Úhash3Dsr!cCst dd| d¡Dƒ¡S)NcSsg|] }t|ƒqSr
)Úfloat)Ú.0Úir
r
r ú
<listcomp>#szdehash.<locals>.<listcomp>r)rrÚsplit)rr
r
r Údehash"sr'cCst|d|dkr |dkrpnnL|d|dkrD|dkrpnn(|d|dkrh|dkrpnndSdS) NréréréTFr
)r$rr
r
r Ú isinbound%slr+cCs"t|dd|ƒ|dkrdSdS)Nrr(TF)r)r$rr
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|
d|
d|
d|dkr\dSdS)Nrr(éÿÿÿÿrrTFr
) Úp0Úp1ZballÚlineÚd1rÚd2rrr
2020-07-09 11:32:11 -07:00
r
2020-07-09 03:01:40 -07:00
r Ú
2020-07-09 11:32:11 -07:00
lineSphere/s"..d
:
.::.:r5c 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ƒ|
krÞdS|dt|dƒ|dt|dƒ}
t| d|d| d|dƒ|
kr4dSdS)NrrrFT)ÚEr) r.r/ÚdistÚaabbÚmidÚhlr6r7ÚTr1r
2020-07-08 23:53:27 -07:00
r
2020-07-09 03:01:40 -07:00
r ÚlineAABB@s,::.$&&(*(*(*r>cC|j}|j}|d|||d||}}|d|||d||}}|d|||d||}} t |||¡ t¡}
2020-07-09 11:32:11 -07:00
t |||¡ t¡} t || |¡ t¡} tƒ}
2020-07-09 03:01:40 -07:00
x8|
D]0}x*| D]"}x| D]}|
2020-07-09 11:32:11 -07:00
 |||f¡qÎWqÄWqºW|
2020-07-08 23:53:27 -07:00
S)Nrr(rr)rr*)ÚboundaryÚ
resolutionrÚarangeÚastyper"ÚsetÚadd)ÚenvÚfactorr?r@ÚxminÚxmaxÚyminÚymaxÚzminÚzmaxÚxarrZyarrZzarrrrrÚzr
2020-07-09 11:32:11 -07:00
r
r Ú
2020-07-09 03:01:40 -07:00
StateSpaceYs"""

2020-07-09 11:32:11 -07:00

2020-07-08 23:53:27 -07:00
rOcCs*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.)rOrErÚinf)Ú
2020-07-09 11:32:11 -07:00
initparamsÚgrÚvr
2020-07-09 03:01:40 -07:00
r
2020-07-09 11:32:11 -07:00
r Úg_Spaceis


rTcCsˆt||ƒ}t|jj|ƒs d|fSx&|jjD]}t||||ƒr*d|fSq*Wx6|jjD]*}t||ƒrhd|fSt|||ƒrRd|fSqRWd|fS)zsee if line intersects obstacleTF) rr+rEr?ÚAABBr>Úballsr,r5)rQrÚchildr8r$r
2020-07-09 03:01:40 -07:00
r
2020-07-09 11:32:11 -07:00
r Ú isColliders
2020-06-29 20:46:59 -07:00
 
2020-07-09 11:32:11 -07:00
 rXc CsRg}|jj}x@|jD]6}tttj|t ||¡ƒƒ}t|jj |ƒr| 
2020-07-09 03:01:40 -07:00
|¡qW|S)N) rEr@ÚAlldirecÚtupleÚmaprrDÚmultiplyr+r?Úappend)rQrÚallchildr@r rWr
2020-07-09 11:32:11 -07:00
r
2020-06-29 20:46:59 -07:00
r Úchildren‡s r_cCsDx|jjD]}t||ƒr
2020-07-09 11:32:11 -07:00
dSq
2020-07-09 03:01:40 -07:00
Wx|jjD]}t||ƒr*dSq*WdS)NFT)rEÚblocksr+rVr,)rQrr$r
2020-07-09 11:32:11 -07:00
r
2020-07-09 03:01:40 -07:00
r Ú obstacleFrees

2020-07-09 11:32:11 -07:00
racCsFt|||ƒ\}}|dkr&|r"tjS|S|dkrB|r8tjSt||ƒSdS)Nrr)rXrrPr)rQr$ÚjZsettingsZcollider8r
2020-07-09 03:01:40 -07:00
r
2020-07-09 11:32:11 -07:00
r ÚcostšsrccCsLtddƒ}x:|jD]0}t||ƒ}x |D]}t|||ƒ|||<q(WqW|S)NcSsttƒS)N)rÚdictr
2020-07-09 03:01:40 -07:00
r
2020-07-09 11:32:11 -07:00
r
2020-07-09 03:01:40 -07:00
r Ú<lambda>¥ózinitcost.<locals>.<lambda>)rÚXr_rc)rQr0ÚxiZcdrenrWr
r
2020-07-09 11:32:11 -07:00
r Úinitcost£s   

2020-07-09 03:01:40 -07:00
riÚ__main__z())r)r)ÚnumpyrZpyrrÚ collectionsrr rrrrr!r'r+r,r5r>rOrTrXr_rarcriÚ__name__ÚprintÚlistr
2020-07-09 11:32:11 -07:00
r