Keywords

1 Introduction

Modular Robotic Systems (MRS) are systems composed of homogeneous modules. Modules in the systems can connect and disconnect to each other, and also have relative motion with each other. Thus the systems have the abilities of self-assembly and self-reconfiguration. These abilities give MRS the advantages of strong adaptability to complex and volatile environments.

Since 1980s, various types of MRS have been developed [1]. According to the topological structure, MRS are usually classified into 3 categories: Chain, Lattice and Mobile [2]. Typical chain systems such as PolyBot [3], CONRO [4], CKBot [5] have strong abilities of motion and lattice systems such as Crystalline [6], ATRON [7], Stochastic-3D [8], Soldercubes [1], 3D M-Blocks [9], Molecubes [10] are more structural stable, leading the systems to be larger. Mobile systems are systems whose modules can locomote without connection with each other, and these MRS are helpful in algorithm research, such as Kilobots [11]. To combine advantages of different types of MRS, some hybrid systems have been made. Roombots [12] is a hybrid of lattice and chain. JHU [13] and SMORES [14] are hybrid of lattice, chain and mobile.

M-Lattice is a hybrid system of chain and lattice type and some previous work has been done [1517]. It stands out for its abilities of taking loads and fast assembly, which leads to superiority in large scale systems, such as space solar power satellite. However, there are some problems remaining. When a connector rotates around the rotation axis without compression, interference will occur. So a compressible module is needed to ensure successful motion, as shown in Fig. 1.

Fig. 1
figure 1

a Interference occurs when one module holds still and the adjacent module moves. b Compression of the module helps to escape the interference

The rest of this paper is organized as follows. Section 1 introduce the structure and components of the module. Section 2 is a calculation of the length to compress and simulation to prove no interference occurs during the motion. Section 3 presents some experiment results using modules of new structure. Finally, Sect. 4 concludes the paper.

2 Structure of M-Lattice

A M-Lattice module consists of a central frame and three arms. Each arm has a sliding pair to enable the compression and a rotate joint to rotate the connector. The connector is at the end of each arm.

The sliding pair is realized by a stepping motor with a screw rod on it and a guide. The screw is used for its self-locking ability and the guide is used to bear the torque. These properties make the MRS more stable.

The rotate joint is realized by a Dynamixel RX-28 servo motor in consideration that the rotate angle is limited and high precision is needed. The RS485 communication interface of the motor package is convenient for there are several actuators needed in a module.

The connector is a pin-slot mechanism comprising three parts: the rotation disc, the casing fastener and the driving mechanism. There is a horn slot and a pin on the rotation disc. When the pin insert into another connector’s slot, the motor which we also use RX-28 drives the rotation disc to rotate, thus two connectors are fastened. Detailed structure of the connector can be found in [15].

Figure 2 shows the 3D model and prototype of M-Lattice.

Fig. 2
figure 2

a 3D model of a M-Lattice module. b Two connected prototypes

3 Kinematics Analysis

3.1 Coordinates Establishment and Transformation

The kinematics of M-Lattice can be solved by transformation of coordinates. Since the M-Lattice System is composed of many homogeneous modules, this problem can be divided into transformation in a single module and transformation between two adjacent modules.

Denavi-Hartenberg (D-H) method [18] is used and Fig. 3a is the coordinates establishment of a single module. The coordinate transformation matrix from one rotate joint to another rotate joint in a module is

Fig. 3
figure 3

a Coordinates of a single module. b Coordinates of two adjacent modules

