unified optimal search search building example. search building 1.choose anw.location = window1,...
DESCRIPTION
(root USARteam ) ;; root object of RMPL program (defdomain building_rooms (daycare cafeteria laboratory window1 window2 office)) (defclass helicopter () (public state building_rooms location) ) (defclass smallbot () (public state building_rooms loc) ) ;;Main Program (defclass USARteam () (public state helicopter ANW1) (public state smallbot chembots);; (Search_Building() (sequence (choose ((ANW1.location = window1)[]) ((ANW1.location = window2)[]) ) ( parallel ((ANW1.location = laboratory)[]) ((ANW1.Take_Pictures(100))[] ) ) ((ANW1.Lower_Chembots(50))[]) (choose ((ANW1.location = daycare)[]) ((ANW1.location = cafeteria)[]) ((ANW1.location = office)[]) ) ;;(if-thennext(NOT(ANW1.location = daycare)) ;; (( ANW1.location = daycare )[]) ;;) );;end sequence );;end Search_Building );;end USARteamTRANSCRIPT
Unified optimal search
Search building example
Search Building1.Choose ANW.location = window1, window2// 2 windows broken out on different floors2. Fly to laboratoryA //gather vision data advance film, snapshot, camera = on3. Lower chem bots//4.Choose café or daycare //want to show backtrack to diff paths through diff plan5. If not daycare then daycare//5. Fly to labA6. Transmit msg to chem-bots7.Chembots ask if ANW1 = labA, then both go to rendzvous//focus on ANW1’s portion of the plan, fragment of rmpl code
(root USARteam ) ;; root object of RMPL program
(defdomain building_rooms (daycare cafeteria laboratory
window1 window2 office))
(defclass helicopter ()
(public state building_rooms location)
)
(defclass smallbot ()
(public state building_rooms loc)
)
;;Main Program(defclass USARteam () (public state helicopter ANW1) (public state smallbot chembots);; (Search_Building() (sequence
(choose ((ANW1.location = window1)[]) ((ANW1.location = window2)[])
)( parallel ((ANW1.location = laboratory)[]) ((ANW1.Take_Pictures(100))[] ))((ANW1.Lower_Chembots(50))[])(choose ((ANW1.location = daycare)[]) ((ANW1.location = cafeteria)[]) ((ANW1.location = office)[]))
;;(if-thennext(NOT(ANW1.location = daycare))
;; (( ANW1.location = daycare )[]);;)
);;end sequence );;end Search_Building);;end USARteam
S G
A
B D
C E
F H
K
R
Search_Building() [ ]
J
I
L M
N P
Q
(ANW1= window1) [ ]
(ANW1 = window2)[ ]
(ANW1 = daycare)[ ]
(ANW1 = cafeteria)[ ]
(ANW1.TakePictures())[ ]
40
70
35
70
50
A* on RRTPN
• A TPN with costs• Use algm from other slides• when 1st loc node is reached then it is
initialized with the SLD, on the arc before the
• then loc is expanded for a specific number of iterations, the
S G
A
B D
C E
F H
K
R
Search_Building() [ ]
J
I
L M
N P
Q
(ANW1= window1) [ ]
(ANW1 = window2)[ ]
(ANW1 = daycare)[ ]
(ANW1 = cafeteria)[ ]
(ANW1.TakePictures())[ ]
35
1.Search Tree is initialized with S, and initial position (state) of ANW1(proapagated fwd)2. S refers to the start of parallel activities so each of its successor is added together, Sis completed and Closed3. G is expanded, completed and Closed4. A is expanded and creates two paths (CA) (BA), since both C and B begin a location constraintthen they are initialized with a SLD cost estimate.5. B grows an RRT for one step, then metric, m = dist of closest node/#iters is computed
S
SG
A
3 steps, 100 iters per stepinit:SLD/epsilon
5
5
5
5
5
5
5
5
55
5
5
5
5
5 5
S G
A
B D
C E
F H
K
R
Search_Building() [ ]
J
I
L M
N P
Q
(ANW1= window1) [ ]
(ANW1 = window2)[ ]
(ANW1 = daycare)[ ]
(ANW1 = cafeteria)[ ]
(ANW1.TakePictures())[ ]
40
70
35
50
70
4. A is expanded and creates two paths (CA) (BA), since both C and B begin a location constraintthen they are initialized with a SLD?? cost estimate.5. B grows an RRT (from current state) for one step, then metric, m = (#iters)/dist(n) is computed#iters = 100, dist = 35==> m= 100/35 = 2.9 (can scale it)B adds a step arc and node that represent the current RRT state, b16.B is expanded one step, #iters = 200, m = 200/20 = 107. C is expanded one step (really bad and finish off with B)
S
AB?40
G
b1
show minimal partial expansion
show expansion with wall, #iters increases
S
AB?40
G
b1
2.9
b2
S G
A
B D
C E
F H
K
R
Search_Building() [ ]
J
I
L M
N P
Q
(ANW1= window1) [ ]
(ANW1 = window2)[ ]
(ANW1 = daycare)[ ]
(ANW1 = cafeteria)[ ]
(ANW1.TakePictures())[ ]
40
70
35
50
70
6.B is expanded one step, #iters = 200, m = 200/20 = 107. C is expanded one step (really bad and finish off with B)
S
AB?40
G
b1
show minimal partial expansion
show expansion with wall, #iters increases
S
AB4
G
b1
2.9
b22.9
S
AB?40
G
b1 b22.9
ANW1 A
BC
Path-Planning State Space
Results
ok now
• just grow ‘em• just say there is a number of
optimazations that can be done to improve, take into account the #of iters
• step– step cost– max steps– can be optmized by preferring to step one
path over another
(ANW1.location = windowI)
Path-Planning SpaceANW1.start
ANW1.goal
Step Arc 1Step Node 1
10
S
D
B
C G
AND-node
A
Search tree after expanding node A
S
A
BCD
S G
A
B D
C E
F H
K
R
Search_Building() [ ]
J
I
L M
N P
Q
(ANW1= windowI) [ ]
(ANW1 = windowII)[ ]
(ANW1 = cafeteria)[ ]
(ANW1.TakePictures())[ ]
35
5
5
5
5
5
5
5
5
55
5
5
5
5
5 5
AND-node
AND-node
S G
A
D
5
5
5
5
c1
Bb2b1
start goal
C
start
goal
S G
A
D
5
5
5
5
c1
B
start goal
C
start
goal
F H
KJ
I
L M
N P
(ANW1 = cafeteria)[ ]5
5
55
5
5
5