Mo3: a Modular Mobility Model for future generation mobile wireless networks

Mobility modeling in 5G and beyond 5G must address typical features such as time-varying correlation between mobility patterns of different nodes, and their variation ranging from macro-mobility (kilometer range) to micro-mobility (sub-meter range). Current models have strong limitations in doing so: the widely used reference-based models, such as the Reference Point Group Mobility (RPGM), lack flexibility and accuracy, while the more sophisticated rule-based (i.e. behavioral) models are complex to set-up and tune. This paper introduces a new rule-based Modular Mobility Model, named Mo3, that provides accuracy and flexibility on par with behavioral models, while preserving the intuitiveness of the reference-based approach, and is based on five rules: 1) Individual Mobility, 2) Correlated Mobility, 3) Collision Avoidance, 4) Obstacle Avoidance and 5) Upper Bounds Enforcement. Mo3 avoids introducing acceleration vectors to define rules, as behavioral models do, and this significantly reduces complexity. Rules are mapped one-to-one onto five modules, that can be independently enabled or replaced. Comparison of time-correlation features obtained with Mo3 vs. reference-based models, and in particular RPGM, in pure micro-mobility and mixed macro-mobility / micro-mobility scenarios, shows that Mo3 and RPGM generate mobility patterns with similar topological properties (intra-group and inter-group distances), but that Mo3 preserves a spatial correlation that is lost in RPGM - at no price in terms of complexity - making it suitable for adoption in 5G and beyond 5G.


I. INTRODUCTION
T HE design of wireless mobile networks evolved in the last 20 years, from GSM/GPRS to UMTS/HSDPA, from LTE to 5G and the upcoming beyond 5G, along two main trends: increased bandwidth and increased spatial density of wireless devices. Large channel bandwidths require greater physical layer flexibility, so to meet user needs and provide better robustness to channel impairments. One of the physical layer parameters that highlights this trend is the Transmission Time Interval (TTI), defined as the shortest time interval over which link configuration can be adjusted. Figure 1 shows TTI across four generations of wireless standards (from 20 ms in GSM/Edge [1] to about 0.15 ms in 5G systems [2], [3]). Most likely, TTI A preliminary and simplified version of the correlated and group mobility model presented in this paper was previously made available online, but not published elsewhere: https://arxiv.org/abs/1704.03065. will further decrease in beyond 5G, to support ultra-Reliable Low Latency Communications (uRLLC) [4].
Spatial density of wireless devices went from about 1000 devices per square kilometer in GSM, to millions of devices per square kilometer in 5G [5]. The average distance between transmitter and receiver therefore decreased: from hundreds of meters in GSM to a few meters and below in 5G. The steady increase in device density across generations led to major shifts in the design of physical and network layers. At physical layer, signal processing techniques were developed in order to cope with challenging throughput and latency requirements of dense deployments. In particular, beamforming, based on Multiple Input Multiple Output (MIMO), introduced in 3G HSPA and 4G and now fully integrated in 5G, is expected to play a key role in beyond 5G, with the deployment of Massive MIMO [6]. Steering the beam is possible if the relative position of transmitter vs. receiver is known, and requires swift reactions to position changes [7]. At network layer, network topology went from a purely centralized configuration with links spanning over thousands vs. hundreds of meters in 2G vs. 3G, to a mixed nature, with shorter links including both infrastructure to device and Device-To-Device (D2D) connections, as proposed -albeit with limited success -in LTE [8]. Cellular networks in 5G and beyond 5G are expected to take full advantage of direct connectivity between devices [9] and address scenarios -so far restricted to current and legacy Wireless Local Area Networks technologies -in which devices directly exchange data, move in a coordinated manner, although keeping a certain degree of independence in their individual mobility patterns. Examples are: • search and rescue in response to emergency calls or disasters. Best practice rules require operators to work in groups of at least two individuals who keep visual or voice contact with one another [10]; • tactical and security teams, with on-demand formation, merging, and splitting of groups [11]; • swarms of Unmanned Aerial Vehicles (UAVs) flying in variable formation [12], [13]; • cooperative communications in cognitive networks [14]. Note that although distances between devices in a same group may be small (i.e. small micro-mobility, in the order of the meter or sub-meter) the same may not be true for distances covered by groups (i.e. large macro-mobility, in the order of the km). Scenarios can be thus characterized as either mixed macro-mobility / micro-mobility, where groups move over distances much larger than distances within a group, or pure micro-mobility where covered distances are small for both groups and within groups. Moreover, when compared against legacy WLANs, 5G and beyond 5G communications are characterized by less favourable propagation features: the combination of higher operation frequencies and possibly lower radiated power due to the massive number of devices will in fact lead to a reduced radio coverage; cooperative and coordinated mechanisms between devices may be thus introduced [15]. A limited radio coverage also amplifies the impact of device mobility on network connectivity, even when movements are within a short range [16].
Mobility models for 5G and beyond 5G should therefore accurately address both individual and group mobility, independent of distance. This should be done dynamically to also cover situations in which the correlations of mobility patterns of individual nodes may or may not lead to the emergence of groups. Early models of correlated mobility, referred to as reference-based models, are unsuited for the task, since in those models groups are imposed at start, and not dynamically created; for this reason, they are also called group mobility models. Another inherent limitation of these models is the stringent constraints imposed on the mobility patterns of nodes within a group, that limit movements to random variations around either a group reference position (see the seminal Reference Point Group Mobility (RPGM) model [18]), or a group reference speed (see the Reference Vector Group Mobility (RVGM) model [19]). Extensions of the above models introduced new features such as group disbanding and merging, and management of geographical constraints, with no change in the underlying referencebased mechanism. Modelling complex mobility patterns of individual nodes was addressed by so-called behavioral models [26], [20]. These models define rules for the behavior of each node that may include interaction with other nodes and with the environment. For example, two or more nodes may be assigned with a mutual attraction rule that keeps them in close proximity. Collision and obstacle avoidance, an absent component in reference-based models, is obtained by repulsion rules preventing collisions between nodes or with obstacles. In behavioral models, each rule is typically implemented as a force; the intensity of the force is determined based on position, speed and direction of the node itself and of other nodes, and on the position of obstacles. Each force in turn defines an acceleration vector associated with the corresponding rule, and the sum of the acceleration vectors determines the acceleration vector of a node, and by integration over time its speed vector. In behavioural models, groups are not defined at start, but rather emerge from nodes sharing a same set of rules, and having thus similar mobility patterns; each node has however its own speed vector, and thus its individual mobility is modeled without any loss of accuracy caused by the introduction of group mobility. Furthermore, by applying different rules to different nodes, behavioural models can describe correlated mobility scenarios that cannot be addressed by reference-based models, thus providing higher flexibility. Tuning behavioral model to obtain specific spatial correlated mobility patterns is, however, particularly complex, and scenarios that are easily modeled in RPGM become unfeasible with behavioural models [27]. Consider  3 with existing mobility models based on the set of design features as proposed in [17], complemented with the obstacle avoidance feature. The set of selected mobility models follows [17].
for instance, nodes of a same group that must be within a predefined maximum distance; obtaining this behaviour with behavioural models requires a difficult-to-find balance between mutual attraction vs. repulsion forces, based on the careful selection of several weighting variables [20]. For this reason, behavioural models -although attractive -are unpractical and found little application in wireless networking, where the simplicity of reference-based models was most often preferred over accuracy. This choice becomes however too simplistic in view of 5G and beyond 5G network scenarios, calling for a model that combines the intuitiveness of reference-based models and the accuracy and flexibility of behavioral models. This paper introduces a new mobility model, called Modular Mobility Model (Mo 3 ), that models, as behavioural models, the mobility of individual agents, but is as straightforward to tune as a reference-based model. In analogy to behavioral models, Mo 3 determines the mobility of nodes by defining rules that describe their individual mobility and the effect of mutual interactions as well as with the environment. Mo 3 , however, does not implement rules as forces. Rather, each rule determines a modification of the speed and direction of movement of a node, without requiring the definition of an acceleration vector and avoiding thus the introduction of weighting variables. The set of rules in Mo 3 was defined based on the observation that mobility patterns typically result from modifications to planned trajectories, i.e. a target destination and an initial speed and direction. The deviation from a planned trajectory is usually caused by either voluntary interactions with other agents (correlated mobility) or reactions to external events (collision and obstacle avoidance). Consider for example the case of an individual who visits an art exhibition and is part of a group. At a given point in time, the individual may depart the planned trajectory toward an art piece of interest, due to either voluntary behavior (reunite with the group) or external events (avoiding collision with another visitor or with an obstacle). Note that any modification to speed and direction will stay within the physical limits of the individual. Similar behavior can be observed for fleets of vehicles or animal herds, for example. Moving from this observation, Mo 3 defines five rules: Individual Mobility, Correlated Mobility, Collision Avoidance, Obstacle Avoidance and Upper Bounds Enforcement. Note that the phenomena that determine a given mobility behavior are beyond the scope of this paper; Mo 3 takes this information as an input, coded in the Individual Mobility and Correlated Mobility rules settings, and generates accurate and artifact-free mobility patterns, independent of the considered grouping behavior and mobility scale. The Individual Mobility rule, in particular, can be implemented by adopting any existing individual mobility model, to be selected according to the desired mobility behavior. Table 1 shows a comparison of Mo 3 against existing reference-based and behavioral models, as proposed in [17]. Table 1 considers the same models analyzed in [17] and includes the features identified as relevant in [17], with the addition of the obstacle avoidance feature. Table 1 shows that Mo 3 provides all the relevant features, and highlights that existing models only provide a subset of the features, in most cases the ones required to model specific mobility scenarios.
The paper is organized as follows. Section II reviews and discusses existing models. Specifically, Section II-A reviews individual mobility models in order to identify suitable candidates for the Individual Mobility rule in Mo 3 , while Section II-B provides a critical review of the existing correlated mobility models. Section III includes an exhaustive description of the Mo 3 model. The section highlights the modular nature of Mo 3 : each of the rules characterizing Mo 3 is paired with a module, that can be replaced without affecting the others. This modularity favours extensions and modifications to Mo 3 and, to this purpose, access to an open source software implementation of Mo 3 is provided. Section IV provides examples of emulation of existing correlated mobility models using Mo 3 . Section V compares then Mo 3 VOLUME 4, 2016 Individual mobility models determine the pattern of each node by varying its speed vector, defined at generic time t as: v(t) = v(t)e jθ(t) , where v (t) is the speed of movement and θ (t) is the direction of movement, defined as the angle between the x axis and the speed vector in the selected coordinate system. The position of a node at any time τ between two updates of v is thus: where t lu is the time instant of last speed vector update (see Figure 2). Models are commonly classified as memoryless vs. memory-based, based on how v and θ are updated.

