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

47 lines
4.0 KiB
Plaintext
Raw Normal View History

2020-06-27 09:58:58 -07:00
B
2020-07-08 23:36:27 -07:00
Y?
2020-06-27 09:58:58 -07:00
ã@s”ddlZddlZddZddZddZdd „Zd
2020-07-08 23:36:27 -07:00
d Zd d
2020-07-02 14:41:09 -07:00
ZddZ ddZ
2020-06-27 09:58:58 -07:00
ddZ dddZ ddZ
2020-07-08 23:36:27 -07:00
ddZdddZedkrddlmZdS) éNcCs<|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
2020-06-29 20:46:59 -07:00
ÚgetDistsrcCs>tt|d|dƒt|d|dƒt|d|dƒgƒS)Nrrr)r
2020-07-02 14:41:09 -07:00
Úabs)rrr r r
2020-07-08 23:36:27 -07:00
Ú
getManDist srcCsBd\}}x4| ¡D](}t|ƒ}t||ƒ}||kr||}}qW|S)z!get the nearest point on the grid)N)ÚkeysÚdehashr)ÚSpaceÚptÚmindisÚminptZstrptsÚptsÚdisr r r
Ú
2020-06-27 09:58:58 -07:00
getNearests
2020-07-08 23:36:27 -07:00
rcCs2i}x(| ¡D]}tt|t|ƒƒƒ||<qW|S)zMax norm distance)rÚmaxrr)rÚkr r r
Ú Heuristicsr cCs,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
ú
2020-06-27 09:58:58 -07:00
<listcomp>#szdehash.<locals>.<listcomp>r!)rrÚsplit)rr r r
r"srcCst|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-cCs
|jj}|jj}|d|||d||}}|d|||d||}}|d|||d||}} t |||¡ t¡}
2020-07-08 23:36:27 -07:00
t |||¡ t¡} t || |¡ t¡} t |
| | ¡}
t |
2020-06-27 09:58:58 -07:00
dt |
2020-07-08 23:36:27 -07:00
ƒt | ƒt | ƒg¡}i}x|j
2020-07-02 14:41:09 -07:00
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+)
2020-06-27 22:16:12 -07:00
ÚenvÚboundaryÚ
2020-07-08 23:36:27 -07:00
resolutionrÚarangeÚastyper$ÚmeshgridÚreshapeÚlenÚinfr#)Ú
initparamsÚfactorr/r0ÚxminÚxmaxÚyminÚymaxÚzminÚzmaxÚxarrÚyarrÚzarrÚVZVVrÚvr r r
2020-06-27 09:58:58 -07:00
Ú
2020-07-02 14:41:09 -07:00
StateSpace/s"""$ rEc
2020-06-27 22:16:12 -07:00
|jj}t tttjˆt ||¡ƒƒ¡}tˆ|ƒt ˆ|ƒ}}t
2020-07-08 23:36:27 -07:00
|jj |ƒsTd|fSx@|jj D]4}t
2020-06-29 20:46:59 -07:00
j ||¡}|dk r^t ˆ|ƒ} | |kr^d|fSq^Wx^|jjD]R}t||ƒr¶d|fSt
2020-07-08 23:36:27 -07:00
j ||¡}|gkr ‡fdd|Dƒ}
2020-07-02 14:41:09 -07:00
t|
2020-06-29 20:46:59 -07:00
|kƒr d|fSq Wd|fS)zsee if line intersects obstacleTNcsg|]}tˆ|ƒqSr )r)r%Új)rr r
2020-07-08 23:36:27 -07:00
r'SszisCollide.<locals>.<listcomp>F)r.r0rrÚlistÚmapÚaddÚmultiplyr rr,r/ÚAABBÚpyrrÚgeometric_testsÚray_intersect_aabbÚballsr-Úray_intersect_sphereÚall) r8rrr0ÚchildÚrayÚdistr&ÚshotÚ dist_wallÚ
2020-07-02 14:41:09 -07:00
dists_ballr )rr
2020-07-08 23:36:27 -07:00
Ú isCollideAs( 
2020-07-02 14:41:09 -07:00
 
2020-06-27 22:16:12 -07:00
  rXcCsDx|jjD]}t||ƒr
2020-06-29 20:46:59 -07:00
dSq
Wx|jjD]}t||ƒr*dSq*WdS)NFT)r.Úblocksr,rOr-)r8rr&r r r