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

181 lines
11 KiB
Plaintext
Raw Normal View History

2020-06-27 09:58:58 -07:00
B
2020-07-26 14:44:35 -07:00
ñ_@4ã
@ddlZddlZddlmZddlZddZddZddZd d
2020-07-17 22:30:56 -07:00
Z d d Z
2020-07-26 14:44:35 -07:00
dCd
2020-07-25 23:58:53 -07:00
dZ dDddZ dEddZ
2020-07-09 03:01:40 -07:00
dFddZddZddZddZddZddZdGd d!„Zd"d#„Zd$d%„ZdHd&d'„Zd(d)„ZdId+d,„Zd-d.„Zed/krddlZdd0lmZmZed1d2d3gd4d5d5geddd6ƒƒZ d7d2d3gd8d2d3gZ!Z"e #d3d5d9gd:d;d<gd=d>d?gd5d5d5gd3d3d3gd9d9d9gg¡Z$e ¡Z%e e e$d@ddAdBe&e ¡e%ƒdS)JéN)Ú defaultdictcCs<|d|d|d|d|d|dg}t ||g¡S)Nréé)ÚnpÚarray)Údirec©r
2020-07-17 22:30:56 -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-17 22:30:56 -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-17 22:30:56 -07:00
r
2020-07-09 00:46:50 -07:00
r Ú
2020-07-10 21:52:57 -07:00
getNearests 
2020-07-09 03:01:40 -07:00

