Download presentation
Presentation is loading. Please wait.
Published byEdwin Sullivan Modified over 9 years ago
1
A Distributed Algorithm for Gathering Many Fat Mobile Robots in the Plane Chrysovalandis Agathangelou Chryssis Georgiou Marios Mavronicolas Department of Computer Science University of Cyprus Tuesday, July 23 rd, 2013
2
Gathering Mobile Robots
4
Gathering Mobile FAT Robots
5
[ Czyzowicz, Gąsieniec, Pelc 2009 ]
6
Gathering Mobile FAT Robots [ Czyzowicz, Gąsieniec, Pelc 2009 ]
7
Gathering Mobile FAT Robots [ Czyzowicz, Gąsieniec, Pelc 2009 ]
8
Gathering Mobile FAT Robots [ Czyzowicz, Gąsieniec, Pelc 2009 ]
9
Dangerous Environments Space Underwater Military Nanotechnology Scientific Computation Motivation
10
Anonymous, Identical, Oblivious, Fault Free No Global Coordination System/Communication Fat Robots- Unit Discs Non Transparent Unlimited range of vision/Snapshots C amera Asynchronous [Czyzowicz, Gąsieniec, Pelc 2009] Chirality Model
11
Model Look-Compute-Move Cycles Adversary Controls speed of robots Determines wait time Can stop robots while moving Liveness conditions
12
Distributed Algorithm that solves the gathering problem for n fat robots State Machine Representation ◦ Model, problem and algorithm Contribution
13
Form a Convex Hull No three robots on the same line Full Visibility All Robots are aware of it Conceptual Phase 1
15
Goal: Form a Connected Configuration All are aware of the Connected Configuration High Level Idea: Converge Do not Lose Convex Hull Do not Lose Full Visibility Conceptual Phase 2
16
Conceptual Phase 2 Example 1 2 3 4 6 5
17
1 2 3 4 6 5
18
1 2 3 4 6 5
19
1 2 3 4 6 5
20
Conceptual Phase 2 Example Conceptual Phase 2 Example 1 2 3 4 6 5
21
Distributed Algorithm Local algorithm run independently and asynchronously by each robot when in state Compute
22
The Algorithm-Diagram Start OnConvexHull IsTouching NotChangeToChange Connected NotOnStraightLine SpaceForMoreSeeOneRobotSeeTwoRobots NotOnConvexHull NotTouching AllOnConvexHullNotAllOnConvexHull NotConnected OnStraightLine NoSpaceForMore Not On Convex Hull Not Touching Another Robot Must Change Convex HullNo Need To Change Convex Hull Touching Another Robot
23
Procedure IsTouching Problem: r i is touching with another robot/s They block each other from moving Solution: Priority to the closest robot to Convex Hull Priority to the rightmost robot with the same distance from Convex Hull Using Chirality
24
Procedure IsTouching Example 1 r1r1 r2r2 r3r3 r4r4 r5r5 r6r6
25
Procedure IsTouching Example 2 r1r1 r2r2 r3r3 r4r4 r5r5 r6r6
26
The Algorithm-Diagram Start OnConvexHull IsTouching NotChangeToChange Connected NotOnStraightLine SpaceForMoreSeeOneRobotSeeTwoRobots NotOnConvexHull NotTouching AllOnConvexHullNotAllOnConvexHull NotConnected OnStraightLine NoSpaceForMore On Convex Hull Not All on Convex Hull or Not fully Visible Not on Straight Line
27
Procedure SpaceForMore If r i is tangent with a robot that they are not adjacent on the convex hull it moves outside of the convex hull at distance Else it stays at its current position
28
Procedure SpaceForMore Example riri r1r1 r2r2 r3r3
29
Procedure NoSpaceForMore r i moves with direction outside of the convex hull at distance rlrl r riri m
30
The Algorithm-Diagram Start OnConvexHull IsTouching NotChangeToChange Connected NotOnStraightLine SpaceForMoreSeeOneRobotSeeTwoRobots NotOnConvexHull NotTouching AllOnConvexHullNotAllOnConvexHull NotConnected OnStraightLine NoSpaceForMore On Convex Hull Not All on Convex Hull or Not Fully Visible On Straight Line Not In The Middle Of Two Other Robots
31
Procedure SeeTwoRobots r i moves with direction outside of the convex hull at distance rlrl r riri
32
The Algorithm-Diagram Start OnConvexHull IsTouching NotChangeToChange Connected NotOnStraightLine SpaceForMoreSeeOneRobotSeeTwoRobots NotOnConvexHull NotTouching AllOnConvexHullNotAllOnConvexHull NotConnected OnStraightLine NoSpaceForMore On Convex Hull All on Convex Hull and Fully Visible All Robots Form One Connected Configuration Not One Connected Configuration
33
Procedure NotConnected Priority to the smallest components to move to larger components Priority to the components with the less distance from their right component to move If all components have equal priority (symmetrical) they start to converge Using Chirality
34
Procedure NotConnected Example 1 1 2 3 4 5 6 7 8 9
35
1 2 3 4 5 6 7 8 9
36
1 2 3 4 5 6 7 8 9
37
Procedure NotConnected Example 2 1 2 3 4 5 6 7 8 9
38
1 2 3 4 5 6 7 8 9
39
Procedure NotConnected Example 3 1 2 3 4 6 5
40
1 2 3 4 6 5
41
1 2 3 4 6 5
42
1 2 3 4 6 5
43
1 2 3 4 6 5
44
Bad Configuration type 1 Fully Visible Configuration All robots are on the convex hull A robot r m has a view of a previous configuration (due to asynchrony) No Space for More Robots on the Convex Hull
45
Bad Configuration type 1 Example rlrl rmrm r r r+1
46
Bad Configuration type 2 Fully Visible Configuration All robots are on the convex hull A robot r m2 has a view of a previous configuration Four robots are on the same line
47
Bad Configuration Type 2 Example rlrlr r m1 r m2
48
Safe Configuration All robots are on the convex hull All robots have full visibility All robots are aware of it
49
Correctness Outline Good Configurations Safety Properties If not all robots are on the convex hull or not full visibility, the convex hull can only expand If all robots are on the convex hull and fully visible, the convex hull can only shrink Liveness Properties Eventually all robots will be on the convex hull and fully visible If all on the convex hull and fully visible eventually they form a connected configuration All Configurations If there exists a bad execution fragment, eventually a safe configuration is reached and bad configurations can no longer happen
50
Algorithm Simulation In C language Used GP142 library Used Pthread library
51
Algorithm Simulation
52
Conclusion Chirality Solved for n robots Is knowledge of n necessary? Is Chirality necessary? Is it possible to solve the problem with faulty robots?
53
Thank you!
54
Appendix
55
Proof-Lemma
56
Function On-Convex-Hull Uses Graham Algorithm
57
Function Move-to-Point Called if a robot wants to touch another robot
58
Function Find-Points Returns the points on convex hull that a robot can move.
59
Function Connected- Components Returns the set of the components 1 2 3 4 5 6 7 8 9
60
The Algorithm-Diagram Start OnConvexHull IsTouching NotChangeToChange Connected NotOnStraightLine SpaceForMoreSeeOneRobotSeeTwoRobots NotOnConvexHull NotTouching AllOnConvexHullNotAllOnConvexHull NotConnected OnStraightLine NoSpaceForMore
61
Procedure Start If current robot r_i is on the convex hull move to state OnConvexHull. Else move to state NotOnConvexHull Uses function On-Convex-Hull
62
Procedure NotOnConvexHull Robot r_i is not on the convex hull If r_is touching another robot move to state IsTouching else move to state NotTouching
63
Procedure NotTouching Call Function Find-Points If it returns at least 1 point go to state NotChange Else go to state ToChange
64
Procedure ToChange Choose the closest point on the convex hull with space at least a diameter of a robot and move to it
65
Procedure NotChange Choose the closest point returned by Function Find Points and move to it
66
Related Work-Models ASYNC, SSYNC, FSYNC Unlimited vs Limited visual range Transparent vs Non Transparent robots Fault Tolerance (Crash, Byzantine, None) Memory vs Oblivious Anonymous vs with IDs Point vs Fat robots
67
Related Work-Models Agrement on Coordination system (compass) Accuracy of Measurements Non Context Environments (maps/obstacles) Multiplicity Detection Dimensions 2d-3d
68
Procedure OnConvexHull Robot r_i is on the convex hull boundary If all robots are on the convex hull boundary and no 3 robots are on the same line move to state AllOnConvexHull else move to state NotAllOnConvexHull
69
Procedure NotAllOnConvexHull If robot r_i is on straight line with any other 2 robots move to state OnStraightLine else it moves to state NotOnStraightLine
70
Procedure NotOnStraightLine If there exists a space of at least a robot diameter on the convex hull boundary move to state SpaceForMore Else move to state NoSpaceForMore
71
Procedure OnStraightLine If r i is in the middle and in straight line with any 2 other robots it moves to state SeeTwoRobots Else it moves to state SeeOneRobot
72
Procedure SeeOneRobot r i stays in its current position
73
Procedure AllOnConvexHull If all robots are connected r_i moves to state Connected Else it moves to state NotConnected
74
Correctness Proof Phase 1 Convex hull expands or stay the same Eventually all robots will be on the convex hull Eventually no three robots will be on the same line
75
Correctness Proof phase 2 All robots stay on the convex hull All robots have full visibility Robots start to converge carefully Eventually all robots will gather
76
Bad Configuration Overcome Proof Convex hull expands Robots must reach 1/n in order to start converge (Procedure NotConnected) Robots reach "safe distance" Adversary cannot continue to do the same Robots stop and take a snapshot
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.