1) Memoryless mobility models
In memoryless models, updates to values of speed and direction are independent of current and previous values. Well-known memoryless models are: • the Random Walk model, also referred to as Brownian model, widely used to determine the impact of mobility on cellular network performance [28]. The model has the desirable property of leading to a uniform spatial distribution of the position of a node in the movement area. Statistical models of average cell crossing time, average channel holding time, and average number of handovers, were developed using a Random Walk user mobility model [28]. The model was also used in the analysis of mobile ad-hoc routing protocols in presence of node mobility [29].
In the Random Walk model, the selection of a new speed and direction is triggered by either of the following events: -A periodic timer, set to a predefined update period T , expires [30]; -The node covers a predefined distance D [31].
• the model proposed by Ko and Vaidya [32] as a simple way to introduce mobility in the performance evaluation of the Location Aided Routing protocol, with no claim for specific advantages over other mobility models. According to the model, a node selects a random direction θ at simulation start time. The node also selects its speed v according to a uniform distribution within a predefined interval [v min , v max ], and a distance d to be covered at speed v, according to an exponential distribution. After covering the distance, new values are selected for v, θ and d. When the node hits a boundary of the simulation area, it is perfectly reflected within the area. • the Random Waypoint model, originally proposed in [33]; this model is similar to the Random Walk model, but the trajectory of a node is determined here by a sequence of destination points to be reached. When a node reaches a destination point it pauses for a random time, and then moves towards the next destination point with a new random speed. It has been observed that the Random Waypoint models leads to an uneven spatial distribution of nodes [34], which causes large variations in the average number of neighboring nodes (i.e. nodes within a given distance), especially on the short term [31]. Variations of this model have been proposed to address this issue, such as the Random Direction model, where the node selects a speed vector rather than a destination, and moves according to the selected speed vector until it reaches a boundary of the simulation area when, after a predefined pause time, a new speed vector is selected [34].
All memoryless models share the issue of potentially causing sharp turns and steep variations in speed when a new speed vector is selected, making it impossible to meet upper bounds on linear acceleration and angular speed, and possibly leading to unrealistic mobility patterns.

2) Memory-based models
Memory-based models lead to more realistic patterns by introducing memory in the selection of speed and direction. Well-known models that adopt this approach are: • the Inertia mobility model [35], in which new values for v and θ are selected at each position update with probability ρ, while the current set is kept with probability 1 − ρ. Parameter ρ models an inertia that tends to keep the node on the current trajectory: the higher the value of ρ, the lower the probability of selecting a new speed vector. For ρ = 0 the Inertia model coincides with the Random Walk model. The Inertia model provides a straightforward mechanism for introducing memory in the selection of the speed vector. New values of v and θ have, however, no correlation with respective previous values. This leads to unrealistic patterns characterized by abrupt turns and speed variations that make it difficult to meet requirements on maximum linear and angular speeds; • the Gauss-Markov model [36], in which the component v i of the speed vector along direction i (with i ∈ [x, y] in a two-dimensional space) at time t is the outcome of a Gauss-Markov random process v i (t), that is a stationary Gaussian process characterized by the following autocorrelation function: i and µ i are the variance and the mean of v i (t), respectively, and parameter β ≥ 0 introduces a memory effect. The mobility patterns generated by this model are governed by properly setting the β parameter. The Gauss-Markov model provides smoother patterns than Inertia, but still does not provide a straightforward way to meet constraints on maximum speed and rotation in the generation of a mobility pattern. The adoption of a Gaussian probability density function, in particular, may lead to unrealistic values for node speed.
• the Boundless mobility model [37], named after the idea of mapping a bidimensional simulation area on the surface of a three-dimensional torus: a node that reaches an edge of the area disappears, and reappears instantaneously on a point on the opposite edge, while keeping the same speed vector. The algorithm for speed and direction update proposed in [37] can be, however, adopted within a traditional bounded movement area as well. In the Boundless model, the speed vector is updated every T seconds according to the following rules: where: v max is the maximum speed; -∆v is the speed variation, uniformly selected at every update time in the interval [−a max T, a max T ], where a max is the maximum linear acceleration allowed for a node, measured in m/s 2 ; -∆θ is the direction variation, uniformly selected at every update time in the interval [−γ max T, γ max T ], where γ max is the maximum rotation speed allowed for a node, measured in rad/s.
The Boundless model shares with the Gauss-Markov model the capability of producing realistic movement patterns. The model has, however, the advantage of allowing the introduction of limits on speed, acceleration and rotation speed of nodes, making it easier to achieve realistic mobility patterns that meet predefined upper bounds.

B. CORRELATED MOBILITY MODELS
Correlated mobility models can be divided into three families: reference-based models, behavioral models, and models based on social network theory [38]. In reference-based models, correlation typically implies the presence of groups; the positions of nodes belonging to a same group is determined as a random deviation from a common reference, defined either as a reference position or as a reference speed vector (see Section II-B1). In behavioral models, nodes select their speed and direction according to predefined rules; in these models, groups naturally emerge from more nodes sharing same rules (Section II-B2). Social network theory models match the mobility patterns to those of people in a community (Section II-B3). Section II-B4 compares the different models and identifies benchmarks for performance evaluation.

1) Reference-based models
The Exponential Correlated Random (ECR) mobility model, proposed in [39], was one of the first models addressing correlated mobility. ECR models the mobility of a group, but not of individual nodes. The Reference Point Group Mobility (RPGM) model was designed in order to overcome the limitations of ECR, by allowing the description of group as well as individual node mobility within a group [18]. RPGM defines a logical reference point for each group, that often coincides with the position of one of the nodes in the group (group leader), whose movement is followed by all nodes in the group (standard nodes). The path of the group leader is typically generated according to an individual mobility model; for example, the Random Waypoint model (see Section II-A) was used in [18]. The position of standard nodes is generated randomly, according to a uniform distribution for both angle and distance from the reference position of the leader (within d max ), and is refreshed every ∆t seconds. The Structured Group Mobility Model (SGMM) [40] extended RPGM by introducing different statistical distributions for the position of different standard nodes.
In RPGM-based models standard nodes are not associated with a speed vector: their position is in fact only known at each position update at time t = k∆t. In 5G and beyond 5G scenarios, the adoption of a short ∆t to match the TTI parameter, leads to erratic mobility patterns for standard nodes, as shown in Figure 3, presenting the patterns generated for a group leader and a standard node in the same group for three different ∆t values. Figure 3 highlights that, although on average the standard node follows the group leader for all ∆t values, its pattern shows an increasing variability as ∆t decreases. Furthermore, as shown in Section V-B3, the maximum speed v for a standard node, for small ∆t, is about v = 2d max /∆t, which leads to unreasonable speeds. The Reference Velocity Group Mobility (RVGM) model [19] proposed the use of a reference speed vector, rather than a reference position, so that each node has its own speed vector. Here, a random deviation with respect to VOLUME 4, 2016   reference is introduced on the speed vector rather than on the position of standard nodes. The period T SU with which the speed vector of a standard node is updated is an independent factor, that is tuned by the requirements of the mobility scenario. At any instant in time, the position of a node can be determined by a simple calculation based on the current speed vector; this solves the problem of erratic behaviour of standard nodes observed in RPGM, when frequent updates are required. However, RVGM does not provide any mechanism to preserve physical proximity within a group, or to restore it by forcing a standard node to rejoin its group, and this autonomy allows standard nodes to drift away. This eventually leads to a loss of cohesion within groups, as shown in Figure 4. Figure 4 shows the average distance within a group of M = 5 nodes, as a function of time, for different values of T SU . All nodes are placed in a same position in t = 0 s and, at each update, relatively small deviations from the reference vector are allowed (see caption of Figure 4 for details). Results show that the average distance steadily increases over time for all T SU values, highlighting the loss of physical proximity within the group. A common trait of reference-based models discussed so far is a static definition of groups, that is no mechanisms are defined to change the composition of groups. A referencebased model that allows group merging and splitting is the Reference Region Group Mobility (RRGM) model [22]. RRGM defines a set of target destinations for groups, and corresponding reference regions surrounding the destinations. The model manages group merging by assigning the same destinations/reference regions to two groups, and group splitting by assigning a new reference region to part of the nodes in a group. The model places however several restrictions on when group merging and splitting can happen in time, and on which groups will be merged or split, as a function of their positions and of the position of the new target destination. Furthermore, the complexity in setting up the model is higher than in RPGM and RVGM, losing the simplicity that is a key advantage of reference-based models.

2) Behavioral models
The concept of behavioral mobility modeling was first adopted in the Behavioral Mobility Model (BMM) [26]. In behavioral models, the mobility pattern of a node is governed by a set of rules, expressed as forces on the node, that is, acceleration vectors. For each force j one has an acceleration vector a j ; the combination of acceleration vectors leads to a global acceleration vector a, that in turn determines the speed vector, and eventually the trajectory of the node. The set of rules proposed in [26] determines the behavior of a node with respect to a) node destination, b) surrounding environment, and c) presence of other nodes. The main "desired destination" rule is the Path Following rule, that introduces an acceleration vector towards a pre-set destination, under a node maximum speed constraint. Environmental rules include Wall Avoidance and Obstacle Avoidance, that generate repulsive forces. Finally, rules that determine the behavior of a node in the presence of other nodes include Mutual Avoidance, avoiding collisions between nodes, and Group Centering and Velocity Matching, forcing nodes to stay close to one another in the space vs. speed domains, and are the behavioral equivalents of RPGM vs. RVGM. An extension of [26], referred to as Behavioral Mobility Model with Geographic Constraints (BMM-GC) [41], provides a more accurate modeling of the interaction with obstacles. Another model adopting a behavioral approach for the interaction between nodes quite similar to [26] is the Group Force Mobility Model (GFMM) [20]. Behavioral mobility modeling was also investigated in [42], where a modular approach is proposed, in which basic rules are combined in order to generate complex behaviors such as group mobility. Basic rules include Seek, Flee, and Arrive for individual mobility, and Pursuit, Evade and Interpose for modeling the interaction between nodes. Finally, in [43] the rules generating acceleration vectors are based on a sociological analysis of the impact of social ties between individuals on mobility patterns. A major drawback of behavioral mobility models is their complexity at set-up, due to the need of selecting normalizing and scaling factors to determine the strength of the forces. Furthermore, mobility patterns that are easy to describe in reference-based models, e.g. a maximum distance between nodes in a group, are extremely difficult to describe with rules, as observed in [27].