2020-07-17 22:30:56 -07:00
rcCs\i}xR| ¡D]F}tt|d|dƒt|d|dƒt|d|dƒgƒ||<qW|S)zMax norm distancerrr)ÚkeysÚmaxr)rÚkr
2020-07-10 21:52:57 -07:00
r
r Ú HeuristicsFrcCsL|dkr|j}tt|d|dƒt|d|dƒt|d|dƒgƒS)Nrrr)Úgoalrr)Ú
2020-07-26 14:44:35 -07:00
initparamsrrr
2020-07-09 03:01:40 -07:00
r
2020-07-26 14:44:35 -07:00
r Ú
2020-07-09 03:01:40 -07:00
heuristic_fun%sr!FcCs\|dkrt|||ƒS|rÌ|d||dddfk|dddf|d|k@}|d||dddfk|dddf|d|k@}|d||dddfk|dddf|d|k@}||@|@S|d||dkoò|d|knoV|d||dko"|d|knoV|d||dkoR|d|kSSdS)obbréréré)Úisinobb)ÚirÚmodeÚfactorÚisarrayZcompxZcompyZcompzr
2020-07-26 14:44:35 -07:00
r
r Ú isinbound*s 888 r+cCs&t|dd|ƒ|d|kr"dSdS)Nrr#TF)r)r'rr)r
r
r Úisinball5sr,cC|r„|jt |t t|ƒ¡f¡jjddddf}|jd |jd |jd |jd
|jd
|jd
g}t|||dS|jt |d¡}|jd |jd |jd |jd
2020-07-17 22:30:56 -07:00
|jd
2020-07-26 14:44:35 -07:00
|jd
2020-07-17 22:30:56 -07:00
g}t||ƒSdS)Nrr#rr)r*)ÚTrÚ column_stackÚonesÚlenÚEr+Úappend)r'rr*rÚblockrr
2020-07-26 14:44:35 -07:00
r
r r&:s2@@r&c Cs8t |¡}|j}|j}|j}|dt|ddƒ|dt|ddƒ|dt|ddƒ}|dt|ddƒ|dt|ddƒ|dt|ddƒ}|dt|ddƒ|dt|ddƒ|dt|ddƒ}t |||g¡}||_||_t dddgdddgdddgg¡|_|S)Nrrr)ÚcopyÚdeepcopyÚPr1ÚOrrr) r"Úaabbr6ÚAZExZEyZEzr1r
2020-07-09 03:01:40 -07:00
r
r ÚOBB2AABBEs
HHH$r;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|
2020-07-17 22:30:56 -07:00
d|
2020-07-10 21:52:57 -07:00
d|
2020-07-09 03:01:40 -07:00
d|
d|dkr\dSdS)Nrr#éÿÿÿÿrrTFr
2020-07-26 14:44:35 -07:00
) Úp0Úp1ZballÚlineÚd1rÚd2rrr
2020-07-09 03:01:40 -07:00
r
2020-07-26 14:44:35 -07:00
r Ú
2020-07-17 22:30:56 -07:00
lineSphereUs$..22
2020-07-26 14:44:35 -07:00
:
2020-07-17 22:30:56 -07:00
.::.:rDc CsD|d|dd|d|dd|d|ddg}|d|d||d|d||d|d|g}|d}|jd|d|jd|d|jd|dg}t|dƒ|jd|t|dƒkrÚdSt|dƒ|jd|t|dƒkrdSt|dƒ|jd|t|dƒkr2dS|jdt|dƒ|jdt|dƒ}t|d|d|d|dƒ|krŒdS|jdt|dƒ|jdt|dƒ}t|d|d|d|dƒ|krædS|jdt|dƒ|jdt|dƒ}t|d|d|d|dƒ|kr@dSdS)NrrrFT)r6rr1) r=r>Údistr8ÚmidÚhlr-r@r
2020-07-26 14:44:35 -07:00
r
r ÚlineAABBgs(::4&((,*,*,*rIcCsh|jt t ||g¡ddgg¡j}|jdddg}|_t|dddf|dddf||ƒ}||_|S)Nrrr#)r-rr.rr6rI)r=r>rEr"ÚresZoldPZansr
2020-07-17 22:30:56 -07:00
r
r ÚlineOBB~s
$&rKcCt |j¡t |j¡}}t |j¡t |j¡}}t |j¡t |j¡}}||}||d||d||dg} t ddg¡}
x tddƒD]ü} xôtddƒD]ä} || || |
| | <x~tddƒD]p} || }
|dt|
| dƒ|dt|
| dƒ|dt|
| dƒ}t| | ƒ}||
|krÒdSqÒWx¶tddƒD]¨} |dt|
d| ƒ|dt|
d| ƒ|dt|
d| ƒ}
|| }t| d|
d| | d|
d| | d|
d| ƒ}||
|krRdSqRW|dt|
ddƒ|dt|
ddƒ}
|dt|
ddƒ|dt|
ddƒ}t| d|
dd| d|
ddƒ}||
|krœdS|dt|
ddƒ|dt|
ddƒ}
|dt|
ddƒ|dt|
ddƒ}t| d|
dd| d|
ddƒ}||
|kr:dS|dt|
ddƒ|dt|
ddƒ}
|dt|
ddƒ|dt|
ddƒ}t| d|
dd| d|
ddƒ}||
|krØdS|dt|
ddƒ|dt|
ddƒ}
|dt|
ddƒ|dt|
ddƒ}t| d|
dd| d|
ddƒ}||
|krvdS|dt|
ddƒ|dt|
ddƒ}
|dt|
ddƒ|dt|
ddƒ}t| d|
dd| d|
ddƒ}||
|krdS|dt|
ddƒ|dt|
ddƒ}
|dt|
ddƒ|dt|
ddƒ}t| d|
dd| d|
2020-07-26 14:44:35 -07:00
ddƒ}||
2020-07-17 22:30:56 -07:00
|kr²dS|dt|
2020-07-26 14:44:35 -07:00
ddƒ|dt|
ddƒ}
2020-07-08 23:53:27 -07:00
|dt|
2020-07-17 22:30:56 -07:00
ddƒ|dt|
2020-07-26 14:44:35 -07:00
ddƒ}t| d|
2020-07-09 03:01:40 -07:00
dd| d|
ddƒ}||
2020-07-26 14:44:35 -07:00
|krPdS|dt|
2020-07-08 23:53:27 -07:00
ddƒ|dt|
ddƒ}
2020-07-26 14:44:35 -07:00
|dt|
ddƒ|dt|
2020-07-09 03:01:40 -07:00
ddƒ}t| d|
2020-07-26 14:44:35 -07:00
dd| d|
2020-07-08 23:53:27 -07:00
ddƒ}||
|krîdS|dt|
2020-07-26 14:44:35 -07:00
ddƒ|dt|
ddƒ}
2020-07-09 03:01:40 -07:00
|dt|
2020-07-26 14:44:35 -07:00
ddƒ|dt|
ddƒ}t| d|
2020-07-17 22:30:56 -07:00
dd| d|
2020-07-26 14:44:35 -07:00
ddƒ}||
2020-07-09 17:30:32 -07:00
|krŒdSdSWq”WdS)Nrrrr#FT)rrr1r6r7ÚzerosÚranger)Úobb1Zobb2r9ÚbZPaZPbr:Úvr-ÚRr'rZraÚrbrr
2020-07-26 14:44:35 -07:00
r
r ÚOBBOBB‰s†"H  H@
00,00,00,00,00,00,00,00,00,rTcC|j}|j}|d|||d||}}|d|||d||}}|d|||d||}} t |||¡ t¡}
t |||¡ t¡} t || |¡ t¡} tƒ}
x8|
D]0}x*| D]"}x| D]}|
 |||f¡qÎWqÄWqºW|
