**2. Problem formulation**

nano-teleoperation [3], tele-surgery [4], etc. A network-based teleoperation system involves distant interactions between human operators and remote robotic systems [5, 6]. In addi‐ tion, swarms of robots are widely employed in complex tasks that cannot be performed by a single robot or in tasks that are better achieved by cooperation of robots such as localization in formations [7], target tracking [8], mapping and localization [9], object pushing [10], area exploration for search and rescue [11], etc. When swarms of mobile robots are teleoperated, specific network requirements should be satisfied in order to guarantee a minimum quality of control, which results in efficient task execution. Research done on teleoperated systems showed that constraints such as bandwidth and CPU processing cause the Quality of Service (QoS) to degrade to an extent that may severely affect performance [12, 13]. To address this problem, various bandwidth management algorithms have been presented for distributed multimedia systems in order to maintain a performance that guarantees an adequate QoS [6]. However, the literature rarely tackled the problem of managing bandwidth based on sensory feedback and the quality of collaboration among robots. Accordingly, a real-time dynamic optimized bandwidth management for teleoperation of collaborative robots is introduced in this paper. The proposed method accounts for interesting events (IEs) and the change in the quality of collaboration (QoC) between robots in order to optimize the allocation of band‐ width between acting agents, where necessary, in a given environment. The developed optimization technique showed outstanding performances when implemented on a system of two collaborating humanoid robots, and thus could be considered a basis for a framework for highly complex algorithms implemented in systems involving real-time bandwidth optimi‐

Different types of resource management algorithms are used to solve the bandwidth allocation problem in robotics systems. Such applications in networked control systems fall into two main categories: static [14] and dynamic [15] bandwidth allocation. Static methods cannot adapt to changes in the system state (surrounding environment, collaboration quality, etc.). Alterna‐ tively, dynamic bandwidth allocation algorithms increase performance at the cost of increased computation. Mourikis et al. [7] address the problem of resource allocation in formations of mobile robots localizing as a group. The goal is to determine the frequency at which each individual sensor should be used in order to attain the highest possible localization accuracy. The set of frequencies mentioned is obtained by solving an optimization problem that maximizes the accuracy matrix expressed in terms of the sensors' frequencies. However, the problem is solved offline and the algorithm does not account for any dynamic events that might occur. Sugiyama et al. [8] propose a bandwidth reservation algorithm for multi-robot systems in a target tracking mission. The interesting information, corresponding to a survivor's detection, is sent to the base station with wideband signals such as dynamic picture images. The final call is left to operators to decide whether the received images indicate a real victim, by allowing/preventing the corresponding robot to reserve the bandwidth affecting the flow of various signals from other robots to the base station. In this approach, the operator's intervention is crucial in allocating bandwidth and thus the allocation process is not fully automated. Xi et al. [5] developed a bandwidth allocation mechanism based on online measured task dexterity index of dynamic tasks so that operators can control remote manip‐ ulators efficiently and smoothly even under poor network quality. However, the executed task

zation, where multiple users control multiple collaborating robots.

182 Recent Advances in Robotic Systems

The focus of the work presented is on real-time dynamic managing of the 'User' to 'Robot' and 'Robot' to 'User' (U2R/R2U) and 'Robot' to 'Robot' (R2R) communication channels, where actuation commands, system state and sensory data including video frames are exchanged. A general formulation of the problem that can be applied to swarms with a variable number of collaborating robots is presented first and is then implemented on a formation of two human‐ oid robots performing a collaborative task. The formulation is concluded by presenting the solution of the optimization problem.

### **2.1. The general formulation**

The goal of the optimized dynamic bandwidth allocation algorithm is to optimize communi‐ cation at each time event based on information related to the occurrence of *IEs* in the robot's surroundings and to changes in *QoC* among robots. The idea comes from the fact that when sudden changes occur in the robot's environment, the teleoperator needs to be updated more frequently in order to retain the same level of performance. In other words, the rates of information exchanged between operator(s) and robots are updated based on changes in task conditions that may affect the performance severely. Similarly, the increase in *R2R* communi‐ cation compensates for any decay in the performance of the collaborative task of the robotic swarm. Hence, if the environment is less dynamic and the robots are collaborating well, the corresponding communication rates will be decreased. On the other hand, if the environment is more dynamic and the robots are collaborating poorly, the corresponding communication rates will be increased.