3) Social network theory models
Studies on the interactions among members of a community inspired a third family of correlated mobility models, based on social network theory [38]. The Community Based Mobility Model (CMM) [24] introduces the concept of Interaction Matrix, with elements indicating the degree of social interaction between any two nodes, and the corresponding inclination to spend time together with a value between 0 and 1. Although CMM and its enhanced version Enhanced CMM [25] are designed for the specific scenario of social human interactions, the concept of the Interaction Matrix can be applied to different mobility scenarios. A similar approach is adopted in Mo 3 as part of the Correlated Mobility rule, as explained in Section III-B.

4) Benchmark selection
The comparison in terms of features presented in Table 1 and the review carried out in this section highlight that a large number of correlated/group mobility models have been proposed through the years; a fair question is thus how to select which models to consider as a benchmark when proposing and evaluating a new model. The proposed selection was based on two factors: the suitability of models to address the same wide range of mobility scenarios targeted by Mo 3 , and the intuitiveness in describing such scenarios. Based on the review of this Section, one may conclude that models based on social network theory are hardly adaptable to the scenarios identified in Section I. Behavioral models, on the other hand, are potentially capable of addressing any scenario; however, the difficulty in setting them up, preventing their widespread adoption, does not favor their selection as benchmarks. For this reason, the selected benchmarks belong to the reference-based class, as further discussed in Section V: RPGM, by far the most popular and preferred choice for group mobility modeling [44], and RVGM, another general purpose reference-based model. The validity of this selection is also reflected by the impact the selected models on the research community, as measured by the citation indexes of related scientific literature (see Appendix A).

III. THE MO 3 MODEL
Mo 3 models the mobility of each node by applying five rules: Individual Mobility, Correlated Mobility, Collision Avoidance, Obstacle Avoidance and Upper Bounds Enforcement. The peculiar and novel aspect of Mo 3 consists in its modularity. Each rule is implemented in a dedicated module, and each module can be replaced without affecting the other modules, providing thus ample possibility to expand Mo 3 and tailor it for new mobility scenarios that may emerge in the future. Furthermore, depending on the considered mobility scenario, modules can be independently turned on and off, and can operate with different update periods. The modular nature of Mo 3 also allows to introduce mobility in the third dimension for selected rules; Individual Mobility, Correlated Mobility and Upper Bounds Enforcement rules, in particular, support tridimensional mobility, while the introduction of this feature in Collision Avoidance and Obstacle Avoidance rules is left for future work. When tridimensional mobility is selected, the modules corresponding to rules that do not support this feature can be selectively disabled. Mo 3 supports tridimensional mobility by adopting a spherical coordinate system, where the speed vector v(t) associated to a node is represented as a triplet {v(t), θ(t), ϕ(t)}: v(t) and θ(t) have the same meaning as in the bidimensional speed vector introduced in Section II-A, while φ(t) indicates the elevation angle, defined as the angle between the speed vector and the {x, y} plane, as shown in Figure 6, where the dependence on time is omitted to simplify notation. Correspondingly, (1) becomes: where t lu and τ are defined as in (1), θ ∈ [−π, π], while ϕ ∈ [−π/2, π/2]. A bidimensional mobility scenario can be modeled by setting ϕ(t) = 0 ∀t; in this case (4) coincides with (1) for VOLUME    any arbitrary choice of z(0). This scenario is considered throughout the paper, in order to simplify the graphical representation of patterns and allow for comparison with the bidimensional RPGM and RVGM models adopted as benchmarks; examples of patterns in a tridimensional mobility scenario are however provided in Sections III-A and III-B. In Mo 3 , at each mobility update the speed vector v i IN for a generic node i is modified by sequentially applying each of the five rules. The first rule to be applied takes thus as an input the current speed vector v i IN ; the resulting speed vector is transferred to the second rule, and so on; when one module is not active or skips a given mobility update, the speed vector is transparently moved from its input to its output, without modifications. The output of the last rule is the new speed vector v i OU T . Note that the order of application defines a hierarchy between the rules: rules applied later prevail on those applied earlier. The order selected in this work is the following: 1) Individual Mobility; 2) Correlated Mobility; 3) Collision Avoidance; 4) Obstacle Avoidance; 5) Upper Bounds Enforcement. The order was determined as a reasonable model of the behavior described in Section I for a group of people, a herd of animals, or a fleet of vehicles: the need to meet constraints caused by correlated mobility supersedes the node's individual mobility model, and in turn the need to avoid collisions with other nodes and with obstacles takes precedence on e.g. keeping up with a group. Finally, the enforcement of bounds on linear and angular speeds prevails on everything else, even if this might result in a failure to avoid a collision. The resulting model is presented in Figure 5. Figure 5 highlights the special role of the Upper Bounds Enforcement rule, that compares the speed vector v i OA , resulting from the application of the first four rules, with the current speed vector v i IN , and ensures that the cumulative modifications applied to v i IN do not exceed the maximum allowed variations for linear and angular speeds. As a final note on the selected order, one might argue that establishing a hierarchy between collision avoidance and obstacle avoidance is somewhat arbitrary; however, as it will explained in Sections III-C and III-D, the Collision Avoidance and Obstacle Avoidance rules are designed to operate on mutually different mobility parameters, so to mitigate the risk of conflicts between the corresponding corrections. The five Mo 3 rules and corresponding modules are described in sections III-A to III-E; section III-F describes the setup procedure and summarizes the model input parameters, divided by module. Finally, Section III-G provides information on how to access an open-source software that implements the model. Note that the output speed vector of each module is labelled with a corresponding superscript, as shown in Figure 5. In the following, superscripts will be however dropped when possible, in order to simplify the notation, in which case the input speed vector is indicated as v i , and the corresponding output as v i .

A. INDIVIDUAL MOBILITY
Any individual mobility model can be adopted in Mo 3 to implement the Individual Mobility rule: the choice only depends on the specific mobility scenario under consideration, that defines the desired behavior for the nodes in the network. The model adopted in this works was selected based on the review carried out in Section II-A. The review highlighted that memoryless models typically lead to unrealistic mobility patterns due to the sudden changes in speed and direction. Among the memory-based models, the Boundless model emerged as a good compromise between accuracy and flexibility in providing realistic mobility patterns, as shown in Figure 7, presenting a node mobility pattern obtained with the Boundless mobility model in an area of 200x200 m 2 , with T = 0.05 s, γ max = π/2 rad/s, a max = 5 m/s 2 and v max = 5 m/s. An individual mobility model inspired by the Boundless model was thus adopted throughout this work, and in particular in the performance evaluation carried out in Section V. The model proposed in this work differs from the Boundless model under two aspects: first, the minimum speed, that is always set to 0 in (3) is explicitly defined as v min in the following; second, the model supports tridimensional mobility by means of the following speed vector update rules, that extend (3): where v max , ∆v and ∆θ are defined as in (3); ∆ϕ is the elevation angle variation, randomly selected at every update according to a uniform distribution defined on the interval [−δ max T, δ max T ], where δ max is the maximum elevation variation speed allowed for a node in rad/s. An example of tridimensional patterns achievable with this rule is presented in Figure 8.
It is worth reiterating that all the other rules defined in Mo 3 and described in the following subsections operate independently from the selected individual mobility model. The Individual Mobility rule is applied with a period T ≡ T IM .

B. CORRELATED MOBILITY
The Correlated Mobility rule relies on three key concepts: binding, binding condition and grouping condition. The concepts are defined as follows, for a generic node i: • A binding is a relation between the mobility patterns of two nodes. If a binding exists between the mobility patterns of i and of a second node j, j is referred to as mate of node i. The mates of nodes i form its so-called binding set B i ; i is by definition a member of B i . The size of B i is indicated with N i . • For each node j ∈ B i , the following binding condition, inherited from the model proposed in [45], is defined: where d ij = d ji is the distance between nodes i and j, and the distance D c is a tunable threshold. If the binding condition in (6) is satisfied, i is said to be connected to j. Note that i will always be connected to itself, since d ii = 0, and the corresponding binding condition is trivial. The set of mates i is connected to is referred to as its connected set C i , of size N c i . • A grouping factor ρ i is defined as: and the following grouping condition is defined on ρ i : where the threshold ρ min is also a tunable parameter 1 . The Correlated Mobility rule is applied to each node i with period T CM . The application of the rule consists of the following algorithm: 1) determine the binding set B i based on the existing bindings; 2) determine the connected set C i , by checking the binding condition for each j ∈ B i ; 3) evaluate ρ i and determine whether the grouping condition is satisfied. If this is the case, set the node i in a Free state and set v i ≡ v i ; if not, set the node i in a Forced state, and take a corrective action by choosing v i so that the grouping condition can be satisfied in the shortest possible time. More details on the definition of bindings, on the corrective action associated with the Forced state, and on the definition of connectivity are provided in the three following subsections.

1) Binding definition
The bindings between nodes are defined by providing a binding matrix BM of size M xM , where M is the total number of nodes in the network, defined as follows: On the other hand, bindings are not necessarily symmetric, so one can have The dependence on time t of the elements of BM allows to define dynamic bindings, a feature lacking in most models reviewed in Section II-B. The impact of dynamic bindings as provided by Mo 3 will be analyzed in Section V-B; out of simplicity, in the remainder of this Section a static case where bindings do not vary in time will be considered, and the dependence on t will be dropped. The binding matrix provides an intuitive representation of the correlation between mobility patterns: for a given node i, the size and the composition of its binding set B i can be immediately identified by inspecting the i-th row of BM . A few notable configurations for BM can be identified: • BM ≡ I -each node is only bound to itself; this corresponds to a complete absence of correlation. Each mode will move according to its own individual mobility model; • BM is a diagonal block matrix with the generic LxL diagonal block equal to J L 2 -each block defines a group as defined in the reference-based models reviewed in Section II-B. Figure 9 presents a few examples of binding matrices falling into one of the two above categories (see Figures 9a-9e). Note that mixed scenarios, where some nodes adopt a group mobility behavior while the remaining ones move according to an individual mobility model, can be described by simply defining diagonal blocks of size 1, as shown in Figure 9e. The flexibility provided by the binding mechanism allows, however, to model any configuration, including those not belonging neither to individual mobility nor to group/mixed mobility as described above. This provides Mo 3 with the capability of mimicking most of the correlated mobility models introduced in the literature. An example of this feature is shown in Figure 9f, presenting a binding matrix that defines three groups, formed by a) nodes 1, 2, 3, b) nodes 4, 5, 6 and c) nodes 7, 8. The binding matrix however also introduces inter-group bindings between nodes 1, 4 and 7, emulating the feature of Group Coordination, as defined in [17]. The capability of Mo 3 to emulate other models is further discussed in Section IV.

