## 2 Preliminaries
### Data Distribution Service (DDS)  
DDS middleware has emerged as a solution for many novel distributed frameworks. It boosts the publish-subscribe technique for transmitting data, commands, and events between the agents. Agents that are producing data publish the data, and they can subscribe to the data from other agents. The middleware is responsible for providing the data to subscribers who subscribed to that topic. It has been shown that DDS middleware is a very effective approach for many-to-many communication networks as it is very successful in transmitting time-critical information. DDS offers a group of Quality-of-Service (QoS) regulations to adapt to communication behaviors. These QoS regulations might be used separately or as a set in order to influence different aspects of communications, such as reliability, durability, and data persistence. These QoS regulations are a feature of the DDS which are not available in all other middleware approaches to communication. This feature guarantees high reliability, performance, low latency integration of DDS data transmission, and DDS interoperability with the capability of DDS frameworks to communicate from various vendors. The standardized DDS Real-Time Publish-Subscribe (RTPS) protocol allows for connection interoperability between various DDS frameworks. The DDS middleware was considered for our study for the formation and containment control of heterogeneous systems. Each agent must publish its velocity and subscribe to other agents' velocities. A selection of Quality of Service regulations must be fulfilled for interaction between the agents (publisher/subscribers), such as:  
* Durability: Determines whether or not the previous data sent by the publisher has been received by a new subscriber.
* Reliability: Specifies whether or not the publisher will resend information lost over the network. Reliability involves two setups: BEST EFFORT (not re-send data lost) and RELIABLE (resend data lost).
* History: Determines a publisher's preservation of the data received or sent to a subscriber. History involves two setups: KEEP LAST and KEEP ALL.  
\begin{table}
\begin{tabular}{l l} \hline \hline For the UAV & \\ \(\eta_{1}\in\mathbb{R}^{3\times 1}\) & \(\eta_{2}\in\mathbb{R}^{3\times 1}\) & \(\text{the vector representing $z$, $y$, and $x$ coordinates.}\) \\ \(g\) & \(\text{represents the gravity acceleration.}\) \\ \(m\) & \(\text{represents the mass.}\) \\ \(k_{t}\) & \(\text{is the drag coefficient.}\) \\ \(u\) & \(\text{is the total thrust force input created by the 4 propellers.}\) \\ \(\mathbf{I}\in\mathbb{R}^{3\times 3}=\text{diag}(I_{x},I_{y},I_{z})\) & \(\text{represents the quadrotor’s inertia.}\) \\ \(\boldsymbol{v}_{2}\) & \(\text{is the angular velocity.}\) \\ \(z_{e}\) & \(\text{is equal to }[0,\ 0,\ 1]^{T}\). \\ \(I_{R}\) & \(\text{represents the propeller inertia.}\) \\ \(k_{r}\) & \(\text{represent the rotational drag.}\) \\ \(\times\) & \(\text{is the cross product.}\) \\ \(M\in\mathbb{R}^{6\times 6}\) & \(\text{is the inertia matrix.}\) \\ \(C(\
u)\in\mathbb{R}^{6\times 6}\) & \(\text{is the coriolis matrix.}\) \\ \(D(\
u)\in\mathbb{R}^{6\times 6}\) & \(\text{is the damping matrix.}\) \\ \(g(\eta)\in\mathbb{R}^{6}\) & \(\text{is the gravitational vector.}\) \\ \(\tau\in\mathbb{R}^{6\times 1}\) & \(\text{is the input control signals.}\) \\ \(M_{RB}\) & \(\text{is the rigid body’s inertia matrix.}\) \\ \(M_{A}\) & \(\text{represents the additional momentum and forces.}\) \\ \(r_{g}=[r_{g_{1}}\,r_{g_{2}}\,r_{g_{3}}]^{\top}\) & \(\text{is the gravity vector.}\) \\ \(I_{3\times 3}\) & \(\text{is the 3-by-3 identity matrix.}\) \\ \((I_{0}=I_{0}^{\top}>0)\) & \(\text{is the inertia tensor.}\) \\ \hline \hline \end{tabular}
\end{table}
Table 1: List of the main symbols.  
* Ownership: Determines whether a subscriber will simultaneously accept new samples from multiple publishers. Ownership involves two setups: SHARED and EXCLU-SIVE.