Let the collaborative task be executed by *n* robots and let *xi* , where *i* ∈{1, 2, …, *r*}, be the communication rates to be optimized. Then, we define X as an r-dimensional vector of communication rates such that

$$X = \begin{bmatrix} \mathbf{x}\_1 & \mathbf{x}\_2 & \cdots & \mathbf{x}\_r \end{bmatrix}^r$$

Where the elements of X are classified into 3 sets of rates:


The rates *xi* are subject to practical constraints that bound each of them with a minimum and maximum value *ximin* and *ximax*, respectively. In addition, the sum of bandwidth consumed by all channels is bounded by the total bandwidth of the system *Bmax*. Hence, for all the rates, we have the following constraints:

$$\mathbf{x}\_{\text{imin}} \le \mathbf{x}\_i \le \mathbf{x}\_{\text{imar}}, \text{ where } i \in \{1, 2, \dots, r\} \tag{1}$$

and

$$\sum\_{l=1}^{r} \mathbf{w}\_{l} \mathbf{x}\_{l} \le \mathbf{B}\_{\text{max}} \tag{2}$$

where *wi* 's are weights associated with each rate corresponding to the rate of information (bps) sent at each time event on each channel. We define the vector *W* = *w*<sup>1</sup> *w*<sup>2</sup> … *wr <sup>T</sup>* as an rdimensional vector of weights corresponding to each channel. We also define *P* as an mdimensional observation vector that is composed of two main sets of components such that

$$P = \begin{bmatrix} p\_1 & p\_2 & \dots & p\_t & p\_{t+1} & \dots & p\_m \end{bmatrix}^T = \begin{bmatrix} I E\_{\alpha 1} \\ \mathcal{Q} o C\_{(n-l)\times 1} \end{bmatrix}, \text{ where } t < m.$$

each element in *P* is an observation related to interesting events occurring in the robot environment or to the quality of the collaborative task executed by the robotic swarm. The elements of *IE,* {*p*1,*p*2,…,*pt* }, and of *QoC,* {*pt* + 1, *pt* + 2, …, *pm*}, are variables that dictate the choice of the communication rates. All the elements of *P* are normalized in the interval [0: 1]. If the *i th* observation is reflecting a slightly changing environment or a high collaborative performance, then *pi* would be close to 0. On the contrary, if the *i th* observation reflects a highly changing environment or significant degradation in the collaborative performance, then *pi* would be closer to 1.

Distance to obstacles, speed and displacement of robot are potential examples of *IEs* that could be monitored in order to allocate bandwidth. Moreover, any observation that tracks error in a collaborative task could also contribute to the bandwidth management algorithm.

In the formulation presented in this work, a mapping equivalent to the one presented in our previous work [17] is applied, however, with additional constraints that transform the problem from a simple matrix multiplication to a linear optimization problem. The new constraints bound the set of feasible communication rates *xi* depending on the choice of the minimum and maximum rate for each channel *ximin* and *ximax* and the maximum bandwidth of the system *Bmax*.

In this mathematical formulation, *si* is defined in the interval [0: 1] for all *i* ∈{1, 2, ..., *r*} to be as follows:

$$\mathbf{x}\_i = \mathbf{a}\_i \mathbf{s}\_i + \mathbf{b}\_i \tag{3}$$

where

**2.1. The general formulation**

184 Recent Advances in Robotic Systems

rates will be increased.

communication rates such that

have the following constraints:

and

where *wi*

Let the collaborative task be executed by *n* robots and let *xi*

Where the elements of X are classified into 3 sets of rates:

**•** Feedback Rates: R2U communication rates

**•** Collaboration Rates: R2R communication rates

**•** Command Rates: U2R communication rates

