Keywords

1 Introduction

Masonry works are one of the very early human craftsmanship. However, this discipline has not achieved a high degree of automation. A number of attempts were made to develop mobile construction works, the most advanced of which were the projects [1, 2]. These studies date back to the early 90s of the 20th century, when the motivation for designers was to improve the efficiency and savings of building construction, mainly through the use of the ability of machines to carry larger loads [4]. These works, although very advanced, did not find full practical application because they were not flexible enough to adapt and respond to various situations occurring on the construction site. Thanks to the introduction of digital technologies in architecture, research centers such as Harvard GSD, Carnegie Mellon and the University of Stuttgart have created research laboratories for the construction of construction works [8]. These centers have developed various technologies and prototype elements aimed at increasing the role of robots in construction works, in particular bricklaying. In addition, some commercial masonry works were developed, such as Hadrian and Semi Automated bricklaying robot SAM, which perform masonry processes. The common feature of these projects is that they have all tried to replace building materials with new materials that may be more suitable for the use of robots [5].

Contemporary works intended for construction works can be divided into several categories:

  • remote controlled robots, which are controlled by a human using a remote control, where decisions are made by the operator based on the collected information.

  • programmable construction machines in which the operator can choose from a function menu or teach a robot to perform a new function.

  • intelligent systems in which unmanned, fully automated construction machines perform tasks without direct human intervention. This category may also include semi-automatic machines that are not completely unmanned and some level of human control is present.

Because bricklaying is a repetitive process, we can easily automate it. To carry out the masonry process, the robot must detect and then take a brick from the warehouse. Then the brick should be placed in the right position on a properly prepared base - mortar. During capturing and laying bricks, the robot should avoid collisions with obstacles. For such a dynamic area as a construction site, obstacles detection requires the active motion planning techniques based on real-time sensory data. In addition, the bricklaying machine must be “aware” of the progress of wall evolution. To introduce this technology during masonry work, the following basic technical problems must be solved: robot movement along the erected wall, accurate reference of the robot working area axis relative to the entire wall (building), creating and programming complex interactions within the working area for the process collecting and laying of individual bricks, creating and programming interactions for the process of filling joints with mortar [3].

As a part of the research and development works, a design of the Bricklaying Robotic System (BRS) prototype was made (Fig. 1), meeting the expectations of construction companies in the field of robotization of time-consuming and arduous manual construction works.

Fig. 1.
figure 1

Model view Bricklaying Robotic System (BRS) 1 - basic robot (BR), 2 - mobile hydraulic module (MHM) 3 - support module (SM), 4 - gripper 5 - bricks feeder.

The Bricklaying Robotic System (BRS) consists of a basic robot (BR) (1) equipped with a gripper (4). Basic robot (BR) is set on a mobile hydraulic module (MHM) (2). The BRS is equipped with a lifting and positioning control system as well as a control system for working movements of the basic robot. Concept of the control system for leveling as well as the system of indicators for measuring and controlling BRS work parameters were developed. BRS will have a feeder with a reservoir (5) for various building materials used during bricklaying, and a mortar feeder. Figure 2 and 3 respectively show: the process of bricklaying simulation and the working range of the designed BRS prototype.

Fig. 2.
figure 2

Simulation tests of the bricklaying process.

Fig. 3.
figure 3

Working range of the bricklaying robot.

2 Dynamic Model of the MHM

Mobile hydraulic module (MHM) is a support platform for further development of devices used in cooperating construction works, such as: construction manipulator, material warehouse or lifting platform. It is made of a mobile platform, which ensures the movement of MHM and two supporting modules (SM). Each of the supporting modules has extendable legs with a cross structure, which are lowered by means of two electro-hydraulic servo drives. The main task of the platform is to move the BRS to the designated working area and then precisely raise the BRS to the desired height along with its leveling. Both of these tasks are significantly influenced by the dynamic behavior of the mobile module itself and the mechanisms mounted on it. Figure 4 shows the model of the mobile hydraulic module (MHM).

Fig. 4.
figure 4

Mobile hydraulic module (MHM).

Calculation diagram of the single supporting module (SM) consisting of the double-acting cylinder with one-sided piston rod and proportional directional control valve is presented in the Fig. 5. The mass of the load M was placed centrally on a plane 2a wide and 2b long for simplicity.

