Abstract
This paper presents four novel collision avoidance processes for nonholonomic mobile robots to generate effective collision-free trajectories when forming and maintaining a formation. A collision priority strategy integrates the static and dynamic collision priorities to avoid a collision efficiently and effectively. In addition, it minimizes the turning angle of the follower robot and decreases system computation time. When avoiding collisions between robots, a novel collision avoidance algorithm is used to find a safe waypoint for the robot, based on the velocity of each robot. An adaptive tracking control algorithm, using the Lyapunov analysis, guarantees that the robot's trajectory and velocity tracking errors converge to zero considering parametric uncertainties of both the kinematic and dynamic models. The simulation and experiment results validate the effectiveness of the proposed method.
1. Introduction
Over the past decades, multi-robot formation forming and maintaining has been regarded as a major topic of interest because of its benefits of feasibility, accuracy, robustness and flexibility. The existing formation control approaches include the behaviour-based approach [1], the virtual structure approach [2, 3] and the leader-follower approach [4, 5]. Due to its easiness to understand and implement, the leader-follower approach has stimulated a great deal of research. When using the leader-follower approach, one or more robots are designated as the leader robots, while the follower robots keep track of the leader robots to form and maintain the formation.
Collision avoidance control is a problem in multi-robot formation systems. To solve this problem, four collision avoidance processes are presented, consisting of collision detection, collision judgement, collision priority and the collision avoidance algorithm. This paper focuses on the third and fourth processes.
With respect to a collision priority process, a static collision priority strategy is coordinated using a dynamic collision priority strategy. Firstly, after avoiding the collisions, a block in reforming formation may happen, that may cause a deadlock problem increasing the collision avoidance trajectory. Therefore, the static collision priority strategy is proposed to increase the efficiency and effectiveness of the collision avoidance. Secondly, when designing the trajectory for the robot, the term ‘smooth’ is an essential point to be considered. If the robot turns 90 degrees in a time step, the guarantee of smooth trajectory is impossible, and the wheels of the robot slip easily, causing the increase of localization errors for the robot. Hence, the follower robot minimizes the turning angle using the proposed dynamic collision priority strategy in this paper. In addition, since the dynamic collision priority is based on the actual situation during the motions, the computation time is increased within the system. The solution to this problem will be outlined in section 3.
The documented priority strategy studies are as follows. Using the global knowledge, [6-8] propose the static priority strategy, where the priority is assigned to each robot beforehand and cannot be changed during the motion. The dynamic priority strategy in [9] is based on occupancy of local searching space, where each robot recalculates its priority and exchanges the information with its nearby robot, but the strategy cannot solve the disorder and deadlock problem. In [10], the dynamic priority is introduced, where the network structure is presented based on the motion conflicts amongst the robots. However, there are difficulties in establishing a conflict graph, which includes all robots in the system, at each time step.
The proposed collision priority strategy has the following attributes. (1) The static collision priority is related to the formation model and it is very simple; (2) the proposed dynamic collision priority aims to obtain a smooth trajectory by minimizing the turning angle of the follower robot; and (3) due to the integration of the static and dynamic collision priorities, the follower robot does not need to calculate the priorities continuously, while avoiding collisions. Hence, the computation and the complexity of the system can be extensively decreased.
With respect to a collision avoidance algorithm process, a novel collision avoidance algorithm is coordinated with multi-robot formation, based on the velocity and velocity orientation of each robot. In other research, the artificial potential method has been widely used to plan a collision-free path, where the motion of the robot is controlled by the negative gradient of a mixture of attractive and repulsive potential functions as control inputs. However, since the path is described in the form of a high order polynomial, the computations referring to the analytical motion planning are complex and even unsolvable [2]. The dynamic motion planning method to deal with the collision avoidance problem is also used in [11, 12], requiring full knowledge of the obstacle's trajectory.
Motion control is another important function in multi-robot systems. The trajectory tracking problem is widely solved using the kinematic model of a mobile robot [13-15], where ‘perfect velocity’ tracking is assumed to generate the actual velocity control inputs. However, since it is difficult for the dynamics of the robot to produce the perfect velocity as the kinematic controller [16], the torque input is used [17]. This paper presents an adaptive tracking control algorithm which integrates an adaptive kinematic controller and a torque controller for the nonholonomic mobile robot, based on [18, 19].
This paper is organized as follows. Section 2 gives three research models. Section 3 discusses the four collision avoidance control processes. Section 4 outlines the robust adaptive controllers. Section 5 shows the simulation results. Finally, in section 6, the experimental results are presented.
2. Research Models
2.1 A Nonholonomic Mobile Robot Model
The nonholonomic mobile robot is shown in Fig. 1. The robot Ri (i is the robot number i = 1,2,…,N) consists of a passive wheel and two actuated wheels (e.g., DC motor) to achieve the motion and orientation. The radius of both of the actuated wheels is ri. The distance between the two actuated wheels is denoted by 2bi. The centre of mass of the mobile robot is located at Pic, and Pio is located in the middle point between the right and left driving wheels. The distance between Pic and Pio is denoted by di. {o,x,y} is an inertial Cartesian and {Pic,X,Y} is the local frame fixed on the robot. Three generalized coordinates of the robot configuration can be described as qi = [xi,yi,0θi]T in an inertial Cartesian frame, where (xi,yi) are the coordinates of the point Pic in the inertial Cartesian frame and θi is the orientation of the basis {Pic,X,Y} with respect to the inertial basis. Define vi and ωi as the linear and angular velocities of the robot, the ordinary form of the robot Ri kinematic model is as (1).

