Shape Formation in a Three-dimensional Model for Hybrid Programmable - - PowerPoint PPT Presentation

shape formation in a three dimensional model for hybrid
SMART_READER_LITE
LIVE PREVIEW

Shape Formation in a Three-dimensional Model for Hybrid Programmable - - PowerPoint PPT Presentation

Shape Formation in a Three-dimensional Model for Hybrid Programmable Matter Kristian Hinnenthal, Dorian Rudolph, Christian Scheideler Paderborn University 1 / 20 Outline Introduction Motivation Problem Model 2D 3D Safely Movable Tiles


slide-1
SLIDE 1

Shape Formation in a Three-dimensional Model for Hybrid Programmable Matter

Kristian Hinnenthal, Dorian Rudolph, Christian Scheideler Paderborn University

1 / 20

slide-2
SLIDE 2

Outline

Introduction Motivation Problem Model 2D 3D Safely Movable Tiles Algorithm Conclusion

2 / 20

slide-3
SLIDE 3

Motiviation I

3 / 20

slide-4
SLIDE 4

Motivation II

  • B. Jenett and D. Cellucci, “A mobile robot for locomotion through a 3D periodic lattice environment,” 2017

IEEE International Conference on Robotics and Automation (ICRA), Singapore, 2017, pp. 5474-5479.

4 / 20

slide-5
SLIDE 5

Problem

◮ Use a single finite automaton robot to reconfigure arbitrary 3D tile structures into a given shape, e.g., a pyramid.

5 / 20

slide-6
SLIDE 6

Outline

Introduction Motivation Problem Model 2D 3D Safely Movable Tiles Algorithm Conclusion

6 / 20

slide-7
SLIDE 7

2D Model

2D model by Gmyr et al. [DNA 2018]: ◮ A finite automaton robot r operates on a set of n hexagonal tiles.

7 / 20

slide-8
SLIDE 8

2D Model

2D model by Gmyr et al. [DNA 2018]: ◮ A finite automaton robot r operates on a set of n hexagonal tiles. ◮ Each node of the triangular lattice is occupied by at most one tile.

7 / 20

slide-9
SLIDE 9

2D Model

2D model by Gmyr et al. [DNA 2018]: ◮ A finite automaton robot r operates on a set of n hexagonal tiles. ◮ Each node of the triangular lattice is occupied by at most one tile. ◮ r can move on or adjacent to occupied nodes.

7 / 20

slide-10
SLIDE 10

2D Model

2D model by Gmyr et al. [DNA 2018]: ◮ A finite automaton robot r operates on a set of n hexagonal tiles. ◮ Each node of the triangular lattice is occupied by at most one tile. ◮ r can move on or adjacent to occupied nodes. ◮ r may carry at most one tile.

7 / 20

slide-11
SLIDE 11

2D Model

2D model by Gmyr et al. [DNA 2018]: ◮ A finite automaton robot r operates on a set of n hexagonal tiles. ◮ Each node of the triangular lattice is occupied by at most one tile. ◮ r can move on or adjacent to occupied nodes. ◮ r may carry at most one tile. ◮ Tiles (including the robot if it carries a tile) must remain connected.

7 / 20

slide-12
SLIDE 12

2D Model

2D model by Gmyr et al. [DNA 2018]: ◮ r operates in look-compute-move cycles:

7 / 20

slide-13
SLIDE 13

2D Model

2D model by Gmyr et al. [DNA 2018]: ◮ r operates in look-compute-move cycles: ◮ Look: Observe adjacent nodes.

7 / 20

slide-14
SLIDE 14

2D Model

2D model by Gmyr et al. [DNA 2018]: ◮ r operates in look-compute-move cycles: ◮ Look: Observe adjacent nodes. ◮ Compute: Change state and determine action.

7 / 20

slide-15
SLIDE 15

2D Model

2D model by Gmyr et al. [DNA 2018]: ◮ r operates in look-compute-move cycles: ◮ Look: Observe adjacent nodes. ◮ Compute: Change state and determine action. ◮ Move: Move to adjacent tile, pickup tile,

  • r place carried tile.