The goal of the optimized dynamic bandwidth allocation algorithm is to optimize communi‐ cation at each time event based on information related to the occurrence of *IEs* in the robot's surroundings and to changes in *QoC* among robots. The idea comes from the fact that when sudden changes occur in the robot's environment, the teleoperator needs to be updated more frequently in order to retain the same level of performance. In other words, the rates of information exchanged between operator(s) and robots are updated based on changes in task conditions that may affect the performance severely. Similarly, the increase in *R2R* communi‐ cation compensates for any decay in the performance of the collaborative task of the robotic swarm. Hence, if the environment is less dynamic and the robots are collaborating well, the corresponding communication rates will be decreased. On the other hand, if the environment is more dynamic and the robots are collaborating poorly, the corresponding communication

communication rates to be optimized. Then, we define X as an r-dimensional vector of

= [ 1 2 L ]

*X xx xr*

The rates *xi* are subject to practical constraints that bound each of them with a minimum and maximum value *ximin* and *ximax*, respectively. In addition, the sum of bandwidth consumed by all channels is bounded by the total bandwidth of the system *Bmax*. Hence, for all the rates, we

> 1 . = å £ *r*

*i*

*i i max*

sent at each time event on each channel. We define the vector *W* = *w*<sup>1</sup> *w*<sup>2</sup> … *wr <sup>T</sup>* as an r-

's are weights associated with each rate corresponding to the rate of information (bps)

*T*

££ Î ¼ ,where {1,2, , } *imin i imax x xx i r* (1)

*wx B* (2)

, where *i* ∈{1, 2, …, *r*}, be the

$$\mathbf{a}\_{i} = \mathbf{x}\_{i \text{max}} - \mathbf{x}\_{i \text{min}} \tag{4}$$

and

$$b\_i = \underset{i \text{ } min}{\text{x}} \tag{5}$$

Then, an r-dimensional vector *S* is defined as follows:

$$\mathbf{S}\_{r^{\star}1} = \begin{bmatrix} \mathbf{s}\_1 & \mathbf{s}\_2 & \dots & \mathbf{s}\_r \end{bmatrix}^T \dots$$

Hence, at each time instant, the algorithm solves for the *si* 's and then uses the mapping in (3) to get the rates *xi* 's.

$$X\_{r^\*1} = A\_{r^\*r} S\_{r^\*1} + B\_{r^\*1} \tag{6}$$

*S* is related to *P* using the mapping matrix *M* as shown in (7):

$$S\_{"\prime \*1} = M\_{"\prime \*n}, P\_{m^\* 1} \tag{7}$$

where

$$\begin{aligned} \boldsymbol{A}\_{r\star\_{r}} &= \begin{bmatrix} \boldsymbol{a}\_{1} & \dots & \boldsymbol{0} \\ \vdots & \ddots & \vdots \\ \boldsymbol{0} & \dots & \boldsymbol{a}\_{r} \end{bmatrix}; \ \boldsymbol{B}\_{r\star\_{1}} = \begin{bmatrix} \boldsymbol{b}\_{1} \\ \vdots \\ \boldsymbol{b}\_{r} \end{bmatrix}; \ \boldsymbol{S} = \begin{bmatrix} \boldsymbol{s}\_{1} \\ \boldsymbol{s}\_{2} \\ \vdots \\ \boldsymbol{s}\_{r} \end{bmatrix}; \\\\ \boldsymbol{M} &= \begin{bmatrix} \boldsymbol{m}\_{11} & \boldsymbol{m}\_{12} & \dots & \boldsymbol{m}\_{1m} \\ \boldsymbol{m}\_{21} & \boldsymbol{m}\_{22} & \dots & \boldsymbol{m}\_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ \boldsymbol{m}\_{r1} & \boldsymbol{m}\_{r2} & \dots & \boldsymbol{m}\_{mr} \end{bmatrix}; \ \boldsymbol{P} = \begin{bmatrix} \boldsymbol{P}\_{1} \\ \boldsymbol{P}\_{2} \\ \vdots \\ \boldsymbol{P}\_{m} \end{bmatrix} \end{aligned}$$

