Path planning and source detection in unknown environments Richard Tsai University of Texas at Austin Joint work with Martin Burger, Yana Landa, and Nick Tanushev Research supported by NSF, Sloan Foundation, and ARO Exploration/surveillance Shortest path to see a smelly object Epoisse Shortest path to see a smelly object Do it without a map? Epoisse Major components • • Computing visibility (skipped in this talk) • • φ(x, O) when a map is available without a map Path planning • • • map out and inspect the domain discover and visually inspect the source(s) do it “well” -- optimization, adaptivity Defining visibility Obstacle: Γ = ∂Ω = ∂{Ψ < 0} Observing location: O Construct a continuous function φ(y, O) {y : φ(y, O) < 0} = occlusion from O φ(x, y) = φ(y, x) (reciprocity) Related work • Computing visibility: • Algorithms for handling surfaces: • Geometry: convexity and topology of the illuminated region of a solid surface [Ghomi] • Path planning: • Hamilton-Jacobi, computational geometry, boundary, medial axes approaches. [LaValle][Landa-Tsai] Source detection: Inverse source problems [Yamamoto][Santosa-Symes][Isakov] and many others Obstacles reconstructed by an ENO technique. Creating a map Level set representation of the environment. Simulation with real data Convergence theory • Single observer • Convex objects • Separation: non-overlapping disks, non-overlapping inscribing triangles • Finite number of objects Convergence C1 Convergence C1 Convergence C1 Some statistics 2 Sample environment 300 Number of steps histogram: approach nearest edge 300 Number of steps histogram: random walk 1 0 −1 −2 −2 200 200 100 100 0 −1 0 x 1 2 100 200 300 400 0 0 100 200 300 400 1000 independent runs Shortest path to see an object Target’s GPS coordinates given. Known obstacle configuration. S O Shortest path to see an object u(x,O): visibility from O reciprocity: u(x,y)=u(y,x) Compute what S can see: u(x,S) Compute a geodesics from O to the shadow boundary of S S O Shortest path to see multiple objects • Extension to multiple observers • Algorithm determines the existence of solutions. Target detection in unknown environments •Obstacles in the domain are unknown •Given the location of the target: S •Visibility from observing location available Move around to see the target (S) as soon as possible. 2 y 1 0 !1 !2 !2 !1 0 x 1 2 •Obstacles in the domain are unknown •Given the location of the target: S •Visibility from observing location available 2 2 1 1 0 0 y y Move around to see the target (S) as soon as possible. !1 !2 !2 !1 !1 0 x 1 2 !2 !2 !1 0 x 1 2 Shortest path if obstacles are given. 2 1 1 0 0 y y 2 !1 !2 !2 !1 !1 0 x 1 2 !2 !2 !1 0 x 1 2 Shortest path when obstacles are known. Where is the cheese? O S? Info available: • Obstacles • visibility φ(·, O) • smell: u(O, S), ∇1 u(O, S) (intensity, gradient) Reciprocity Self-adjoint problem −∆u = δ(x − S), (how the cheese smells) u|∂Ω ≡ 0 Ω S O Reciprocity Self-adjoint problem −∆u = δ(x − S), u|∂Ω ≡ 0 −∆v = δ(x − O), v|∂Ω ≡ 0 (how the cheese smells) (how my cheese smells) Ω S O Reciprocity Self-adjoint problem −∆u = δ(x − S), u|∂Ω ≡ 0 −∆v = δ(x − O), v|∂Ω ≡ 0 (how the cheese smells) (how my cheese smells) − ! Ω ∆u v dx = − Ω S ! u ∆v dx Ω v(S) = u(O) u(x, y)|y=S = u(x) u(x, y) = u(y, x) O Search with complete knowledge of obstacles Determine: source location (S) −∆u = δ(x − S), −∆v = δ(x − O), 1 S 0.8 u|∂Ω ≡ 0 v|∂Ω ≡ 0 0.6 0.4 v(S) = u(O) = I 0.2 0 given intensity −0.2 −0.4 −0.6 O −0.8 −1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 =⇒ S ∈ {v = I} 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 0 −0.2 −0.2 −0.4 −0.4 −0.6 −0.6 −0.8 −0.8 −1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −1 −1 −0.5 0 0.5 1 Derivative information ∆w (j) ∂ = δ(x − O), ∂xj =⇒ w (j) w (j) |∂Ω ≡ 0 (S) = uxj (O) 1 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1 −1 −0.5 0 0.5 1 Confidence function uk := u(Ok ), pk := ux (Ok ), qk := uy (Ok ) hk (x) −α(vk (x)−uk )2 := e (1) + −β(wk (x)−pk )2 c0 (e (2) −β(wk (x)−qk )2 +e H(x) = ! hk (x) ) Partial visibility information on obstacles ? S? O Info available: • visibility: φ(·, O) • smell: u(O, S), ∇1 u(O, S) (intensity, gradient) Adaptively increase the knowledge on the obstacle, and source location ? ? ? Comparison principle −∆v = δ(x − O) in Ω , v|Ω ≡ 0 c v ≥ 0 = v+ −∆v± = δ(x − O) in Ωc± , ṽ± |Ωc± ≡ 0 Ω− ⊂ Ω ⊂ Ω+ Ω− =⇒ v− ≥ v ≥ v+ I = u(O) = v(S) ≤ v− (S) ≥ v+ (S) i.e. S ∈ {x : v− (x) ≥ I ≥ v+ (x)} Ω+ S ∈ {x : v− (x) ≥ I ≥ v+ (x)} Sandwiching by under and over approx. obstacles Ω− ⊂ Ω ⊂ Ω+ Search with increasing knowledge of obstacles from vis. information 1 0.5 0 −0.5 −1 −1 −0.5 0 0.5 1 1 0.5 0 −0.5 −1 −1 −0.5 0 0.5 1 1 0.5 0 −0.5 −1 −1 −0.5 0 0.5 1 Search with increasing knowledge of obstacles from vis. information 1 0.5 0 −0.5 −1 −1 −0.5 0 0.5 1 1 0.5 0 −0.5 −1 −1 −0.5 0 0.5 1 Search terminates when the region of possible source location is visible at current vantage location. 1 0.5 0 −0.5 −1 −1 −0.5 0 0.5 1 Search terminates when the region of possible source location is visible at current vantage location. Single source of unknown strength Complete knowledge of the obstacle. −∆u = α δ(x − S), −∆vj = δ(x − Oj ), u|∂Ω ≡ 0 v|∂Ω ≡ 0, j = 1, 2 O1 != O2 α v1 (S) = u(O1 ) α v2 (S) = u(O2 ) =⇒ v1 (x) u(O1 ) S ∈ {x : = } v2 (x) u(O2 ) Single source of unknown strength Partial knowledge of the obstacle. −∆u = α δ(x − S), −∆v± = δ(x − O) in u|∂Ω ≡ 0 c Ω± , ṽ± |Ωc± ≡ 0 Ω− ⊂ Ω ⊂ Ω+ =⇒ v− ≥ v ≥ v+ ≥ 0 α v− (S) ≥ u(O1 ) α v+ (S) ≤ u(O2 ) =⇒ v− (x) u(O1 ) S ∈ {x : ≥ } v+ (x) u(O2 ) Where are the cheeses? S? −∆u = ! δ(x − Sj ), u|∂Ω ≡ 0 O S? Info available: • Obstacles • visibility φ(·, O) • smell: u(O, S), ∇1 u(O, S) (intensity, gradient) Multiple sources and theirs decays −∆uj = δ(x − Sj ), u= uj |∂Ω ≡ 0 |O − S1 | "| O − Sj |, ! uj j j #= 1 u1 (O) ∼ ! uj (O) 1 7 0.8 0.6 6 0.4 5 0.2 4 0 3 −0.2 −0.4 2 −0.6 1 −0.8 −1 −1 0 −1 −0.5 0 0.5 1 −0.5 0 0.5 1 Multiple sources and theirs decays −∆uj = δ(x − Sj ), u= uj |∂Ω ≡ 0 |O − S1 | "| O − Sj |, ! uj j j #= 1 u1 (O) ∼ ! uj (O) Effective source ~ one of the sources 1 7 0.8 0.6 6 0.4 5 0.2 4 0 3 −0.2 −0.4 2 −0.6 1 −0.8 −1 −1 0 −1 −0.5 0 0.5 1 −0.5 0 0.5 1 Inconsistent information from sensors sum of all h 0.5 0 !0.5 h for v !0.5 h for wx !0.5 h for wy !0.5 0.5 0.5 0.5 Consistent 0information from sensors 0 !0.5 level lines of v wx vy h for wx h hV for vhWx hWy sum of all v wx wy 4 0.5 2 00 !4 4 2 !0.5 h for sum of wy all h 0.5 0.5 0.5 0 00 sum of all h 4 2 sum of all hV hWx hWy !0.5 level lines of v wx!0.5 vy !0.5 !2 sum of all hV hWx hWy 0 !0.5 !0.5 v wx wy 0.5 0 0 !2 level lines of v wx wy !4 v wx wy !0.5 sum of all h 0.5 0 0 !2 !0.5 !4 level lines of v wx wy sum of all h sum of all hV hWx hWy 4 2 v wx wy 0 0 0 !2 ! !4 level lines of v wx wy sum of all h sum of all hV hWx hWy 4 2 v wx wy 0 0 0 !2 ! !4 Identified souce: S̃1 −∆ũ1 = δ(x − S̃1 ), ũj |∂Ω ≡ 0 level lines of v wx wy sum of all h sum of all hV hWx hWy 4 2 v wx wy 0 0 0 !2 ! !4 Identified souce: S̃1 −∆ũ1 = δ(x − S̃1 ), Adjusted “sniffing”: S̃2 ∈ {v = I − ũ1 (O)} ũj |∂Ω ≡ 0 I= ! uk (O) level lines of v wx wy sum of all h sum of all hV hWx hWy v wx wy 4 2 0 0 0 !2 ! !4 −∆ũ1 = δ(x − S̃1 ), Identified souce: S̃1 I= Adjusted “sniffing”: S̃2 ∈ {v = I − ũ1 (O)} Hint for new observing location. (121($(341!$%&$2$5,$2$ !"#$%&$'(($)*$)+,$)+$ 2 5, 5- . / 0 !/ $ !. $ ũj |∂Ω ≡ 0 ! uk (O) !"#$%"& !"#$%"*+ !"#$%"*, '() '() '() ' ' ' !'() !'() !'() 17&71"1897-"$#"&"*+"&, -./"$#"011"!2"!3+"!3, 4 5 & *+ *, -./"$#"011"! '() 6 ' ' !6 !5 !4 !'() !"#$%"& !"#$%"*+ !"#$%"*, '() '() '() ' ' ' !'() !'() !'() 15&51"1675-"$#"&"*+"&, -./"$#"011"!2"!3+"!3, 4() 4 & *+ *, -./"$#"011"! '() '() ' ' !'() !4 !4() !'() !"#$%"& !"#$%"*+ !"#$%"*, '() '() '() ' ' ' !'() !'() !'() Hint for new observing location. 15&51"1675-"$#"&"*+"&, -./"$#"011"!2"!3+"!3, 4() 4 & *+ *, -./"$#"011"! '() '() ' ' !'() !4 !4() !'() !"#$%"& !"#$%"*+ !"#$%"*, '() '() '() ' ' ' !'() !'() !'() 17&71"1897-"$#"&"*+"&, -./"$#"011"!2"!3+"!3, 4 5 & *+ *, -./"$#"011"! '() 6 ' ' !6 !5 !4 !'() !"#$%&'(#)%*+") !"#$%"& !"#$%"*+ !"#$%"*, '() '() '() ' ' ' !'() !'() !'() 18&81"19:8-"$#"&"*+"&, -./"$#"011"!2"!3+"!3, 4 & *+ *, -./"$#"011"! '(5 '(6 '() '(7 ' ' !'() !'(7 !4 !'(6 !'(5 !"#$%"& !"#$%"*+ !"#$%"*, '() '() '() ' ' ' !'() !'() !'() Useless information from three random observing locations. Effective source locations drastically different from the truth. 18&81"19:8-"$#"&"*+"&, -./"$#"011"!2"!3+"!3, 4 & *+ *, -./"$#"011"! '(5 '(6 '() '(7 ' ' !'() !'(7 !4 !'(6 !'(5 !"#$%"& !"#$%"*+ !"#$%"*, '() '() '() ' ' ' !'() !'() !'() Useless information from three random observing locations. Effective source locations drastically different from the truth. 18&81"19:8-"$#"&"*+"&, -./"$#"011"!2"!3+"!3, 4 & *+ *, -./"$#"011"! '(5 '(6 '() '(7 ' ' !'() !'(7 !'(6 !4 !'(5 sum of all h 0.5 Result by a “smarter” sampling 0 !0.5 Discussion •Algorithm applicable to other linear problems (self-adjoint or not) •Stability: bounds on the gradients of u •Path strategy •Multiple sources of different (unknown) strengths •Non-standard inverse problems (fewer sensors, freedom in sensor locations, two modalities)