Two-wheeled nonholonomic mobile robot model
Define vi = (yi1 ,vi2)T as the angular velocities of the right and left wheels of the robot Ri. The relationship between vi, ωi and vi1 ,vi2 is as follows.
The robot can only move in the direction normal to the axis of the driving wheels, and the wheels do not slip. Define φir and φi1 as the angles of the right and left driving wheels of the robot Ri. These nonholonomic constraints can be written as (3)-(5).
Since the trajectory of the mobile robot base is constrained to the horizontal plane, the gravitational vector G(q) is zero. The motion of the nonholonomic mobile robot Ri are given by
In these expressions, τi = (τi1,τi2)T is the torque applied on the robot Ri 's right and left wheels. mic and miw are the mass of the body and wheel with a motor. Iic, Iiw, and Iim are the moment of inertia of the body with respect to the vertical axis through Pic, the wheel with a motor with respect to the wheel axis, and the wheel with a motor with respect to the wheel diameter, respectively. τid is the bounded unknown disturbances of robot Ri including unstructured and unmodelled dynamics.
Property 1:M̄(qi) is symmetric and positive definite.
Property 2:
Assumption 1: The bounded disturbances
2.2 The Leader-Follower Formation Model
In the formation control method, n robots are controlled to move in a stable mode. A robot is assigned to be the leader robot, which determines the follower robot's motion by defining the desired distance and the desired bearing angle. The follower robot calculates the waypoint by the desired distance and the desired bearing angle.
Let Ri-1 and Ri be the leader robot and the follower robot, respectively. li is denoted as the actual distance between Ri-1 and Ri, li0 as the desired distance. βi is denoted as the actual bearing angle from the orientation of the follower robot to the axis connecting Ri-1 and Ri, and βi0 as the desired bearing angle. The formation for the leader robot Ri-1 -waypointRiw -the follower robot Ri with the desired distance and the desired bearing angle is shown in Fig.2, where θi (t) = θi-1 (t). The waypoint of the follower robot Ri is denoted by qiw = (xiw,yiw θiw)T as (8).

The leader-follower formation model
2.3 The Follower Robot Control Model
The collision-free trajectory of the leader robot is predefined and the follower robots track the leader robot while avoiding the collisions. Fig. 3 shows the block diagram to control the follower robot. The follower robot communicates with the leader robot and checks possible collisions with other follower robots. If there is collision danger, the collision judgement process decides whether or not the follower robot starts a collision avoidance algorithm. Based on the waypoint from formation control or collision avoidance control, the adaptive controllers are calculated for the follower robot.

