Keywords

1 Introduction

Robots could be the only viable alternative for construction and manipulation tasks in environments that are hazardous or inaccessible for humans [1], e.g., disaster areas, extraterrestrial surfaces, inside mines, or undersea. However, the employment of autonomous robots in these environments is still very challenging, and demands more research. Nature is one of the sources of inspiration that can help us in this regard. By observing nature, we can see how simple agents employ adaptive and robust solutions to construct in dynamic and unstructured environments. Examples of such constructions include beaver dams, termite mounds, caddisfly cases, bee hives, social weaver nests, spider webs, and anthill structures. The construction of these structures is in general based on simple rules of thumb. The usage of compliant materials along with stochastic deposition rules helps in coping with the uncertainties and the unpredictability of the environment. Our goal is to develop an autonomous construction system by taking inspiration from such biological systems.

We define autonomous construction as a robotic task in which one or many autonomous robots repeatedly grasp, transport, and deposit material in order to build a structure. To develop an autonomous construction system, we need to specify the following aspects:

  1. 1.

    The task objective, defined by the user that specifies the form or function of the structure to be built.

  2. 2.

    The building material of which the structure will be made of. Building materials can be categorized based on their physical properties into: rigid, compliant, and amorphous [2]. Examples of these categories include bricks, sandbags, and foam, respectively.

  3. 3.

    The autonomous robots that build the structure, in terms of their sensing, processing, and actuation capabilities. There might be a single or multiple robots in the system, and they can be ground, aerial, or undersea vehicles.

  4. 4.

    The control algorithm that is implemented on the robot(s). The control algorithm can be deliberative, reactive, or hybrid.

In our autonomous construction system, we employ a single ground robot with a stochastic control algorithm that builds a barrier by exploiting filled bags as compliant material. The motivations for this study are provided in the following in terms of the four above-mentioned aspects.

1.1 Task Objective

The task objective in this study is to build a protective barrier against a generic dangerous area. The real-world applications that motivate our task objective—and therefore, this study—include building radiation shields after nuclear disasters, building lunar and Martian infrastructures like the one proposed in NASA’s In-Situ Resource Utilization project [3], building emergency shelters after earthquakes [4], and building levees against tsunamis. The functional and performance requirements that are imposed by these applications include fast and simple realization, low cost, radiation exposure reduction, structure integrity, and impact resistance.

1.2 Building Material

The building material must be chosen according to the task objective. In this work, we employ filled bags for building the protective barrier. The usage of this type of material in autonomous construction is novel, and is coherent with some recent researches. For example, Cal-Earth [4] proposes the use of sandbags for emergency shelters, and NASA [3, 5, 6] proposes the use of regolith bags for building lunar habitats.

Filled bags are built by enclosing some amorphous material into fabric pockets, so that they maintain a certain degree of deformability. As a consequence, filled bags (henceforth compliant pockets) have some of the properties of both rigid and amorphous materials, making them very appropriate for the autonomous construction of the aforementioned structures. In particular, they have the following features:

  1. (i)

    They can conform to the shape of the environment in which they are placed. This property allows to construct on rough and uneven surfaces, to achieve packed structures, and makes quick deposition of compliant pockets possible, because they do not require edge alignment in contrast to rigid parts. It also reduces the sensorimotor requirements for the robot.

  2. (ii)

    They can fill voids in a structure. This property allows the robots to start building the structure simultaneously from different seeds as the different pieces of the structure can seamlessly join one another. In contrast, building structures with rigid parts requires to start from one seed [7]. Compliant pockets can remarkably improve the efficiency in parallel deposition.

  3. (iii)

    They can be fabricated by exploiting in situ materials. Materials such as soil and sand on earth and regolith on the Moon, Mars, etc. are generally amorphous and cannot stay on their own. Compliant pockets are recognized as a simple, inexpensive, time-saving, and flexible approach for shaping these amorphous materials [3, 4].

1.3 Autonomous Robot

