Keywords

1 Introduction

Nowadays, the abundance of resources in autonomous vehicles allows to increase the effectiveness of tasks through cooperative work. Greater effectiveness and operational capacity can be achieved by using autonomous coordinated vehicles. The use of multiple coordinated robots has several advantages over single robot systems. The most important are: The complexity of the task to be carried out may be greater. The task can be distributed to the elements of the group in an equitable manner. Building several simple robots is usually less expensive than building a large and complex one. Multiple robots can solve problems faster by solving tasks in parallel. The introduction of multiple robots adds robustness to the system through redundancy (Chung and Slotine 2009).

Historically, some of the earliest work in multiple robots grappled with the idea of swarming robots to make formations (Desai et al. 2001; Yamaguchi et al. 2001; Sun and Mills 2002; Takahashi et al. 2004; Sun and Mills 2007; Antonelli et al. 2009). Regulation to a fixed point is another research topic widely studied in mobile robotics (Huijberts et al. 2000) as the trajectory tracking, with a single robot (Nijmeijer and Rodríguez-Angeles 2004) or with a swarm (Siméon et al. 2002). Interest in this area is due to the ability of biological societies to complete tasks together faster than individually. One of the initial problems in the control of cooperative robots comes from the need to share information. Sharing information is a necessary condition for cooperation. For example, the relative position of the robots among themselves, the speed of each vehicle, etc. The exchange of information becomes a crucial part of the problem.

The structure of this chapter is as follows: Sect. 15.2 is related to the main element in the group of robots, a differential mobile robot. In this section the kinematic model is explained. Section 15.3 is about consensus strategy used in this paper and the three different topologies. The control algorithms used to perform consensus, regulation, and tracking are explained in Sect. 15.4. Section 15.5 presents the simulation results meanwhile Sect. 15.6 shows the experimental results. Finally, Sect. 15.7 provides a conclusion for this work.

2 Differential Mobile Robot

Mobile robotic platforms are increasingly common at the industry and as service robots. The most common are wheel robots with differential control (DMR). The tasks in a general way for this class of mobile robots are:

  • Movements from Point to Point: The robot is given a desired configuration and it must reach it from an initial position.

  • Trajectory Tracking: A reference point in the robot must follow a certain desired trajectory in a Cartesian plane starting from a certain initial position.

Be \( q \in Q \) the n-vector of generalized coordinates for an DMR. The simplest model is that of the unicycle. It means a single tire rolling on a plane. The generalized coordinates are \( q = (x,y,\theta ) \in R^{2} \times SO^{1} (n = 3) \). The non-holonomic restriction which means that the tire cannot move laterally is given by:

$$ A(q)\dot{q} = \dot{x}\,\sin \theta - \dot{y}\,\cos \theta = 0 $$
(15.1)

Kinematic model for a DMR, based on Fig. 15.1, is given by:

Fig. 15.1
figure 1

Differential mobile robot on a plane

$$ \left( {\begin{array}{*{20}c} {\dot{x}} \\ {\dot{y}} \\ {\dot{\theta }} \\ \end{array} } \right) = g_{1} (q)v + g_{2} (q)\omega = \left( {\begin{array}{*{20}c} {\cos \theta } \\ {\sin \theta } \\ 0 \\ \end{array} } \right)v + \left( {\begin{array}{*{20}c} 0 \\ 0 \\ 1 \\ \end{array} } \right)\omega $$
(15.2)

where v and \( \omega \) are the linear and angular velocities, respectively.

3 Consensus Algorithm

When multiple vehicles agree on the value of a variable of interest, it is said that the robots reached consensus. To reach consensus, there must be a variable of interest which is being shared by all the robots involved. Examples include a representation of the center of the figure of the formation, time of arrival at the desired point, the direction of the movement, the size of the perimeter being monitored, among others. By necessity the consensus is designed to be distributed, assuming only neighboring neighbor interaction between the robots. The objective is to design an updating law so that the status of each value of each vehicle converges to a common point. If a n number of vehicles in the group are assumed, the topology of the communication can be represented through a direct graph.

$$ G_{n} \triangleq (v_{n} ,\xi_{n} ) $$
(15.3)