The block diagram of the follower robot control
3. The Collision Avoidance Control
In this section, follower robots try to complete a collision avoidance task in forming and maintaining formation with a leader robot effectively and efficiently. The task includes four processes: collision detection, collision judgement, collision priority and the collision avoidance algorithm. The four processes are detailed as follows.
3.1 The Collision Detection
Let Ri and Rj denote two follower robots, with their states as (xi,yi,θi)T and (xj,yj,θj)T, respectively. The distance Dij between two follower robots is shown in (9).
As shown in Fig. 4, based on moving speed and physical size of the follower robot, two pseudo protected shells are defined surrounding the follower robot Ri and Rj, with the radius of si and sj, respectively. If the distance Dij satisfies the Equation (10), the two follower robots must consider the collision avoidance.

The protected shells of follower robot Ri and Rj
3.2 The Collision Judgement
After detecting a collision, the follower robots judge whether to start the collision avoidance algorithm or not, based on the method in [20]. The judgement of a collision danger relies on the distance Dij (t) and its derivative dDij (t) / dt. As the classifications in Table 1, if the collision danger increases, the two follower robots are required access to the collision avoidance algorithm.
The two follower robots collision danger with respect to Dij (t)anddDij (t) / dt.
3.3 The Collision Priority
Following the collision detection and the collision judgement processes, to avoid collision efficiently and effectively, and to minimize the turning angle of the follower robot, there are two main considerations: 1. Which follower robot should be selected to apply the collision avoidance algorithm; 2. Which follower robot should continue tracking the formation. Therefore, in the collision priority process, the static priority is integrated with the dynamic priority to select which follower robot will perform the collision avoidance algorithm.
3.3.1 The static priority
After avoiding the collisions, due to the longer desired distance with the leader robot, the follower robot may block other follower robots from reforming the formation. Hence, a collision may occur again, causing the increase of the collision avoidance trajectory and the deadlock problem. To overcome these problems, the static priority psi (i is the robot number i = 1,2,…,N) for each follower robot is initially defined. The value of the static priority is given by the reciprocal of the desired distance li0 with the leader robot as (11).
From (11), if the desired distance of the follower robot Rj with the leader robot is shorter than the follower robot Ri, psj is higher than psi. If the desired distances of the two follower robots Ri and Rj are the same, psi = psj.
3.3.2 The dynamic priority
To minimize the turning angle of the follower robot, a dynamic priority strategy is introduced to give orders to the robots. Based on the collision avoidance algorithm, define the dynamic priority pdi (i is the robot number, i = 1,2,…,N) function
where θi and θj are estimated turning angles of the follower robot Ri and Rj, respectively, based on the collision avoidance algorithm. pis a positive constant in (12). If the follower robots share the same static priority, the dynamic priority approach is used to choose the follower robot for addressing the collision avoidance algorithm. If there are multiple robots, the term pdi = Σn(j≠i)j=1 λj p mean s the accumulation of all turning angle comparisons between the follower robot Ri and the other follower robot Rj (j = 1,2,…,N, j ≠ i).
3.3.3 The cooperation of the static and dynamic priorities
In order to increase collision avoidance efficiency and minimize the robot's turning angle, the follower robot is selected to apply the collision avoidance algorithm, based on the cooperation of the static and dynamic priorities. The cooperation flowchart is illustrated in Fig. 5.

The cooperation flowchart of the static and the dynamic collision priorities
After the collision detection and judgement processes, the follower robot is chosen to avoid the collision via the following steps. Firstly, the selection of whether to implement the collision avoidance algorithm or to keep the formation is based on the comparison between the static priorities of the follower robots. If psi > psj, the follower robot Ri continues tracking the formation, and the follower robot Rj goes into the collision avoidance algorithm process. Secondly, if the static priorities of the follower robots are the same, the follower robot is chosen to implement the collision avoidance algorithm by the comparison result of the dynamic priorities. If pdi > pdj, the follower robot Rj starts the collision avoidance algorithm, while the follower robot Ri follows the leader robot. Thirdly, if the follower robots continue to have the collision avoidance problem, the follower robot directly applies the collision avoidance algorithm with the selection from steps 1 and 2. In this way, the calculation and the comparison time can be decreased by skipping the comparison of the static and dynamic collision priorities.
3.4 The Collision Avoidance Algorithm
The collision avoidance algorithm is presented in Fig.6. Referring to the collision detection process, the collision judgement process and the collision priority process, the follower robot Ri is assumed to avoid collision with the follower robot Rj. As shown in Fig.6, the follower robot Ri and Rj are currently located at A and B, with the position state Pi = (xi,yi)T and Pj = (xj,yj)T, respectively. α1 is the angle from the axis x to the axis AB.