The robots must be equipped with the necessary sensors, processors, and actuators in order to be able to interact with the environment and manipulate the building material. In this study, the robot is completely self-contained, i.e., sensing, processing, and actuation are onboard. The robot is able to move and search for the building material in the environment. In addition, it uses a simple manipulator as construction with compliant pockets does not require high precision in positioning and alignment.

1.4 Control Algorithm

The control algorithm for autonomous construction must guide the robot to the right destination (i.e., the deposition point) for depositing the carried material. Our control system uses two biological mechanisms—stigmergy and templates—to achieve this goal:

  1. (i)

    Stigmergy is the coordination of actions through modification of the environment by the agents [8, 9]. In stigmergy, the current state of the environment is the result of the preceding building activities of the agents and stimulates the subsequent actions.

  2. (ii)

    Templates are heterogeneities of the environment (e.g., a temperature gradient) that can be recognized by the agents and that can influence their behavior [8, 9]. The final shape of the structure can be specified by the use of a template.

By using a control algorithm based on stigmergy and templates and by exploiting the properties of the compliant pockets, the robot can construct a structure without having the blue-print of the structure in its memory. It can also compensate the uncertainties of the environment. Stigmergy and templates are mechanisms that are exploited during construction activities in several biological systems, and they could be used to coordinate cooperative construction in multi-robot systems.

The contributions of this study are: (1) the investigation of the merits, feasibility, and performance of compliant pockets in autonomous construction through real-robot experiments; (2) the development of a bio-inspired, stochastic control algorithm that exploits the properties of compliant pockets for autonomous construction in continuous environments. We present in this paper a real-world experiment with a single robot, which is the first step toward autonomous construction by robotic swarms.

The remainder of this paper is organized as follows. Related work is discussed in Sect. 2. The scenario definition, the specifications of the building material, of the real robot, and of the controller are provided in Sect. 3. The metrics used to evaluate the construction performance and the results are presented in Sect. 4. Finally, concluding remarks are made in Sect. 5.

2 Literature Survey

Autonomous construction has attracted the attention of several robotics researchers. In this brief survey, we limit ourselves to works that develop an autonomous construction system by employing real robots.

2.1 Robotic Construction Systems

In a seminal work, Brooks et al. [10] proposed a system made of twenty robots, equipped with a behavior-based control and a piling scoop for leveling soil on an artificial lunar surface. Melhuish et al. [11] used six simple robots to sort pucks along a line used as a template. The structure was built by aligning pucks together, and was two-dimensional. Wawerla et al. [12] employed a single robot with behavior-based control for building a two-dimensional structure made of cardboard blocks. These studies used simple controllers, but they were not able to grow structures in three dimensions. We advance over these studies by taking advantage of compliant pockets for building three-dimensional structures.

Studies on three-dimensional construction employ planning-based controllers. Lindsey et al. [13] employed up to three quadrotors and a central planner to build framed structures out of beams and nodes. Willmann et al. [14] used four quadrotors to build a six meter tower with polystyrene modules. Finally, Wismer et al. [15] adopted a single ground robot to build a roofed structure with polystyrene blocks. In contrast to these works, in our work the robot is completely autonomous, and does not rely on a motion capture system or an external computer.

Petersen et al. [16] developed a termite inspired construction system for building three-dimensional structures with a robot capable of moving on the structure made by specialized bricks, without using a motion capture system. In this work, a one-dimensional plan of the final structure, called structpath, is evaluated offline, and then it is used by the robot to build the structure. Authors in [16] recently extended their work and used three self-contained robots for building three-dimensional structures [7].

Fig. 1
figure 1

Scheme of the arena. The unsafe, the structure, and the reservoir regions are specified. The six small (green) circles represent the landmarks. The line that traverses the four landmarks on the right side is the boundary. The robot, represented as a dark (blue) circle in the structure region, is carrying a pocket (represented in red). The (yellow) circle around the robot shows the maximum range of the robot’s omni-directional camera. Another pocket is placed in the reservoir region between the two landmarks. The value of \(d_0\), \(r_c\), \(d_{1}\), \(r_0\), \(d_{2}\) used in the experiment is given in Appendix