Fig. 5.
figure 5

Scheme of the support modules.

For the module (MHM) (Fig. 4) the following equations of motion along the direction of gravity and rotation around the axis x (r – roll) and y (p – pitch) can be obtained:

$$ \begin{aligned} & M\ddot{z}_{M} = \sum\limits_{i = 1}^{4} {F_{i} + } \sum\limits_{i = 1}^{4} {F_{ri} \sin (\theta_{r} ) + \sum\limits_{i = 1}^{4} {F_{pi} \sin (\theta_{p} ) - Mg} } \\ & J_{r} \ddot{\theta }_{r} = \sum\limits_{i = 1}^{4} {((F_{i} + F_{ri} \sin (\theta_{r} )} )a_{ri} \\ & J_{p} \ddot{\theta }_{p} = \sum\limits_{i = 1}^{4} {((F_{i} + F_{pi} \sin (\theta_{p} )} )b_{pi} \\ \end{aligned} $$
(1)

where: \( z_{M} \) – module center of gravity position, M – total mass of the load, g – gravitational constant, \( F_{i} ,F_{ri} ,F_{pi} \) – reaction forces for electrohydraulic servo drives for \( i = 1,2, \cdots n \), \( a_{ri} ,b_{pi} \) – arms length for moments of forces, \( J_{r} ,J_{p} \) – moments of module inertia, \( \theta_{r} ,\theta_{p} \) – angles of rotation. If we assume, that \( \theta_{r} ,\,\theta_{p} \) is small then \( \sin (\theta_{r} ) \approx 0 \) and \( \sin (\theta_{p} ) \approx 0 \).

In contact with the hydraulic supports with the ground, the following occurs:

$$ G_{i} = k_{i} (z_{0} - z_{i} ) + b_{i} (\dot{z}_{0} - \dot{z}_{i} ),\quad i = 1,2, \cdots ,n $$
(2)

where: \( k_{i} ,b_{i} \) – stiffness and damping ratio.

Equations containing mechanical and hydraulic variables are described by:

$$ \begin{aligned} & F_{i} = A_{1i} p_{1i} - A_{2i} p_{2i} \\ & Q_{1i} = A_{1i} \dot{z}_{i} + C_{1i} \dot{p}_{1i} + G_{lei} (p_{1i} - p_{2i} ),\quad i = 1,2, \cdots ,n \\ & Q_{2i} = A_{2i} \dot{z}_{i} - C_{2i} \dot{p}_{2i} + G_{lei} (p_{1i} - p_{2i} ) \\ \end{aligned} $$
(3)

where: \( Q_{1i} \) – volumetric flow rate, \( C_{1i} ,C_{2i} \) – fluid capacitances in the cylinder chambers, \( G_{lei} \) – coefficients of leakages in the cylinder, A1i, A2i – effective area of cylinder’s piston, p1i, p2i – pressure in individual cylinder’s chambers.

The hydraulic forces developed by the actuators are given by:

$$ \left[ {p_{1i} \cdot A_{1i} - p_{2i} \cdot A_{2i} } \right] = \left[ {A_{1i} \cdot p_{0} - A_{2i} \cdot p_{{_{T} }} - \frac{{A^{3}_{1i} + A^{3}_{2i} }}{{(K_{1} \cdot u + K_{0.1} )^{2} }} \cdot h_{i}^{2} } \right],\quad i = 1,2, \cdots n $$
(4)

where: ui – control inputs, K1, K0.1 – constants factors, p0 – supply pressure, pT – pressure in the tank which correspond to the main and leakage valve flow paths.

The equation of motion of each hydraulic cylinder piston is:

$$ m_{i} \ddot{z} = (P_{1i} - P_{2i} )A_{2i} - b_{i} \dot{z} - F_{ci} $$
(5)

and the equations of motion of the support module are:

$$ \left\{ {\begin{array}{*{20}l} {F_{1} + F_{2} - Mg = M{\kern 1pt} \ddot{z}_{M} } \hfill \\ {(F_{1} + F_{2} )a = J\ddot{\theta }} \hfill \\ \end{array} } \right. $$
(6)

where: \( x_{M} = (z_{1} + z_{2} )/2 \), \( F_{i} = F_{ci} \frac{{r_{1} }}{{(r_{1} + r_{2} )}} \) and \( \theta = (z_{1} - z_{2} )/2a. \)

Due to the symmetrical shape of MHM, it can be assumed that the center of gravity of the platform is in the middle. The system can be described by the formulas:

$$ \left\{ {\begin{array}{*{20}l} {\varvec{M}_{L} \varvec{\ddot{z}}_{q} = \varvec{L}_{m} \varvec{G} - \varvec{M}_{g} } \hfill \\ {\varvec{G} = \varvec{K}_{\varvec{i}} {\mathbf{(}}\varvec{z}_{0} - \varvec{z}_{i} {\mathbf{)}} + \varvec{B}_{i} {\mathbf{(}}\dot{\varvec{z}}_{0} - \dot{\varvec{z}}_{i} {\mathbf{)}},\quad i = 1,2, \cdots ,n} \hfill \\ {\varvec{m\ddot{z}}_{L} = \varvec{F} - \varvec{G}} \hfill \\ \end{array} } \right. $$
(7)

where:

  • \( {\mathbf{G}} = \left[ {G_{1} ,G_{2} , \cdots ,G_{n} } \right]^{T} \), is vector loading forces,

  • \( {\mathbf{z}}_{q} = \left[ {z_{1} ,z_{2} , \cdots ,z_{n} } \right]^{T} \), is platform displacement vector,

  • \( {\mathbf{z}}_{h} = \left[ {z_{h1} ,z_{h2} , \cdots ,z_{hn} } \right]^{T} \), is hydraulic cylinder displacement vector,

  • \( {\mathbf{L}}_{m} = \left[ {\begin{array}{*{20}c} 1 & 1 & \cdots & 1 \\ {a_{r1} } & {a_{r2} } & \cdots & {a_{rn} } \\ {b_{p1} } & {b_{p2} } & \cdots & {b_{pn} } \\ \end{array} } \right] \), is an arm matrix with a fixed moment relative to the axis r (roll) and p (pitch),

  • \( {\mathbf{M}}_{g} = \left[ {\begin{array}{*{20}c} {M \cdot g} \\ 0 \\ 0 \\ \end{array} } \right] \), is a mass load matrix,

  • \( {\mathbf{F}} = MA \cdot \left[ {\begin{array}{*{20}c} {A_{11} \cdot p_{11} - A_{21} \cdot p_{21} - m_{1} g} \\ {A_{12} \cdot p_{12} - A_{22} \cdot p_{22} - m_{2} g} \\ {A_{13} \cdot p_{13} - A_{23} \cdot p_{23} - m_{3} g} \\ {\quad \cdots } \\ {A_{1n} \cdot p_{1n} - A_{2n} \cdot p_{2n} - m_{n} g} \\ \end{array} } \right] \), is the matrix of forces generated by hydraulic cylinders, \( MA = \frac{{r_{1} }}{{(r_{1} + r_{2} )}} \) is mechanical advantage.

  • \( {\mathbf{M}}_{L} = diag\left( {\left[ {\begin{array}{*{20}c} M & {J_{r} } & {J_{p} } \\ \end{array} } \right]} \right){\mathbf{L}}_{rp}^{ - 1} \), is the load inertia matrix,

  • were: \( {\mathbf{L}}_{rp} = \left[ {\begin{array}{*{20}c} 1 & {a_{r1} } & {b_{p1} } \\ 1 & {a_{r2} } & {b_{p2} } \\ \vdots & \vdots & \vdots \\ 1 & {a_{rn} } & {b_{pn} } \\ \end{array} } \right] \),

  • \( {\mathbf{K}}_{i} = diag\left( {\left[ {\begin{array}{*{20}c} {k_{1} } & {k_{2} } & \cdots & {k_{n} } \\ \end{array} } \right]} \right) \), is the contact stiffness matrix,

  • \( {\mathbf{B}}_{i} = diag\left( {\left[ {\begin{array}{*{20}c} {b_{1} } & {b_{2} } & \cdots & {b_{n} } \\ \end{array} } \right]} \right) \), is the contact viscous damping coefficient matrix.

3 Lifting Process MHM

The process of extending the support module (SM) takes place in two stages: the extension of the module legs to the maximum elongation, followed by the MHM lifting process. The lifting process can be divided into three stages. The first stage occurs when the cross-drive cylinders quickly extend to the ground without load. After placing the legs on the ground, the second stage occurs, when the support cylinders synchronously extend to a certain height. This is followed by a leveling step when the MMH actuators move according to the horizontal slope relationship to complete the leveling. After leveling, the MHM platform is locked mechanically.

3.1 Synchronous Movement

The problem of synchronization of many linear hydraulic cylinders arises in heavy, hydraulically controlled applications such as lifting devices, construction and agricultural machinery [7, 9]. This problem is most often solved by introducing to each parallel actuator branch an additional hydraulic resistance adjusted manually or automatically. In the case of manually adjustable hydraulic resistance, this boils down to the use of a throttle valve, and in the case of automatically adjustable hydraulic resistance, the use of a flow controller. In both cases, the idea of solving the problem of motion synchronization boils down to creating additional pressure drops in the power supply branches of individual drives so that the pressure in the pump discharge line, determined from the equilibrium pressure equations arranged for the power branches of individual drives, is the same [6, 7].

During synchronization, the differential position errors between the hydraulic actuators converge to zero. The position error of i-th hydraulic actuator is defined as follows:

$$ e_{i} (z) = z_{i}^{d} (t) - z_{i} (t) , $$
(8)

where: \( z_{i}^{d} (t) \) is the desired generated length and \( z_{i} (t) \) is the actual measured length of i-th hydraulic actuator.

The position error vector of four actuators is:

$$ {\mathbf{e}}(t) = \left[ {e_{1} (t),e_{2} (t),e_{3} (t),e_{4} (t)} \right]^{T} $$
(9)

If the ratio of the actual position of each hydraulic actuator at each sampling time is equal to that of all other actuators, then the MMH moves in a synchronous manner. The synchronization goal is understood to be as follows:

$$ e_{1} (t) = e_{2} (t) = e_{3} (t) = e_{4} (t) $$
(10)

Thus, the synchronization error is defined as:

$$ \left\{ \begin{aligned} \varepsilon_{1} (t) = e_{1} (t) - e_{2} (t) \hfill \\ \varepsilon_{2} (t) = e_{2} (t) - e_{3} (t) \hfill \\ \varepsilon_{3} (t) = e_{3} (t) - e_{4} (t) \hfill \\ \varepsilon_{4} (t) = e_{4} (t) - e_{1} (t) \hfill \\ \end{aligned} \right. $$
(11)

where: \( {\varvec{\upvarepsilon}}(t) = \left[ {\varepsilon_{1} (t),\varepsilon_{2} (t),\varepsilon_{3} (t),\varepsilon_{4} (t)} \right]^{T} \)and \( {\mathbf{T}} = \left[ {\begin{array}{*{20}c} 1 & { - 1} & 0 & 0 \\ 0 & 1 & { - 1} & 0 \\ 0 & 0 & 1 & { - 1} \\ { - 1} & 0 & 0 & 1 \\ \end{array} } \right] \) is 4 × 4 synchronization transformation matrix.

The position control system is designed by combining the position error and synchronization error. Herein, in conceiving a cross-coupled controller (CCC), the cross-coupling error ci includes the position error ei and the synchronization error εi:

$$ c_{i} (t) = e_{i} (t) + \beta_{i} \int\limits_{0}^{t} {\varepsilon_{i} } \left( \omega \right)d\omega , $$
(12)

where \( \beta_{i} \) is positive coupling parameter which determines the weight of the synchronization error, wherein as \( \beta_{i} \) increases, the synchronization error \( \varepsilon_{i} \) decreases, \( \omega \) is a parameter at a variable time, from t = 0 to t.

The position synchronization error looks for the difference between the position errors of many axes and is based on the synchronization function (12).

The block example diagram of the synchronization function designed in Matlab/Simulink is shown in the Fig. 6 [10].

Fig. 6.
figure 6

Scheme a subsystem of the synchronization controller in Matlab/Simulink.

3.2 Leveling

To obtain the relationship between the slope and displacement angles of hydraulic cylinders, it was assumed that the angle \( \theta_{p} \) (pitch) is measured from the X axis and the angle \( \theta_{r} \) (roll) from the Y axis in the direction of the Z axis. The purpose of leveling is to set the surface of the robot platform so that these angles are zero. The determined coordinate system is shown in Fig. 7.

Fig. 7.
figure 7

Coordinate system for MHM.

$$ R_{x} (\theta_{r} ) = \left[ {\begin{array}{*{20}c} 1 & 0 & 0 \\ 0 & {\cos \theta_{r} } & {\sin \theta_{r} } \\ 0 & { - \sin \theta_{r} } & {\cos \theta_{r} } \\ \end{array} } \right],R_{y} (\theta_{p} ) = \left[ {\begin{array}{*{20}c} {\cos \theta_{p} } & 0 & {\sin \theta_{p} } \\ 0 & 1 & 0 \\ { - \sin \theta_{p} } & 0 & {\cos \theta_{p} } \\ \end{array} } \right] $$
(13)

In fact, during the leveling process the deviation in the platform level is small. With this assumption, we can determine the following relationships: \( \cos \theta_{r} = \cos \theta_{p} = 1 \) and \( \sin \theta_{r} = \theta_{r} \), \( \sin \theta_{p} = \theta_{p} \).

The equation for the coordinate transformation of a leveling plane is obtained as follows:

$$ \left[ {\begin{array}{*{20}c} {x^{'} } \\ {y^{'} } \\ {z^{'} } \\ \end{array} } \right] = R_{x} (\theta_{r} )R_{y} (\theta_{p} )\left[ {\begin{array}{*{20}c} x \\ y \\ z \\ \end{array} } \right];\left[ {\begin{array}{*{20}c} {x^{'} } \\ {y^{'} } \\ {z^{'} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} 1 & 0 & {\theta_{p} } \\ 0 & 1 & {\theta_{r} } \\ { - \theta_{p} } & {\theta_{r} } & 1 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} x \\ y \\ z \\ \end{array} } \right] $$
(14)

Assuming that the height of each leg of the platform supports means z1, z2, z3 and z4, we can get the following relationships:

$$ \left\{ {\begin{array}{*{20}l} {z_{1} = 0,\;z_{2} = 2a \cdot \theta_{r} ,\;z_{3} = - 2b \cdot \theta_{p} ,\;z_{4} = - 2b \cdot \theta_{p} + 2a \cdot \theta_{r} ,} \hfill \\ {z_{1} = - 2a \cdot \theta_{r} ,\;z_{2} = 0 \cdot \theta_{r} ,\;z_{3} = - 2b \cdot \theta_{p} - 2a \cdot \theta_{r} ,\;z_{4} = - 2b \cdot \theta_{p} ,} \hfill \\ {z_{1} = 2b \cdot \theta_{p} ,\;z_{2} = 2b \cdot \theta_{p} + 2a \cdot \theta_{r} ,\;z_{3} = 0,\;z_{4} = 2a \cdot \theta_{r} ,} \hfill \\ {z_{1} = \;2b \cdot \theta_{p} - 2a \cdot \theta_{r} ,\;z_{2} = 2b \cdot \theta_{p} ,\;z_{3} = - 2a \cdot \theta_{r} ,\;z_{4} = 0.} \hfill \\ \end{array} } \right. $$
(15)

Each zero value of offsets z1, z2, z3 and z4 means the highest position in relation to the other legs of the supports. Figure 8 shows the control system diagram for MHM with synchronization and leveling.

Fig. 8.
figure 8

The controller block diagram of the MHM with synchronization.

For the simulation purposes constant values of parameters were accepted and implemented (Table 1). Figures 9, 10 and 11 show graphs results of the synchronization and leveling processes.

Table 1. Simulation parameters.
Fig. 9.
figure 9

Synchronization error εi for references rectangular input signals uiref.

Fig. 10.
figure 10

Synchronization error εi for references sinusoidal input signals uiref = 0.08 Hz.

Fig. 11.
figure 11

Leveling angles signals: \( \theta_{r} \) – roll and \( \theta_{p} \) – pitch.

4 Summary

A technical solution was presented to the lifting and leveling system of the mobile hydraulic module (MHM) unit, where electro-hydraulic control and drive systems were used. This assembly is used to displace, position and transport of the Bricklaying Robotic System (BRS). A model of platform MHM dynamics was presented along with a model of hydraulic drives. A control system diagram was developed. Simulation tests were carried out to test the accepted scheme of the bricklaying robot. The presented MHM control system uses feedback from platform bracket position errors, synchronization errors and tilt angles.