The collision avoidance algorithm of the follower robot Ri
Define |θj – θi | as the relative angle of the orientation of the follower robots Ri and Rj, the angle α2 is written as (14). For the velocities of Ri and Rj given by Ṗi and Ṗj, the angle α3 is denoted as (15).
α4 is the angle between the orientation of the follower robot Ri and the axis AB at point A. The angle α4 can be calculated as (16).
The goal of the collision avoidance algorithm is to enlarge the distance between the follower robots until the distance is equal to the sum of the protected shell radius of the follower robots (si + sj). Considering the smoothness of the trajectory, the waypoint for follower robot Ri is located at C to satisfy the requirement |θi (t) – θ(t – 1) |< ∂ / 2. The distance of AC is calculated as
where α5 = α3 + α4. For the parameters discussed above, the waypoint equation to avoid collision is given by
where r is the distance to move for the next step and θi (t – 1) ± α3 is the angle to turn. Based on the orientation of the follower robot Ri, note that when the follower robot Rj is on the right-side of the follower robot Ri, select θi (t – 1) + α3 in (18), otherwise, select θi (t – 1) – α3.
4. Robust Adaptive Controllers Design
In this section, adaptive controllers are designed for the robot with two actuated wheels based on kinematic and dynamic models. The designed controller can guarantee that the robot's trajectory and velocity tracking errors converge to zero asymptotically stably under the parametric uncertainties of the kinematic and dynamic models.
4.1 Adaptive Control of the Kinematic Model
Considering the kinematic model in (6), an adaptive tracking controller for the kinematic part is designed based on [18]. The waypoint equations are defined as
where viw and ωiw are the waypoint input. Comparing the waypoint state qiw with the current measured state qic, the tracking error posture can be described as (22).
The derivative matrix Ėiq can be derived as (23).
Based on [18], the linear and angular velocity vic and ωic are given as vif and ωif, respectively,
where Ki1, Ki2, and Ki3 are positive constants. Using (2), (23) is transformed to
If the parameters ri and bi are not known, the angular velocities of the left and right wheels cannot be obtained by the linear and angular velocities in (2). Based on [19], set ai1 = 1/ri and ai2 = bi /ri, vi1 and vi2 are chosen as
where ǎi1 and ǎi2 are the estimate of ai1 and ai2, and ãi1 = ǎi1 – ai1, ãi2 = ǎi2 – ai2. (25) can be described as (27).
To design ǎi1 and ǎi2, based on [21], the Lyapunov function is chosen as (28), where
γi1 and γi2 are positive constants. The differential of V1 is
The parameter update laws are chosen as (30) and (31).
(29) becomes (32).
As t → ∞, Eiq is shown to be a stable equilibrium point. Using Barbalat's lemma, xiE and θiE tend to zero as t → ∞,. Since ãi1 and ãi2 are bounded, ẋiE and
4.2 Adaptive Control of the Dynamic Model
Define the velocity tracking error of the robot Ri as (33).
(7) can be rewritten as (34).
Therefore, the differential of Eic multiply M̄ can be described as
where M̄V̇ic + V̄V̇ic = YicPi and
Based on [19], the torque controller for the dynamic model is designed as (36).
Kid is a diagonal positive-definite design matrix. P̂i is the estimate of Pi and P˜i = P̂i – Pi. uis = Asgn(Eic), where sgn(Eic) is a sign function and A is a positive-definite controller gain. Define A = ĉi0 + ĉi1‖vi‖, ĉi0 and ĉi1 are the estimate of ci0 and ci1 in Assumption 1, and ĉi0 = ĉi0 – ci0, ĉi1 = ĉi1 – ci1. To design ĉi0, ĉi1 and P̂, the Lyapunov function is chosen as (37).
γi3 and γi4 are positive constants. The differential of V2 is denoted as (38).
The parameter update laws are selected as (39)-(41).
Therefore, (38) can be rewritten as (42).
V2 is non-increasing with time, so it is bounded. Using Barbalat's lemma, xiE, θiE and Eic tend to zero as t → ∞. θiE and θiE are bounded. This implies
5. Simulation Results
In this section, the physical parameters of the robots are as bi = 0.125m, di = 0.15m, ri = 0.08m, mic =4kg, miw = 1kg, Iic = 2.325 kgm2, Iiw = 0.005 kgm2 and Iim = 0.0025. The parameters for the adaptive controllers are chosen as Ki1 =0.1, Ki2 =0.2, Ki3 = 0.28, Kid = diag{0.5,0.5}, γi1 = γi2 = 0.001, γi3 = γi4 = 0.01 and Γ = diag{0.01,0.01, 0.01}.
5.1 First Simulation
Fig. 7 shows the trajectories of three robots forming a line formation at t=2.9s, t=3.3s, t=3.7s and t=6.0s. The desired distance of follower robots 1 and 2 with the leader robot are equal to l10 = 0.9m and l20 = 0.45m, respectively. The desired bearing angles are β10 = β20 = 0. The protected shell radius of the follower robots are 0.16m. The initial state of the leader robot, follower robot 1 and follower robot 2 are as (0.5,1.5,0)T, (-0.65,2.5,0)T and (-0.65,0.5,0)T, respectively. The leader robot's trajectory is defined as