7 / 20

slide-16
SLIDE 16

2D Model

2D model by Gmyr et al. [DNA 2018]: ◮ r operates in look-compute-move cycles: ◮ Look: Observe adjacent nodes. ◮ Compute: Change state and determine action. ◮ Move: Move to adjacent tile, pickup tile,

  • r place carried tile.

7 / 20

slide-17
SLIDE 17

2D Model

2D model by Gmyr et al. [DNA 2018]: ◮ r operates in look-compute-move cycles: ◮ Look: Observe adjacent nodes. ◮ Compute: Change state and determine action. ◮ Move: Move to adjacent tile, pickup tile,

  • r place carried tile.

7 / 20

slide-18
SLIDE 18

2D Model

2D model by Gmyr et al. [DNA 2018]: ◮ r operates in look-compute-move cycles: ◮ Look: Observe adjacent nodes. ◮ Compute: Change state and determine action. ◮ Move: Move to adjacent tile, pickup tile,

  • r place carried tile.

7 / 20

slide-19
SLIDE 19

2D Model

2D model by Gmyr et al. [DNA 2018]: ◮ r operates in look-compute-move cycles: ◮ Look: Observe adjacent nodes. ◮ Compute: Change state and determine action. ◮ Move: Move to adjacent tile, pickup tile,

  • r place carried tile.

7 / 20

slide-20
SLIDE 20

3D Model

◮ Same as 2D, but with rhombic dodecahedral tiles.

8 / 20

slide-21
SLIDE 21

3D Model

◮ Same as 2D, but with rhombic dodecahedral tiles.

Tomruen [CC BY-SA 4.0] 8 / 20

slide-22
SLIDE 22

3D Model

◮ Same as 2D, but with rhombic dodecahedral tiles.

Tomruen [CC BY-SA 4.0] TED-43 [CC BY 3.0] 8 / 20

slide-23
SLIDE 23

3D Model

◮ Same as 2D, but with rhombic dodecahedral tiles.

Tomruen [CC BY-SA 4.0] TED-43 [CC BY 3.0] Didier Descouens [CC BY-SA 4.0] 8 / 20

slide-24
SLIDE 24

Lattice

◮ Rhombic dodecahedral tiles are placed in the face-centred cubic (FCC) lattice (i.e., the adjacency graph of the FCC sphere packing)

9 / 20

slide-25
SLIDE 25

Lattice

◮ Rhombic dodecahedral tiles are placed in the face-centred cubic (FCC) lattice (i.e., the adjacency graph of the FCC sphere packing)

9 / 20

slide-26
SLIDE 26

Lattice

◮ Rhombic dodecahedral tiles are placed in the face-centred cubic (FCC) lattice (i.e., the adjacency graph of the FCC sphere packing) ◮ Voronoi cells of the FCC lattice are rhombic dodecahedra

9 / 20

slide-27
SLIDE 27

Why Rhombic Dodecahedra?

◮ Form a space-filling tesselation.

10 / 20

slide-28
SLIDE 28

Why Rhombic Dodecahedra?

◮ Form a space-filling tesselation. ◮ Robots can move along the surface while remaining connected.

10 / 20

slide-29
SLIDE 29

Why Rhombic Dodecahedra?

◮ Form a space-filling tesselation. ◮ Robots can move along the surface while remaining connected.

10 / 20

slide-30
SLIDE 30

Why Rhombic Dodecahedra?

◮ Form a space-filling tesselation. ◮ Robots can move along the surface while remaining connected.

10 / 20

slide-31
SLIDE 31

Why Rhombic Dodecahedra?

◮ Form a space-filling tesselation. ◮ Robots can move along the surface while remaining connected.

10 / 20

slide-32
SLIDE 32

Why Rhombic Dodecahedra?

◮ Form a space-filling tesselation. ◮ Robots can move along the surface while remaining connected. ◮ Can be viewed in terms of hexagonal layers.

10 / 20

slide-33
SLIDE 33