2.2 Compliant and Amporhous Materials

Recent studies suggest the usage of amorphous and compliant materials as a new avenue for autonomous construction in unstructured environments. Napp and Nagpal [17] developed a distributed, reactive algorithm for deposition of foam as amorphous material in order to build a navigable ramp for robots. However, they realized their system by using a remote controlled prototype robot and a scanning mechanism. Similar to [17], Revzen et al. [18] developed a modular robot capable of depositing foam in the environment, and Khoshnevis [19] proposed the “contour crafting” concept for building continuous structures by using a gantry system for deposition of amorphous material. Napp et al. [2] also studied the physical properties and the functional requirements of a number of bio-inspired building materials for autonomous construction. In this paper, we develop an autonomous construction system with compliant pockets as building material, and we study the feasibility and performance of the system through real-robot experiments.

3 Construction System

In this section, we first introduce a scenario for the realization of our task objective in our laboratory arena. Then, we describe the compliant pockets and the ground robot used in our study. Finally, we provide the details of our control algorithm.

3.1 Construction Task: Build a Protective Barrier

The scenario is depicted in Fig. 1. The task of the robot consists in building a barrier approximately 120 cm long and 10 cm wide by stacking 30 pockets. This barrier provides a “safe” region in front of an “unsafe” region in the arena (see Fig. 1).

The arena is a \(240 \times 170\) cm rectangle. Four green landmarks, situated in the arena for specifying the shape of the barrier, serve as a template. Two green landmarks are also situated where the pockets are available to be grasped. Note that the global position of the landmarks is not available to the robot.

The safe and unsafe regions are separated by an imaginary frontier called boundary. The boundary is made up of lines that connect the template landmarks to one another. We refer to these lines as boundary lines, and their length is denoted by \(d_{t_1}\). Depending on the configuration of the landmarks, the boundary can have different shapes. In our case, it is linear.

We refer to the abstract region in which the deposition activity of the robot takes place as structure region. This region is defined in a way that guarantees that the robot can see at least two landmarks from any point of the structure region. The width \(d_0\) of the structure region is therefore a function of the inter-landmark distance \(d_{1}\) and the range \(r_c\) of the robot’s omni-directional camera.

We call the abstract region in which the grasping activity of the robot takes place reservoir region. This region is defined by a semicircle of radius \(r_0\). The radius value is set in such a way that the robot can see the two landmarks and the pocket from every point within the region. Therefore, \(r_0\) is a function of the distance \(d_{2}\) between the two landmarks and of the range \(r_c\). The location of the pocket in the reservoir region is referred to as grasp point. The new pockets are added manually at the grasp point, placing their longitudinal axis aligned with the two landmarks.

The robot commutes between the reservoir and the structure regions, covering the approximate distance of 190 cm. It grasps pockets in the reservoir region, and deposits them in the structure region to build the structure. In order to track the growth of the structure, we mount a Microsoft Kinect® on top of the structure region that captures the RGB and depth images of the structure at different time steps.

3.2 Building Material: Compliant Pockets

The adopted pockets are passive, simple, and inexpensive. They were built by hand in short time and without high precision. A sample of these pockets is shown in Fig. 2. Each pocket is composed of a plastic bag filled with dry rice grains, in a manner that its shape can change to some extent under force exertion. A stripe of ferromagnetic metal is attached along the longitudinal axis of each pocket and is used to facilitate grasping by the robot, as described below. A red tape maintains this metal strip in position, and makes the pocket visually recognizable by the robot’s camera. Each pocket, that weighs approximately 100 g, is 12 cm in length, 7 cm in width, and 1.5 cm in height. The size and weight of the pockets are chosen in a way that satisfies the requirements of the robot’s manipulator.

Fig. 2
figure 2

The marXbot robot with its manipulator, and, on its right, a compliant pocket