The trajectories of three robots avoiding collision based on the static collision priorities of two follower robots. (a) t=2.9s, (b) t=3.3, (c) t=3.7, (d) t=6.0s
Based on the collision priority process, the two follower robots' static priorities are not the same so that the follower robot is selected to execute the collision avoidance algorithm by the static priorities comparison result. Follower robot 1's static priority is smaller than follower robot 2's. Therefore, follower robot 1 avoids the collision with follower robot 2 using the collision avoidance algorithm, while follower robot 2 keeps tracking the formation.
Along the trajectories in Fig. 7(d), the trajectory and velocity tracking errors of follower robots 1 and 2 are shown in Figs. 8–11. The simulation was run 50 times to take average values and input noise is|τid | ≤ 3. From the results, the trajectory and velocity tracking errors approach to zero.

The trajectory errors of follower robot 1

The trajectory errors of follower robot 2

The velocity errors of follower robot 1

The velocity errors of follower robot 2
To better show the performance of the static priority strategy in reducing the collision path and in solving the deadlock problem, Fig. 12 is compared with Fig. 7 (d). In Fig. 12, two follower robots track the same leader robot as in Fig. 7 (d), without the static priority comparison result. This means that follower robot 2 must avoid collision using the collision avoidance algorithm, and follower robot 1 keeps tracking the formation trajectory, when the collision danger occurs. As seen from Fig. 12, follower robot 2 cannot reform the formation with the leader robot. Therefore, the static priority strategy is essential to reduce the collision path and solve the deadlock problem.

The trajectories of three robots avoiding collision without the static priority comparison result
5.2 Second Simulation
Fig. 13 shows three robots' trajectories forming a triangle formation at t=2.7s, t=3s, t=3.5s, t=5s and t=10s. The desired distance of follower robots 1 and 2 with the leader robot are equal to l10 = l20 = 0.45m, and the desired bearing angle are β10 =-∂/4 and β20 = ∂/4, respectively. The protected shell radius of follower robots 1 and 2 are 0.16m, 0.16m, respectively. The initial state of the leader robot, and follower robots 1 and 2 are as (0.5,1.5,0)T, (-0.65,2.5,0)T and (-0.65,0.5,0)T, respectively. The leader robot's trajectory is defined as (43) and(44).

The trajectories of three robots avoiding collision based on the dynamic collision priorities of two follower robots. (a) t=2.7s, (b) t=3s, (c) t=3.5s, (d) t=5s, (e) t=10.0s
In this case, because the two follower robots' static priorities are the same, the selection for the follower robot to do the collision avoidance algorithm is based on the dynamic priority comparison result. Due to the smaller dynamic priority, follower robot 1 is required to avoid the collision with follower robot 2.
For the trajectories in Fig. 13(e), the trajectory and velocity tracking errors of follower robots 1 and 2 are shown in Figs. 14–17. The simulation was run 50 times to take average values and input noise is |τid | ≤ 3. The trajectory and velocity tracking errors approach to zero clearly.

The trajectory errors of follower robot 1

The trajectory errors of follower robot 2

