Title: Motion Coordination using Virtual Nodes
1Motion Coordination using Virtual Nodes
- Nancy Lynch
- Sayan Mitra
- Tina Nolte
Recently submitted to CDC 2005
2Motion Coordination Problem
Curve G
Set of mobile nodes
B
3Ideal Solution
Given some curve G, 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 G
B
4Approximate Solution
Use only local information about G Some nodes are
not on G Distribution approximately
proportional to length in each zone Even spacing
in each zone
5Framework 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
6Definitions
- differentiable parameterized curve G P ?B
- P is an interval in the real line
- regular for all p, G(p) ? 0
- arc length s(G,a,b)
- simple does not cross
- G-1(x) p, unique
- parameterized by arc length for all p, G(p)
1 - s(G,a,b) b a
- x1, x2, xn are evenly spaced on G if for each i
- 1 i n, pi G-1(xi), and
- pi pi-1 pi1 - pi
7Definitions (cont.)
G3,4
G2,1
G2,2
Ph domain of Gh Ph size of the interval Ph
also length of Gh qh quantized length qmin
(nonzero) qmax
B3,4
B2,2
B2,1
B1,2
8Goal
- 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
Gh, and - in the limit, the nodes in zone Bh are evenly
spaced on Gh.
VN architecture next.
9 Physical Layer
- Bounded square B in R2
- Three kinds of HIOA
- PNi, i in I, physical nodes
- LBcast, local broadcast service
- RW, real world
x
realtime
LBcast
RW
send(m)i
v2
x2
receive(m)i
realtime
PNi
PN2
PN1
B
10 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.
11 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, tdp at every PNj
active and within Rp distance of PNi during the
interval
12 Physical Layer RW
- Input variables
- vi, velocity of PNi
- Output variables
- xi, location of PNi based on velocity
- realtime
- Connected to PNs and LBcast
13Virtual 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 layers PNi
- VNh, h in H, virtual nodes
- VLBcast, local bcast for virtual layer
- RW similar to physical layers
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
14 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.
15Virtual Layer VLBcast
- Similar to LBcast
- Allows communication between VNs and between VNs
and CNs. - Rv b
- Guarantees neighboring active VNs can communicate
- dv 2dpe
- Require Rp sqrt(5)b
16Implementing 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.
17Differences from VMN work
- Modeled a little differently (these are MMTs,
versus plain vanilla IOAs) - Implementation can guarantee dMMT dp e
- Virtual node locations are stationary
- Failed VNs restart within dr time if a CN enters
and stays in the VNs zone for that long - Implementation can guarantee dr 3dp 4e
- Emulators have continuous location updates from
RW rather than just periodic ones
18Round-based Algorithm Using the Virtual Layer
- Each round
- Each CN sends a message to its local VN, letting
it know it is in the VNs 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.
19Implementing 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 d 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.
20 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/d
) - x ? current location (x)
- If target position x ? location x
- CN moves at speed vc straight to the target
- Otherwise it stops.
21VN 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
lt0,0gt - Derived variable y(g) num(V(g))
22VN
h
CN sends cn-update to local VN.
CN
i
time
Message passing diagram
23VN receives cn-update message and stores the
information from it in the table M.
VN
h
CN
i
time
Message passing diagram
24VN
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
25VN 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
26The send of vn-update is enabled but it takes up
to the MMT upper bound to occur.
VN
h
task delay
CN
i
time
Message passing diagram
27The vn-update transmissions between neighbors
occurs.
VN
h
CN
i
time
Message passing diagram
28The VN stores the information in vn-update
messages from its neighbors in the table V.
VN
h
CN
i
time
Message passing diagram
29VN
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
30VN 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
31- If VNh has more than e CNs
- If VNh is on G (qh ? 0)
- Let lower g in Nbrs VNg is on the curve and
qg/qh y(h) gt y(g) - For each g in lower
- VNh assigns ra CNs to VNb unless it cant afford
them - If VNh is not on G and its neighbors are not on G
- Let lower g in Nbrs y(h) gt y(g)
- For each g in lower
- VNh assigns ra CNs to VNg unless it cant afford
them - If VNh is not on G but has neighbors on G
- Divide y(h) e of VNhs 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
32- 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 G - target(i) ? closest point on curve
- If CNi is assigned to this zone and is on G
- Consider CNs assigned to the zone and on G
ordered by location parameters - If CNi is first in the ordering
- target(i) ? left endpoint of Gh
- If CNi is last in the ordering
- target(i) ? right endpoint of Gh
- 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
33Calculating new target points
- Given zone assignments and current locations for
each CNi in the zone - If CNi is assigned to another zone then
target(i) ? center of assigned zone - If CNi is assigned to this zone, but is not
located on the curve then target(i) ? closest
point on curve - If CNi is assigned to this zone and is on the
curve then consider the ordering by parameterized
location of all CNs assigned to the zone and on
the curve - If CNi is first in the ordering then
target(i) ? left endpoint of Gh - If CNi is last in the ordering then target(i)
? right endpoint of Gh - 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)
34The send of target points is enabled but it takes
up to the MMT upper bound to occur.
VN
h
task delay
CN
i
time
Message passing diagram
35The transmission of target points to CNs occurs.
VN
h
CN
i
time
Message passing diagram
36VN
h
CN receives and adopts new target point from VN.
CN
i
time
Message passing diagram
37VN
h
CN moves to new target point and restarts the VN
in its zone if it is failed.
CN
i
time
Message passing diagram
38VN
h
CN
i
time
Message passing diagram
39Some definitions
H set of all m x m VNs in B ING set of VNs
with some part of G (qh ? 0) OUTG H \ ING
40Some 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
41Some definitions
In(t) Active(t) n IN Cin(t) set of active CNs
located in VN zones in In(t)
42Some definitions
Out(t) Active(t) n OUT Cout(t) set of active
CNs located in VN zones in Out(t)
43Correctness
-
- 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 Gh and - (c) evenly spaced on Gh in the limit.
44- 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 t1 the number of CNs
assigned to VNh is at least e. - If VNh is active in round t then it stays active
in round t1. - In(t) is subset of In(t1) and Out(t) is a
subset of Out(t1) - (3) If CNi is assigned to some VNh h in IN in
round t, then CNi must be assigned to some VNg
in round t1 such that g is in IN. - Cin(t) is a subset of Cin(t1) and Cout(t1) is
a subset of Cout(t)
45- 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 t1
than maxg(t),i.e., yg(t1) maxg(t) -1 -
- Fix g,h and t. Say h is a VN in gs
neighborhood such that maxg(t) yh(t). We know
yh(t) gt 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(t1) yg(t) ?2(yh(t) - yg(t)) ?2 yh(t)
(1-?2) yg(t) - yg(t1) lt yh(t) as ?2 lt1
46- Lemma 2.2 g 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 t1,
i.e., - Suppose dmaxg(t) yh(t)/qh for some h in Ing. We
know - CNs assigned to g by any neighbor
47-
- 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(t1) yh(t).
- maxk(t) max yh(t) h ? Out(t) , if k
1 - max yh(t) h ? Out(t) and yh(t) lt
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), ...
, maxOUT(t), maxvnsOUT(t)) - Emin (wS, w, S,0,0...,0,0)
- E decreases by some constant amount in each round
- 1. Cout(t1) lt Cout(t)
- Cout(t1) Cout(t) and no reassignments in
t, E(t1) 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) lt maxk(t), h ?
Nbrsg, yh(t) maxk(t). From Lemma 2 yg(t1)
maxk(t) -1
48- 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.
49- Lemma 4 Cout(t) O(m3).
- Number of CNs assigned by VNh to any of its
neighbors is 0 . - boundary nodes (yg(t) - e)/Ing lt 1 ? yg(t) lt 4
e because Ing 4. - non-boundary VNg, g ? Out(t) 1-hop away from a
boundary VNh, - 2 ( yg(t) - yh(t))/2(lowerg(t) 1) lt 1 ?
- yg(t) 10/?2 4 e because lowerg(t) 4 ,
- Inducting on the number of hops,
- the maximum at k hops from the boundary
10k/?2 e 4 . - For any k , 1 k 2m -1 , there can be at
most m VNs - summing Cout (e 4)(2m -1)m 10 m2(2m
-1)/?2 O(m3) . -
-
50 - B the beginning of round Tstab2 , all CNs in
Cin are located on G 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 Gh .
51-
- 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 Gh. - yh n 2
- seq(t2) lt p0, i(0)gt, ..., lt pn1,i(n1)gt
- p0 inf(Ph) , and pn1 sup(Ph) .
- pi(tk1) pi(tk) ?1 ( pi-1(tk) pi1(tk))/2
- pi(tk). - pi(tk1) pi(tk) for end points, i 0, i n1
- pi p0 i(pn1 - p0)/(n1) .
- pi 1/2(pi-1 pi1) (1-?1)pi ?1/2 (pi-1
pi1) - ei(k) pi(tk) pi
- ei(k1) pi(tk1) - pi (1-?1)ei(k)
?1/2(ei-1(k) ei1(k)) , 2 i n-1 , - e1(k1) (1-?1)e1(k) ?1/2 e2(k) , and
- en(k1) (1-?1)en(k) ?1/2 en-1(k) .
- e(k1) Me(k) , where M is
1-?1 ?1/2 0 0 0
?1/2 1-?1 ?1/2 0 0
. . . . . .
0 0 ?1/2 1-?1 ?1/2
0 0 0 1-?1 ?1/2
52Conclusions
- Weve 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
53References
- H. Ando, Y. Oasa, I. Suzuki, and M. Yamashita.
Distributed memoryless point convergence
algorithm for mobile robots with limited
visibility. IEEE Transactions on Robotics
and Automation, 1999. - J. Cortes, S. Martinez, T. Karatas, and F. Bullo.
Coverage control for mobile sensing networks.
IEEE Transactions on Robotics and Automation,
2004. - S. Dolev, S. Gilbert, N. A. Lynch, E. Schiller,
A. A. Shvartsman, and J. L. Welch. Virtual
mobile nodes for mobile ad hoc networks. In
18th International Symposium on Distributed
Computing, 2004. - S. Dolev, S. Gilbert, N. A. Lynch, A. Shvartsman,
and J. Welch. Geoquorums Implementing atomic
memory in mobile ad hoc networks. In 17th
International Symposium on Distributed Computing,
2003. - V. Gazi and K. M. Passino. Stability analysis
of swarms. IEEE Transactions on
Automatic Control, 2003. - A. Jadbabaie, J. Lin, and A. S. Morse.
Coordination of groups of mobile autonomous
agents using nearest neighbor rules. IEEE
Transactions on Automatic Control , 2003. - J. Lin, A. S. Morse, and B. Anderson.
Multi-agent rendezvous problem. In 42nd
IEEE Conference on Decision and Control , 2003. - M. Merritt, F. Modugno, and M. Tuttle. Time
constrained automata. In 2nd International
Conference on Concurrency Theory (CONCUR) ,
1991. - I. Suzuki and M. Yamashita. Distributed
autonomous mobile robots Formation of geometric
patterns. SIAM Journal of computing ,
1999.