where \( v_{n} = 1,2, \ldots ,n \) is the set of nodes, and \( \xi_{n} \le v_{n} \times v_{n} \) is the set of corners. The most common algorithm of continuous dynamic consensus is:

$$ \dot{x}_{i} (t) = - \sum\limits_{j = 1}^{n} {a_{ij} (t)\left( {x_{i} (t) - x_{ij} } \right),} \,i = 1, \ldots ,n $$
(15.4)

where \( a_{ij} \) is the input (ij) of the adjacent matrix \( a_{n} \in R^{n \times n} \) associated with \( G_{n} \) at time t. \( x_{i} \) is the information state of the vehicle ‘i’. If \( a_{ij} = 0 \), the vehicle i does not receive information from j. A consequence of Eq. (15.4) is that \( x_{i} (t) \) is taken to the information of its neighbors.

Equation (15.4) can be re-written as:

$$ \dot{x}_{i} (t) = L_{n} (t)x(t) $$
(15.5)

where \( x = [x_{1} , \ldots ,x_{n} ]^{\text{T}} \) is the state. \( L_{n} (t) = [l_{ij} ] \in R^{n \times n} \) is the non-symmetric Laplacian matrix associated with \( G_{n} \). The consensus is reached by the vehicle group if \( \forall x_{i} (0) \), \( \forall v_{i,j} = 1, \ldots ,n \), \( [x_{i} (t) - x_{j} (t)] \to 0,t \to \infty \).

3.1 Communication Topologies

The topology of communication is the name given to the configuration or the way in which the robot members of the team communicate or exchange information. For this project, various topologies seen in Ren and Beard (2008) were used.

For the topology presented in Fig. 15.2a, we have the following system.

Fig. 15.2
figure 2

Communication topologies

$$ \begin{aligned} \dot{x}_{1} & = a_{12} (x_{1} - x_{2} ) \\ \dot{x}_{2} & = a_{23} (x_{2} - x_{3} ) \\ \dot{x}_{3} & = 0 \\ \end{aligned} $$
(15.6)

The Laplacian matrix is given by:

$$ L = \left[ {\begin{array}{*{20}c} 1 & { - 1} & 0 \\ 0 & {1.5} & {1.5} \\ 0 & 0 & 0 \\ \end{array} } \right] $$
(15.7)

The vector \( \upsilon (t) \) is obtained by SVD:

$$ \upsilon (t) = \left[ {\begin{array}{*{20}c} 0 \\ 0 \\ 1 \\ \end{array} } \right] $$
(15.8)

For the topology presented in Fig. 15.2b, we have the following system.

$$ \begin{aligned} \dot{x}_{1} & = a_{12} (x_{1} - x_{2} ) \\ \dot{x}_{2} & = a_{23} (x_{2} - x_{3} ) \\ \dot{x}_{3} & = a_{32} (x_{3} - x_{2} ) \\ \end{aligned} $$
(15.9)

The Laplacian matrix is given by:

$$ L = \left[ {\begin{array}{*{20}c} 1 & { - 1} & 0 \\ 0 & {1.5} & {1.5} \\ 0 & { - 2} & 2 \\ \end{array} } \right] $$
(15.10)

The vector \( \upsilon (t) \) is obtained by SVD:

$$ \upsilon (t) = \left[ {\begin{array}{*{20}c} 0 \\ {0.5714} \\ {0.4286} \\ \end{array} } \right] $$
(15.11)

For the topology presented in Fig. 15.2c, we have the following system.

$$ \begin{aligned} \dot{x}_{1} & = a_{12} (x_{1} - x_{2} ) \\ \dot{x}_{2} & = a_{23} (x_{2} - x_{3} ) \\ \dot{x}_{3} & = a_{31} (x_{3} - x_{1} ) \\ \end{aligned} $$
(15.12)

The Laplacian matrix is given by:

$$ L = \left[ {\begin{array}{*{20}c} 1 & { - 1} & 0 \\ 0 & {1.5} & {1.5} \\ { - 2} & 0 & 2 \\ \end{array} } \right] $$
(15.13)

