At least one of the present embodiments generally relates to a method for allocating, by a resource scheduler, a radio resource in a system comprising a set of devices, each devices hosting at least one application.
The Fourth Industrial Revolution (or Industry 4.0) refers to the automation of traditional manufacturing using smart technology such as Internet of Things, cloud computing.
Robotics is part of the Industry 4.0. Indeed, in smart factories, robots are used to limit human operations. In this framework, communications play a key role. The application's requirements in Industry 4.0 is centered on multiple factors such as reliability, latency, longevity of communication devices. Currently, robots are often connected to a wired infrastructure. Time Sensitive Networking (TSN) is the standard Ethernet-based technology for converged networks of Industry 4.0 due to its capacity to support deterministic latency requirements. More precisely, TSN standard extend the traditional Ethernet data-link layer standards to guarantee data transmission with bounded ultra-low latency, low delay variation (jitter), and extremely low loss, which is ideal for industrial control and automotive applications.
TSN defines Time Aware Shaper (TAS) schedulers for guaranteeing the transmission of high priority deterministic traffic in a bounded time. However, TAS suffers from high overhead for short lived flows and thus degrades communication performance.
In addition, contrary to wireless technologies, TSN based networks cannot provide the required flexibility to support mobile industrial applications required for the factories of the future. Wireless networks have many advantages, including flexibility, low cost, ease of deployment but at the cost of reliability.
It is thus desirable to find a method for resource allocation in a wireless environment that satisfies application's requirements while ensuring good communication performance.
At least one of the present embodiments generally relates to a method for allocating a radio resource in a system comprising a resource scheduler and a set of devices, each device hosting at least one application, each application transmitting messages to at least one receiver on a transmission channel. The method comprises, executed by the resource scheduler, at least one iteration n of:
This method satisfies application's requirements while ensuring good communication performance. Thus, the resource allocation method makes it possible to reduce the number of application failures while still ensuring good communication performance namely thanks to the feedbacks from the resource scheduler to the applications.
In a specific embodiment, a) to e) are repeated iteratively.
In a specific embodiment, said application parameters representative of application's requirements comprise a resilience value, a message lifetime and a message period.
In a specific embodiment, computing, for each application, a metric responsive to at least part of the received application parameters, to an average probability of failure of said application and further to a channel error probability of said transmission channel comprises:
In a specific embodiment
where Qk(n) is a number of transmission opportunities before a resilience violation of the application of index k or a number of time slots before a resilience violation of the application of index k, H( ) is a predefined increasing affine function or an identity function and ρk(n) is an average resource usage
In a specific embodiment, updating the average probability of failure Fk(n) comprises:
A method for allocating a radio resource in such a system is also disclosed. The method comprises the following steps executed by each device hosting at least one application:
In a specific embodiment, said at least one application parameter being a resilience, updating at least one application parameter comprises comparing the received instantaneous probability of failure with a threshold value and increasing said resilience in the case where the received instantaneous probability of failure is above said threshold value.
In a specific embodiment, updating at least one application parameter comprises updating a resilience and an angular velocity by comparing the received instantaneous probability of failure with a threshold value and decreasing said angular velocity and further increasing said resilience in the case where the received instantaneous probability of failure is above said threshold value.
In a specific embodiment, the method further comprises:
A resource scheduler configured for allocating a radio resource in such a system is further disclosed. The resource scheduler comprises at least one processor configured to:
A device hosting an application in such a system is disclosed. The device comprises at least one processor configured to:
A system comprising such a resource scheduler and such a device hosting an application is also disclosed.
A computer program product comprising program code instructions is disclosed that can be loaded in a programmable device, the program code instructions causing implementation of the method according to the various embodiments when the program code instructions are run by the programmable device. A storage medium storing such a computer program is disclosed.
The characteristics of the invention will emerge more clearly from a reading of the following description of at least one example of embodiment, said description being produced with reference to the accompanying drawings.
The various embodiments are disclosed in the context of a smart factory where moving robots are installed to fulfill various missions such as for example moving from one location to another location in the factory within a certain amount of time. However, these embodiments may also apply in other environments such as for example environments including autonomous vehicles.
Each robot 10A-10D and each controlling device 12A-12B comprises at least one application module. Thus, an application message is more particularly exchanged between the application module of a robot and the application module of a controlling device. An application module generally comprises a software entity, namely the application, along with hardware elements such as an application buffer.
A robot usually comprises several physical elements, e.g. a wheel, an arm, etc. Thus, a given robot may need to exchange application messages comprising different types of data with a controlling device depending on the concerned physical element. Therefore, in the following, a stream Sk is defined as the set of application messages mk(n) transmitted from (respectively received by) a given physical element of a given robot in the set 10 of robots. Said otherwise a plurality of streams may be associated with one and the same robot, e.g. one stream associated with the arm of the robot and one stream associated with each wheel of the robot. In the following, K streams {S1, . . . , SK} are considered wherein each stream Sk is associated with a given application APPk. There is thus a one-to-one association between an application APPk and a stream Sk. The application APPk pushes messages mk(n) one-by-one into an application buffer of size one message, the messages mk(n) being transmitted at a time instant n using a radio resource to a corresponding receiver, e.g. to a controlling device.
In a wireless environment, the number of radio resources is limited. In the context of radio communication, the number of resources is defined as the number of frequency resources (e.g. subchannels where each subchannel comprises a finite number of frequency blocks) used in a limited amount of time. In order to appropriately allocate these limited radio resources, the system 1 further comprises a resource scheduler (RS) 14 configured to periodically, i.e. every dt (e.g. dt=1 ms), allocate an available radio resource to one specific stream Sk. As depicted on
The resource scheduler 14 usually comprises a software entity along with hardware elements such as a buffer. The resource scheduler may be located in a base station, a MEC station or a mobile station.
Each application AAPk has some requirements defined by a set of application parameters whose values may vary temporally, namely a resilience Rk(n), a message lifetime Dk(n) and a message period Tk(n).
The resilience Rk(n) is the maximum amount of time the application AAPk authorizes for not receiving any message. In case the resilience Rk(n) is violated, i.e. the application APPk does not receive any message during a time period superior to Rk(n), an application failure occurs. In this case, the associated robot may enter in a safety mode, e.g. a partial or complete stop with a reinitialization.
The message lifetime Dk(n) is the lifetime of a message my when pushed into the application buffer (also called packet delay budget in the literature). Indeed, the message mk(n) of, for example, any monitoring application is only relevant for a limited time duration in particular because of robot motion. On
The message period Tk(n) is the time between the life's start of any two consecutive messages. This period may be variable if the application does not need a periodic traffic.
The resource allocation comprises selecting, for an available radio resource, a single stream Sk (thus a single application APPk) according to some metrics Mk(n). The metrics Mk(n) are defined to balance between the satisfaction of the application's requirements of any single stream, e.g. minimizing the number of application failures due to resilience violation, and the sharing of the radio resources between all devices in a most fair manner.
To this aim, the resource scheduler 14 uses for example an α-fair utility-based formalism to ensure a fairness resource allocation between the streams. Accordingly, a local cost function for the kth stream is defined as follows:
where Fk(n) is the average probability of failure of the application APPk at time instant n. The value of a determines the expected fairness of the resource scheduler 14, e.g. α=1 provides a proportional fair, i.e. a balance between throughput of the network while at the same time allowing at least a minimal level of service for all users and α=10 corresponds to a max-min fairness. A global cost function J(n) is then defined as a function of all the local cost functions. For example, J(n) is defined as the sum over k of the local cost functions:
The cost function J(n) is thus used by the resource scheduler 14 to select, at time instant n, one stream among the K streams to allocate a radio resource to.
The practical implementation of the resource allocation comprises steps S40 to S46.
At step S40, the resource scheduler 14 receives, from each application APPk, the application parameters representative of its application's requirements at time instant n, i.e. Rk(n), Dk(n), Tk(n).
At step S42, the resource scheduler 14 computes, for each stream Sk (thus for each application APPk), a metric Mk(n) responsive to at least part of the received application parameters, i.e. Rk(n), Dk(n), Tk(n), to the average probability of failure Fk(n−1) and further to the channel error probability Pe
Each metric Mk(n) is computed as follows:
where: Nk(n−1) is the number of messages buffered by the application APPk since the application started;
At the time instant n, the probability of failure Fk(n) is not known. It is thus predicted from Fk(n−1) as follows:
where δk(n)=1 in the case the stream k is selected to allocate the radio resource to and δk(n)=0 otherwise.
ƒk(n) may be computed in different ways depending on the concern for radio conditions and for application's requirements.
In a first embodiment, the metrics Mk(n) take into account the resilience Rk(n) in addition to the radio conditions represented by Pe
or as follows:
where Qk(n) is set equal to nk+Rk(n)−n, where nk is the last time instant at which a packet for the application APPk has been received. The quantity Qk(n) represents the number of time slots before a resilience violation, i.e. an application failure. Either Qk(n) is decreased by one if the stream does not succeed in transmitting the packet or Qk(n) is set to the resilience Rk otherwise. Said otherwise, in the case where the packet is correctly transmitted, i.e. if the resource is allocated and the packet is received, then Qk(n) is set to the resilience value. In fact, when a transmission succeeded at time instant n, nk is set equal to the value n and thus consequently Qk(n) is set equal to Rk(n).
In the case where the packet is not received (because not allocated or allocated but the transmission is unsuccessful), n is increased by 1 and thus Qk(n) is decreased by one.
In a variant of the first embodiment, Qk(n) is multiplied by an average resource usage ρk(n). As an example, the average resource usage Pk(n) is computed by counting the number of resource allocations obtained by the stream Sk (or in an equivalent manner by the application APPk) until the current time instant n divided by the total number of time slots until the current time instant n. In another example, the average resource usage provides a uniform resource distribution as ρk(n)=1/K where K is the number of streams. In another example, ρk(n) reflects the resilience with ρk(n)=1/Rk(n). The values of average resource usage thus belong to the interval [0; 1]. In this variant, the function ƒk(n) is thus defined as follows:
or more generally as follows:
where H( ) is a predefined function. As an example, H( ) is the identity function or an increasing affine function of Qk(n), e.g. H(Qk(n))=Qk(n)−1. In a second embodiment, the message lifetime Dk(n) and the message period Tk(n) are taken into account in addition to the resilience Rk(n) (through NT
where NT
By multiplying (NT
In a variant, the function ƒk(n) may be defined as follows:
where Qk(n) is set equal to max {rk+Dk(n)−n, 0}+(NT
In a variant of the second embodiment, Qk(n) is multiplied by an average resource usage ρk(n) and ƒk(n) is thus defined as follows:
or more generally as follows:
where H( ) is a predefined function. As an example, H( ) is the identity function or an increasing affine function of Qk(n), e.g. H(Qk(n))=Qk(n)−1.
In this second embodiment and its variant, Qk(n) is thus split into a number of remaining transmission opportunities in the next buffered messages to come and an estimated number dk(n) of remaining transmission opportunities in the current message, i.e. before the current message death. When considering that at low layers (PHY, MAC) there might be Hybrid ARQ mechanisms, the instantaneous current packet probability of failure is not only dependent on dk(n). Any HARQ-based receiver that accumulates redundancy each time a packet is not well decoded but transmitted (channel failures) observes a reduced current packet probability of failure even considering a constant channel error probability. Indeed, by increasing the redundancy, the probability of well decoding the received packet is increased as if the signal-to-noise ratio (SNR) was greater.
At step S44, the resource scheduler 14 compares the metrics {M1(n), . . . , MK(n)} and, responsive to this comparison, selects a stream k* to allocate the radio resource to. The message mk*(n) of the selected stream is thus sent through the channel Hk* to the receiver. At this step, δk*(n)=1 and δk(n)=0 for any k≠k*.
Depending on the definition of the cost J(n):
At step S46, the average probability of failure Fk(n) is updated for each k. The updated value Fk(n) is to be used for the calculation of the metrics Mk(n+1). The probability of failure Fk(n) is updated as follows:
and Nk(n) is updated at the same time as follows:
N
k*
(n)
=N
k*
(n−1)+1
F
k
(n)
=F
k
(n−1) and Nk(n)=Nk(n−1)
At step S48, each instantaneous probability of failure ƒk(n) computed at S42 is transmitted to the corresponding application APPk. The transmitted instantaneous probability of failure ƒk(n) is received by the application APPk which uses it for updating at least one of its application parameters in order to try to decrease the instantaneous probability of failure at time instant (n+1).
The steps S40 to S48 are repeated iteratively while n is incremented. Thus, n is thus representative of an index of iteration.
In a step S60, the application APPk receives information, e.g. the instantaneous probability of failure ƒk(n) provided by the resource scheduler 14. ƒk(n) is only known by the scheduler, i.e. the application is not able to compute it. Consequently, transmitting this information to the application makes it possible for the application to adapt its requirements so as to decrease the probability of failure in the future so that ƒk(n+1)<ƒk(n).
In a step S62, the application APPk updates at least one of its application parameters responsive to the received information. As depicted on
In a variant depicted on
More generally, the application APPk uses as inputs {ƒk(n−L
The updating function Fupdate may be defined in different ways.
In a first embodiment, the application initially considers a maximum probability of failure ƒkMAX. The value ƒkMAX is determined based on the performance's needs of the application. If the received value ƒk(n)>ƒkMAX then the application allows for a greater resilience such that Rk(n+1)>Rk(n). This way, the stream Sk obtains more transmission opportunities. In an example, If the received value ƒk(n) is greater than the maximum probability of failure ƒkMAX, the resilience is increased by ΔR time slots, i.e. Rk(n+1)=Rk(n)+ΔR, e.g. ΔR=1. In this embodiment, only the resilience parameter is updated. Otherwise (i.e. if ƒk(n)≤ƒkMAX), the resilience is not modified. In a variant, the resilience is decreased in the case where ƒk(n) is significantly lower than ƒkMAX.
In a second embodiment, probabilities of failure {ƒk(n+1), . . . , ƒk(n+L
where Γ is a matrix and fctt(•) is a function that combines its input values. For example, fctt( ) is a function that outputs the average, variance, median or maximum of its input values. In a variant, fctt( ) is the identity function.
In a specific example,
Given some precomputed relationships between the probability of failure and the application's requirements, the application APPk may updates its application parameters {Rk(n+1), . . . , Rk(n+L
In a third embodiment, the application APPk is a control application for a motor of a wheel of a robot. The variable Xk(n) represents an angular speed provided by the motor to the wheel at time instant n. The application messages are monitoring information periodically required with the period Tk(n) which is directly computed from the angular speed, e.g. Tk(n). Given a maximum probability of failure ƒkMAX, if ƒk(n)>ƒkMAX, then the application reduces the angular velocity such that Xk(n+1)<xk(n). In an example, Xk(n+1) decreased by ΔX, i.e. Xk(+1)=Xk(n)−ΔX, e.g. ΔX=1 m/s or 2 m/s. The value ΔX is determined based on the performance's needs of the application. Consequently, the period of the application messages increases such that Tk(+1)>Tk(n). If the application requires the same number of transmission opportunities within a resilience window, then the resilience is increased such that Rk(n+1)>Rk(n). For example, the resilience is increased by ΔR time slots, i.e. Rk(n+1)=Rk(n)+ΔR, e.g. ΔR=1.
In this embodiment, Dk(n) is not updated.
In a fourth embodiment, one of the controlling devices 12A-12B acts as a global application that manages all the single applications APPk. In the case where too many probabilities of failure ƒk(n) are above their threshold ƒkMAX then the controlling device that acts as a global application asks for a re-planification of the missions. Some streams, thus some applications APPk, may be stopped for a while and some others may have their application parameters redefined.
In a fifth embodiment, the application APPk knows some mathematical relationships between ƒk(n) and one or more of the parameters Rk(n) Tk(n) Dk(n) Xk(n). Said otherwise, the application APPk knows the following function G( ): ƒk(n)=G(Rk(n), Tk(n), Dk(n), Xk(n)). In another embodiment, only one application parameter or a subset of them is considered as an input of the function G( ) e.g. ƒk(n)=G(Rk(n) Tk(n)). In this case, the other application parameters are not updated.
The application APPk thus computes at least one new application parameter among Rk(n+1), Tk(n+1), Dk(n+1) and optionally Xk(n+1) from ƒk(n+1) by inverting G( ), ƒk(n+1) is determined by the application APPk so that it is lower than the received ƒk(n) For example, ƒk(n+1) is determined as follows: ƒk(n+1)=ƒk(n)−Δƒ, e.g. Δƒ=10%. The value Δƒ is determined based on the performance's needs of the application.
In one specific embodiment, the application APPk learns the function G( ) offline. In a variant, the application scans all the possible values of all the application parameters and selects the set of values that either minimizes ƒk(n) or leads ƒk(n) close to an arbitrary target value of ƒk(n).
In a sixth embodiment, the application APPk transmits to the resource scheduler the target failure probability ƒkMAX. In this embodiment, the resource scheduler, instead of the application APPk, updates at least one application parameter to ensure a probability of failure ƒk(n+1) lower than or equal to ƒkMAX.
From ƒkMAX, the resource scheduler thus determines values Rk(n+1), Tk(n+1), Dk(n+1) or at least one of them so that ƒk(n+1)≤ƒkMAX. The determined value(s) is(are) transmitted to the corresponding application APPk.
In a variant, the resource scheduler only determines a single value of Rk(n+1) and transmits it to the corresponding application APPk. In this variant, the values Tk(n+1) and Dk(n+1) are not updated. Thus, they are set equal to the values previously given by the application, i.e. Tk(n) Dk(n).
In another variant, the resource scheduler determines pairs of values of Rk(n+1) Tk(n+1) while Dk(n+1) is not updated, i.e. Dk(n). Since the number of possible pairs might be very high, the resource scheduler may select a finite number of them, for example by taking the values of Rk(n+1) in a limited search space, such as a linear quantization between a maximum and minimum value.
In another variant, the application APPk informs the resource scheduler of the requested feedbacks, for example, a set of values Tk(n), Dk(n) satisfying ƒk(n)=ƒkMAX for a fixed value of Rk(n) or any combination of this type. In this case, the application APPk transmits to the resource scheduler ƒkMAX and Rk(n). For its part, the resource scheduler determines a set of values Tk(n+1) Dk(n+1), Dk(n+1) satisfying ƒk(n)=ƒkMAX and fulfilling the resilience constraint, i.e. Rk(n+1)=Rk(n).
As depicted on
In a seventh embodiment illustrated by
ρk(n) and ƒk(n) are thus transmitted to the application APPk which updates at least one of its application parameters in the same manner as mentioned in the first to sixth embodiments, using ρk(n) as an additional parameter used to update the application parameter. As an example related to the fourth embodiment, G( ) is defined as (Rk(n), Tk(n), Dk(n), Xk(n))=G−1 (ρk(n), ƒk(n)).
The resource scheduler 100 comprises, connected by a communication bus 110: a processor or CPU (acronym of “Central Processing Unit”) 101; a random access memory RAM 102; a read only memory ROM 103; a storage unit 104 such as an hard disk or such as a storage medium reader, e.g. a SD (acronym of “Secure Digital”) card reader; and at least one set of communication interfaces COM 105 enabling the resource scheduler 100 to transmit and receive data.
The processor 101 is capable of executing instructions loaded into the RAM 102 from the ROM 103, from an external memory (such as an SD card), from a storage medium (such as the HDD), or from a communication network. When the resource scheduler 100 is powered up, the processor 101 is capable of reading instructions from the RAM 102 and executing them. These instructions form a computer program causing the implementation, by the processor 101, of the method described in relation to
The method described in relation to
The device 200 comprises, connected by a communication bus 210: a processor or CPU (acronym of “Central Processing Unit”) 201; a random access memory RAM 202; a read only memory ROM 203; a storage unit 204 such as an hard disk or such as a storage medium reader, e.g. a SD (acronym of “Secure Digital”) card reader; and at least one set of communication interfaces COM 105 enabling the device 200 to transmit and receive data.
The processor 201 is capable of executing instructions loaded into the RAM 202 from the ROM 203, from an external memory (such as an SD card), from a storage medium (such as the HDD), or from a communication network. When the device 200 is powered up, the processor 201 is capable of reading instructions from the RAM 202 and executing them. These instructions form a computer program causing the implementation, by the processor 201, of the method described in relation to
The method described in relation to
Number | Date | Country | Kind |
---|---|---|---|
21305555.1 | Apr 2021 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2021/039190 | 10/19/2021 | WO |