I. Introduction
Self-assembly is a technique by which many agents join to form larger structures, allowing swarms to adapt to their environment and carry out feats no individual agent could on their own. In nature, some examples of self-assembly include the ability of swarms of ants to build bridges [1] and towers [2], bees to form clusters [3] and festoons [4], and cells to form multi-cellular organisms. Such adaptability would be helpful for robotic applications in poorly-understood and dynamic environments, such as disaster relief, exploration, and construction, thus motivating research into robotic self-assembling systems.