The vector \( \upsilon (t) \) is obtained by SVD:

$$ \upsilon (t) = \left[ {\begin{array}{*{20}c} {0.4615} \\ {0.3077} \\ {0.2308} \\ \end{array} } \right] $$
(15.14)

4 Control Algorithms

4.1 Consensus

As previously mentioned, the consensus process is achieved when all the vehicles agree and reach a variable of interest. Based on the topologies shown in the previous figures, the necessary control is shown so that each topology reaches consensus.

4.1.1 Topology 1

The Laplacian matrix for topology 1 is constructed according to the group connections as shown in Eq. (15.7).

$$ L = \left[ {\begin{array}{*{20}c} 1 & { - 1} & 0 \\ 0 & {1.5} & {1.5} \\ 0 & 0 & 0 \\ \end{array} } \right] $$

The control law needed to achieve consensus in the group is given by:

$$ \begin{aligned} \upsilon_{1} & = - \left( {\left( { - (x_{2} - x_{1} )} \right)\cos \left( {\theta_{1} } \right) + \left( { - \left( {y_{2} - y_{1} } \right)} \right)\sin \left( {\theta_{1} } \right)} \right) \\ \omega_{1} & = - \left( {\theta_{1} - \arctan 2\left( {\left( {y_{2} - y_{1} } \right),\left( {x_{2} - x_{1} } \right)} \right)} \right) \\ \upsilon_{2} & = - 1.5\left( {\left( { - \left( {x_{3} - x_{2} } \right)} \right)\cos \left( {\theta_{2} } \right) + \left( { - \left( {y_{3} - y_{2} } \right)} \right)\sin \left( {\theta_{2} } \right)} \right) \\ \omega_{1} & = - 1.5\left( {\theta_{2} - \arctan 2\left( {\left( {y_{3} - y_{2} } \right),\left( {x_{3} - x_{2} } \right)} \right)} \right) \\ \upsilon_{3} & = 0 \\ \omega_{3} & = 0 \\ \end{aligned} $$
(15.15)

4.1.2 Topology 2

For the second topology, we have that the Laplacian matrix is as Eq. (15.10):

$$ L = \left[ {\begin{array}{*{20}c} 1 & { - 1} & 0 \\ 0 & {1.5} & { - 1.5} \\ 0 & { - 2} & 2 \\ \end{array} } \right] $$

That means the control law needed to achieve consensus in the group is given by:

$$ \begin{aligned} \upsilon_{1} & = - \left( {\left( { - \left( {x_{2} - x_{1} } \right)} \right)\cos \left( {\theta_{1} } \right) + \left( { - \left( {y_{2} - y_{1} } \right)} \right)\sin \left( {\theta_{1} } \right)} \right) \\ \omega_{1} & = - \left( {\theta_{1} - \arctan 2\left( {\left( {y_{2} - y_{1} } \right),\left( {x_{2} - x_{1} } \right)} \right)} \right) \\ \upsilon_{2} & = - 1.5\left( {\left( { - \left( {x_{3} - x_{2} } \right)} \right)\cos \left( {\theta_{2} } \right) + \left( { - \left( {y_{3} - y_{2} } \right)} \right)\sin \left( {\theta_{2} } \right)} \right) \\ \omega_{1} & = - 1.5\left( {\theta_{2} - \arctan 2\left( {\left( {y_{3} - y_{2} } \right),\left( {x_{3} - x_{2} } \right)} \right)} \right) \\ \upsilon_{3} & = - 2\left( {\left( { - \left( {x_{2} - x_{3} } \right)} \right)\cos \left( {\theta_{2} } \right) + \left( { - \left( {y_{2} - y_{3} } \right)} \right)\sin \left( {\theta_{2} } \right)} \right) \\ \omega_{3} & = - 2\left( {\theta_{3} - \arctan 2\left( {\left( {y_{2} - y_{3} } \right),\left( {x_{2} - x_{3} } \right)} \right)} \right) \\ \end{aligned} $$
(15.16)

4.1.3 Topology 3

Last, the Laplacian matrix for third topology is as depicted in Eq. (15.13):

