340 likes | 463 Views
Hector Gonzales-Banos, Cheng-Yu Lee, Jean Claude Latombe By Sean Augenstein and Patrick Mihelich November 14 th , 2007. Real-time Combinatorial Tracking of a Target Moving Unpredictably Among Obstacles. target. observer. observer target. observer’s visibility region. The Problem.
E N D
Hector Gonzales-Banos, Cheng-Yu Lee, Jean Claude Latombe By Sean Augenstein and Patrick Mihelich November 14th, 2007 Real-time Combinatorial Tracking of a Target Moving Unpredictably Among Obstacles
target observer observer target observer’s visibility region The Problem Goal: Keep the target in field of view despite obstacles • No prior map of workspace • Unknown target’s trajectory
Problem Formulation • Workspace is 2-D • Observer and target are rigid bodies • Target position assumed unpredictable • Observer dynamics are known • Need algorithm to select a control action for the observer, based on workspace geometry
Tracking Strategy • Goal: maximize time that target remains in view • We assume target motion is unpredictable • Requires online solution • Nondeterministic uncertainty • Only the target's action set is known • Use worst-case strategy • Probabilistic uncertainty • Probabilities of target actions are known • Use expected best strategy
Risk-Based Approach • Function Φ represents the risk that the target escapes the FOV • Φ is deterministic, and is a measure of: • How quickly can the target escape • How easy is it for the observer to react to this happening • Φ is differentiable wrt observer position • We use its gradient to select observer feedback control input u(t)
Sensing and Localization • All decisions based on local map constructed from range sensor data • No prior map or landmarks • No self-localization required! • Target detection performed by matching cluster of points from range sensor to target contour • Points from range sensor converted to polyline outline of visibility region
Visibility Region • Set of all locations where the target is visible to the observer
Visibility Region • Set of all locations where the target is visible to the observer
Escape Paths • Visibility polygon contains solid and free edges • Solid: observed edge • Free: caused by occlusion • Escape path: a collision-free path between the target location and a non-visible point • Escape point: intersection of the path with the visibility polygon
Escape Paths and Escape Time • Shortest escape path (SEP): escape path of minimal length through a free edge e • Shortest distance to escape (SDE): length of SEP • Escape time: shortest time target may take to traverse the SEP
Properties of Escape Paths • SEP is a polygonal line • Each vertex (if any) is a vertex of the visibility polygon • SEP cannot cross the line between observer and target • SEP cannot cross any radial line from the observer more than once 2 1 3 1
Escape Path Trees • Escape paths for all free edges form the escape-path tree • Target is root of the tree • Nodes are vertices of visibility polygon • Branches terminate in free edges
Choosing a Control Action • Want control action that maximizes escape time • Escape time is computationally expensive • Need approximation for online algorithm • One approach: maximize SDE • Changing occlusions cause abrupt changes in consecutive control actions • Relationship between SDE and escape time is nonlinear • Poor results in practice
Escape Risk • Use “escape risk” as proxy function for escape time: • h = SDE from target position to edge e • c > 0 constant • r0 = distance from observer to occluding corner • m ≥ 0 given integer
Escape Risk • Minimizing look-ahead component increases future ability of the observer to track • Maximizing reactive component decreases likelihood of target escaping the current visibility region Look-ahead component Reactive component
Tracking Strategy • Gradient of escape risk can be computed in closed form • Calculate the average of Φe over all free edges e in the visibility region • Move in opposite direction
look-ahead component reactive component Tracking Strategy in Action e target e” p p” v i observer
Target-tracking algorithm Algorithm TRACK: Repeat: • Extract local map from sensor • Determine target position • Compute escape-path tree • Compute Φe for each free edge ‘e’ in the map • Compute average of gradients using escape-path tree • Steer robot using the negative of the average
Target-tracking algorithm • Steps 1 and 2 depend on the sensor measurement, i.e., FOV and range limitations on laser range-finder • Step 6 depends on observer’s dynamics and control inputs • Steps 4 and 5 were discussed previously • Step 3 (computing escape path-tree) will be discussed next
Forming Escape-Path Tree • Efficient computation of this step is critical to the algorithm working in real-time • We take advantage of properties of escape paths • Iterate through vertices on one side of line between observer and target, in order • If shortest path to v does not pass through u, shortest path to any further vertex w will not pass through u
Ray-Sweep Algorithm • Sequentially scan ordered list of vertices • At each vertex vi, update a pivot list πi • Append vi to pivot list • Simplify last 3 vertices to 2 if possible • πi defines the shortest path from the target to vi • Shortest path to edge with vi at one endpoint can be calculated in constant time from πi
Updating the Pivot List Initialize pivot list to target • v1 • u0 • v2 • π0 = u0 • v3 • v4 observer
Updating the Pivot List Add next vertex target • v1 • u0 • v2 • π0 = u0 • π1 = u0,v1 • v3 • v4 observer
Updating the Pivot List Add next vertex target • v1 • u0 • v2 • π0 = u0 • π1 = u0,v1 • π2 = u0,v1, v2 • v3 • v4 observer
Updating the Pivot List Simplify last triplet target • v1 • u0 • v2 • π0 = u0 • π1 = u0,v1 • π2 = u0, v2 • v3 • v4 observer
Updating the Pivot List Add next vertex target • v1 • u0 • v2 • π0 = u0 • π1 = u0,v1 • π2 = u0, v2 • π3 = u0, v2, v3 • v3 • v4 observer
Updating the Pivot List Simplify last triplet target • v1 • u0 • v2 • π0 = u0 • π1 = u0,v1 • π2 = u0, v2 • π3 = u0, v3 • SDE • v3 • v4 observer
Updating the Pivot List Add next vertex target • v1 • u0 • v2 • π0 = u0 • π1 = u0,v1 • π2 = u0, v2 • π3 = u0, v3 • π4 = u0, v3, v4 • v3 • v4 observer
Robot control • Φ represents the desired direction of the observer’s motion • “Trajectory-follower” generates observer trajectories that follow this direction • For a simple, non-holonomic observer robot, with control inputs ‘v’ and ‘ω’, an example controller is:
Cool video • Tour example: