Research Article
A Grid-Based Motion Planning Approach for Coherent Groups
Algorithm 3
Generating all the neighbors of
.
| Input. , Obstacle space , , , | | Output. A neighbor list of | | (1) Initialize a queue , Initialize a list | | (2) Clone from | | (3) if all grids in boundary grid of have no collision-free neighbors | | (4) return null | | (5) end if | | Step 6–8 are used to rotate / | | (6) if is collision-free | | (7) add into | | (8) end if | | Step 9–23 are used to moving the boundary grids of according to the compact property / | | (9) let represent the kth boundary grid of , num represents the total number of | | boundary grid of | | (10) for ( = 1; <= num; ++) | | (11) if have collision-free neighbors | | (12) let be the vector from to one of its free neighbors with step size of or | | | (13) add + to and add all other grids in except into a queue | | according to the distance to | | (14) while is not empty | | (15) = Dequeue(Q) | | (16) if + is collision-free, add + to | | (17) else add + to , where is the new direction which ensures the gird-set | | satisfying the compact property | | (18) end if | | (19) end while | | (20) add into | | (21) end if | | (22) end for | | (23) return |
|