$$ L = \left[ {\begin{array}{*{20}c} 1 & { - 1} & 0 \\ 0 & {1.5} & { - 1.5} \\ { - 2} & 0 & 2 \\ \end{array} } \right] $$

and the control law needed to achieve consensus in the group is given by:

$$ \begin{aligned} \upsilon_{1} & = - \left( {\left( { - \left( {x_{2} - x_{1} } \right)} \right)\cos \left( {\theta_{1} } \right) + \left( { - \left( {y_{2} - y_{1} } \right)} \right)\sin \left( {\theta_{1} } \right)} \right) \\ \omega_{1} & = - \left( {\theta_{1} - \arctan 2\left( {\left( {y_{2} - y_{1} } \right),\left( {x_{2} - x_{1} } \right)} \right)} \right) \\ \upsilon_{2} & = - 1.5\left( {\left( { - \left( {x_{3} - x_{2} } \right)} \right)\cos \left( {\theta_{2} } \right) + \left( { - \left( {y_{3} - y_{2} } \right)} \right)\sin \left( {\theta_{2} } \right)} \right) \\ \omega_{1} & = - 1.5\left( {\theta_{2} - \arctan 2\left( {\left( {y_{3} - y_{2} } \right),\left( {x_{3} - x_{2} } \right)} \right)} \right) \\ \upsilon_{3} & = - 2\left( {\left( { - \left( {x_{2} - x_{3} } \right)} \right)\cos \left( {\theta_{2} } \right) + \left( { - \left( {y_{2} - y_{3} } \right)} \right)\sin \left( {\theta_{2} } \right)} \right) \\ \omega_{3} & = - 2\left( {\theta_{3} - \arctan 2\left( {\left( {y_{2} - y_{3} } \right),\left( {x_{2} - x_{3} } \right)} \right)} \right) \\ \end{aligned} $$
(15.17)

4.2 Regulation Control

The kinematic model presented in Eq. (15.2) cannot be transformed into a linear controllable system using static state feedback. However, the system can be transformed via feedback into simple integrators (De Luca et al. 2001).

$$ \begin{aligned} \xi_{1} & = \theta \\ \xi_{2} & = x\,\cos \theta + y\,\sin \theta \\ \xi_{3} & = x\,\sin \theta + y\,\cos \theta \\ \end{aligned} $$
(15.18)

The existence of a canonical form for the dynamic model of DMR allows a general and systematic development of control strategies of open loop and closed loop. The most useful structure is the so-called chain shape, which is obtained by deriving the previous system:

$$ \begin{aligned} \dot{\xi }_{1} & = \theta = u_{1} \\ \dot{\xi }_{2} & = \dot{x}\,\cos \theta - x\,\sin (\theta )\dot{\theta } + \dot{y}\,\sin \theta + y\,\cos (\theta )\dot{\theta } = u_{2} \\ \dot{\xi }_{3} & = \dot{x}\,\sin \theta - x\,\cos (\theta )\dot{\theta } - \dot{y}\,\cos \theta + y\,\sin (\theta )\dot{\theta } = \xi_{2} u_{1} \\ \end{aligned} $$
(15.19)

This can be written as:

$$ \begin{aligned} \dot{\xi }_{1} & = u_{1} \\ \dot{\xi }_{2} & = u_{2} \\ \dot{\xi }_{3} & = \xi_{2} u_{1} \\ \end{aligned} $$
(15.20)

Thus,

$$ \upsilon = u_{2} + \xi_{3} u_{1} $$
(15.21)
$$ \omega = u_{1} $$
(15.22)

4.3 Trajectory Tracking

For track tracking, it is assumed that the DMR is represented by a point \( (x,y) \). Which must follow a trajectory in the Cartesian plane represented by \( \left( {x_{d} \left( t \right),y_{d} \left( t \right)} \right) \) where \( t \in [0,T] \), and possibly \( T \to \infty \). The reference trajectory parameterized in the time used in this work is given by Eq. (15.23).

