510 likes | 617 Views
Motion Coordination using Virtual Nodes. Nancy Lynch Sayan Mitra Tina Nolte. Recently submitted to CDC 2005. Motion Coordination Problem. Curve Γ. Set of mobile nodes. B. Ideal Solution.
E N D
Motion Coordination using Virtual Nodes Nancy Lynch Sayan Mitra Tina Nolte Recently submitted to CDC 2005
Motion Coordination Problem Curve Γ Set of mobile nodes B
Ideal Solution Given some curve Γ, and a finite but a priori unknown set of mobile nodes, initially in arbitrary positions, move the nodes so that they are evenly spaced on the curve. Curve Γ B
Approximate Solution Use only local information about Γ Some nodes are not on Γ Distribution “approximately” proportional to length in each zone Even spacing in each zone
Framework using VNs • Programming a large number of nodes can be hard • Consistent decision making • Stationary Virtual Nodes (VN) located in disjoint zones • Acts like a “centralized coordinator” for the zone • Directs motion of Client Nodes (CN) in the zone • Useful for solving other coordination problems CNi CN2 VN2,3 VN2,2 CN1 VN1,3 VN2,1 VN1,2 VN1,1 B
Definitions • differentiable parameterized curveΓ: P B • P is an interval in the real line • regular : for all p, |Γ’(p)| ≠ 0 • arc length s(Γ,a,b) = • simple : does not cross • Γ-1(x) = p, unique • parameterized by arc length: for all p,| Γ’(p)| =1 • s(Γ,a,b) = b –a • x1, x2,… xn are evenly spaced onΓ if for each i 1≤i ≤n, pi = Γ-1(xi), and pi – pi-1 = pi+1 - pi
Definitions (cont.) Γ2,1 Γ3,4 Γ2,2 Ph : domain of Γh |Ph| : size of the interval Ph also length of Γh qh : quantized length qmin (nonzero) qmax B3,4 B2,2 B2,1 B1,2
Goal Design algorithm that runs on mobile nodes such that, if failures and recoveries stop after a certain point in time, then • within finite time the set Yh of nodes in each zone Bh, h єH, becomes fixed and |Yh| is “approximately” proportional to qh, • within finite time the nodes in zone Bh are on Γh, and • in the limit, the nodes in zone Bh are evenly spaced on Γh. VN architecture next.
Bounded square B in R2 Three kinds of HIOA: PNi, i in I, physical nodes LBcast, local broadcast service RW, real world Physical Layer x realtime LBcast RW send(m)i v2 x2 receive(m)i realtime PNi PN2 PN1 B
x realtime LBcast RW send(m)i v2 x2 receive(m)i realtime PNi PN2 PN1 B Physical Layer : PNi • Input variables: • x in B: location • realtime in R: time • Output variables: • v in R2: velocity s.t. |v| ≤ vc • One of two modes: • Active • Inactive: • PNi makes no local transitions. • Non-recover input actions do not change the state. • Locally controlled variables are constant and |v| = 0. • Can fail and recover: • Fail: Sets mode to inactive, initializes state. • Recover: Sets mode to active. • Can send and receive messages through LBcast. • May have other state components and actions.
x realtime LBcast RW send(m)i v2 x2 receive(m)i realtime PNi PN2 PN1 B Physical Layer : LBcast • Local broadcast for PNs parameterized by: • Rp: broadcast radius • dp: max. message delay • If PNi performs a send(m) at time t, a receive(m) occurs within interval [t, t+dp] at every PNj active and within Rp distance of PNi during the interval
x realtime LBcast RW send(m)i v2 x2 receive(m)i realtime PNi PN2 PN1 B Physical Layer : RW • Input variables: • vi, velocity of PNi • Output variables: • xi, location of PNi based on velocity • realtime • Connected to PNs and LBcast
Virtual Layer • B partitioned into a m X m grid of square zones Bh, h in H: • Each zone is a square with sides of length b • H is set of center coordinates of squares • Nbrs are NSEW grid squares • Four kinds of HIOA: • CNi, i in I: similar to physical layer’s PNi • VNh, h in H, virtual nodes • VLBcast, local bcast for virtual layer • RW: similar to physical layer’s x realtime VLBcast RW send(m)i receive(m)i v2 x2 realtime send(m)1,3 receive(m)1,3 CNi CN2 b VN2,3 VN2,2 CN1 VN1,3 m VN2,1 VN1,2 … VN1,1 2 B 1
x realtime VLBcast RW send(m)i receive(m)i v2 x2 realtime send(m)1,3 CNi CN2 b VN2,3 VN2,2 CN1 VN1,3 m VN2,1 VN1,2 … VN1,1 2 B 1 Virtual Layer: VNh • Located at center of zone h • Discrete, no clock • MMT automaton • Task structure • Equivalence relation on locally controlled actions • From time when a task is enabled, within dMMT time some action in the task occurs • Can send and receive messages through VLBcast • Can fail and recover: • Fail: Disables internal, output actions, prevents non-recover inputs from changing the state, and initializes state variables. • Recover: VN actions become enabled again and all tasks restart. • If VNh is failed and a CN enters zone h and remains active and in the zone for dr time, a recover occurs within that dr time.
x realtime VLBcast RW send(m)i receive(m)i v2 x2 realtime send(m)1,3 CNi CN2 b VN2,3 VN2,2 CN1 VN1,3 m VN2,1 VN1,2 … VN1,1 2 B 1 Virtual Layer: VLBcast • Similar to LBcast • Allows communication between VNs and between VNs and CNs. • Rv ≥ b • Guarantees neighboring active VNs can communicate • dv= 2dp+ε • Require Rp ≥ sqrt(5)b
Implementing the Virtual Layer • Almost exactly the algorithm in the VMN work. • PNs in a zone cooperate to emulate a VN: • Replicated state machine approach • To ensure the state remains consistent across emulators, we ensure that emulators perform the same actions in the same order on the replicated state: • When an action of the VN is enabled or a receive occurs, an emulator broadcasts a suggestion to perform the action to other emulators. • In order to ensure the same suggested actions in the same order are received at each emulator, the emulators use an easy-to-implement totally-ordered broadcast to send the action suggestions. • An emulator simulates performing suggested actions it receives on its local version of the VN state.
Differences from VMN work • Modeled a little differently (these are MMTs, versus plain vanilla IOAs) • Implementation can guarantee dMMT ≥ dp + ε • Virtual node locations are stationary • Failed VNs restart within dr time if a CN enters and stays in the VN’s zone for that long • Implementation can guarantee dr ≥ 3dp + 4ε • Emulators have continuous location updates from RW rather than just periodic ones
Round-based Algorithm Using the Virtual Layer Each round: • Each CN sends a message to its local VN, letting it know it is in the VN’s zone. • Each VN exchanges messages with neighboring zone VNs, letting them know how many CNs it has. • Each VN calculates: (a) which of its local CNs should be assigned to other zones (b) what its local CNs’ new target points should be. • Each VN broadcasts the new target points. • Each CN reads VN target point broadcasts to determine what its new target point is and moves to it.
Implementing the rounds • Recall: VNs do not have access to clocks! • So how do we implement rounds? • Recall: • CNs have synchronized realtime clocks. • There are upper bounds for the amount of time it takes a VN to execute an enabled action (dMMT) and the amount of time for a message to be delivered (dv). • Make a new round begin every δ time. • Make CNs send “trigger” messages to VNs. • Once enough time has passed that VNs are guaranteed to have seen all relevant messages for a step in the round, CNs send trigger messages letting the VNs know it is time to perform the step.
CN variables, initialization, and trajectories • State variables: • x*, target point, initially ┴ • round, initially ┴ • When a CN becomes active: • round ← # of the next full round (┌ realtime/δ┐) • x* ← current location (x) • If target position x* ≠ location x • CN moves at speed vc straight to the target • Otherwise it stops.
VN state • Important state: • M: partial map from CN ids to loc (a location) and round (a round #) • Initially empty • V: partial map from VN ids to num (# of CNs) and round (a round #) • Initially maps VNh and each of its neighbors to <0,0> • Derived variable y(g) = num(V(g))
VN h CN sends cn-update to local VN. CN i time Message passing diagram
VN receives cn-update message and stores the information from it in the table M. VN h CN i time Message passing diagram
VN h CN sends an exchange-trigger message, letting the VN know it has received all cn-updates by now. CN i time Message passing diagram
VN receives first exchange-trigger message in the round from CN, prompting it to send its population information to neighboring VNs in a vn-update message. VN h CN i time Message passing diagram
The send of vn-update is enabled but it takes up to the MMT upper bound to occur. VN h taskdelay CN i time Message passing diagram
The vn-update transmissions between neighbors occurs. VN h CN i time Message passing diagram
The VN stores the information in vn-update messages from its neighbors in the table V. VN h CN i time Message passing diagram
VN h CN sends a target-trigger message to let the VN know that it has received all vn-update messages from neighbors. CN i time Message passing diagram
VN receives first target-trigger message of the round, prompting it to: 1) decide how many and which CNs to reassign to neighboring VNs and 2) calculate and transmit new target points for the CNs in its zone. VN h CN i time Message passing diagram
If VNh has more than e CNs : • If VNh is on Γ (qh ≠ 0): • Let lower = {g in Nbrs: VNg is on the curve and qg/qh y(h) > y(g)} • For each g in lower • VNh assigns ra CNs to VNb unless it can’t afford them • If VNh is not on Γ and its neighbors are not on Γ : • Let lower = {g in Nbrs: y(h) > y(g)} • For each g in lower • VNh assigns ra CNs to VNg unless it can’t afford them • If VNh is not on Γ but has neighbors on Γ : • Divide y(h) – e of VNh’s CNs equally between all neighbors on the curve VN receives first target-trigger message of the round, prompting it to: 1) decide how many and which CNs to reassign to neighboring VNs and 2) calculate and transmit new target points for the CNs in its zone. VN h CN i time Message passing diagram
p3 pn p0 p1 p2 • If CNi is assigned to another zone target(i) ← center of assigned zone • If CNi is assigned to this zone, but is not located on Γ target(i) ← closest point on curve • If CNi is assigned to this zone and is on Γ : Consider CNs assigned to the zone and on Γ ordered by location parameters • If CNi is first in the ordering target(i) ← left endpoint of Γh • If CNi is last in the ordering target(i) ← right endpoint of Γh • If CNi is not first or last in the ordering then target(i) ← midpoint of the locations of the CNs immediately before and after it in the ordering (adjusted by a damping factor p1) VN receives first target-trigger message in the round, prompting it to: 1) decide how many and which CNs to reassign to neighboring VNs and 2) calculate and transmit new target points for the CNs in its zone. VN h CN i time Message passing diagram
The send of target points is enabled but it takes up to the MMT upper bound to occur. VN h taskdelay CN i time Message passing diagram
The transmission of target points to CNs occurs. VN h CN i time Message passing diagram
VN h CN receives and adopts new target point from VN. CN i time Message passing diagram
VN h CN moves to new target point and restarts the VN in its zone if it is failed. CN i time Message passing diagram
VN h CN i time Message passing diagram
Some definitions H: set of all m x m VNs in B INΓ: set of VNs with some part of Γ (qh ≠ 0) OUTΓ: H \ INΓ
Some definitions CN is active if its mode is active for the duration of round t C(t): set of active CNs VN is active if there is some active CN in its zone for the duration of rounds t-1,t Active(t): set of active VNs
Some definitions In(t) = Active(t) ∩ IN Cin(t) set of active CNs located in VN zones in In(t)
Some definitions Out(t) = Active(t) ∩ OUT Cout(t) set of active CNs located in VN zones in Out(t)
Correctness Theorem: If there are no failures or recoveries of client nodes at or after some round t0, then within a finite number of rounds after t0 : (a) the set of CNs assigned to each VNh , h є H , becomes fixed, and the size of the set is proportional to the quantized length qh within ±10 (2m-1)/(qminρ2) , and (b) all client nodes in Bh for which qh ≠ 0 are located on Γh and (c) evenly spaced on Γh in the limit.
If VNh has more than e CNs : If VNh is on Γ i.e.(qh ≠ 0): Let lower = g in Nbrs: VNg is on Γ and qg/qh y(h) > y(g) … If VNh is not on Γ and its neighbors are not Γ : • Let lower = g in Nbrs: y(h) > y(g) …. If VNh is not on Γ, but it has neighbors on Γ : • Divide y(h) – e of VNh’s CNs equally between all neighbors on the curve If VNh has more than e CNs : If VNh is on Γ i.e.(qh ≠ 0): Let lower = g in Nbrs: VNg is on Γ and qg/qh y(h) > y(g) … If VNh is not on Γ and its neighbors are not Γ : • Let lower = g in Nbrs: y(h) > y(g) …. If VNh is not on Γ, but it has neighbors on Γ : • Divide y(h) – e of VNh’s CNs equally between all neighbors on the curve Lemma 1: In any round t ≥ t0 : • If the number of CNs assigned to VNh, h in H is at least e, then in round t+1 the number of CNs assigned to VNh is at least e. • If VNh is active in round t then it stays active in round t+1. In(t) is subset of In(t+1) and Out(t) is a subset of Out(t+1) (3) If CNi is assigned to some VNh h in IN in round t, then CNi must be assigned to some VNg in round t+1 such that g is in IN. Cin(t) is a subset of Cin(t+1) and Cout(t+1) is a subset of Cout(t)
If VNh is not on Γ and its neighbors are not on Γ: • Let lower = g in Nbrsh: y(h) > y(g) • For each g in lower • ra ← p2 [y(h)-y(g)]/2(|lower|+1) • … Lemma 2.1 If g in Out(t) and had fewer assigned CNs than maxg(t) in round t, then it has fewer assigned CNs in round t+1 than maxg(t),i.e., yg(t+1) ≤ maxg(t) -1 Fix g,h and t. Say h is a VN in g’s neighborhood such that maxg(t) = yh(t). We know yh(t) > yg(t). Number of CNs that VNg is assigned from VNh in round t is ≤ ρ2 (yh(t) - yg(t))/2 (|lowerh(t)| +1) ≤ ρ2(yh(t) - yg(t))/ 4 Total new CNs assigned to VNg by all four of its neighbors ≤ ρ2 (yh(t) - yg(t)) yg(t+1) ≤ yg(t) + ρ2(yh(t) - yg(t)) = ρ2 yh(t) + (1-ρ2) yg(t) yg(t+1) < yh(t) as ρ2 <1
Lemma 2.2g in In(t), If g had lower density of assigned CNs than dmaxg(t) in round t, then it has lower density than dmaxg(t) in round t+1, i.e., Suppose dmaxg(t) = yh(t)/qh for some h in Ing. We know CNs assigned to g by any neighbor
Lemma 3: There exists a round Tout after which the set of CNs assigned to any VN in Out(t) is unchanged. Proof sketch: First show yh(t+1) = yh(t). maxk(t) = max yh(t) : h є Out(t) , if k = 1 max yh(t) : h є Out(t) and yh(t) < maxk-1(t) , 2 ≤ k ≤ |OUT| , maxvnsk(t) = set of VN ids that have maxk(t) CNs assigned E(t) = (|Cout(t)| , max1(t), |maxvns1(t)|, ... , max|OUT|(t), |maxvns|OUT|(t)|) Emin = (w|S|, w, |S|,0,0...,0,0) E decreases by some constant amount in each round 1. |Cout(t+1)| < |Cout(t)| • |Cout(t+1)| = |Cout(t)| and no reassignments in t, E(t+1) = E(t) • Else, A be set of VNs that do reassign in t and have max CNs Say, A is a subset of maxvnsk(t) , for some k, 1 ≤ k ≤ |OUT| For any g є Out(t) with yg(t) < maxk(t), h є Nbrsg, yh(t) ≤ maxk(t). From Lemma 2 yg(t+1) ≤ maxk(t) -1 For any VNh , h є A , yh(t+1) = yh(t) - Ʃ rag(t) Either maxvnsk(t) = A , maxk(t+1) ≤ maxk(t) -1, or, A is a proper subset of maxvnsk(t) , then |maxvnsk(t+1)| = |maxvnsk(t)| - |A| Set of CNs assigned to VNh cannot change without changing yh and Cin , because there is no cycle.
If VNh is on the curve (qh ≠ 0): • Let lower = g in Nbrs: VNg is on the curve and qg/qh y(h) > y(g) • For each g in lowerh(t) Fix Tout from Lemma 3. Assignments stabilize in the OUT VNs. Lemma 4: There exists a round Tstab ≥ Tout after which the set of CNs assigned to any VN in In, is unchanged. Fix Tstabt given by Lemma 4. All assignments stabilize: part (a) of theorem. Lemma 5: Assume w.l.o.g. yh(t) ≥ yg(t). Induction on the number of hops from 1 to 2m -1.
B the beginning of round Tstab+2 , all CNs in Cin are located on Γ: : part (b) of theorem. Lemma 6: In a sequence of rounds t1 = Tstab, ..., tn. As n , the locations of CNs in Bh , h є In(t) , are evenly spaced on Γh .
x2 x1 x3 x0 xn+1 p3 pn+1 p0 p1 p2 p0 p2 pn+1 p1 p3 e2 Proof sketch: Assume w.l.o.g. that VNh is assigned at least two CNs. At the beginning of round t2, one CN is positioned at each endpoint of Γh. yh = n + 2 seq(t2) = < p0, i(0)>, ..., < pn+1,i(n+1)> p0 = inf(Ph) , and pn+1 = sup(Ph) . pi(tk+1) = pi(tk) + ρ1 [( pi-1(tk) + pi+1(tk))/2 - pi(tk)]. pi(tk+1) = pi(tk) for end points, i= 0, i = n+1 pi = p0 + i(pn+1 - p0)/(n+1) . pi = 1/2(pi-1 + pi+1) = (1-ρ1)pi + ρ1/2 (pi-1 + pi+1) ei(k) = pi(tk) – pi ei(k+1) = pi(tk+1) - pi = (1-ρ1)ei(k) + ρ1/2(ei-1(k) + ei+1(k)) , 2 ≤ i ≤ n-1 , e1(k+1) = (1-ρ1)e1(k) + ρ1/2 e2(k) , and en(k+1) = (1-ρ1)en(k) + ρ1/2 en-1(k) . e(k+1) = Me(k) , where M is From symmetry of M , ρ1 ≤ 1 , it can be shown that the largest eigenvalue of M < 1. lim kMk = 0 , lim k e(k) = 0 i.e., lim k pi(tk) Pi .
Conclusions • We’ve presented a framework for coordinating the motion of mobile nodes using virtual nodes. • What other kinds of analysis should we perform? • Effects of bounded rate of failure • Effects of noise in dynamics • Ideas for other uses of the framework: • Formation of a changing curve • Tracking