Directions

◮ Up: UNE/USE/UW ◮ Same layer: N/NE/SE/S/SW/NW ◮ Down: DNW/DE/DSW

11 / 20

slide-34
SLIDE 34

Safely Movable Tiles

◮ Safely locally movable:

12 / 20

slide-35
SLIDE 35

Safely Movable Tiles

◮ Safely locally movable: ◮ Safely movable:

12 / 20

slide-36
SLIDE 36

Safely Movable Tiles

◮ Safely locally movable: ◮ Safely removable: ◮ Safely movable:

12 / 20

slide-37
SLIDE 37

Safely Movable Tiles

◮ Safely locally movable: ◮ Safely removable: ◮ Safely movable:

Theorem (2D)

A robot that can always find a safely locally movable tile.

12 / 20

slide-38
SLIDE 38

Safely Movable Tiles

◮ Safely locally movable: ◮ Safely removable: ◮ Safely movable:

Theorem (2D)

A robot that can always find a safely locally movable tile. No robot can find a safely removable tile in all configurations.

12 / 20

slide-39
SLIDE 39

Safely Movable Tiles

◮ Safely locally movable: ◮ Safely removable: ◮ Safely movable:

Theorem (2D)

A robot that can always find a safely locally movable tile. No robot can find a safely removable tile in all configurations.

Theorem (3D)

No robot can find a safely movable tile in all configurations.

12 / 20

slide-40
SLIDE 40

Configuration without Safely Locally Movable Tiles

13 / 20

slide-41
SLIDE 41

Configuration without Safely Locally Movable Tiles

◮ Solution: The robot initially carries a tile.

13 / 20

slide-42
SLIDE 42

Outline

Introduction Motivation Problem Model 2D 3D Safely Movable Tiles Algorithm Conclusion

14 / 20

slide-43
SLIDE 43

Intermediate Structure

◮ Use a line as intermediate structure for shape formation.

15 / 20

slide-44
SLIDE 44

Intermediate Structure

◮ Use a line as intermediate structure for shape formation.

15 / 20

slide-45
SLIDE 45

Intermediate Structure

◮ Use a line as intermediate structure for shape formation.

15 / 20

slide-46
SLIDE 46

Intermediate Structure

◮ Use a line as intermediate structure for shape formation.

15 / 20

slide-47
SLIDE 47

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Traverse current column and check adjacent nodes. ◮ If tile in direction USE/UNE/UW/NW/SW, move there. ◮ Terminate if the structure is a line.

16 / 20

slide-48
SLIDE 48

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Traverse current column and check adjacent nodes. ◮ If tile in direction USE/UNE/UW/NW/SW, move there. ◮ Terminate if the structure is a line.

16 / 20

slide-49
SLIDE 49

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Traverse current column and check adjacent nodes. ◮ If tile in direction USE/UNE/UW/NW/SW, move there. ◮ Terminate if the structure is a line.

16 / 20

slide-50
SLIDE 50

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Traverse current column and check adjacent nodes. ◮ If tile in direction USE/UNE/UW/NW/SW, move there. ◮ Terminate if the structure is a line.

16 / 20

slide-51
SLIDE 51

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path.

16 / 20

slide-52
SLIDE 52

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile.

16 / 20

slide-53
SLIDE 53

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-54
SLIDE 54

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-55
SLIDE 55

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-56
SLIDE 56

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-57
SLIDE 57

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-58
SLIDE 58

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-59
SLIDE 59

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-60
SLIDE 60

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile. ◮ The carried tile maintains connectivity.

16 / 20

slide-61
SLIDE 61

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile. ◮ The carried tile maintains connectivity.

16 / 20

slide-62
SLIDE 62

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile. ◮ The carried tile maintains connectivity.

16 / 20

slide-63
SLIDE 63

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile. ◮ The carried tile maintains connectivity.

16 / 20

slide-64
SLIDE 64

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile. ◮ The carried tile maintains connectivity.

16 / 20

slide-65
SLIDE 65

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile. ◮ The carried tile maintains connectivity.