3.3 Autonomous Robot: MarXbot

We employ a marXbot [20], a miniature, modular, all-terrain experimentation robot developed within the Swarmanoid project [21]. Figure 2 illustrates this robot. The robot is 17 cm in diameter and 29 cm in height. The main sensors and actuators of the robot employed in this study are: an omni-directional camera, odometry encoders, differential treels (i.e., combinations of tracks and wheels), and a manipulator. The latter has 2 degrees-of-freedom: elevation and tilt [22]. It can lay on the ground in order to detect a pocket, and can rise to pick up a pocket. At the base of the manipulator, there are 6 infrared proximity sensors, and a magnet that can be activated or deactivated.

Notice that the employment of metal and magnet in the design of the pockets and manipulator is one solution to the manipulation of pockets. This design could be substituted by any other design that allows the robot to reliably grasp and drop pockets.

3.4 Control Algorithm: Using Stigmergy and Templates

The control algorithm in this study is developed following a behavior-based approach with three states (behaviors) devoted to exploring the environment, loading, and unloading compliant pockets.

Let us refer to a complete set of activities that the robot needs to perform from grasping to depositing a pocket as an iteration. In each iteration, the robot can employ different sensors for navigation. The relative position of the robot is computed by the odometry navigation equations. The relative location of landmarks and pockets is obtained through the visual image processing. In addition, the proximity sensors are used to detect nearby pockets and obstacles.

Fig. 3
figure 3

Left Template frame. Right Instantaneous coordinate system

Odometry Navigation We introduce the template frame, a flexible reference frame with origin (i.e., reference point) any arbitrary point within the structure region, and with the positive direction of its x-axis perpendicular and pointing to a boundary line (Fig. 3). The template frame is not fixed, but rather it is modified by the robot itself in each iteration after the deposition of a pocket. The robot exploits the template frame in its odometry navigation to move between the structure and the reservoir region.

The location of a robot b with respect to the template reference point t expressed in the template coordinate system |t is denoted by \(\varvec{r}_{bt}^{|t}=[x_{bt}^{|t},\ y_{bt}^{|t}]^\intercal \), and its orientation is given by the angle \(\psi _b\). Both are updated by solving the odometry navigation equations. The grasp point r is also expressed with respect to the template reference point t and in the template coordinate system |t, and is denoted by \(\varvec{r}_{rt}^{|t}\). In order to execute the control commands in odometry navigation, the robot employs the transformation matrix between its body coordinate system |b and the template coordinate system |t, denoted by \(\varvec{C}(\psi _b)^{|bt}\).

Visual Navigation When the robot is in the structure (or reservoir) region, the projection of the robot’s location on the closest boundary line (or the line that connects the two landmarks in the reservoir) is a point which is denoted by p. We define the instantaneous coordinate system with the x-axis in the direction of the vector pointing from the robot b to the point p. The robot employs the instantaneous coordinate system |p in its visual navigation to navigate within the structure region (with an arbitrary boundary’s shape) and within the reservoir region. The transformation matrix between the robot’s body coordinate system |b and the instantaneous coordinate system |p is denoted by \(\varvec{C}(\psi _p)^{|pb}\), where \(\psi _p\) is the angle of the point p in the body coordinate system, and is obtained through the image processing.

In the following, we describe the three states of the control algorithm, and transitions between them:

Exploring State The exploring state allows the robot to acquire information about the structure and reservoir regions. The robot searches in the arena, while avoiding collisions with walls, landmarks, and pockets. When the robot enters the structure region, it constructs the template frame t, and initializes it. When it enters the reservoir region, it saves the grasp point with respect to the template reference point. If the reservoir region is detected earlier than the structure region, the robot updates the grasp point in the template frame after entering the structure region. Once both structure and reservoir regions are detected, the loading state is activated. In any state, if the robot fails, it recovers to the exploring state.