2) Corrective action for a node in Forced state
When i is in Forced state, the following corrective action is taken: 1) select the closest mate not part of C i , defined as: 2) select v i , θ i and ϕ i as follows: where the arctan2 (x, y) operator returns the principal value of arctan (y/x) in [−π, π].
Equations (12), (13) and (14) ensure that node i adopts the speed vector that will reach the current position of the selected mate k in the shortest possible time. The pair {θ ki , ϕ ki } identifies in fact the direction of the vector centered in the current position of node i and pointing to the current position of node k. The equations also address the case of bidimensional mobility, since in this case z i = z k and thus ϕ ki = 0; θ ki is therefore the direction from the current position of node i, (x i , y i ), to the current position of node k, (x k , y k ). Figure 10 shows an example of application of the Correlated Mobility rule in the case of a node (black circle) with a binding set of size N = 8, with ρ min = 0.5; arcs between nodes indicate connectivity as defined in (6). In Figure 10a the size N c = 3 of the connected set (striped circles) for the node leads to a grouping factor ρ = 0.43. The grouping condition is thus not satisfied, and the node moves toward the closest mate among those it is not connected to (white circles), until the condition is satisfied (Figure 10b, where N c = 4 and ρ = 0.57).

3) Definition of connectivity and meaning of Dc
The definition of connectivity, and the corresponding meaning of the threshold D c , depends on the mobility scenario; the binding condition adopted in Mo 3 is general enough to address a wide range of scenarios. Two possible examples are the following: • connectivity related to radio communications -in this case two mates will be considered as connected if they can communicate through a direct radio link (physical layer connectivity), and D c will be set depending on the radio coverage; • connectivity based on a radio-independent parameterfor example, if a group corresponds to a security team, connectivity may correspond to physical visibility: a team member will be connected to another if they are in line of sight.

C. COLLISION AVOIDANCE
Collision avoidance in Mo 3 aims at predicting potential collisions, based on the positions and speed vectors of nodes, and taking a corrective action before they happen. A corrective action could in general include a change in both speed and direction of a node; in Mo 3 , however, the Collision Avoidance rule introduces modifications to speed only, unless a change of direction is absolutely necessary to avoid a frontal collision 3 . This choice has two justifications: first, it allows to avoid collisions with other nodes without changing course, which is a reasonable model of what happens in real world mobility; secondly, it minimizes the conflicts between the corrections introduced by Collision Avoidance vs. Obstacle Avoidance rules. As it will be detailed in Section III-D, in fact, the Obstacle Avoidance rule only operates on direction of movement and not on speed.
The core idea in the Collision Avoidance rule proposed in Mo 3 is to identify collision risks based on the current trajectories of nodes rather than on their mutual distance; for example, two nodes that move on parallel lines will never trigger a collision risk alert in Mo 3 , regardless of their distance. A collision risk is in fact identified for a node only if its current speed vector will place it within less than d CA min meters from any other node when either of them reaches the location where their paths would cross (crossing point). An example of a scenario potentially causing a collision risk is presented in Figure 13. Figure 13 highlights for either node the positions that would trigger a collision risk alert when the other node is at the crossing point, corresponding to the segment of its planned path that falls within a circle of radius d CA min centered on the crossing point. The Collision Avoidance rule is applied for each node j with period T CA . A brief description of the algorithm implementing the rule is provided in the following; details on the computations carried out at each step are provided in Appendix B. The output speed v i for node i is determined as follows: • Path crossing identification -trajectories of all nodes within a distance d CA trigger from i are analyzed, and nodes that are on trajectories crossing the current trajectory of i are added to the set of Path Crossing min when either node reaches the crossing point; a corresponding constraint is defined, expressed by the inequality v k L ≤ v i ≤ v k U ; • Collision avoidance -the set of constraints on the new speed v i determined at the previous step is analyzed in order to determine whether the corresponding system of inequalities can be solved. As shown in Appendix B, the analysis will lead to one of three possible outcomes: 1) no collision risk is identified, and no action is taken, leading to v i ≡ v i ; 2) a collision risk involving one or more nodes in {P CN } is identified, and can be addressed by choosing a v i = v i ; 3) a collision risk involving one or more nodes in {P CN } is identified and cannot be addressed: the v i = v i that best mitigates the risk is selected, and a further attempt to fully address it will take place at the next application of the Collision Avoidance rule. Figure 14 shows the probability of a collision risk for a node, estimated as the average frequency of observed collision risks in generated mobility patterns, as a function of d CA min in a scenario considering M = 5 nodes moving independently in an area 50x50 m 2 . Figure 14 highlights that the Collision Avoidance rule is effective in mitigating the risk of collisions. As the required d CA min increases, the probability of a collision risk increases as well, since the condition to be met is harder and harder to satisfy; nevertheless the application of the Collision Avoidance rule reduces in all cases the probability of a collision risk by about one order of magnitude.

D. OBSTACLE AVOIDANCE
Several approaches to obstacle avoidance were proposed in the past. The Obstacle Model [46] was designed to model the movement of people walking around and through buildings; it defined obstacles shaped as polygons, and restricted nodes to move on a set of paths equidistant from obstacles, determined by partitioning the movement area according to a Voronoi diagram, with the corners of obstacles as location points for the diagram. An evolution of this model was proposed in [47], in which obstacles were defined as rectangles of arbitrary size and orientation, but nodes' movement patterns were still restricted to a set of paths between obstacles, albeit richer than the one obtained in [46]. GFMM [20] adopted instead a behavioral approach, that allowed nodes to occupy any position in areas not covered by obstacles, by defining a repulsion force from obstacles, but without providing a mechanism to define obstacles of arbitrary size and shape. Mo 3 introduces an Obstacle Avoidance rule that shares with [46], [47] a geometrical approach to the definition of obstacles, but provides complete freedom of movement for nodes around and between obstacles as in [20]. Section III-D1 introduces the basic obstacle shapes available in Mo 3 and how they are defined, while Section III-D2 describes how obstacles are detected and avoided by nodes in Mo 3 .

1) Obstacle definition
Obstacles in Mo 3 can take the basic shapes of either a rectangle or an ellipse 4 . The obstacles are defined by providing the geometric information needed to place them in the movement area, that is: 1) the coordinates of the center and the length of horizontal semi axis and vertical semi axis for an ellipse, and 2) the coordinates of the center and the length of horizontal and vertical sides for a rectangle. Obstacles with more elaborate shapes can be obtained by combining (possibly overlapping) basic shapes. The choice of defining obstacles over a set of basic shapes allowed to define an Obstacle Avoidance rule based on a geometric approach, as explained in the following subsection.

2) Obstacle avoidance rule
Since a change in speed would not avoid a collision with an obstacle, the Obstacle Avoidance only modifies the direction of movement. As anticipated, this choice has also the advantage of decoupling the corrections applied by this rule from those introduced by the Collision Avoidance rule, mitigating the risk of conflicts. The Obstacle Avoidance rule is applied for each node with period T OA , taking into account all obstacles within a distance d OA trigger from the node. The algorithm that determines the new direction θ i is as follows: • For each obstacle k, determine whether the minimum distance from i to any point in k is lower than d OA trigger . If this is not the case, ignore it, otherwise find the two angles θ min i,k and θ max i,k that determine the range of directions that would lead to a collision, based on the geometry of the obstacle and the current position of i (see Appendix C for details), and label such range as forbidden 5 .
• Determine the range of allowed directions A θ as the complement to [−π, π] of the union of all the forbidden ranges determined at the previous step, and compare it with the current direction θ i . The analysis can lead to either of the following outcomes 6 : 1) θ i is within the allowed range: no collision risk is identified, and no action is taken, leading to θ i ≡ θ i ; 2) θ i is not within the allowed range: a collision risk involving one or more obstacles is identified, and is addressed by selecting a θ i ∈ A θ defined as follows: The angle identified by (15) is the one minimizing the correction introduced on the input direction, shifted by a small margin θ OA that ensures that i will not touch the obstacle at the tangent point. An example of the application of the Obstacle Avoidance rule for a generic node i is presented in Figure 15, showing a scenario with three obstacles: a rectangle, labeled with 1, an ellipse (2), and a circle (3). Obstacle 3 is excluded from the computation of the forbidden ranges, since it is not within a distance d OA trigger from i. The allowed range A θ , obtained as the complement to [−π, π] of the union of the forbidden ranges determined by obstacles 1 and 2, is identified by the green shaded area. A collision risk is identified, since θ i / ∈ A θ , and in the considered scenario θ i = θ max i,1 + θ OA is selected to address the risk.
Several examples of mobility patterns obtained using the Obstacle Avoidance rule are presented in Figure 16.  Figure 16c and 16d shows that collisions are prevented in both cases, but a larger d OA trigger allows an early application of the Collision Avoidance rule, resulting in trajectories farther away from the obstacle compared to those obtained for a small d OA trigger , as highlighted by a lower density of trajectories in close vicinity to the obstacle in Figure 16d. The Obstacle Avoidance rule also allows to define pathways and corridors, by delimiting them with properly placed obstacles, thus implementing the spatial constraint feature introduced in [23] as part of the definition of the Virtual Track Group Mobility (VTGM) model, and listed in [17] as a desirable feature for a mobility model. An example of a mobility pattern obtained by taking advantage of such feature is presented in Figure 17. Finally, the rule can be also used to ensure that nodes 6 The possible outcomes are defined assuming that the range of allowed directions is not empty. The case where no allowed direction exists corresponds to a scenario where a node is surrounded in all directions by obstacles at distance shorter than d OA trigger , that is extremely unlikely in common mobility scenarios.  (2), and a circle (3) at distance larger than d OA trigger ; the allowed range of directions A θ is highlighted with a shade of green. A collision risk is detected with the rectangle, and θ i = θ max i,1 + θ OA is adopted to address it.
remain within the boundaries of the movement area. In most implementation of mobility models this is obtained by adopting a perfect reflection law: nodes hitting a side of the area rebound with same speed and symmetric direction with respect to the normal to the side. The implementation of Mo 3 made available in [48] supports this approach as well.
A smarter solution to this issue can be however adopted by introducing four extremely narrow rectangular obstacles that delimit the movement area. A comparison between the patterns obtained with the two approaches is shown in Figure 18, highlighting the smoother patterns obtained when the Obstacle Avoidance rule is used.