2020-06-29 20:46:59 -07:00
S)Nrr#rr$rr%)ÚboundaryÚ
2020-07-26 14:44:35 -07:00
resolutionrÚarangeÚastypeÚfloatÚsetÚadd)Úenvr)rUrVÚxminÚxmaxÚyminÚymaxÚzminÚzmaxÚxarrZyarrZzarrrrrÚzr
2020-07-09 03:01:40 -07:00
r
2020-07-26 14:44:35 -07:00
r Ú
2020-06-29 20:46:59 -07:00
StateSpaceðs"""
2020-07-26 14:44:35 -07:00

2020-07-09 03:01:40 -07:00

2020-07-26 14:44:35 -07:00
recCs*i}t|jƒ}x|D]}tj||<qW|S)z|This function is used to get nodes and discretize the space.
2020-07-19 17:17:06 -07:00
State space is by x*y*z,3 where each 3 is a point in 3D.)rer\rÚinf)r ÚgrrQr
2020-07-26 14:44:35 -07:00
r
2020-07-09 03:01:40 -07:00
r Úg_Spaces

2020-07-26 14:44:35 -07:00

2020-07-09 03:01:40 -07:00
rhcC|dkrt||ƒ}t|jj|ƒs(d|fSx6tt|jjƒƒD]"}t||||jj|ƒr:d|fSq:Wx$|jjD]}t |||ƒrjd|fSqjWx&|jj
2020-07-26 14:44:35 -07:00
D]}t ||||ƒrd|fSqWd|fS)zsee if line intersects obstacleNTF) rr+r\rUrMr0ÚAABBrIÚballsrDÚOBBrK)r rÚchildrEr'r
2020-07-09 03:01:40 -07:00
r
2020-07-26 14:44:35 -07:00
r Ú isCollide s
2020-07-09 03:01:40 -07:00
    rmc g}g}|jj}x¬|jD]¢}tttj|t ||¡ƒƒtfdd|jj DƒƒrRqtfdd|jj
Dƒƒrnqtfdd|jj DƒƒrŠqt |jj
2020-07-26 14:44:35 -07:00
ˆƒr| ˆ¡| ˆ|j||f¡qW|dkrÊ|S|dkrÖ|SdS)Ncsg|]}t|ˆƒqSr
2020-07-10 21:52:57 -07:00
)r&)Ú.0r')rlr
2020-07-17 22:30:56 -07:00
r ú
2020-07-26 14:44:35 -07:00
<listcomp>&szchildren.<locals>.<listcomp>csg|]}t|ˆƒqSr
)r,)rnr')rlr
r ro(scsg|]}t|ˆƒqSr
)r+)rnr')rlr
r ro*srr)r\rVÚAlldirecÚtupleÚmaprr[ÚmultiplyÚanyrkrjÚblocksr+rUr2)r rÚsettingsÚallchildZallcostrVr r
2020-07-09 17:30:32 -07:00
)rlr Úchildrens$ 
2020-07-18 23:37:52 -07:00
rxcCsDx|jjD]}t||ƒr
2020-07-26 14:44:35 -07:00
dSq