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

42 lines
3.6 KiB
Plaintext
Raw Normal View History

2020-06-27 09:58:58 -07:00
B
÷^´ ã@sddlZddlZddZddZddZdd „Zd
d Zd d
ZddZ ddZ
dddZ ddZ ddZ
edkr~ddlmZdS)éNcCs<|d|d|d|d|d|dg}t ||g¡S)Nréé)ÚnpÚarray)Údirec©r ú/home/alex/Desktop/github/path-planning-algorithms/Search-based Planning/Astar_3D/../../Search-based Planning/Astar_3D/utils3D.pyÚgetRays.r c CsJg}x@|D]8}| t t |ddd¡t |ddd¡g¡¡q
W|S)Nréé)ÚappendrrÚadd)ÚblocksZAABBÚir r r
ÚgetAABBs
8rcCsDt t|d|dd|d|dd|d|ddgƒ¡S)Nrrr)rÚsqrtÚsum)Zpos1Zpos2r r r
ÚgetDistsrcCsBd\}}x4| ¡D](}t|ƒ}t||ƒ}||kr||}}qW|S)z!get the nearest point on the grid)N)ÚkeysÚdehashr)ÚSpaceZptZmindisZminptZstrptsZptsÚdisr r r
Ú
getNearests
rcCs2i}x(| ¡D]}tt|t|ƒƒƒ||<qW|S)zMax norm distance)rÚmaxÚabsr)rÚkr r r
Ú Heuristicsr cCs,t|dƒdt|dƒdt|dƒS)Nrú rr)Ústr)rr r r
Úhash3D"sr#cCst dd| d¡Dƒ¡S)NcSsg|] }t|ƒqSr )Úfloat)Ú.0rr r r
ú
<listcomp>&szdehash.<locals>.<listcomp>r!)rrÚsplit)rr r r
r%srcCst|d|dkr |dkrpnnL|d|dkrD|dkrpnn(|d|dkrh|dkrpnndSdS) Nrr réréTFr )rrr r r
Ú isinbound(slr*cCs
|jj}|jj}|d|||d||}}|d|||d||}}|d|||d||}} t |||¡ t¡}
t |||¡ t¡} t || |¡ t¡} t |
| | ¡}
t |
dt |
ƒt | ƒt | ƒg¡}i}x|j
D]}tj |t |ƒ<qðW|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.rr rr(rr))
ÚenvÚboundaryÚ
resolutionrÚarangeÚastyper$ÚmeshgridÚreshapeÚlenÚinfr#)Ú
initparamsZfactorr,r-ÚxminÚxmaxÚyminÚymaxÚzminÚzmaxZxarrZyarrZzarrÚVZVVrÚvr r r
Ú
StateSpace-s"""$ r>c
|jj}t tttjˆt ||¡ƒƒ¡}tˆ|ƒ}t ˆ|ƒ}t
|jj |ƒsRd|fSxDt |jj
ƒD]4}tj ||¡}|dk r`t ˆ|ƒ} | |kr`d|fSq`WxL|jjD]@}tj ||¡}|gkr¢‡fdd|Dƒ}
t|
|kƒr¢d|fSq¢Wd|fS)zsee if line intersects obstacleTNcsg|]}tˆ|ƒqSr )r)r%Új)rr r
r&PszisCollide.<locals>.<listcomp>F)r+r-rrÚlistÚmaprÚmultiplyr rr*r,rrÚpyrrZgeometric_testsZray_intersect_aabbÚballsZray_intersect_sphereÚall) r5rrr-ÚchildZrayÚdistrZshotZ dist_wallZ
dists_ballr )rr
Ú isCollide?s&