Loading State In the loading state, the robot uses odometry navigation to reach the reservoir region. When the robot enters this region, it uses visual navigation to detect the two landmarks and the pocket. For the alignment of the manipulator with the pocket, the approach trajectory should roughly be normal to the pocket’s longitudinal axis. The robot first moves toward a specified point in front of the pocket. It lowers the manipulator, and moves forward until it detects the pocket through the proximity sensors of the manipulator. Then, it raises the manipulator to the top of the pocket, activates the magnet, and picks up the pocket. At this time, the robot saves the current location as the grasp point, and the unloading state is activated.

Unloading State In the unloading state, the robot uses odometry navigation in order to reach the structure region. When the robot enters this region, the control algorithm must choose the deposition point and guide the robot toward it. In a three-dimensional space, the deposition point d can be specified with respect to the template frame t by its six coordinates: \(x_{dt}^{|t}\), \(y_{dt}^{|t}\), \(z_{dt}^{|t}\), \(\psi _{dt}\), \(\theta _{dt}\), and \(\phi _{dt}\). However, in construction with pockets, and in presence of gravity, the decision space regarding deposition points becomes two-dimensional; the height is specified directly by the structure itself, and the orientation of pockets is not required thanks to the pockets’ deformability. This means that the unloading state has to choose only \(x_{dt}^{|t}\) and \(y_{dt}^{|t}\).

Assuming that the robot is in the structure region, the vision sensor can detect a part of the template and of the structure. First, the robot randomly chooses a direction (right or left). Then, it moves along the boundary at a specified distance from it. If the robot reaches one of the ends of the boundary, it turns around and continues moving in the opposite direction.

Let \(\mathcal {N}\) denote the set of all pockets in the arena at time t, and \(\varvec{r}_{o_ib}^{|b}\) the location of the ith pocket \(o_i\) with respect to the robot b expressed in the robot’s body coordinate system |b. The set of visible pockets \(\mathcal {N}_v\) is defined as

$$\begin{aligned} \mathcal {N}_v = \{j \in \mathcal {N} : |\varvec{r}_{o_jb}^{|b}| \le r_c\} \end{aligned}$$
(1)

where \(\varvec{r}_{o_ib}^{|b}\) for all \(i \in \mathcal {N}_v\) is given by the image processing.

One can express the location of a visible pocket \(o_i\) with respect to the robot b in the instantaneous coordinate system |p by the transformation \(\varvec{r}_{o_ib}^{|p} = \varvec{C}^{|pb} \varvec{r}_{o_ib}^{|b}\) with the components \(\varvec{r}_{o_ib}^{|p} = [x_{o_ib},\ y_{o_ib}]^\intercal \). Let us define the set of influential pockets \(\mathcal {N}_p\) based on the y-component of the locations of the visible pockets:

$$\begin{aligned} \mathcal {N}_p(\delta ) = \{ j \in \mathcal {N}_v : -\delta \le y_{o_jb} \le \delta \} \end{aligned}$$
(2)

where \(\delta \) is a parameter. In the following, we specify the deposition point, i.e., \(y_{dt}^{|t}\) and \(x_{dt}^{|t}\), through Axial-Decision and Lateral-Decision, respectively:

Axial-Decision. The probability that the robot chooses \(y_{bt}^{|t}\) along the length of the structure for the deposition is:

$$\begin{aligned} P\big ( y_{dt}^{|t} = y_{bt}^{|t}; |\mathcal {N}_p(\delta _1)| \big ) = \frac{k_1}{1+\alpha ^2 |\mathcal {N}_p(\delta _1)|^2} \end{aligned}$$
(3)

where \(|\ . \ |\) denotes the size of a set, \(k_1\) is a scaling factor, and \(\delta _1\) and \(\alpha \) are constant. Equation (3) implies that if the number of pockets in an area is low, the probability of depositing the carried pocket is high and vice versa. This rule is self-regulated when the number of pockets increases.

Axial-Decision is based on negative feedback and serves to fill voids along the length of the structure. Once the robot made the decision, it turns and moves toward the structure.