E. UPPER BOUNDS ENFORCEMENT
The Upper Bounds Enforcement rule is derived from the approach proposed for the Boundless model in [37] where τ is the time elapsed from the previous mobility update, as already defined in Section II-A 7 .
For the direction, one must consider the boundary between −π and π in the computation. Let us focus on cases where a violation occurs, corresponding to ∆θ > γ max τ . For the 7 In a discrete implementation of the model, with position updates every ∆t, one has τ = ∆t. Oppositely, if the position update is triggered on demand, τ measures the time elapsed from the last position update.
that determines θ OU T i as follows: For the case θ OA i − θ IN i ≤ 0, one has the following logical condition: In cases where there is no violation, corresponding to ∆θ ≤ γ max τ , no correction is needed, and thus θ OU T i ≡ θ OA i . In the case of the elevation angle there is no boundary condition to be considered, and the output elevation angle ϕ OU T i is determined as: The following observations hold for the Upper Bounds Enforcement rule: 1) the rule can be used to introduce a memory effect and enforce bounds in Individual Mobility models that do not provide such features natively; 2) the rule is mandatory also when the Individual Mobility model has built-in upper bound enforcement, as is the case for the Boundless model, because the Correlated Mobility, Collision Avoidance and Obstacle Avoidance rules may modify the speed vector in a way that would cause violations; 3) in order to ensure that bounds are never violated, the period of execution of the Upper Bounds Enforcement rule, T U B , shall be selected equal to or lower than the minimum update period adopted for the other four rules; 4) the enforcement of the bounds in (17)-(21) may alter the speed and direction selected as a result of the application of other rules, and in particular of the Collision Avoidance and Obstacle Avoidance rules. In most cases, these alterations will be compensated in subsequent mobility updates, but from time to time they may result in a failure to avoid a collision. Such an event is part of the modeling approach adopted in Mo 3 : no matter what the mobility scenario under consideration (pedestrian, vehicular, aerial, etc.) collisions do happen in the real world, and Mo 3 covers this possibility.

F. MODEL SETUP
The setup procedure for Mo 3 can be summarized as follows: 1) define the number M of nodes; 2) define the coordinate ranges [x min , x max ], [y min , y max ] and [z min , z max ] in the tridimensional case, determining the movement area A (2D case) or space S (3D case); 3) generate or load M coordinate sets within S that will set the initial position of the nodes. Note that if the Obstacle Avoidance rule is enabled in the bidimensional case, and obstacles are introduced in A, the initial positions must be set ensuring that no node is placed inside any region of A occupied by an obstacle; 4) generate or load M sets of speed, direction and elevation values, defining the initial speed vectors of the M nodes. Starting from the initial state resulting from the procedure above, Mo 3 will periodically update the speed vectors of the nodes, according to the input parameters set for the five modules that compose the model. Table 2 provides the full list of parameters 8 , indicating for each of them which modules they refer to, and whether they are provided in a configuration file. Table 2 shows that setting up the model is pretty straightforward: Mo 3 does not require normalizing coefficients and weights as behavioral models do, and all parameters have a clear relation with the desired spatial properties for the mobility patterns. In addition, the mobility patterns generated by RPGM can be emulated by activating only the Individual Mobility, Correlated Mobility and Upper Bounds Enforcement modules, with a comparable set-up complexity. The position of each node will be then updated, typically every ∆t seconds, by adding to the previous position the displacement in x, y and z determined by the node's speed vector.

G. AVAILABILITY
The Mo 3 model was implemented in Matlab. The software includes a main script performing the setup procedure 8 The set of parameters required for the Individual Mobility module might change if an individual mobility model different from the one proposed in Section III-A is adopted.

IV. USING MO 3 TO EMULATE OTHER CORRELATED MOBILITY MODELS
The flexibility provided by the combination of the Individual Mobility and Correlated Mobility rules allows Mo 3 to emulate other correlated mobility models. An exhaustive comparison with the most popular group mobility model, that is RPGM, will be carried out in the next two sections; this section focuses instead on other correlated mobility models that do not fall in the group mobility category as defined in Section II-B. Mo 3 can effectively emulate these models by adopting an asymmetric Binding Matrix, as anticipated in Section III-B. Three notable correlated mobility models, all proposed in [50], will be considered in the following: the Pursue, Column and Nomadic Community mobility models.

A. PURSUE MODEL
The Pursue model describes a scenario where a node (the target) moves independently of any other node, and is pursued by the other nodes. This model can be easily emulated by adopting the binding matrix shown in Figure 19a, where node 1 is the target and moves independently from the others; correspondingly, row 1 of the binding matrix is equal to the same row in the identity matrix. All remaining nodes are pursuers, and have thus a binding at position 1 of their row. The aggressiveness of the pursuers in following the target can be tuned by properly setting the D c distance in (10): the lower D c , the more aggressive the pursuers will be.

B. COLUMN MODEL
In the Column model the nodes move in line, with some degree of liberty in deviating from regular spacing. This model can be emulated by adopting the binding matrix shown in Figure 19b: node 1 will set the pace by deciding freely speed and direction, while each node from 2 to M will follow the node before it: as a result, in the row corresponding to the generic node j > 1 a binding is present in position j − 1. By adopting a speed range [v min , v max ] leading to a relatively fast movement for node 1, nodes will tend to organize in a line following the leader. The degree of liberty in deviating from this behavior defined in the Column model can be modeled and tuned by properly choosing the D c distance: a larger distance will guarantee more freedom for the nodes to deviate from the line formation.

C. NOMADIC COMMUNITY MODEL
The Nomadic community model describes the mobility of a population that alternates moving phases, during which the whole population moves from one area to another, to stationary phases, in which the population members roam freely in an area. As suggested in [50], the model is suitable VOLUME 4, 2016  Figure 19c elects node 1 as the community leader, defining the path toward the area where the next stationary phase will take place. Note that the Correlated Mobility rule introduced in Section III-B will ensure that the switch between the two phases does not cause sudden position changes or other mobility artifacts, as further discussed in Section V-B.

V. PERFORMANCE EVALUATION
Performance evaluation and comparison of correlated and group mobility models is challenging, due to the lack of mobility traces to be used as a benchmark against the patterns generated by the models. Mobility traces for groups of users/devices are in fact not widely available in the literature, and focus, in general, on very specific scenarios, e.g. large fleets of military vehicles [51], civilian vehicles [52], or human mobility over daily/weekly epochs [53], [54], and typically provide data collected with periods ranging from one second to several minutes, that make them unsuitable to be used as benchmarks in pure micro-mobility or mixed macro-mobility / micro-mobility scenarios.
In order to overcome this limitation, most contributions on mobility modeling compare models in terms of protocolrelated performance metrics such as link duration, average capacity, or packet delivery rate, rather than on the basis of the generated patterns. A reference example can be found in [55], where the performance of a network using the Ad Hoc on Demand Routing protocol was analyzed in combination with four different mobility models. Performance metrics included packet delivery ratio, end-to-end delay, and routing overhead. We argue however that this approach cannot, in general, provide an insight on the quality of mobility models unless a baseline benchmark for the considered performance metrics to compare against is available. As an example, the comparison in [55] determines that the four models lead to different network performance, but cannot tell which model is better, since no baseline benchmark is provided. For this reason, in this work protocol-related metrics are only used to compare Mo 3 vs. the RPGM model in a scenario where a baseline benchmark is available. In particular, we selected the pure micro-mobility scenario considered in [15], where a distributed MIMO algorithm is evaluated in presence of individual mobility, thus providing a baseline benchmark for other mobility models. This comparison is presented in Section V-A.
An approach based on a direct comparison of the generated mobility patterns is adopted next to compare Mo 3 with the RPGM and RVGM models in a mixed macro-mobility / micro-mobility scenario. The patterns generated by the models are analyzed by assessing whether, and to what extent, they meet predefined upper bounds set on maximum speed and rotation speed. This comparison is presented in Section V-B. Table 3 lists the settings of Section V-A vs. Section V-B, and shows that the main differences between pure micromobility and mixed macro-mobility / micro-mobility scenarios are the proximity constraints D c / d max and the maximum speed with, as expected, a tighter proximity and a smaller scale mobility in the pure micro-mobility scenario.