In (7), the elements of the matrix *M* are selected based on the relation between the observations and the rates. Each row of the matrix *M* can be interpreted as the weights of the observations in *P* affecting the corresponding rate in *X*. Since *si* 's are selected in the range [0: 1], then choosing the sum of the coefficients in each row of *M* to be equal to 1 ensures that the result of multiplying any row of *M* by the vector *P* represents a weighted average of the observations that results in a value in the [0: 1] range. Thus, for a specific environment, *M* can be initialized once at the beginning of the set of trials. However, in order to improve the performance, *M* could also be updated dynamically based on the quality of the task previously executed. Thus, an improve‐ ment in the overall performance is achieved while maintaining an equivalent level of band‐ width consumption.

Since the sum of bandwidth consumed on all channels is bounded by the maximum bandwidth of the system, *Bmax*, the allocation of the rates on different channels will be formulated as a linear optimization problem. Thus, the problem formulation becomes:

Minimize:

Dynamic Optimized Bandwidth Management for Teleoperation of Collaborative Robots http://dx.doi.org/10.5772/63725 187

$$\left\|S - MP\right\|\_1 \tag{8}$$

subject to

\*1 1 2 = ¼ [ ] .

*r r S ss s*

1 1

*<sup>s</sup> a b <sup>s</sup> A BS*

MOM M <sup>M</sup> *r r <sup>r</sup> r r*

> L L M MO M M L

*mm m p M P*

é ù é ù éù <sup>¼</sup> ê ú ê ú êú ê ú = == ê ú

ë û ëû ¼ ê ú

11 12 1 1 21 22 2 2

*mm m p*

*r r rm m*

*m m*

<sup>é</sup> ù éù <sup>ê</sup> ú êú <sup>ê</sup> ú êú = = <sup>ê</sup> ú êú <sup>ê</sup> ú êú <sup>ë</sup> û ëû

*mm m p*

In (7), the elements of the matrix *M* are selected based on the relation between the observations and the rates. Each row of the matrix *M* can be interpreted as the weights of the observations

the sum of the coefficients in each row of *M* to be equal to 1 ensures that the result of multiplying any row of *M* by the vector *P* represents a weighted average of the observations that results in a value in the [0: 1] range. Thus, for a specific environment, *M* can be initialized once at the beginning of the set of trials. However, in order to improve the performance, *M* could also be updated dynamically based on the quality of the task previously executed. Thus, an improve‐ ment in the overall performance is achieved while maintaining an equivalent level of band‐

Since the sum of bandwidth consumed on all channels is bounded by the maximum bandwidth of the system, *Bmax*, the allocation of the rates on different channels will be formulated as a

linear optimization problem. Thus, the problem formulation becomes:

*a b <sup>s</sup>*

;

0

\* \*1

1 2

0

in *P* affecting the corresponding rate in *X*. Since *si*

width consumption.

Minimize:

Hence, at each time instant, the algorithm solves for the *si*

*S* is related to *P* using the mapping matrix *M* as shown in (7):

to get the rates *xi*

186 Recent Advances in Robotic Systems

where

's.

*T*

\*1 \* \*1 \*1 = + . *X AS B r rr r r* (6)

\*1 \* \*1 = . *r rm m S MP* (7)

1

2

ë û

*r*

's are selected in the range [0: 1], then choosing

; ; ;

's and then uses the mapping in (3)

$$\sum\_{i=1}^{r} w\_i.x\_i \le B\_{\max} \tag{9}$$

and

$$0 \le \mathbf{s}\_i \le \mathbf{l} \forall i \in \{1, 2, \dots, r\} \tag{10}$$

Since *xi* = *ai si* + *bi* , then Eq. (9) can be written as follows:

$$\sum\_{l=1}^{r} \left( \boldsymbol{w}\_{l}, \boldsymbol{a}\_{l}, \mathbf{s}\_{l} + \boldsymbol{w}\_{l}, \mathbf{b}\_{l} \right) \le B\_{\text{max}} \tag{11}$$

