Research Article

Assembly Sequence Planning for Rectangular Modular Robots with Accessibility Constraints

Algorithm 4

AssemblyOrder (G, s) configurations with internal holes.
1: Label s as discovered
2: For each vertex w in G.adj[s] do
3:  If vertex w is labeled as undiscovered then
4:   Ifw can be added to the structure (addEdge (G, w) is true) then
5:    Ifs is a hole and w is not a hole or the first added robot system then
6:     If exists a discovered robot system z ∈ G.adj[w] then
7:      G.Tree[z] ← w
8:      G.parent(w) = z
9:     AssemblyOrder (G, w)
10:    Else
11:     G.Tree[s] ← w
12:    G.parent(w) = s
13:    AssemblyOrder (G, w)
14:   Else
15:    deleteBranch (G, s)
16:    Label s as undiscovered
17:    Return
18: If exists w in G.adj[s] marked as undiscovered then
19:  deleteBranch (G, s)
20:  Label s as undiscovered
21:  Return