Lateral-Decision. The probability that the robot selects \(x_{bt}^{|t}\) along the width of the structure for the deposition is:

$$\begin{aligned} P \big ( x_{dt}^{|t} = x_{bt}^{|t};\mu (\delta _2) \big ) = k_2 \exp { \big ( - \frac{ \mu (\delta _2) ^2}{ \sigma ^2}\big ) } \end{aligned}$$
(4)

where \(k_2\) is a scaling factor, \(\delta _2\) and \(\sigma \) are constant, and \(\mu \) is defined as

$$\begin{aligned} \mu (\delta _2) = \frac{1}{|\mathcal {N}_p(\delta _2)|} \sum _{j \in \mathcal {N}_p(\delta _2)}{x_{o_jb}} - d_m \end{aligned}$$
(5)

where \(d_m\) is the distance between the center of the manipulator and the center of the robot. Equations (4), (5) imply that the robot deposits the carried pocket with higher probability where the density of pockets along the width of the structure is higher.

Lateral-Decision is based on positive feedback and maximizes the compactness of the structure along its width.

The two probabilistic mechanisms (Axial-Decision and Lateral-Decision) are designed based on stigmergy and a template. The template forms the boundary line, and the stigmergy affects the decision making.

Finally, the robot deactivates the magnet of the manipulator, and lets the pocket drop thanks to the gravitational force. The robot then reinitializes the template frame t based on its current state, and updates the grasp point. This eliminates the accumulated noise in the odometry data from the previous iteration. At this point, the current iteration finishes, and the next iteration starts with the loading state.

4 Metrics and Results

In this section, we evaluate the performance of the proposed autonomous construction system. We first introduce a statistical model to investigate the properties of the structures built using the pockets. Then, we provide the results of our real-robot experiments along with a set of criteria for assessing the quality of the built structures.

4.1 Statistical Model of the Built Structure

To study the quality of the choices made about the deposition points (\(x_{dt}^{|t}\) and \(y_{dt}^{|t}\)), we analyze the effect of these decisions on the resulting structure after a finite number of depositions.

One way for describing the structure is to use height functions as suggested for amorphous materials in [17]. The height function \(h(\varvec{x}):\mathbb {R}^d \rightarrow \mathbb {R}_{\ge 0}\) can be defined as the height of the exterior surface of the structure over the one- or two-dimensional construction domain.

A more appropriate way for representing the constructed structure with compliant pockets is to use the distribution of pockets in space. This is because pockets are discrete and countable objects. Additionally, there is some inherent uncertainty in the deposition that can be grasped by means of a statistical model. We propose to use kernel density estimation to obtain a model for structures with pockets. Kernel density estimation is a nonparametric approach for estimating the density function of a finite set of data samples [23]. Let \(\mathbf {x} \in \mathbb {R}^d\) denote the d-dimensional (\(d=1,2\)) location of a pocket in an arbitrary coordinate system. The multivariate kernel density function \({f}_{{H}}(\mathbf {x}):\mathbb {R}^d \rightarrow \mathbb {R}_{\ge 0}\) of a structure with compliant pockets after n depositions is defined as

$$\begin{aligned} {f}_{{H}}(\mathbf {x}) = \frac{1}{n} \sum _{i=1}^{n}{K_{{H}} \big ( \mathbf {x}-\mathbf {x}_i \big ) } \end{aligned}$$
(6)

where \(K_{{H}}(\mathbf {x})\) is

$$\begin{aligned} K_{{H}}(\mathbf {x})=|{H}|^{-1/2} \ K({H}^{-1/2}\mathbf {x}) \end{aligned}$$
(7)

where H is a symmetric positive-definite \(d \times d\) matrix called the bandwidth matrix and \(K(\mathbf {x})\) is the kernel function. The kernel function is a symmetric function that satisfies

$$\begin{aligned} \int _{\mathbb {R}^d}{K(\mathbf {x})d\mathbf {x}} = 1 \end{aligned}$$
(8)