which is equivalent to

$$\sum\_{i=1}^{r} w\_i.a\_i.s\_i \le B\_{\max} - \sum\_{i=1}^{r} w\_i.b\_i \tag{12}$$

The constraint in (12) can be expressed in terms of matrix multiplication as follows:

$$W^{\mathbb{T}}.A.S \le B\_{\text{max}} - W^{\mathbb{T}}.B. \tag{13}$$

Therefore, for any collaborative task, it is sufficient to set the parameters in Eq. (13) in order to define the linear optimization problem. Thus, optimization techniques can be applied to solve the defined problem.

#### **2.2. Mathematical formulation**

In order to solve the aforementioned problem, a simple change of variable is first performed. We let:

$$Z = S - M.P\tag{14}$$

Therefore, the problem formulation becomes minimize:

$$\left.Z\right\|\_{\perp} \tag{15}$$

subject to

$$W^{\mathsf{T}}.A.Z \le B\_{\max} - \left. W^{\mathsf{T}}.B - W^{\mathsf{T}}.A.M.P \tag{16}$$

and

$$-M.P(i) \le z\_i \le 1 - M.P(i) \forall i \in \left[1:r\right] \tag{17}$$

Since the problem is an L1 norm problem, it needs to be slightly modified in order to get rid of the absolute value that complicates the solution of the problem. Thus, the problem can be translated to minimize:

$$\sum\_{i=1}^{r} t\_i \tag{18}$$

subject to

$$W^{\mathsf{T}}.A.Z \le B\_{\max} - \left. W^{\mathsf{T}}.B - W^{\mathsf{T}}.A.M.P \right. \tag{19}$$

and

$$-M.P(i) \le z\_i \le 1 - M.P(i) \forall i \in \left[1:r\right] \tag{20}$$

and

$$-T \le Z \le T \tag{21}$$

where T is an r-dimensional vector containing all the ti 's, which are dummy variables that are introduced to avoid the use of absolute value in the formulation and replace it by a simple minimization of a summation. Hence, at each time instant, the constraint matrix is formed, and then the optimization problem is solved. Since the problem is linear, it is solved efficiently using interior point method. In the experiments performed in this work, the optimization problem was solved in 10–15 iterations for an average time period nearly equal to 100 ms. Thus, by scheduling the rates' update at every 5 s, each communication rate is computed by averaging the values calculated in the last 50 iterations. On the other hand, it is worth noting here that the internal model matrix *M* grows quickly with the increase in the number of robots used, which would affect the complexity of the problem and the speed of convergence. Therefore, in the following section, the developed optimization technique was tested on a system of two collaborating humanoid robots. The proposed method could be considered a basis for a framework for developing highly complex algorithms for systems involving realtime bandwidth optimization, where multiple users control multiple collaborating robots in various scenarios.

### **2.3. Dynamic optimized bandwidth algorithm experimental verification**

<sup>1</sup> *Z* (15)

*t* (18)

. . £- - . .. . *<sup>T</sup> T T W AZ B W B W AM P max* (16)


. . £- - . .. . *<sup>T</sup> T T W AZ B W B W AM P max* (19)



's, which are dummy variables that are

Since the problem is an L1 norm problem, it needs to be slightly modified in order to get rid of the absolute value that complicates the solution of the problem. Thus, the problem can be

introduced to avoid the use of absolute value in the formulation and replace it by a simple minimization of a summation. Hence, at each time instant, the constraint matrix is formed, and then the optimization problem is solved. Since the problem is linear, it is solved efficiently using interior point method. In the experiments performed in this work, the optimization problem was solved in 10–15 iterations for an average time period nearly equal to 100 ms. Thus, by scheduling the rates' update at every 5 s, each communication rate is computed by averaging the values calculated in the last 50 iterations. On the other hand, it is worth noting

=1 å *r i i*

where T is an r-dimensional vector containing all the ti

subject to

188 Recent Advances in Robotic Systems

and

translated to minimize:

subject to

and

and