A. PERFORMANCE EVALUATION IN A PURE MICRO-MOBILITY SCENARIO
The high device density that will characterize 5G and beyond 5G networks will require the introduction of advanced cooperation algorithms in order to turn network density in an advantage, rather than a limitation; an accurate modeling of mobility will be thus fundamental for a reliable evaluation of the performance of such cooperative algorithms. As previously discussed in Section II-B4, however, the modeling of correlated mobility patterns is typically still based on RPGM, see for example [56]. In this context, this section compares RPGM and Mo 3 in order to assess their suitability to support the performance analysis of cooperative algorithms, considering the pure micro-mobility scenario analyzed in [15] 9 . In [15] a distributed MIMO network was considered, in which a transmitter T X selects L relay nodes out of K > L candidates, randomly scattered around the position of T X, in order to create a virtual antenna array and send data toward a second virtual antenna array formed by N nodes clustered around a receiver RX, placed at d meters from T X. The work in [15] focused on the transmitter side, and proposed an algorithm for the selection of the set of L relay nodes, called Reconfigurable Distributed MIMO (RD-MIMO), that favors the nodes with the highest channel gains toward the array at the receiver side. The results presented in [15] showed that RD-MIMO obtains an average achievable rate larger than when all the K nodes are used in the array. The paper also investigated the impact on performance of node mobility, by determining the update period T os for the set of L relays required to compensate for the variations of channel gains introduced by mobility, as a function of the node speed and of the desired tradeoff between performance and overhead introduced by the selection procedure. Mobility of nodes was modeled in [15] according to the Random Walk (RW) model, with the additional constraint of not allowing nodes to move outside an area of s by s square meters, centered on T X, thus indirectly introducing a correlation between the mobility patterns of the nodes. In the following the analysis carried out in [15] is extended by evaluating the performance of the RD-MIMO algorithm using proper group mobility models, in particular Mo 3 and RPGM, and comparing it with the performance obtained by the RD-MIMO algorithm using the RW model: the latter can be considered as a reference ground truth, since the RW model does not introduce mobility artifacts, as discussed in Section II-A. A good group mobility model should thus lead to a performance of the RD-MIMO algorithm comparable to the one observed with the RW model, while significant discrepancies would suggest the presence of artifacts in the generated mobility patterns. The performance evaluation presented in this section and in Section V-B were both carried out using a mobility simulator developed in the OMNeT++ 5.5 simulation environment [49], and implementing the RPGM, RVGM models as well as the subset of Mo 3 modules required to emulate the above models 10 . The settings defining the scenario were derived from [15], and foresee static T X and RX nodes at distance d = 30 m, with K = 20 nodes moving within an area centered on T X and N = 8 relays around RX. Also according to [15], the optimal value L = 12 was adopted in all simulations. Positions of nodes were updated periodically with a period ∆t. A periodic update was adopted in the analysis for two reasons: a) while RW and Mo 3 allow to determine the position of nodes at any time by using (1), RPGM only defines 10 OMNeT++ 5.5 modules implementing the RPGM and RVGM mobility models, the Individual Mobility, Correlated Mobility, Collision Avoidance and Upper Bounds Enforcement Mo 3 modules, as well as supporting functions to collect the simulation data presented in Sections V-A and V-B, are available for download from the Mo 3 project GitHub repository [48]. a speed vector for group leaders, and position updates for standard nodes can only be provided with a periodic update; b) most wireless network simulators are actually discrete event simulators, favoring the implementation of mobility models as a sequence of periodic updates rather than through the asynchronous evaluation of a time-continuous function. ∆t = 0.1 s was selected, in order to allow the analysis for selection updated periods as low as 0.1 s, as also considered in [15]. The constraint on the position of the K candidate relays was implemented in the three mobility models as follows: • RW -nodes moved freely in a square area of side s = 15 m centered on T X; nodes reaching an edge of the square were rebounded towards the center with same speed and new direction determined by a perfect reflection; • RPGM1 -all K nodes shared a static reference point set on the position of T X, and were positioned at each position update at random locations within a distance d max = s/2 from the reference point; • RPGM2 -all K nodes shared a reference point moving according to the RW model within a circle of radius s/4 centered on T X, while the K nodes were positioned at each position update at random locations within a distance d max = s/4 from the reference point; • Mo 3 -each of the K nodes had T X as its only mate, with ρ min = 1 and D c = s/2 11 . All remaining simulation settings for Mo 3 were as in Table 3. Note that the RPGM1 implementation is the most natural solution to introduce the desired mobility constraint in RPGM, but in the considered scenario it would make the RPGM mobility patterns independent from v max . The alternative approach labeled as RPGM2 was thus also considered in order to ensure fairness for RPGM in the comparison. Results are presented Figure 20 and Figure 21. Figure  20 shows the number of candidate nodes selected in the optimal set of L relays that are still among the best L relays, as a function of the elapsed time from the last relay selection, referred to as T el . Results in Figure 20 show that the Mo 3 mobility model preserves the effect of correlation in the position of nodes over time observed in [15], and also confirmed in the same Figure, for the RW model. In addition, the two models are also similarly affected by a variation in the maximum speed: as one would intuitively expect, higher mobility leads to a faster disruption of the optimal set of L relays, due to the physical topology changes occurring at a higher pace. Oppositely, both flavors of RPGM fail to preserve any correlation between the positions of nodes, and introduce thus a major artifact in the generated mobility patterns, consisting in the complete loss of spatial correlation between two consecutive positions of the same 11 The selected Dc value allows nodes to occasionally occupy positions outside the circle of diameter s; a strict observance of the constraint on the position of the candidate relays could be enforced by choosing Dc = s/2 − ∆tvmax, with the undesirable effect of linking a model parameter, Dc, to a simulation setting, ∆t.  node. As a result, the number of nodes that are still part of the optimal set drops, immediately after the last selection, to the average size |A ∩ B| of the intersection of two random subsets A and B, both of size L, independently extracted out of a set S = {s 1 , · · · , s K } of size K. Under the assumption of uniform, independent extractions, one has: p A i = P rob {s i ∈ A} = p B i = P rob {s i ∈ B} = L/K ∀i = 1, · · · , K, and |A ∩ B| is thus equal to: Mo 3 of correctly modeling the movement of nodes in micromobility scenarios, overcoming the inherent limits of RPGM that lead to artifacts affecting the correctness of performance evaluation.
Interestingly, Figure 21 also shows that the four models present different average achievable rates even at T el = 0, when the optimal set is considered. This result can be explained by observing that the achievable rate depends on the spatial distribution of the candidate nodes: mobility models that lead to a distribution of candidate relays farther away from T X will in general allow for the selection of nodes closer to RX, and thus lead to a higher average rate. This observation is confirmed by the analysis of the spatial distribution of the four models, presented in Figure  22, showing the estimate of the probability density function for the position of candidate nodes in an area of 20x20 m 2 centered on the position of T X. Figure 22 highlights that RW and Mo 3 lead to a more uniform distribution of nodes in the area, corresponding to a higher probability of finding relays closer to RX. Both RPGM flavors lead to a distribution biased toward the center of the area and thus, as an average, to relays closer to T X and farther from RX. Correspondingly, the average achievable rate at T el = 0 is higher for RW and Mo 3 than for the RPGM flavors. This is a second artifact introduced by the RPGM model, since a model should not lead to uneven spatial distributions of nodes, unless appositely designed to do so to describe a specific mobility scenario. Regarding the difference between the two RPGM implementations, a close examination of Figure 22b vs. Figure 22c shows that RPGM1 leads to a higher probability of nodes being on the edge of the circular area compared to RPGM2, and, correspondingly, to a slightly higher average achievable rate, as shown in Figure 21. Figure 21 also shows a slight gap in the average achievable rate between RW and Mo 3 ; this can be explained by the different shape of the area around T X occupied by nodes in the two models: the additional surface available in the case of RW occasionally allows to achieve optimal configurations that are impossible to achieve when using Mo 3 .

B. PERFORMANCE EVALUATION IN A MIXED MACRO-MOBILITY / MICRO-MOBILITY SCENARIO
The Mo 3 model was also compared with the RPGM and RVGM group mobility models in a mixed macro-mobility / micro-mobility scenario as defined in Section I, consisting in a typical ad-hoc network scenario, that is obstacle-free movement in a large movement area, combined with tight group requirements. As anticipated in the same Section, due to the lack of real world traces to be used as ground truth, a criterion should be defined to compare the different models. The proposed criterion and the corresponding performance indicators are introduced in Section V-B1, followed by the simulation settings in Section V-B2 and by the results of the analysis, presented in Section V-B3.

1) Comparison criterion and performance indicators
The definition of the comparison criterion moved from the following observation: all mobility models allow the introduction of bounds on one or more mobility parameters. As a bare minimum, models allow to define an upper bound on linear speed, v ≤ v max , and in some cases, as in the Boundless model and in Mo 3 , also on linear acceleration, |a| ≤ a max , and on angular speed, |γ| ≤ γ max . Once the bounds are defined at model setup, mobility patterns generated by the model are, by definition, expected to meet these bounds at all times. The comparison criterion proposed in this work aims at assessing if, and to what degree, models actually meet this reasonable expectation in a mixed macro-mobility / micro-mobility scenario. The corresponding performance indicators adopted to evaluate the models are the following: • probability of violating the upper bound on linear speed, P out v ; • probability of violating the upper bound on angular speed, P out γ ; • average linear speed v mean .
Note that RPGM and RVGM do not provide a way to limit rotation speed: for such models it would be thus unfair to consider P out γ > 0 as a failure, since they do not promise to enforce an upper bound on γ. It is nevertheless interesting to measure P out γ for RPGM and RVGM as well, as it may provide insights on the models, as well as quantify how well they would cope with scenarios requiring a bound on γ. The performance indicators were evaluated by collecting samples at each position update, performed periodically with period ∆t. The performance indicators were measured based on the actual movement of a node i during the period ∆t associated to the k update, from sponds to the following linear and angular speeds: The occurrence of a violation of the linear speed bound for node i at update k can be then associated to the following binary variable: and similarly one has for the angular speed bound: The three performance indicators can be thus expressed as: The truncation of the sums in (27) to a finite K, that corresponds to a finite observation time T o = K∆t, will lead to estimated values for the three indicators, that can be expected to be accurate as long as T o is sufficiently long.

2) Simulation settings
The simulation scenario considered a network of M = 16 nodes divided into 4 groups of 4 nodes. The movement area A was 5000x5000 m 2 , and each simulation run lasted T o = 10000 seconds. The upper bounds on linear and angular speed to be met by models were v max = 5 m/s and γ max = π/2 rad/s. The following implementation choices were made, in order to ensure a fair comparison: • Mo 3 : a binding matrix as in Figure 9d was adopted, but with four blocks of size 4x4; ρ min was set so that the grouping condition defined in (8) was only satisfied for a node if all of its mates were part of its connected set. The Collision Avoidance and Obstacle Avoidance modules were disabled, since these features are not available in RPGM and RVGM; • RPGM: a group leader was selected in each group.
The reference path for each group leader was generated using the Random Walk model in place of the Random Waypoint model originally proposed in [18], in order to avoid the side effects of the latter model, discussed in Section II-A; • RVGM: a group leader was selected in each group.
The possibility to enforce bounds on minimum and  Table 3, with ∆t = 1 s. maximum speed was introduced by adopting for both group leaders and standard nodes a truncated Gaussian distribution taking values in [v min , v max ], rather than the Gaussian distribution originally proposed in [19]. The indicators introduced in Section V-B1 were evaluated as a function of the system parameter most directly related to mobility, that is the mobility update period ∆t, taking values in the set S ∆t = {0.1, 0.25, 0.5, 1, 1.25, 5} s. In the case of the Mo 3 and RPGM models, that share a mechanism to enforce a maximum distance between group members, the analysis also included the impact of the model parameter that controls this mechanism, that is the D c parameter for Mo 3 and the d max parameter for RPGM, both varied over the set S d = {15, 75, 135, 195} m. The values in S d were selected so to cover scenarios ranging from tight to loose correlation between patterns of nodes in the same group. Model-specific settings presented in Table 3 were adopted during simulations, unless otherwise stated.