The kernel in our study is a normal density function:

$$\begin{aligned} K(\mathbf {x})=\frac{1}{(2\pi )^{d/2}}\exp { \big ( -\frac{1}{2}\mathbf {x}^\intercal \mathbf {x} \big ) } \end{aligned}$$
(9)

In order to evaluate the kernel density function for the whole structure, we require only the location of the pockets’ center of mass. Then, we associate a kernel to each pocket. Each deposition is considered as one kernel, and the accumulation of pockets is modeled by the summation of the corresponding kernels.

A density function can account for the distribution of the probabilistic local decisions on deposition points. It also takes into account the uncertainties in the shape and the final location of compliant pockets.

4.2 Performance Criteria

Assume that we have the two-dimensional locations of the pockets \([x_i, \ y_i]^\intercal \) for all \(i \in \{ 1,\dots ,n \}\) after n depositions. To provide a quantitative evaluation of the proposed approach, we define four criteria to measure the quality of the structure and of the control algorithm: uniformity deviation, integrity deviation, maximum gap, and construction time:

Uniformity Deviation. It measures the difference between the pockets’ distribution and a uniform reference distribution along the length of the structure. The uniformity deviation after n depositions is defined as

$$\begin{aligned} u_d(n) = \frac{1}{2A} \int _{a}^{b}{\big | f_H(y) - f_{0}(y) \big | dy } \end{aligned}$$
(10)

where a and b are the extremities of the structure (we truncate the domain at the center of the leftmost and rightmost pockets), \(f_{0}(y)\) is the uniform reference distribution, and A is the integral of the kernel density function over the domain (the factor 2 in the denominator is for normalization). By construction, the following property holds in the interval [ab]:

$$\begin{aligned} \int _a^b{f_0(y)} = \int _a^b{f_H(y)} = A \end{aligned}$$
(11)

resulting in a theoretical maximum uniformity deviation of 1. As a consequence, low values of \(u_d(n)\) correspond to more uniform structures.

Integrity Deviation. It represents the compactness of the structure. It is defined as the standard deviation of the pockets’ distribution along the width of the structure after n depositions

$$\begin{aligned} i_d(n) = \sqrt{\frac{1}{n-1}\sum _{i=1}^{n}{(x_i - \bar{x})^2}} \end{aligned}$$
(12)

where \(\bar{x}\) is the mean of the x-component of the pockets’ locations. Low values of \(i_d(n)\) indicate high coherence of the structure along its width.

Maximum Gap. It is defined as the maximum axial distance between two adjacent pockets after n depositions

$$\begin{aligned}&d_m(n) =\max _{i,j \in \{1,\dots ,n\}, i \ne j} \{ y_j - y_i \} \\&s.t. \ y_j > y_i, \forall k \in \{1,\dots ,n\}, y_k > y_i \rightarrow y_j \le y_k \nonumber \end{aligned}$$
(13)

Low values of \(d_m(n)\) are desirable.

Construction Time. It is the time required for constructing a structure with n pockets, denoted by \(t_c(n)\).

4.3 Experimental Results

We employed one robot for the real-robot experiments (the parameters used in our experiments are reported in Appendix). Twenty trials were carried out, and in each trial the robot successfully built the structure without any failure.

We provide the detailed results of one selected trial.Footnote 1 Figure 4 illustrates the construction process through some snapshots of the structure at different time steps. After each deposition, the depth image of the structure was captured using a Microsoft Kinect®. The depth map representing the height function is shown in Fig. 5 for the final structure. Through image processing, by comparing each two consecutive depth images of the growing structure, the last deposited pocket was recognized, and its two-dimensional location in a coordinate system was extracted. Therefore, the two-dimensional locations of the pockets \([x_i, \ y_i]^\intercal \) for all \(i \in \mathcal {N}\) are available for our analysis. We computed the bivariate kernel density function for the final structure by choosing a diagonal bandwidth matrix with elements \(h_1\) and \(h_2\) for the x- and y-directions, respectively. Figure 5 depicts the heat map diagram of the bivariate kernel density function. We observe a close correspondence between the height function and the kernel density function, which supports the choice of the latter as a model for the structure.