In order to illustrate the use of the formulation, we apply it for the case, where an operator drives two collaborating robots. The mission consists of navigating a delimited path to reach a predetermined destination while avoiding obstacles and preserving a formation. The formation is characterized by a distance of 60 cm that separates the two robots, while keeping alignment nearly zero as in **Figure 1**.

**Figure 1.** Two robots in a formation requiring a fixed distance D = 60 cm. (a) Without error (b) with vertical and hori‐ zontal error.

The robots' feedback includes visual and haptic data reflecting the environmental conditions. Ultrasonic sensors mounted on each robot allow the detection of obstacles in the navigation path. Each returns an integer value, indicating the distance to the nearest detected obstacle, which is fed back to the operator in the form of haptic feedback. In addition, the camera mounted on top of each robot provides visual feedback of the area in front of the formation. In order to allocate bandwidth based on changes in task conditions, *IE*s such as the distance to obstacles with respect to each robot and the speed of the swarm are monitored. Also, to maintain a high performance at high speeds, the speed of the swarm is one of the dynamic events that are monitored. Moreover, *QoC* factors are measures of how well the robots are collaborating together to efficiently accomplish the predetermined task. Specifically, the errors in position (Δ*x* and Δ*y*) between the robots indicating the deviation of the robots from the required formation are the quantities reflecting the change in the quality of the collaborative task, which need to be monitored. During the task execution, the visual and haptic feedback rates, the rates of commands and the rates of *R2R* communication are allocated based on realtime observations related to occurrence of *IEs* in the environment and to changes in *QoC* between robots. Hence, the elements of *X* are defined as follows:


The observations in *pi* 's are also defined below:


Each element of *P* is normalized with respect to the maximum value that the sensors could measure (in case of *p*1 and *p*2), to the maximum value that the system can reach (in case of *p*3) or to the maximum allowed error beyond which the task built upon the formation would start being affected (in case of *p*4 and *p*5). It is worth mentioning that *p*3 is introduced in order to detect any sudden changes in the system dynamics that could be captured by monitoring the speed of the formation, which would also require significant changes in video feedback.

Knowing that the maximum distance detected by the robots' sensors is 2.5 m, *p*1 and *p*<sup>2</sup> are defined as follows:

$$p\_1 = \frac{2.5 - \text{Distance from R1}}{2.5} \quad p\_2 = \frac{2.5 - \text{Distance from R2}}{2.5}$$

Given that *v*1 and *v*<sup>2</sup> are the average forward/backward and sideway speed of the formation, respectively, and knowing the maximum forward and sideway speed that the robots could reach is 6 and 4 cm/s, respectively, *p*3 is defined as follows:

$$p\_3 = \frac{\sqrt{\nu\_1^{\,^2} + \nu\_2^{\,^2}}}{\sqrt{\nu\_{1\text{max}}\,^2} + \nu\_{2\text{max}}\,^2}$$

where the exact values used in this case are *v*1*max* =6 cm / s and *v*2*max* =4 cm/s.

Finally, *p*4 and *p*5 are defined with respect to positioning error in the horizontal (Δ*x*) and vertical (Δ*y*) directions, respectively, as follows:

time observations related to occurrence of *IEs* in the environment and to changes in *QoC*

Each element of *P* is normalized with respect to the maximum value that the sensors could measure (in case of *p*1 and *p*2), to the maximum value that the system can reach (in case of *p*3) or to the maximum allowed error beyond which the task built upon the formation would start being affected (in case of *p*4 and *p*5). It is worth mentioning that *p*3 is introduced in order to detect any sudden changes in the system dynamics that could be captured by monitoring the speed of the formation, which would also require significant changes in video feedback.

Knowing that the maximum distance detected by the robots' sensors is 2.5 m, *p*1 and *p*<sup>2</sup> are

Given that *v*1 and *v*<sup>2</sup> are the average forward/backward and sideway speed of the formation, respectively, and knowing the maximum forward and sideway speed that the robots could

<sup>+</sup> <sup>=</sup>

*v v <sup>p</sup> v v*

