In this tutorial, we shall introduce our software for assembly planning. We aim at constructing arbitrary planar target structures with identical modules. Our modules are rectangular and dock each other like LEGO blocks; in other words, they can only dock along their two longer edges in a common brick wall pattern. Thus, the docking mechanism is minimalistic, but our algorithm enables feasible assembly planning without reachability concerns. The software is based on our paper where we presented an algorithm for target structures without holes, but recently it is improved to address target structures with holes.
The software is written in C++ and organized as a ROS package. Thus, follow the instructions for installing ROS if you have not already done that. We additionally need two software packages: Boost Graph Library and CGAL. Follow instructions in the links to install and build them.
Download the assembly planner here. Place the package in src directory of your workspace, as usual in ROS, extract there, and build the package by running:
your_workspace $ catkin_make
First, represent a target shape by filling appropriate pixels on the plane as shown in Fig. 2.
Then, write a text file enumerating the ids and coordinates of pixels to be occupied (Fig. 3). The file is contained in the package (example.txt).
The software returns an assembly sequence given the text file as an argument:
your_workspace/src/assembly_planning $ rosrun assembly_planning assembly_planning example.txt
Fig. 4 shows the output. Follow the sequence and see the assembly doesn’t have to address peg-in-hole scenarios!
Previously, the algorithm was used to generate assembly plans for the landing platform and the bridge shown in Fig. 5 and 6, respectively, with robotic boats.