16 / 20

slide-66
SLIDE 66

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile. ◮ The carried tile maintains connectivity.

16 / 20

slide-67
SLIDE 67

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile. ◮ The carried tile maintains connectivity.

16 / 20

slide-68
SLIDE 68

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-69
SLIDE 69

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-70
SLIDE 70

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-71
SLIDE 71

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-72
SLIDE 72

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-73
SLIDE 73

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-74
SLIDE 74

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-75
SLIDE 75

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-76
SLIDE 76

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-77
SLIDE 77

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-78
SLIDE 78

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-79
SLIDE 79

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-80
SLIDE 80

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-81
SLIDE 81

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-82
SLIDE 82

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-83
SLIDE 83

Line Building Algorithm

Algorithm works in three phases: ◮ Find column: Find a column (maximal line in N/S direction) without tiles above or west. ◮ Move column down: If found column has neighbors below, move its tiles DE. ◮ Move column east: Otherwise, move its tiles SE. ◮ Place carried tile at first empty node along the path. ◮ Take tile from the column’s northernmost tile. ◮ Switch to find column if ◮ current column merged with column to the S, ◮ or took last tile.

16 / 20

slide-84
SLIDE 84

Analysis

Theorem

The robot can build a line in O(n3) rounds.

17 / 20

slide-85
SLIDE 85

Outline

Introduction Motivation Problem Model 2D 3D Safely Movable Tiles Algorithm Conclusion

18 / 20

slide-86
SLIDE 86

Future Work

◮ Improve runtime of the algorithm.

19 / 20

slide-87
SLIDE 87

Future Work

◮ Improve runtime of the algorithm. ◮ Lower bound Ω(n2).

19 / 20

slide-88
SLIDE 88

Future Work

◮ Improve runtime of the algorithm. ◮ Lower bound Ω(n2). ◮ Using multiple robots.

19 / 20

slide-89
SLIDE 89

Future Work

◮ Improve runtime of the algorithm. ◮ Lower bound Ω(n2). ◮ Using multiple robots. ◮ Explore the structure or find the outer hull.

19 / 20

slide-90
SLIDE 90

Future Work

◮ Improve runtime of the algorithm. ◮ Lower bound Ω(n2). ◮ Using multiple robots. ◮ Explore the structure or find the outer hull. ◮ Which capabilities are necessary?

19 / 20

slide-91
SLIDE 91

Future Work

◮ Improve runtime of the algorithm. ◮ Lower bound Ω(n2). ◮ Using multiple robots. ◮ Explore the structure or find the outer hull. ◮ Which capabilities are necessary? ◮ Blum and Kozen (1978)a appears to imply that at least three pebbles are necessary.

aBlum, M., & Kozen, D. (1978). On the power of the compass (or, why mazes are easier to search than graphs). In 19th Annual Symposium on Foundations of Computer Science (sfcs 1978). IEEE. 19 / 20

slide-92
SLIDE 92

Future Work

◮ Improve runtime of the algorithm. ◮ Lower bound Ω(n2). ◮ Using multiple robots. ◮ Explore the structure or find the outer hull. ◮ Which capabilities are necessary? ◮ Blum and Kozen (1978)a appears to imply that at least three pebbles are necessary. ◮ Exploration of undirected graphs requires Θ(log log n) pebbles. b

aBlum, M., & Kozen, D. (1978). On the power of the compass (or, why mazes are easier to search than graphs). In 19th Annual Symposium on Foundations of Computer Science (sfcs 1978). IEEE. bDisser, Y., Hackfeld, & J., Klimm, M. (2015). Undirected Graph Exploration with Θ(log log n) Pebbles. In Proceedings of the Twenty-Seventh Annual ACM-SIAM Symposium on Discrete Algorithms. Society for Industrial and Applied Mathematics. 19 / 20

slide-93
SLIDE 93

Try out the Simulator

◮ https://go.upb.de/3DHybridSim ◮ Browser: Tested with Chrome, Safari does not work

20 / 20