2.5 1 2.5 2 2.5 2.5 - - = = *Distance from R Distance from R p p*

> 2 2 1 2 <sup>3</sup> 2 2 1 2

*max max* +

between robots. Hence, the elements of *X* are defined as follows:

's are also defined below:

1 2

where the exact values used in this case are *v*1*max* =6 cm / s and *v*2*max* =4 cm/s.

reach is 6 and 4 cm/s, respectively, *p*3 is defined as follows:

**•** *x*1: Rate of visual feedback from R1

**•** *x*2: Rate of haptic feedback from R1

**•** *x*3: Rate of visual feedback from R2

**•** *x*4: Rate of haptic feedback from R2

**•** *x*6: Rate of commands generation

**•** *p*1: Distance to obstacle from R1

**•** *p*2: Distance to obstacle from R2

The observations in *pi*

190 Recent Advances in Robotic Systems

defined as follows:

**•** *x*5: Rate of R2R collaboration information exchange

**•** *p*3: Speed of formation (Combined from R1 and R2)

**•** *p*4: Positioning error in the horizontal direction Δ*x*

**•** *p*5: Positioning error in the vertical direction Δ*y*.

$$p\_4 = \min\left(\frac{\left|e\_\times\right|}{e\_{\times\_{\omega\_{\max}}}}, 1\right); \quad p\_3 = \min\left(\frac{\left|e\_\times\right|}{e\_{\times\_{\omega\_{\max}}}}, 1\right).$$

Additionally, the maximum allowed positioning error in the horizontal and vertical directions *exmax* and *eymax* for the application are estimated to be 2.5 and 5 cm, respectively.

Furthermore, the experiment is performed for a maximum bandwidth *Bmax* equal to 1.4 Mbps. This value is deemed to be convenient for such small swarm with very few sensory data and video frame to exchange. Moreover, the imaging resolution of the robot's cameras is 160 × 120 × 3, which implies that each frame is formed of 3 matrices and thus, *w*1 = *w*<sup>3</sup> = 160 × 120 × 3 × 8 *bits* = 460,800 *bits*. As for the four remaining rates, the size of the data packets sent to/by each agent is considered to be 1500 *Bytes*. Hence, *w*2 = *w*4 = 1500 × 8 = 12000 *bits*. But since the collaboration information exchanged requires both robots to send one packet, and since the operator generates a packet for each robot as command, then *w*5 = *w*<sup>6</sup> = 2 × 12000 *bits* = 24000 *bits*. Consequently, *W* is represented as follows:

### *W* = [460800 12000 460800 12000 24000 24000]

In addition, the matrices *A* and *B* are set based on the allowed minimum and maximum of these rates. During experimentation, a frequency of 1 Hz is allocated as minimum for all rates. As for the maximum rates of cameras, it is equal to the total bandwidth from which the minimum consumption of all other sensors is removed. For this application, *x*1*max* and *x*3*max* are chosen to be equal to 2 Hz. The force feedback (*x*2*max* and *x*4*max*), collaboration information exchange (*x*5*max*), and commands rates (*x*6*max*) are accorded a maximum rate of 5 Hz. Thus, using Eqs. (4) and (5), matrices *A* and *B* are calculated to be as follows:

*A B* = = diag 1 4 1 4 4 4 ; 1 1 1 1 1 1 ([ ]) [ ]

Finally, a fixed matrix *M* is adopted in the implementation as described earlier. Each row of *M* contains the weights of the observations that affect the corresponding rate. The weights for all set of observations corresponding to each rate are allocated in a way to have the sum of each row remain equal to 1. It is worth mentioning that for the speed of the formation, weights of 25% are allocated in the rows of *M* corresponding to all the *R2U* and *U2R* rates (*x*1 to *x*4), since it was found to be the least dynamic observation. However, the rate of commands was deemed to be mostly dependent on the speed of the formation *p*3. Thus, *M* would be as follows:


In the experiments, the aforementioned values of *A, B, M, W* and *Bmax* are adopted while solving the optimization problem and allocating rates.