The velocity errors of follower robot 1

The velocity errors of follower robot 2
Comparing with Fig. 13 (e), Fig. 18 shows that the three robots track the same trajectories as in Fig. 13 (e), without the dynamic comparison result. When collision danger happens, follower robot 2 must avoid collision using the collision avoidance algorithm, and follower robot 1 keeps tracking the formation trajectory. Table 2 shows the performance of the dynamic priority strategy in minimising the turning angle of the follower robot more clearly.

The trajectories of three robots avoiding collision without the dynamic priority comparison result
Table 2 demonstrates the incremental collision path length and turning angle during forming and maintaining of the formation in Fig. 13 (e) and Fig. 18.
The comparison results of incremental collision path length and turning angle during forming and maintaining the formation within and without priority comparison results.
Using the dynamic priority strategy, the incremental collision path length in Fig. 13 (e) is shorter than the incremental collision path length in Fig. 18, and the turning angle in Fig. 13 (e) is quite substantially minimized.
5.3 Third Simulation
The third simulation demonstrates that a large team of robots can benefit from the proposed collision avoidance methods. In Fig. 19, the desired distances of the four follower robots with the leader robot are equal to l10 = 0.85m and l20 = 0.45m, l30 = 0.4m, l40 = 0.4m, respectively. The desired bearing angles are β10 = β20 = 0, β30 = ∂ / 4 and β40 = -∂ / 4. The protected shell radius of the follower robots are 0.16m. The initial state of the leader robot and follower robots 1–4 are designed as(0.5,1.5,0)T, (-0.55,2.5,0)T, (-0.55,0.5,0)T, (-0.6,2,0)T and (-0.6,1,0)T, respectively. The leader robot's trajectory is defined as (45) and (46). The collision danger firstly takes place between follower robot 3 and follower robot 4. Based on the dynamic priority strategy, follower robot 3 does the collision avoidance algorithm. Follower robot 2 and follower robot 3 must secondly solve the collision avoidance problem. According to the static priority strategy, follower robot 2 is required to do the collision avoidance algorithm. Finally, follower robots 1 and 2 must take the collision avoidance into consideration. Based on the static priority strategy, follower robot 1 avoids the collision.
The trajectory errors of the follower robots 1–4 with the trajectories in Fig. 19 are shown in Figs. 20–23. From the results, the trajectory errors stably converge to zero.

The trajectories of five robots avoiding collision based on four collision avoidance processes

The trajectory errors of follower robot 1

The trajectory errors of follower robot 2

The trajectory errors of follower robot 3

The trajectory errors of follower robot 4
The velocity errors of follower robots 1–4 with the trajectories in Fig. 19 are shown in Figs. 24–27. From the results, the velocity errors approach to zero.

The velocity errors of follower robot 1

The velocity errors of follower robot 2

The velocity errors of follower robot 3

The velocity errors of follower robot 4
5.4 Fourth Simulation
To show the validation of the adaptive controllers, the fourth simulation presents a large group of robots forming and maintaining formation avoiding collisions in sinusoid trajectories. In Fig. 28, the desired distances of the four follower robots with the leader robot are equal to l10 = 1.2m and l20 = 0.6m, l30 = l40 = 0.8m, respectively. The desired bearing angles are β10 = β20 = ∂ / 4, β30 = -∂ / 6 and β40 = -∂ / 2. The protected shell radius of the follower robots are 0.16m. The initial state of the leader robot and the follower robots are given by (0,0,0)T, (-1.2,-1.2,0)T, (-0.8,-1.7,∂/6)T, (-0.9,0.6, ∂/6)T and (-0.8,0.3,0)T, respectively. The leader robot's predefined trajectory is denoted as (47) and (48). Based on the static priority strategy, follower robot 1 avoids the collision with follower robot 2. In addition, follower robot 3 is required to avoid collision with follower robot 4 by using the dynamic priority strategy.
The trajectory errors of follower robots 1–4 with the trajectories in Fig. 28 are shown in Figs. 29–32. From the results, the trajectory errors stably converge to zero.

The trajectories of five robots avoiding collision based on four collision avoidance processes

The trajectory errors of follower robot 1

The trajectory errors of follower robot 2

The trajectory errors of follower robot 3

