Research Article

Assembly Sequence Planning for Rectangular Modular Robots with Accessibility Constraints

Algorithm 1

AssemblyOrder (G, s).
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:     G.Tree[s] ← w
6:     G.parent(w) = s
7:   Label w as discovered
8:   AssemblyOrder (G, w)
9:   Else
10:    deleteBranch (G, s)
11:    Label s as undiscovered
12:    Return
13: If exists w in G.adj[s] marked as undiscovered then
14:   deleteBranch (G, s)
15:   Label s as undiscovered
16: Return