3) Results
Based on the comparison criterion defined in Section V-B1, the research questions we sought to answer are: 1) are models capable at all to meet upper bounds? 2) are they robust to different settings of system and model parameters? 3) how do they cope with time-varying correlated mobility scenarios? The answer to the first question can be found in Figure  23, showing P out v and P out γ for the three models with the settings in Table 3, defining a typical macro-mobility scenario with reasonably tight group bindings, and ∆t = 1 s. Figure 23 shows that both Mo 3 and RVGM are able to meet at all times the limit on linear speed, leading to P out v = 0. The RPGM model, on the other hand, shows a high probability to violate the bound on maximum speed,  Table 3. with P out v > 0.7. As for rotation speed, Mo 3 is again able to meet at all times the limit on upper rotation speed, with no recorded violations. As expected, this is not the case for RPGM (P out γ = 0.5) and RVGM (P out γ = 0.1), since they do not provide a mechanism to limit rotation speed. The answer to the second question can be found by analyzing the impact of ∆t on the performance indicators for the three models. In the case of Mo 3 , the Upper Bounds Enforcement module ensures that the upper bound on speed is always met: as a consequence, P out v = 0 was observed for all combinations of ∆t and D c . The same is true for RVGM, thanks to the adoption of a truncated Gaussian distribution for the absolute value of speed. This is not the case for RPGM, as shown in Figure 24, presenting P out v as a function of ∆t ∈ S ∆t , for all values of d max ∈ S d . Results presented in Figure 24 clearly highlight that the RPGM model fails to meet the upper bound on node speed. For low values of ∆t, in particular, nodes that are not group leaders (that is 75% of the total number of nodes in the considered scenario) almost never meet the bound on maximum speed, leading to an overall P out v ≈ 0.75. The behavior of RPGM is directly related to the way positions of standard nodes are determined. For small ∆t values the positions of nodes are updated very often; since at every position update positions of standard nodes are randomly generated within d max meters of group leader position, a small ∆t leads to a high probability of violating the speed upper bound. The longest distance a standard node can cover in RPGM at each update is in fact equal to: where v leader is the current speed of the group leader. The corresponding maximum speed, for low values of ∆t, can  Table 3.
be approximated by: For example, when d max = 10 m and ∆t = 0.1 s, one has v ≤ 200 m/s, independently of the maximum speed allowed for group leaders. Figure 24 highlights that the adoption of a large ∆t mitigates the issue; this result comes, however, at the price of a lower accuracy in mobility modeling since, as already said, in RPGM the position of standard nodes is only known at position update times. The analysis of P out γ reveals a similar trend: in this case as well the Mo 3 model always meets the bound for all combinations of D c and ∆t, while is this is not the case for RPGM and RVGM, as expected. Figure 25 presents P out γ as a function of ∆t for RPGM, for all values of d max in S d , and for RVGM. For both RPGM and RVGM P out γ drops eventually to zero when ∆t is large enough to allow a full rotation between two updates without causing a rotation speed violation, as shown in Figure 25 for ∆t = 5 s. However, for lower ∆t values the two models behave rather differently: RVGM is far less prone to cause violations (P out γ ≤ 0.1 in all cases) than RPGM (P out γ > 0.4 in all cases). An interesting trend can be observed for RVGM: P out γ increases with ∆t for small values of ∆t, while the opposite trend is observed for higher values of ∆t. This can be explained by observing that, as ∆t increases, two opposite phenomena coexist: 1) the number of position updates decreases; since in RVGM rotation speed violations can only happen just after the selection of a new reference speed vector, the number of rotation violations is mainly depending on T , which is kept fixed in the simulations. As a consequence, although a detailed analysis of simulation results shows that the number of violations decreases with ∆t, they become more relevant in percentage because the total number of position updates decreases at a faster rate; 2) the maximum rotation allowed for a node between two updates, given by γ max ∆t, increases, thus decreasing the probability for a direction update to cause a rotation speed violation.
For low ∆t, phenomenon 1) prevails, leading to an overall increase in P out γ ; as ∆t increases beyond 1, phenomenon 2) becomes predominant and P out γ decreases with ∆t.
Moving to the third indicator defined in Section V-B1, that is v mean , Figure 26 presents v mean as a function of ∆t for Mo 3 for all values of D c ∈ S d . Figure 26 highlights two phenomena: first, v mean increases as D c decreases, since a tighter binding condition leads nodes to spend a larger amount of time in Forced state. Secondly, v mean is independent of ∆t for most D c values. The only exception is the combination of D c = 15 m and ∆t = 5 s, where the average speed gets very close to the allowed maximum speed v max = 5 m/s. This result can be explained by observing that in all simulations T CM = ∆t: when node positions are not updated very often, also the grouping condition is checked less often, leading to more frequent cases where ρ < ρ min , forcing the nodes to catch up at maximum speed. This can be easily avoided by setting T CM at a constant value, independent of ∆t. Results for RPGM, presented in Figure 27, show that, for this model, the average speed strongly depends on ∆t, due to the effect described by equation (29): in particular, the average speed is extremely unrealistic for low ∆t that is, incidentally, the setting required for modeling the mobility of standard nodes with high accuracy. Finally, Figure 28 shows that RVGM is very robust to variations of ∆t, since the speed selection process is not influenced by the update period.
It is interesting to observe that the settings D c = 195 m for Mo 3 and d max = 195 m for RPGM lead to a configuration in which both intra-group and inter-group mobility occur on a large scale, corresponding thus to a pure macromobility scenario according to the classification introduced in Section I. In such a scenario, nodes may significantly depart from group mates, and group structure preservation mechanisms are not frequently activated; as a result, node mobility patterns should be mostly determined by the underlying individual mobility model. This behavior is indeed observed in Mo 3 , as highlighted by the results for v mean presented in Figure 26: v mean is in fact very close to 2.5 m/s, that is the expected average speed determined by the Individual Mobility settings listed in Table 3. Oppositely, Figure 24 shows that RPGM in this configuration has the same probability of violating the upper bound on linear speed as with smaller d max values, and actually leads to the most blatant violations in terms of average speed when  Table 3.
used in combination with a low ∆t, as shown in Figure 27, confirming the difficulty for RPGM to properly describe mobility in 5G and B5G scenarios requiring frequent position updates.
Moving to the third question posed at the beginning of this section, a time-varying correlated mobility was modeled by introducing a random switching mechanism from group to individual mobility and viceversa; the duration of each group/individual mobility period was obtained as the outcome of a uniform random variable with average value T switch = 100 s, taking values in [50,150] s. The switch between group and individual mobility for the three models was implemented as follows: • for Mo 3 , the binding matrix switched from the one in Figure 9c to the identity matrix shown in Figure 9a; • in RPGM and RVGM all nodes were considered as  Table 3.
group leaders, and thus started moving independently of other nodes in the network, starting from the last known position. Figure 29 shows v mean as a function of time for all models, in a typical simulation run under these settings. The figure also shows as a reference the upper bound on speed, v max . Results highlight the failure of RPGM to cope with timevarying correlated mobility settings: the average speed for this model presents high spikes when nodes switch back to group mobility, due to the abrupt displacement of standard nodes from their previous position to a random position within d max meters from their group leader. Figure 29 also confirms that the reason for speed upper bound violations in RPGM is the grouping mechanism: in periods where the group behavior is off, the underlying Random Walk individual mobility model is adopted for all nodes, and v mean immediately falls well below the v max threshold. Mo 3 , on the other hand, does not show any anomalous behavior during transitions. Following a transition from individual to group mobility, in particular, nodes check the grouping condition and, if required, switch from Free to Forced state and update their speed vector accordingly, without any discontinuity in their position. During the periods characterized by individual mobility, nodes part of a same group will drift away moving according to their individual mobility model; as a consequence, every time the group behavior is switched back on, a short period ensues in which most nodes move at speed v max to reestablish the group and satisfy the grouping condition. Correspondingly, Figure 29 shows that v mean is close to v max in each of such periods, as expected. Figure 29 shows that the RVGM model suffers no discontinuities in average speed on transitions as well, again thanks to the adoption of a truncated Gaussian distribution. Figure 30 completes the analysis by presenting both the All remaining settings were as in Table 3.
average distance between nodes in the same group, and the average distance between all nodes as a function of time for the three models. The results highlight a strong difference of RPGM and Mo 3 vs. RVGM. As already discussed in Section II-B1, RVGM is in fact unable to preserve spatial proximity between group members, in particular after long periods of individual mobility. During these periods, nodes belonging to the same group spread across the movement area, since their speeds and directions become independent. As a consequence, RVGM is only suitable for very specific mobility scenarios, where group members are not required to meet any bound on intra-group average distance. Figure  30 shows indeed that RVGM does not lead to different intra-group vs. inter-group average distances, while Mo 3 and RPGM present similar properties from a topological point of view, and are characterized by a markedly shorter intra-group vs. inter-group average distance. However, the results shown earlier in this section and in Section V-A demonstrate that the behavior of the two models in terms of the patterns generated for nodes in the same group is extremely different, as RPGM fails to maintain any spatial correlation in the mobility patterns of standard nodes. The adoption of RPGM in a scenario requiring accurate micromobility scale movements would thus lead to misleading results, as shown in Section V-A.

VI. CONCLUSION
A new rule-based mobility model, called Mo 3 , was proposed. Mo 3 , defines 5 rules, Individual Mobility, Correlated Mobility, Collision Avoidance, Obstacle Avoidance and Upper Bounds Enforcement, designed to accurately model the mobility of a node on both the micro-mobility and macro-mobility scale, as typically required in short distance wireless communications in 5G and beyond 5G networks.   Mo 3 was compared against existing correlated/group mobility models using a multi-fold approach. First, features made available by Mo 3 were compared with those provided in a wide set of existing group mobility models; the comparison highlighted that Mo 3 provides a set of features on par or beyond existing models. Secondly, the accuracy of Mo 3 vs. the RPGM model in generating patterns in a pure micromobility scenario was analyzed by comparing their impact on the performance of a communication network. Third, Mo 3 was compared with RPGM and RVGM models in a mixed macro-mobility / micro-mobility scenario, using a newly defined set of performance indicators, related to the capability of a model to generate patterns that meet mandatory bounds on mobility parameters. Results showed that Mo 3 overcomes the limitations of existing group mobility models, that is lack of flexibility and accuracy for reference-based models, and difficulty in configuring and tuning the models for behavioral models. Mo 3 can in fact reliably and accurately describe mobility patterns in scenarios ranging from loose / no group mobility to tight group mobility, while taking into account the interaction with other nodes and with obstacles present in the mobility area. Furthermore, Mo 3 is robust to variations in the position update period typically used in discrete event simulators, in particular to its reduction to sub-second duration, as required to accurately track nodes in micro-mobility scenarios. Mo 3 is therefore a suitable candidate for modeling correlated and individual mobility in future network scenarios, and in particular in short distance wireless network scenarios, that will characterize 5G and beyond 5G systems.
A key characteristic of Mo 3 is its native support for tridimensional mobility for a subset of the rules, in partic-ular Individual Mobility, Correlated Mobility and Upper Bounds Enforcement. This feature enables Mo 3 to model any scenario involving correlated movement of nodes in a tridimensional landscape, such as a swarm of UAVs, but also a flock of birds, or a bank or fish. Future work will focus on the extension to the tridimensional case of the two remaining rules, Collision Avoidance and Obstacle Avoidance. In the case of Collision Avoidance this will require the extension of the concept of a collision risk zone from a circle of radius d CA min , as shown in Figure 13, to a sphere with the same radius. For the Obstacle Avoidance rule, the most immediate extension will consist in considering rectangular cuboids and ellipsoids in place of rectangles and ellipses as obstacle shapes, and extending the approach described in Appendix C to find tangent lines to such obstacles. Future work will furthermore focus on the acquisition and use of captured mobility traces in 5G networks in order to compare them with mobility patterns generated with the Mo 3 model, and on the extension of Mo 3 , by providing additional basic shapes for obstacle avoidance both in the bidimensional and tridimensional cases.
. Table 4 presents the models analyzed in Sections I and II-B and compares them in terms of the mobility scenarios they address, the general impact in terms of overall citations in the Scopus database [57] and their impact in the last five years, measured by the citations in the period 2017-2021. Table 4 confirms that RPGM is by far the most used group mobility model. Other models with good impact on the research community are CMM, that however targets mobility scenarios focusing on social interactions, RVGM, also a general purpose model, and VTGM, designed for military/vehicular networks with specific spatial constraints.