The trajectory errors of follower robot 4
The velocity errors of follower robots 1–4 with the trajectories in Fig. 28 are shown in Figs. 33–36. From the results, the velocity errors approach to zero.

The velocity errors of follower robot 1

The velocity errors of follower robot 2

The velocity errors of follower robot 3

The velocity errors of follower robot 4
6. Experimental Results
6.1 The Robot Platform
The positions and attitudes of the three nonholonomic robots as shown in Fig. 37 are measured using a CCD camera (640×480) on the ceiling. In addition, the diameter of each wheel is 4.3 cm, and the distance between the left and right wheels is 6.9cm. The weight of the robot is 0.4kg.

Three nonholonomic robots in the experiment
Each robot is equipped with five modules, including communication module, sensor module, MCU module, motor module and power module. The specifications of the modules are shown in Table 3.
Specifications of each robot
6.2 The System Implementation
The information of the leader robot, such as encoder values and compass sensor value, is sent to server PC by Bluetooth.
As shown in Fig. 38, the following steps are the executions for the follower robot to track the leader robot while avoiding collisions. (1) Based on the ultrasonic sensor values, if both of the follower robots are close enough, they send the collision flag to the server PC. (2) When the server PC receives a collision flag, it calculates the waypoint based on the four collision avoidance processes. Otherwise, the waypoint is calculated using the leader robot's information. (3) The server PC calculates torques and sends motor commands to the follower robot by Bluetooth. (4) The follower robot drives the DC motors based on the control law. (5) The follower robot transmits encoder values and the angle value to the server PC. (6) Based on the encoder values and the angle value, a localization process is performed on the PC. (7) The states of the follower robots are changed according to the adaptive controllers. In Fig. 38, the processes inside the dash block are executed in the PC, while the other blocks are processed by the onboard modules of the follower robots.

The overview of the system implementation for each follower robot
6.3 Experiment
In the experiment, three robots are executed to form and maintain a line formation, while avoiding collisions between follower robots. The radius of the protected shell of each robot is 8cm. The other parameters for the adaptive controllers are chosen as Ki1 = 0.1, Ki2 = 0.2, Ki3 = 0.28, Kid = diag{0.5,0.5}, γi1 = γ2 = 0.001, γi3 = γi4 = 0.01 and Γ = diag{0.01,0.01,0.01}. The initial states of the leader robot and follower robots 1 and 2 are (26cm,15cm,0)T, (0,0,0)T and (0,30cm,15deg)T, respectively. The desired distances for follower robots 1 and 2 with the leader robot are defined as l10 = 60cm and l20 =30cm, respectively. The desired angles of the follower robots are β10 = β20 = 0. Fig. 39 shows the trajectories of the three robots forming and maintaining a line formation. Based on collision priority strategy and the collision avoidance algorithm, when two follower robots form the formation, follower robot 1 avoids the collision with follower robot 2.

The formation tracking trajectories of the three robots while avoiding collision
The state errors of follower robots 1 and 2 are shown in Figs. 40 and 41. In Fig. 40, when follower robot 1 avoids the collision, there is an angle error which is reduced after avoiding collision.

The state errors of follower robot 1

The state errors of follower robot 2
Video snapshots are presented in Fig. 42, where three robots form a line formation while avoiding collision.

Snapshot of three robots forming a line formation and avoiding collision between the follower robots: (a)t=0s, (b)t=3s, (c)t=5s, (d)t=10s, (e)t=16s, (f)t=20s, (g),t=24s (h),t=30s (right, then down).
7. Conclusions
In this paper, the proposed four collision avoidance processes were used to generate collision-free trajectories for nonholonomic mobile robots when forming and maintaining formation. In order to minimize the turning angle of the robot, solve the dead-lock problem and find the shortest collision avoidance path, the collision priority strategy was coordinated with the collision avoidance algorithm. The adaptive control algorithm, based on Lyapunov analysis, is designed for the trajectory and velocity tracking errors of each robot to converge to zero. Finally, the simulation and experiment results demonstrate the effectiveness of the proposed methods.
Footnotes
8. Acknowledgements
This research was supported by the Basic Research Programme through the National Research Foundation of Korea (NRF) funded by the Ministry of Education, Science and Technology (2012R1A1B3002240).