Fig. 4
figure 4

Snapshots of the structure at different time steps. a \(t=261\, \text {s}\), \(n=4\). b \(t=869\, \text {s}\), \(n=12\). c \(t=1425\,\text {s}\), \(n=19\). d \(t=2366\,\text {s}\), \(n=30\).

Fig. 5
figure 5

Top depth map of the final structure for the selected trial. Bottom The corresponding bivariate kernel density function

Fig. 6
figure 6

Bottom left two-dimensional distribution of pockets in the final structure for the selected trial. The maximum gap d is shown in the plot. Top univariate kernel density function along the length of the structure compared to the corresponding uniform density function. The uniform deviation is calculated based on the area of the colored region. Bottom right normal density function fitted to the distribution of pockets along the width of the structure. The integrity deviation is the estimated standard deviation of this function

Fig. 7
figure 7

From left to right respectively: box plot diagram of the uniformity deviation, integrity deviation, maximum gap, and construction time for 20 real-robot experiments

The performance criteria were evaluated for all trials. In the specific case of the selected trial (see Fig. 6), their values for the final structure are: \(u_d(30) = 0.13\), \(i_d(30) = 2.50\,\text {cm}\), \(d_m(30) = 10.07\) cm, and \(t_c(30) = 2366\) s.

Figure 7 reports the performance of the autonomous construction system based on the four criteria for 20 trials. In the following, in our discussion we use the median of each criterion as the dispersion is acceptably small.

The median of the uniformity deviation is \(\tilde{u}_d(30) = 0.13\), which shows \(13\,\%\) deviation from the uniform distribution. This indicates that the built structures are roughly uniform obtaining an approximately constant height.

The median of the integrity deviation is \(\tilde{i}_d(30) = 2.44\) cm. It suggests that pockets are placed in the range \({\pm }7.32\) cm, that is \(\pm 3 \times \tilde{i}_d(30)\), around the average. This range is twice the width of a pocket, meaning that the built structures are very coherent, integrated, and packed.

The median of the maximum gap is \(\tilde{d}_m(30) = 10.48\) cm. It is less than the axial distance between two pockets without overlapping (the length of each pocket is 12 cm). It means that the robot filled most of the voids in the structure.

Finally, the median construction time is \(\tilde{t}_c(30) = 2486\,\text {s}\). It means that each iteration took about 83 s on average. Considering the average speed of the robot (\({\approx }10\) cm/s), the distance between the reservoir and structure regions, and the average time for grasping one pocket (\({\approx }15\) s), the robot spends approximately 30 s for each deposition in average.

Overall, by analyzing the structures built in all trials using the above metrics, we can conclude that the performance of our autonomous construction system is acceptable. This is thanks to the exploitation of the properties of compliant pockets, which allowed to employ a simple deposition mechanism that resulted in uniform, integrated, void-free structures.

5 Conclusion and Future Work

In this work, we developed an autonomous construction system for building structures out of compliant pockets. To do so, we used an autonomous robot, and we developed a control algorithm for the robot by exploiting two biological mechanisms: stigmergy and templates. The control algorithm allows the robot to explore the structure along its length, build it uniformly, and fill voids. In addition, it permits the robot to maximize the compactness of the structure along its width, and build it coherently.

Construction with compliant pockets does not require high precision in positioning and alignment. This property makes compliant pockets a suitable building material for many applications.

In our future work, we will extend the proposed autonomous construction system to a multi-robot scenario (swarm construction). Thanks to stigmergy and templates, multiple robots in a group do not need any blue-print of the structure, and do not require to communicate with each other to update their beliefs regarding the current states of the structure. However, different methods for resolving the interferences among the robots in a group have to be studied. Experimentation in this direction is ongoing.