APPENDIX B COLLISION AVOIDANCE
In this appendix a detailed description of the algorithm proposed for the Collision Avoidance rule introduced in Section III-C is provided.

A. PATH CROSSING IDENTIFICATION
The path crossing identification relies on the representation of trajectories as rays in the bi-dimensional plane. Keeping the notation introduced in Section III-C for speed and direction, and indicating with {x i , y i } the coordinates of the node i executing the algorithm, the trajectory followed by i can in fact be represented as a ray centered on its current position, x 0 i , y 0 i , with direction given by θ i using the following notation for the two Cartesian components: Similarly, for another generic node k one has The future trajectories of i and k will cross if a solution exists to the following system of equations in r, s: with r ≥ 0 and s ≥ 0 12 . Solving for r and s leads to: where D = cos (θ k ) sin (θ i ) − sin (θ k ) cos (θ i ), and D = 0 is assumed. Note that D = 0 can be obtained only if θ i = θ k or if |θ i − θ k | = π. θ i = θ k corresponds to two parallel rays that never cross unless x 0 i , y 0 i ≡ x 0 k , y 0 k , and requires thus no correction. On the other hand, |θ i − θ k | = π corresponds to i and k moving on the same line in opposite directions, eventually leading to a frontal collision. In this case, since no v i = v i would avoid the collision, a small deviation θ CA is added to θ i , and the algorithm is applied again from scratch. Each node k such that d ik ≤ d CA trigger will be analyzed by solving the system in (32); if r ≥ 0 and s ≥ 0, k will be added to the {P CN } set, and the corresponding crossing point x i,k C , y i,k C will be stored for further evaluation in the next step of the algorithm.

B. SPEED BOUNDS IDENTIFICATION
The goal of this step is to determine a set of acceptable ranges on the new speed v i , one for each node k in {P CN }, so to guarantee that when i arrives at x i,k C , y i,k C , k will be at least d CA min meters away. First, the times at which i and k will reach the crossing point x i,k C , y i,k C , referred to as T i C and T k C , are determined: where d iC and d kC indicate the distance between the crossing point and the current position of i and k, respectively.
If T i C < T k C , at its current speed i will reach x i,k C , y i,k C before k. In this case, a lower bound is defined on v i , so to 12 Solutions obtained for either r < 0 or s < 0 would correspond to cases where the future trajectory of one node crosses the past trajectory of the other. These cases are not considered by the Collision Avoidance rule, since an actual collision is impossible even if the nodes were to be at distance lower than d CA min at crossing time. Analysis of correlated mobility models in terms of target mobility scenarios and impact, measured by the number of citations received in the Scopus database overall and in the last 5 years.

Model
Year Mobility scenarios Overall citations Citations in 2017-2021 RPGM [18] 1999 General purpose 989 149 RVGM [19] 2002 General purpose 155 17 GFMM [20] 2009 General purpose 17 5 MGCM [21] 2006 Military pedestrian 5 2 RRGM [22] 2005 Security / Search & rescue 26 4 VTGM [23] 2004 Military vehicular 107 15 CMM [24] 2006 Human social interactions 254 20 ECMM [25] 2012 Human social interactions 32 19 SGMM [40] 2004 Human social interactions 52 9 BMM [26] 2006 General purpose 20 3 BMM-GC [41] 2013 Urban mobility 3 1 SIMPS [43] 2009 Human social interactions 59 11 ensure that, when i reaches the crossing point, k will still be at least d CA min away from this point on its trajectory. The bound is defined as follows: Note that T i C < T k C already implies v i > v k (d iC /d kC ), so that the bound defined in (35) could be already satisfied by the current value of v i . Furthermore, since any speed above v k L will satisfy the bound, one can also introduce the upper bound v i < v k U = v max . Oppositely, if T i C > T k C , at the current speed v i i will reach x i,k C , y i,k C after k; in this case an upper bound is defined on v i , so to ensure that, when k reaches the crossing point, i will still be at least d CA min away. The bound is thus equal to: v Again, T i C > T k C already implies v i < v k (d iC /d kC ), that is a weaker upper bound on v i ; furthermore, any speed below v k U will satisfy the bound, leading to the lower bound v i > v k L = v min . Finally, if T i C = T k C , at their current speeds i and k will reach x i,k C , y i,k C at the same time. In this case the bound on v i will be defined according to (35) if i < k, and according to (36) otherwise. The analysis of all nodes in the {P CN } set will thus lead to the system of inequalities on v i given by: where, for each k, either v k L = v min or v k U = v max .

C. COLLISION AVOIDANCE
The set of constraints on the new speed v i determined at the previous step is analyzed in order to determine whether the corresponding system of inequalities can be solved. If solutions exist, they will be in the range [v i L , v i U ], given by: where N = |{P CN }|. The analysis will lead to one of three possible outcomes: 1) solutions exist, and v i ∈ [v i L , v i U ]: no collision risk is identified, and no action is taken, leading to v i ≡ v i ; 2) solutions exist, but v i / ∈ [v i L , v i U ]: a collision risk is identified, and v i is set to the acceptable value closest to v i , in order to minimize the variation with respect to the current v i . This corresponds to 3) no solution exists: v i is set so to satisfy the largest possible number of inequalities, and inequalities that are not satisfied are left to be addressed at the next application of the Collision Avoidance rule.

APPENDIX C OBSTACLE AVOIDANCE
This Appendix provides details on the algorithm proposed for the Obstacle Avoidance rule introduced in Section III-D.
Since throughout this section only one obstacle is considered, the k subscript used in Section III-D is dropped in order to simplify notation; the angles that define the range of forbidden directions are thus indicated in the following as θ min i and θ max i . Section C-A describes the procedure adopted in Mo 3 to determine whether a ellipse-shaped obstacle is within d OA trigger from a node i in position {x i , y i } and, if this is the case, to compute the angles θ min i and θ max i ; Section C-B does the same for a rectangular obstacle.

A. ELLIPSE 1) Distance
Let us consider an ellipse centered in {x obs , y obs }, with semi axes a and b.  The problem of finding the minimum distance d ie between {x i , y i } and the ellipse has no straightforward mathematical solution, and requires the solution of an equation by the Newton method. Mo 3 adopts thus an approximated approach, by evaluating the distanced ie between {x i , y i } and the closest intersection point between the ellipse and a line passing through {x i , y i } and {x obs , y obs }, as shown in Figure 31. The coordinates of the point {x p , y p } can be obtained by defining a ray originating in {x i , y i } with direction θ obs , also shown in Figure 31. The value of θ obs is given by: θ obs = arctan2 (y obs − y i , x obs − x i ) .
The ray will be thus defined as: x = x i + cos (θ obs ) r y = y i + sin (θ obs ) r r ≥ 0, and the coordinates of the intersection {x p , y p } can be obtained by solving for r the following system: x = x i + cos (θ obs ) r y = y i + sin (θ obs ) r.
The system has two solutions, r 1 and r 2 , with r 1 < r 2 , corresponding to the two intersection points with coordinates {x p , y p } and x p , y p , shown in Figure 31; the coordinates of {x p , y p } can be obtained by substituting r 1 in (41).

2) Forbidden range
The two directions θ min i and θ max i correspond to the two lines tangent to the ellipse and passing in {x i , y i }. The coordinates of the two tangent points can be found by solving the following system of equations in x, y, imposing the same slope for line and ellipse: leading to the solutions in x in the usual form: where: and finally: c 0 = a 2 y i y obs − y 2 obs + b 2 x i x obs − x 2 obs + a 2 b 2 a 2 (y i − y obs ) The above coordinates are used to determine the minimum distance d ir between a node i in {x i , y i } an the rectangle as follows. The movement area is divided in 8 sectors around the rectangle: 4 corner sectors (Bottomleft, Topleft, Topright and Bottomright) and 4 side sectors (Left, Top, Right and Bottom), as shown in Figure 32. If the point {x i , y i } falls in a corner sector, the minimum distance is the distance between {x i , y i } and the corresponding corner; if it falls in a side sector, the minimum distance is determined as the distance between {x i , y i } and the point {x p , y p } on the corresponding side crossed by a line passing through {x i , y i } and orthogonal to the side. As an example, Figure 32 shows a point {x i , y i } in the Left side quadrant; the point of the rectangle at minimum distance from i is {x p , y p } ≡ x min obs , y i .

2) Forbidden range
The evaluation of the angles θ min i and θ max i determining the forbidden range takes advantage of the quadrants defined in the previous subsection. In all cases, each of the two directions delimiting the range corresponds to the angle defined by a line passing through {x i , y i } and one of the corners of the rectangle; the sector {x i , y i } falls in determines which corners will be considered: • if {x i , y i } falls in a side sector, the corners determining the two angles will be those at the two ends of the corresponding side. This case is shown in Figure 32 for a node i in the Left quadrant, where one has: • if {x i , y i } falls in a corner sector, the corners determining the two angles will be those adjacent to the corner delimiting the sector. As an example, for a node i in the Topleft sector, the two corners would be x min obs , y min obs and {x max obs , y max obs }, leading to: θ min i = arctan2 y min obs − y i , x min obs − x i θ max i = arctan2 (y max obs − y i , x max obs − x i ) .
Once θ min i and θ max i have been determined, the corresponding forbidden range F θ can be obtained by applying the rule defined in (48).