$$ T_{in} = {}_{2}^{1} T{}_{3}^{2} T{}_{4}^{3} T{}_{5}^{4} T = \left[ {\begin{array}{*{20}c} {s\left( {\theta_{3} + \theta_{5} } \right)} & {c\left( {\theta_{3} + \theta_{5} } \right)} & 0 & {d_{4} s\theta_{3} } \\ { - c\left( {\theta_{3} + \theta_{5} } \right)} & {s\left( {\theta_{3} + \theta_{5} } \right)} & 0 & { - d_{2} - d_{4} c\theta_{3} } \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right] $$
(1)

where

$$ \begin{aligned} & {}^{i - 1}_{\quad i}T = \left[ {\begin{array}{*{20}c} {c\theta_{i} } & { - s\theta_{i} } & 0 & {a_{i - 1} } \\ {s\theta_{i} c\alpha_{i - 1} } & {c\theta_{i} c\alpha_{i - 1} } & { - s\alpha_{i - 1} } & { - s\alpha_{i - 1} d_{i} } \\ {s\theta_{i} s\alpha_{i - 1} } & {c\theta_{i} s\alpha_{i - 1} } & {c\alpha_{i - 1} } & {c\alpha_{i - 1} d_{i} } \\ 0 & 0 & 0 & 1 \\ \end{array} } \right] \\ & s\theta = \sin \theta \\ & c\theta = \cos \theta \\ \end{aligned} $$
(2)

Parameter \( d_{i} \) is the distance between the axis of rotate joint and the centre of the module, and \( \theta_{i} \) is the rotation angle of rotate joint. Specially, \( \theta_{3} \) is not a rotation angle of any real rotate joints, it can be \( \frac{\pi }{3} \) or \( - \frac{\pi }{3} \) which leads to different arms.

As shown in Fig. 3b, when two modules are connected, the coordinate transformation of the two adjacent coordinates which belong to different modules is also in line with D-H method. Thus the coordinate transformation between two modules, as transformation from \( X_{{1{ - }5}} O_{{1{ - }5}} Y_{{1{ - }5}} \) to \( X_{{2{ - }1}} O_{{2{ - }1}} Y_{{2{ - }1}} \) in Fig. 3b, can be calculated by

$$ T_{out} = \left[ {\begin{array}{*{20}c} { - s\theta_{{2{ - }1}} } & { - c\theta_{{2{ - }1}} } & 0 & l \\ {c\theta_{{2{ - }1}} } & { - s\theta_{{2{ - }1}} } & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right] $$
(3)

where l is the distance between the coordinates.

To ensure no interference occur on condition that one module is moved by another one (condition 1v1), as shown in Fig. 3b, the distance between point A and segment CD should be positive all the time, as well as it is between point A and segment EF, point B and segment CD, point B and segment EF.

Assume that the centre of module 1 is the original point of absolute coordinate system, the coordinates of point A and B relative to \( X_{{2{ - }5}} O_{{2{ - }5}} Y_{{2{ - }5}} \) can be expressed as vectors \( P_{A} = [\begin{array}{*{20}c} {P_{AX} } & {P_{AY} } & 0 & 1 \\ \end{array} ]^{T} \) and \( P_{B} = [\begin{array}{*{20}c} {P_{BX} } & {P_{BY} } & 0 & 1 \\ \end{array} ]^{T} \). Thus the absolute coordinate of point A is

$$ P_{A0} = {}_{{1{ - }3}}^{\quad 0} T{}_{{1{ - }4}}^{{1{ - }3}} T{}_{{1{ - }5}}^{{1{ - }4}} T{}_{2}^{1} T_{out} T_{in - 2} P_{A} $$
(4)

On condition 1v1 in the process of self-reconfiguration, the rotate angle of each joint is limited in \( - 60^\circ \)−60°.When all the connectors are in the ultimate positions away from the centre frame, the modules are connected with each other. Refer to previous modules and in consideration that the distance between the connectors and the centre frame should be larger when we replace a revolute pair by a sliding pair, we assume that \( d_{i\hbox{max} } = 160\,{\text{mm}} \), and \( P_{AX} = 98.5\,{\text{mm}} \), \( P_{AY} { = } - 45\,{\text{mm}} \).Through iterative programs, the relationship of \( d_{i} \) and smallest distance between point A and segment CD, as well as point A and segment EF, point B and segment CD, point B and segment EF, is shown in Fig. 4. When the stroke of the sliding pair is no less than 28 mm, there will be no interaction during the process of self-reconfiguration.

Fig. 4
figure 4

Relationship between shortest distance of adjacent modules and length of compressed sliding pair

3.2 Motion Space

Motion space of connectors has been drawn to show no interference occur when modules move under reasonable constraints. Figure 5a shows condition 1v1, where the range of rotate angle of each joint is −60°−+60°.

Fig. 5
figure 5

Space motion under constraints of different conditions. Blue areas show the motion spaces of connectors that are marked red in the figure

On condition 1v2, the range of rotate angle of each joint is −30°−0°. The coordinates of boundary points A and B can be calculated by

$$ P_{A0} = {}_{{1{ - }3}}^{\quad 0} T{}_{{1{ - }4}}^{{1{ - }3}} T{}_{{1{ - }5}}^{{1{ - }4}} T{}_{2}^{1} T_{out} T_{in - 2} {}_{3}^{2} T_{out} T_{in - 3} P_{A} $$
$$ P_{B0} = {}_{{1{ - }3}}^{\quad 0} T{}_{{1{ - }4}}^{{1{ - }3}} T{}_{{1{ - }5}}^{{1{ - }4}} T{}_{2}^{1} T_{out} T_{in - 2} {}_{3}^{2} T_{out} T_{in - 3} P_{B} $$

To ensure no interference occur on this condition, some constrains have to be made: the rotate joints should actuate one by one from Rot3−1 to Rot1−2. Once the previous rotate joint rotates to −30° can the next one actuate. Figure 5b shows the motion space of connectors of module 3 moving in this way.

On condition 1v3, the range of rotate angle of each joint is −15°−0° and no more constraints is required. Calculation is similar to the two conditions above and Fig. 5c shows the motion space. On condition 1v4, the range of rotate angle of each joint is −6°−0° and motion space is shown in Fig. 5d.

From the motion spaces we can see that if the modules are compressible, different types of motion can be realized under reasonable constraints.

4 Experiment

Two prototype modules have been fabricated to verify the motion ability of the modules. Dynamixel RX-28 servo motors are used for rotate joints and D.M.BERG stepping motors HL-28S113424 are chosen to actuate sliding pairs. Key parameters of prototype module are listed in Table 1.

Table 1 M-Lattice specifications

Stepping motors are controlled by a multi-axis controller and servo motors are controlled by PC. The process is executed automatically under programs and lasts about 36 s, as shown in Fig. 6.

Fig. 6
figure 6

Photos in the first row show the compression and rotation from initial position to connecting position. Photo in the second row shows the connecting status. Photos in the third row show the rotation and spread from connecting position to terminal position

5 Conclusion

We presented a new self-reconfigurable modular robot structure based on M-Lattice. New topological configuration has been proposed to solve the problem of motion interference. Kinematic analysis has been made to prove no interference occurred in all kinds of motion types. We made two prototypes to verify the motion ability of the new structure of M-Lattice.