$$ \begin{aligned} x_{d} & = - 0.5 + \frac{a}{{3\sin \left( {{{2(2\pi (t)} \mathord{\left/ {\vphantom {{2(2\pi (t)} n}} \right. \kern-0pt} n}} \right)}} \\ y_{d} & = \frac{{a\,\sin \left( {2(2\pi (t))} \right)}}{n/2} \\ \theta_{d} & = \arctan 2(\dot{y},\dot{x}) \\ \end{aligned} $$
(15.23)

where a is the width of the trajectory, t is the current time, and n the time in which it is desired to complete the cycle; therefore, the commands of reference speeds are given by:

$$ \upsilon_{d} = \pm \sqrt {\dot{x}_{d}^{2} (t) + \dot{y}_{d}^{2} (t)} $$
(15.24)
$$ \omega_{d} = \frac{{\ddot{y}_{d} (t)\dot{x}_{d} (t) - \ddot{x}_{d} (t)\dot{y}_{d} (t)}}{{\dot{x}_{d}^{2} (t) + \dot{y}_{d}^{2} (t)}} $$
(15.25)

State tracking errors are defined as Eq. (15.26).

$$ \left[ {\begin{array}{*{20}c} {e_{1} } \\ {e_{2} } \\ {e_{3} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {\cos \theta } & {\sin \theta } & 0 \\ { - \sin \theta } & {\cos \theta } & 0 \\ 0 & 0 & 1 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {x_{d} - x} \\ {y_{d} - y} \\ {\theta_{d} - \theta } \\ \end{array} } \right] $$
(15.26)

Using the following nonlinear transformation of velocity inputs:

$$ \upsilon = \upsilon_{d} \cos e_{3} - u_{1} $$
(15.27)
$$ \omega = \omega_{d} - u_{2} $$
(15.28)

the error dynamics becomes:

$$ \dot{e} = \left[ {\begin{array}{*{20}c} 0 & {\omega_{d} } & 0 \\ { - \omega_{d} } & 0 & 0 \\ 0 & 0 & 0 \\ \end{array} } \right]e + \left[ {\begin{array}{*{20}c} 0 \\ {\sin e_{3} } \\ 0 \\ \end{array} } \right]\upsilon_{d} + \left[ {\begin{array}{*{20}c} 1 & 0 \\ 0 & 0 \\ 0 & 1 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {u_{1} } \\ {u_{2} } \\ \end{array} } \right] $$
(15.29)

The law of feedback is given by:

$$ u_{1} = - k_{1} e_{1} $$
(15.30)
$$ u_{2} = - k_{2} {\text{sign}}(\upsilon_{d} (t))e_{2} - k_{3} e_{3} $$
(15.31)

In terms of the original inputs, the design leads to the nonlinear controller variant in time (De Luca et al. 2001):

$$ \upsilon = \upsilon_{d} \cos (\theta_{d} - \theta ) + k_{1} \left[ {\cos \theta (x_{d} - x) + \sin \theta (y_{d} - y)} \right] $$
(15.32)
$$ \omega = \omega_{d} + k_{2} sign(\upsilon_{d} )\left[ {\cos \theta (x_{d} - x) - \sin \theta (y_{d} - y) + k_{3} (\theta_{d} - \theta )} \right] $$
(15.33)

5 Simulations

Using the different topologies shown in Fig. 15.2 and the control laws from Sect. 15.4, the following was achieved: Consensus, regulation, and trajectory tracking for all robot members of the team.

5.1 Topology 1

5.1.1 Consensus

The consensus in position and orientation for the first topology on a plane was simulated and Fig. 15.3 shows each robot behavior.

Fig. 15.3
figure 3

Position consensus for robots in topology 1

The circles denote where each robot begins, and the pentagon indicates where the robots finish their movements. The (*) mark is used to represent the front of the robot.

Figure 15.4 shows the orientation for the robots. At the end of the graph, it is clear how the heading angles converge to the same value as the robot 1 has. This is due to the connections made on topology 1.

Fig. 15.4
figure 4

Orientation consensus for robot in topology 1

The robots reached consensus as shown in the Figs. 15.3 and 15.4. The linear and angular speeds of each robot to achieve the position and orientation consensus are shown in Figs. 15.5 and 15.6.

Fig. 15.5
figure 5

Linear velocities for robots consensus in topology 1

Fig. 15.6
figure 6

Angular velocities for robots consensus in topology 1

5.1.2 Regulation

Once the consensus process is over, the regulation stage continues, in which the regulation control at a point leads to the states of the robots being modified in such a way that they reach a desired position and orientation. Figure 15.7 shows how the robots reach a desired position and orientation.

Fig. 15.7
figure 7

Robots movements for regulation control on consensus for topology 1

The evolution for orientation angles for each member of the group is depicted in Fig. 15.8.

Fig. 15.8
figure 8

Robots orientation for regulation control on consensus for topology 1

The robots arrived at the desired position as shown in Figs. 15.7 and 15.8. The linear and angular speeds of each robot to achieve this are shown in Figs. 15.9 and 15.10.

Fig. 15.9
figure 9

Linear velocities for robots, regulation on consensus for topology 1

Fig. 15.10
figure 10

Angular velocities for robots, regulation on consensus for topology 1

5.1.3 Trajectory Tracking

Once the robots reach a desired point on Cartesian plane, the next step is to apply a tracking control that will guide the robots to follow a predetermined trajectory. In this case, the desired trajectory is an 8 shape, also known as Lemniscata. The results of the simulation are shown in Fig. 15.11. Figure 15.12 represents the orientation for each robot along the trajectory, and Figs. 15.13 and 15.14 show the linear and angular velocity, respectively.

Fig. 15.11
figure 11

Trajectory tracking for robots in consensus, topology 1

Fig. 15.12
figure 12

Robots orientation for trajectory tracking in consensus, topology 1

Fig. 15.13
figure 13

Linear velocities for robots on trajectory tracking, topology 1

Fig. 15.14
figure 14

Angular velocities for robots on trajectory tracking, topology 1

5.2 Simulation Results for Topologies 2 and 3

The simulations were performed for the topologies 2 and 3 to compare the behavior for the group of robots. In Tables 15.1 and 15.2, the comparison between topology 2 and 3 is depicted. According to the procedure done for topology 1, the main aspects to analyze are Cartesian plane movements, orientation, linear, and angular velocity. These four points are presented in three scenarios; consensus, regulation, and tracking.

Table 15.1 Simulations for topologies 2
Table 15.2 Simulations for topologies 3

6 Experimental Results

The experimental results were obtained using the following equipment:

  • Three differential mobile robots iRobot Create.

    • 0.2605 [m] between wheels.

    • 0.045 [m] wheel radius.

  • Camera uEye-1220SE-M-CL (monocromatic).

  • Field of view of 2.3 [m] × 1.7 [m].

  • SO Ubuntu 12.04.

  • C++ programming.

  • Bluetooth centralized communication.

For implementation, topology 3 was selected with the following results.

Figure 15.15 shows the three stages (consensus, regulation, and tracking) for three DMR. The circles denote the initial conditions and the pentagons are used to mark where the robots finish their trajectories. The green line depicts the desired trajectory which must be followed by the consensus point.

Fig. 15.15
figure 15

Experimental result using topology 3 for consensus, regulation, and trajectory tracking

Figure 15.16 shows the behavior for the heading angles of each robot during the experiment. At the end of this graph, we can see how the robot has the same orientation as they are following the desired path.

Fig. 15.16
figure 16

Robots orientation for consensus, regulation and trajectory tracking with topology 3

In Figs. 15.17 and 15.18, we can see the evolution for linear and angular velocities in the robots during the experiment.

Fig. 15.17
figure 17

Linear velocities during the experiment

Fig. 15.18
figure 18

Angular velocities during the experiment

7 Conclusions

It was shown that three different mobile robots can achieve consensus in their three states can perform regulation to a fixed point with consensus and follow a path with only displacing the consensus point.

The weights or values of the coefficients of the Laplacian matrix influence not only the value of the consensus point, but also in the robot’s behavior on regulation and trajectory tracking. This aspect must be carefully handled at topology design.

The results of the implementation differ from the simulations due to factors such as lighting, physical limitations of the robots and other factors inherent to the experimental platform. The experimental validation demonstrates that through consensus cooperation techniques in mobile robots can be established.