Controlling a device
The method enhances the robustness of offloaded control systems by using a network node to generate modified control input data from predicted and measured state data, addressing issues of network imperfections and local disturbances for accurate device operations.
Patent Information
- Application Number
- PCT/EP2023/081855
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-11-15
- Publication Date
- 2025-05-22
AI Technical Summary
Existing offloaded control systems face challenges in maintaining accurate control of devices due to network imperfections such as packet loss and instability, as well as local disturbances, which can lead to incorrect device operations.
A method and system that utilize a network node to generate modified control input data by combining predicted and measured state data with predefined control input data, ensuring that the control input data remains within safe limits, thereby enhancing robustness against network imperfections and local disturbances.
The proposed solution provides robust offloaded control by ensuring accurate device operations even under network imperfections and local disturbances, while also reducing the computational load on local devices by offloading heavy computations to an offloaded controller.
Smart Images

Figure EP2023081855_22052025_PF_FP_ABST
Abstract
Description
CONTROLLING A DEVICE TECHNICAL FIELD
[0001] This disclosure relates to a method performed by a network node for controlling a device, a method performed by an offloaded controller for controlling a device via a network node, corresponding computer programs, corresponding carriers, a network node for controlling a device, an offloaded controller for controlling a device via a network node, and corresponding apparatuses. BACKGROUND
[0002] As the complexity of industrial operations performed by controlled entities (e.g., mobile robots, industrial manipulators, chemical plants, manufacturing processes, etc.) increases, the process of determining control input data for controlling the controlled entities to perform such operations becomes more complex. However, the capability of local processors of the controlled entities may be limited, and thus the processors may not be capable of determining correct and / or accurate control input data. To solve this problem, the process of determining the control input data can be offloaded from the controlled entities to other entities. In other words, instead of performing the process of determining the control input data at the controlled entities, the process may be performed at other entities (e.g., a remote server). One example of offloading is edge / cloud computing.
[0003] FIG. 7 shows a standalone offloaded control architecture 700 in the existing art. As shown in FIG. 7, the architecture 700 comprises an offloaded controller 704 and a network node (NN) 702. The offloaded controller 704 comprises a control input generator 714 which is configured to generate and transmit, to the NN 702, control input data 752 for controlling operations of a controlled entity 712. After receiving the control input data 752 from the control input generator 714, the controlled entity 712 is configured to perform operations based on the control input data. After the controlled entity 712 performs the operations, the NN 702 detects the state of the controlled entity 712, and transmit, to the offloaded controller 704, state data 754 indicating the detected state of the controlled entity 712.
[0004] As shown in FIG.7, the offloaded controller 704 and the NN 702 are connected viaa network 760. Thus, the control input data 752 may be transmitted from the offloaded controller 704 to the NN 702 via the network 760, and the state data 754 may be transmitted from NN 702 to the offloaded controller 704 via the network 760.
[0005] In case the network 760 is lossy and / or unstable, packets travelling through the network 760 may be lost during the transmission due to various factors such as congestion, long delay, and / or handover. In such case, the control input data 752 may not be delivered from the offloaded controller 704 to the NN 702 properly and / or the state data 754 may not be delivered from the NN 702 to the offloaded controller 702 properly. Furthermore, in case there is a local disturbance (e.g., strong wind, a high surrounding temperature, etc.) affecting the operations of the controlled entity 712, even when the NN 702 successfully receives the correct control input data from the offloaded controller 704, the controlled entity 712 may not be able perform its operations correctly due to the local disturbance. Therefore, there is a need for a method and a system for providing robust offloaded control. SUMMARY
[0006] Accordingly, in one aspect of some embodiments of this disclosure, there is provided a method performed by a network node for controlling a device. The method comprises obtaining first control input data for controlling the device, wherein the first control input data is within a predefined set of control input data. The method further comprises generating, using a prediction model stored in the network node, predicted current state data which indicates a predicted current state of the device. The method further comprises obtaining measured current state data which indicates a measured current state of the device, wherein the measured current state of the device is measured by one or more sensors associated with the device. The method further comprises generating, based on the first control input data, the predicted current state data, and the measured current state data, modified control input data for controlling the device, wherein the modified control input data is within the predefined set of control input data. The method further comprises controlling the device using the modified control input data.
[0007] In another aspect, there is provided a method performed by an offloaded controller for controlling a device via a network node. The method comprises obtaining predicted current state data which indicates a predicted current state of the device, and obtaining target state data which indicates a target state of the device. The method further comprises generating, based on thepredicted current state data and the target state data, current control input data for controlling the device. The method further comprises transmitting the current control input data to a network node controlling the device.
[0008] In a different aspect, there is provided a computer program comprising instructions which when executed by processing circuitry cause the processing circuitry to perform the method of any one of the above embodiments.
[0009] In a different aspect, there is provided a carrier containing the computer program of the above embodiment, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.
[0010] In a different aspect, there is provided a network node for controlling a device, the network node being configured to obtain first control input data for controlling the device, wherein the first control input data is within a predefined set of control input data. The network node is further configured to generate, using a prediction model stored in the network node, predicted current state data which indicates a predicted current state of the device. The network node is further configured to obtain measured current state data which indicates a measured current state of the device, wherein the measured current state of the device is measured by one or more sensors associated with the device. The network node is further configured to generate, based on the first control input data, the predicted current state data, and the measured current state data, modified control input data for controlling the device, wherein the modified control input data is within the predefined set of control input data. The network node is further configured to control the device using the modified control input data.
[0011] In a different aspect, there is provided an offloaded controller for controlling a device via a network node. The offloaded controller is configured to obtain predicted current state data which indicates a predicted current state of the device, and obtain target state data which indicates a target state of the device. The offloaded controller is further configured to generate, based on the predicted current state data and the target state data, current control input data for controlling the device. The offloaded controller is further configured to transmit the current control input data to a network node controlling the device.
[0012] In a different aspect, there is provided an apparatus comprising: a processing circuitry; and a memory, said memory containing instructions executable by said processing circuitry, whereby the apparatus is operative to perform the method of any one of the aboveembodiments.
[0013] Some embodiments of this disclosure provide to an offloaded control system robustness to network imperfections such as delay and packet loss while guaranteeing that the system performs operations following a reference in a safe manner despite the presence of a local disturbance.
[0014] Also, in some embodiments, instead of running a computationally demanding calculations such as the trajectory generation directly at the controlled device (aka the controlled entity), heavy computations are offloaded to an offloaded controller while running a nominal process model locally on the network node, thereby reducing the local computational load. Furthermore, by running the nominal process model locally, the operations of the controlled device can be maintained stably even during unexpectedly long network outages.
[0015] Furthermore, in some embodiments, a trade-off between local computational load and higher network load can be balanced by providing different packet content. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] The accompanying drawings, which are incorporated herein and form part of the specification, illustrate various embodiments.
[0017] FIG. 1 shows an exemplary scenario where some embodiments of this disclosure can be applied.
[0018] FIG.2 shows a system according to some embodiments.
[0019] FIG.3 shows a process according to some embodiments.
[0020] FIG.4 shows a process according to some embodiments.
[0021] FIG.5 shows a process according to some embodiments.
[0022] FIG.6 shows an apparatus according to some embodiments.
[0023] FIG.7 shows an existing offloaded control system. DETAILED DESCRIPTION
[0024] FIG. 1 shows an exemplary scenario 100 where some embodiments of this disclosure can be applied. In the scenario 100, a robot 108 is configured to move nuclear waste storage 120 from its current location. The robot 108 comprises a robotic arm 116 and one ormore sensors 118 (hereinafter just “the sensor 118”). The robotic arm 116 is configured to lift and carry the nuclear waste storage 120, and the sensor 118 (e.g., camera(s), encoder(s), inertial measurement unit(s), etc.) is configured to collect state data indicating the current state of the robotic arm 116.
[0025] The robot 108 may be connected to a wireless signal transceiver 112 capable of transmitting data to and / or receiving data from an offloaded controller 104 via a wireless network 110 provided by a base station (e.g., eNB, gNB, Wi-Fi access point, etc.) 106. In other words, the offloaded controller 104 may be connected to the robot 108 via the wireless network 110. The offloaded controller 104 and the robot 108 may be located at the same site (e.g., within the same factory, the same geographical region). Alternatively, the offloaded controller 104 may be located at a remote location (i.e., a different site and / or a different geographical area / region) from the robot 108. The wireless signal transceiver 112 is configured to transmit the state data collected by the sensor 118 to the offloaded controller 104 via the network 110 and to receive control input data for controlling the robot 108 from the offloaded controller 104 via the network 110. In some embodiments, the network 110 is a wireless network such as Long Term Evolution (LTE) network, a 5G network, a Wi-Fi network, a Bluetooth connection, or a Zigbee network). Also in some embodiments, instead of relying on the base station 106, the offloaded controller 104 may be capable of directly communicating with the robot 108 via the wireless network 110 (e.g., via a Bluetooth connection).
[0026] Upon receiving the state data, the transceiver 112 may send the state data to a local controller 114 which is capable of controlling the robot 108 to operate in accordance with the received control input data. The combination of the robot 108, the local controller 114, and the signal transceiver 112 may be referred to as a network node (NN) 102. Alternatively, only the combination of the local controller 114 and the signal transceiver 112 may be referred to as the NN 102.
[0027] The offloaded controller 104 (e.g., an edge / cloud server) is configured to determine how to control the robot 108 given the current state of the NN 102. The offloaded controller 104 is configured to, based on the determination, control the robot 108 in order to place the robot 108 into a state desired by the operator (a.k.a., “reference state”). The offloaded controller 104 is configured to receive reference state data which indicates the reference state of the robot 108, analyze the current state of the robot 108, and, based on the reference state data and the analysisof the current state data, generate the control input data for triggering the robot 108 to perform certain operation(s) in order to place the robot 108 into the reference state. After generating the control input data, the offloaded controller 104 may transmit one or more controller packets including the control input data to the transceiver 112 via the network 110.
[0028] As explained above, the network 110 is not perfect. For example, the network may be a lossy network suffering from random loss of packets in both transmission directions due to network congestion, long delay, and / or handovers. Therefore, sometimes, the controller packets transmitted from the offloaded controller 104 may not arrive at the transceiver 112 within a given time period, and thus the local controller 114 may not have the correct control input data for controlling the robotic arm 116 of the robot 108 in time. Furthermore, in some scenarios, the controller packets may not arrive at the transceiver 112 at all. Furthermore, even if the local controller 114 receives the correct control input data from the offloaded controller 104, due to local disturbance (e.g., strong wind in the environment where the robot 108 operates), controlling the robotic arm 116 according to the control input data may not result in achieving the reference state of the robot 108.
[0029] In order to solve the above problems, in some embodiments of this disclosure, a system 200 shown in FIG.2 and a process 300 shown in FIG.3 are provided. The process 300 may be performed by the system 200 in order to provide robust offloaded control.
[0030] The system 200 for providing robust offloaded control may comprise the offloaded controller 104, a network 240, and the NN 102 via which the offloaded controller 104 and the NN 102 are connected. The network 240 may comprise the wireless network 110 between the base station 106 and the transceiver 112. Additionally, the network 240 may comprise a wired or wireless network between the offloaded controller 104 and the base station 106.
[0031] As shown in FIG.2, the offloaded controller 104 may comprise a predictor 202 and a control input generator 204, and the NN 102 may comprise a predictor 206, a consistency checker 208, a controlled entity 210, and an actual control input generator 212. The controlled entity 210 may be a process or a device (e.g., the robot 108). As mentioned above, the system 200 is configured to perform the process 300 for providing robust offloaded control, according to some embodiments. The process 300 may begin with step s301 performed by the control input generator 204.
[0032] The function of the control input generator 204 is determining control input datawhich triggers the controlled entity 210 to perform one or more operations such that the state of the controlled entity 210 becomes a reference state (e.g., a desired position of the end-effector of the robotic arm 116) as close as possible. In some embodiments, the control input data may trigger the controlled entity 210 to perform a series of operations in the next ^^ time steps. In such embodiments, the control input data may be referred to as control input trajectory data which has the length of ^^ time steps. For simple explanation purpose, the expressions “control input data” and “control input trajectory data” are used interchangeably in this disclosure.
[0033] In some embodiments, it is desirable to limit the operations of the controlled entity 210 such that the state of the controlled entity 210 is always within a safe set of states, which is denoted as ^^. For example, it may be desirable to limit the end-effector of the robotic arm 116 such that it does not reach into the working area of a human, or control the pressure in a tank such that the pressure does not go above a certain value. Thus, in some embodiments, the state of the controlled entity 210 (^^(^^)) is set to be within the safe set ^^, i.e., ^^(^^) ∈ ^^ for all time steps ^^ ≥ 0. The safe set of states may be provided as a list of allowed states or may be defined as a range or ranges of allowed states.
[0034] Similarly, in some embodiments, it is desirable to limit the control input data to be within a safe set of control input data, which is denoted as ^^. For example, it may be desirable to set a limit on the joint velocities of the robotic arm 116. Thus, in some embodiments, the control input data (u(^^)) is set to be within the safe set ^^, i.e., ^^(^^) ∈ ^^ for all time sequences ^^ ≥ 0. The safe set of control input data may be provided as a list of allowed control input data or may be defined as a range or ranges of allowed control input data.
[0035] The output of the control input generator 204 is nominal control input data ^^∗^ and optionally nominal desired state data ^^∗^ . Here, the control input data is called “nominal” because the control input data is set to be within the safe set of the control input data. Similarly, the desired state data is called “nominal” because the desired state data is set to be within the safe set of the state data. The text below explains in detail as to how the control input generator 204 generates the nominal control input data ^^∗^ .
[0036] Referring back to FIG. 3, in the step s301, the control input generator 204 may generate current control input data for controlling the controlled entity 210 for time sequence ^^. Note that, in this disclosure, each time sequence may be associated with a specific time period and / or a specific cycle of performing the steps included in the process 300.
[0037] Here, the control input data is expressed as “current” control input data as it is associated with the time sequence ^^. Thus, in this disclosure, the control input data associatedwith the time sequence ^^ ^ 1 is expressed as “next” control input data and the control input dataassociated with the time sequence ^^ െ 1 is expressed as “previous” control input data.
[0038] The current control input data for the time sequence ^^ may be generated based onstate data 290 indicating state ^^^^^^|^^ െ 1^ of the controlled entity 210 predicted by thepredictor 202 and reference state data 292 (^^^) indicating a reference state of the controlled entity 210. The current control input data for the time sequence ^^ may have the length ^^ of time steps. The reference state data ^^^may be a constant signal or a time-varying signal.
[0039] To generate the current control input data, in some embodiments, the control input generator 204 may solve the following optimization problem: ìℎ൫^^^^0^, ^^^^^^|^^ െ 1^൯ ൌ 0ï^^where ^^ and ^^^and ^^^^^^^the ^^th element of the respective data, ^^^⋅^ represents a cost function, and ^^ ∈ ^0, … , ^^ െ 1^. Theconstraint given by ℎ^⋅^determines the starting point of the generated data with respect to the estimated state. ^^^is the tightened set for the nominal state and ^^^is the tightened control set. More information about the tightened set for the nominal state and the tightened control set isprovided below. If it is guaranteed that ^^^^^^|^^ െ 1^ ∈ ^^^, then choosing ℎ൫^^^^0^, ^^^^^^|^^ െ 1^൯ ൌ^^^^0^ െ ^^^^^^|^^ െ 1^ is a valid choice.
[0040] As discussed above, the output of the control input generator 204 may be the current nominal control input data ^^∗^ and the current nominal state data ^^∗^ .
[0041] One of the main aspects of the control input generator 204 according to some embodiments is that the generator 204 generates control input data and state data for the nominal process dynamics. In other words, the generator 204 generates an optimal trajectory for the nominal process which fulfills the requirements that ^^∗ ∗^ ^^^^ ∈ ^^^ and ^^^ ^^^^ ∈ ^^^ for all ^^ ∈^0, … ,^^ െ 1^ . This in turn implies if the nominal state is tracked by the control inputgenerator 212, then it is guaranteed that ^^^^^^ ∈ ^^ and ^^^^^^ ∈ ^^ for all ^^ ^ 0, i.e., the operationsof the controlled entity 210 remains safe during the whole execution.
[0042] Furthermore, since the generated control input data is of a finite length, it is common to introduce a steady-state variable which is added to the end of the generated control input data,such that the control input data has length ^^ ^ 1. The purpose of the steady-state variable is thatif the NN 102 does not receive a consistent new control input data within ^^ time steps, thecontrolled entity 210 will approach a steady state which tracks the last nominal state as close as possible. This prevents the controlled entity 210 from drifting too far from the desired state during a network outage. To determine a good steady state, it is often assumed that an additional controller ^^^^⋅^is used when reaching the end of the optimal trajectory. Examples of such a controller can be found in References [1] and [2] identified below. This controller is then used in the generation of the optimal state data, which is typically represented as an additional constraint on ^^^^^^^. This means that in addition to the control input generator 212 ^^^⋅^ on the NN 102, there is a controller that is used to track the steady state in the nominal process. Hence, there may be provided two controllers that can be independently designed and therefore adjusted for trajectory tracking and trajectory design at the same time.
[0043] After performing the step s301, the process 300 may proceed to step s302. Thestep s302 comprises, in the time sequence ^^ ൌ ^^, the offloaded controller 104 transmitting, tothe NN 102, a controller packet 252 including the current nominal control input data ^^^∗generated by the control input generator 204 – i.e., the controller packet 252 is ^^^∗^ ^ . Asexplained above, the current control input data ^^∗^ is expressed as being “nominal” because ^^∗^ is set to be within a safe set of control input data.
[0044] As discussed in detail below, in some embodiments, the offloaded controller 104 may be configured to receive, from the NN 102, a plurality of state packets (e.g., a state packet 254) each of which contains predicted current state data indicating a predicted current state of the controlled entity 210. In such embodiments, the controller packet 252 may also comprise timing data which indicates the timing ^^^at which the offloaded controller 104 received, from the NN 102, the last state packet in the plurality of state packets. In other words, in some embodiments, the controlled packet 252 is ^^^∗^ , ^^^^. Here, ^^^ is less than or equal to^^ െ 1 since the last state packet that could possibly have been received from the NN 102 at theoffloaded controller 104 is sent at the time sequence ^^ ൌ ^^ െ 1. More detailed explanation aboutthe state packets is provided below.
[0045] After successfully receiving the controller packet 252, in step s304, the consistency checker 208 may perform a consistency check on the received controller packet 252 to determine whether to use the current control input data included in the controller packet 252.
[0046] The consistency checker 208 is provided to deal with the network imperfections, such as lost packets. Here, the idea is that if no new controller packet has arrived on time at the NN 102, then the NN 102 may keep following the previously received control input data. On the other hand, if a controller packet is successfully received at the NN 102, the consistency checker 208 may check if the content of the newly received packet is consistent with the nominal process state on the local process. Inconsistencies may occur due to loss of some process packets when they are transmitted from the NN 102 to the offloaded controller 104, resulting in that the offloaded controller 104 uses an outdated or incorrect estimate of the process state to determine the new control input data. Therefore, the consistency checker 208 may analyze the consistency of received controller packets and based on the analysis, determine a new nominal control input ^^^^^^^^^ to be applied to the nominal process model.
[0047] One of the main aspects of the consistency checker 208 is that the consistency checker 208 acts on the nominal control input data and the control input data that is determined to be consistent can be used by the predictor 206 to predict the next state of the process, which can improve the tracking performance.
[0048] In some embodiments, the consistency of the controller packet 252 may be determined based on: ^ ^^^^ if ^^^
[0049] Here, ^^^denotesfor a specific time sequence ^^ was received at the NN 102. If the controller packet for the time sequence ^^ was received at theNN 102, then ^^^ ൌ 1. Otherwise, ^^^ ൌ 0. Thus, ^^^ ∈ ^0,1^.
[0050] The above formula for Θ^^^^ indicates that a controller packet is consideredconsistent if all other previous controller packets transmitted from the offloaded controller 104 are received at the NN 102 since the last successful transmission of a state packet from theNN 102 to the offloaded controller 104 (i.e., since ^^^). If Θ^^^^ ൌ 1, then the newly arrivedpacket is considered consistent with the process state, and thus is used by the subsequent steps of the process 300. Otherwise, the newly arrived packet is discarded.
[0051] Once Θ^^^^ is determined, a variable ^^^which is used to keep track of the last consistent package, may be updated as follows: ^^^ ൌ Θ^^^^^^ ^ ൫1 െ Θ^^^^൯^^^ି^.
[0052] As explained may be sent to the offloadedcontroller 104 in step s308 of the process 300 described below, and used by the predictor 202 of the offloaded controller 104.
[0053] Referring back to FIG. 3, in case the consistency checker 208 of the NN 102 determines that the controller packet 252 is consistent, the current control input data ^^∗^ included in the controller packet 252 may be used by the predictor 206 for predicting a next state of the controlled entity 210 and / or used by the actual control input generator 212 for generating actual control input. In such case, the current control input data ^^∗^ included in the controller packet 252 may be referred to as ^^∗^ೖ because ^^^ ൌ ^^ when the controller packet 252 isconsistent. In case the consistency checker 208 determines that the controller packet 252 is consistent, then the process 300 may proceed to step s306. Otherwise, the process 300 may proceed to step s308.
[0054] The NN 102 may be configured to store the received current control input data if it is consistent. Thus, once the NN 102 determines that the controller packet 252 is consistent, in the step s306, the NN 102 may update its current control input data to be ^^∗^ – i.e., the current control input data included in the controller packet 252.
[0055] On the other hand, if the NN 102 determines that the controller packet 252 is not consistent, the NN 102 may not update its current control input data – meaning that the current control input data stored in the NN 102 may be ^^∗^ೖ assuming that, at time sequence ^^ ൌ ^^^, theconsistency checker 208 determined that the controller packet containing ^^∗^ೖis consistent. In other words, if the NN 102 determines that the controller packet 252 is not consistent, the current control input data stored in the NN 102 may be ^^∗^ೖ.
[0056] In the step s308, the NN 102 may transmit, to the offloaded controller 104, a state packet 254 which contains predicted current state data ^^^^^^^^^indicating a predicted currentstate of the controlled entity 210. As explained below with respect to the predictor 206, the current state of the controlled entity 210 is predicted by the predictor 206 at the time sequence^^ ൌ ^^ െ 1.
[0057] As explained above, in some embodiments, the offloaded controller 104 may be configured to transmit, to the NN 102, a plurality of controller packets (e.g., the controller packet 252) each of which contains control input data for controlling the controlled entity 210. In such embodiments, the state packet 254 may also comprise timing data which indicates timing ^^^at which the NN 102 received, from the offloaded controller 104, the last controller packet in the plurality of controller packets. In other words, in some embodiments, the state packet 254 may comprise the predicted current state data ^^^^^^^^^ and the timing data indicatingthe timing value ^^^, i.e., the state packet 254 is ^^^୬୭୫^^^^, ^^^^. Note that even though FIG. 3shows that the step s308 is performed after the step s306, in some embodiments, the step s308 may be performed before or at the same time as the step s306.
[0058] After performing the step s308, the process 300 may proceed to step s310. The step s310 comprises the control input generator 212 determining actual current control input data for controlling the controlled entity 210.
[0059] As explained above, while the controlled entity 210 performs operations, it may be influenced by a local disturbance (e.g., strong wind, a high surrounding temperature, etc.), and thus its state may deviate from its nominal state. In order to keep its state as close as possible to the nominal state, the control input generator 212 may be used. The control input generator 212 is for rejecting the disturbance as much as possible, while guaranteeing the safety of the operations of the controlled entity 210. This means the control input generator 212 computes aninput ^^^^^^ ∈ ^^ that guarantees that the next process state is safe, i.e., ^^^^^ ^ 1^ ∈ ^^ despite thepresence of the disturbance ^^^^^^, and that the process state follows as close as possible to the nominal state ^^୬୭୫^^^^.
[0060] Determining the actual current control input data may comprise two sub-steps. The first sub-step comprises determining control input for the predictor 206, and the second sub-step is determining the actual current control input data based on the determined control input for the predictor 206, a measured current state, and the predicted current state.
[0061] In some embodiments, the control input for the predictor 206 may be determined as follows:୬୭୫^^୬୭୫^ೖ ^^^ െ ^^^^ if ^^ െ ^^^ ^ ^^,^^ ^^^^ ൌ ^^^^ ^^^^^ ^^ ^
[0062] Asconsistent current control input data and the predicted current state. This means that if no new controller packet has been received or the new controller packet is not deemed consistent, then the current nominal control input data will simply follow the last consistent control input received at the NN 102,which is the case when ^^ െ ^^^ ^ 0.
[0063] Furthermore, since the received current control input data is of a finite length, the determination of the current nominal control input data needs to be specified also in the case when no new consistent controller packet has been received before the end of the currentconsistent trajectory is over, which happens when ^^ െ ^^^ ^ ^^. As mentioned above, the controlinput data can be generated to take that into account, such that the ^^ ^ 1 ^^ℎ entry of the nominalcontrol input data specifies a certain steady state input around which the process needs to be controlled around at the end of the trajectory. As discussed above, the steady state of the trajectory is designed based on a certain control law, ^^^^⋅^which can be used to determine thenominal input, whenever ^^ െ ^^^ ^ ^^.
[0064] Once the current nominal control input data is determined, the controller input generator 212 may use a control law ^^^⋅^ to calculate the actual current control input data ^^^^^^. For example, the actual current control input data ^^^^^^may be calculated as follows: ^^^^^^ ൌ ^^^^^^^^^, ^^୬୭୫^^^^, ^^୬୭୫^^^^^.
[0065] Here, ^^^^^^ is the actual current state data indicating an actual current state of the controlled entity 210 measured by one or more sensors (e.g., the sensor 118) associated with the controlled entity 210. ^^୬୭୫^^^^is the predicted current state data indicating a predicted currentstate of the controlled entity 210 which was predicted by the predictor 206 at time sequence ^^ ൌ^^ െ 1. ^^୬୭୫^^^^ is the current nominal control input data.
[0066] In one example, the control input generator 212 may function as a linear feedback controller such that the actual current control input data ^^^^^^may be determined as follows: ^^^^^^ ൌ ^^୬୭୫^^^^ െ ^^^^^^^^^ െ ^^୬୭୫^^^^^,where ^^ is the controller feedback gain.
[0067] Including the control input generator 212 and the predictor 206 in the NN 102enables the tracking of the operations and stabilization of the potentially unstable process in the presence of disturbances.
[0068] Given the control input generator 212, the error between the process state and thenominal process state may be defined as ^^^^^^ ൌ ^^^^^^ െ ^^୬୭୫^^^^. The so called minimal robustpositively invariant set, ℤ^, is defined as the set in which the error evolves given anydisturbance ^^^^^^ ∈ ^^. This set depends on the control input generator 212 that is used, sincedepending on the control input generator 212, the disturbance is more or less attenuated, which leads to a smaller or larger set. Given this set, for example, the tightened set for the nominalstate can be determined as ^^^ ൌ ^^⊖ ℤ^, where ⊖ denotes the Pontryagin set difference. Thetightened controller set ^^^can be determined in a similar way. A way to compute the set ℤ^is presented in Invariant Approximations of the Minimal Robust Positively Invariant Set and Reference [2] presents a method to design the tracking controller such that it minimizes the size of ℤ^.
[0069] After generating the actual control input data ^^^^^^, the process 300 may proceed to step s312. The step s312 comprises the NN 102 triggering the controlled entity 210 to perform operation(s) according to the actual control input data ^^^^^^. For example, in case the controlled entity 210 is the robot 108 shown in FIG. 1, the actual control input data ^^^^^^ may be used to control the robotic arm 116 of the robot 108. Additionally and optionally, in the step s312, the NN 102 may use one or more sensors associated with the controlled entity 210 to detect the current state of the controlled entity 210 after the controlled entity 210 is operated according to the actual control input data ^^^^^^ and store measured current state data indicating the detected current state of the controlled entity 210.
[0070] Note that, here, the operation(s) of the controlled entity 210 is not only influenced by the actual control input data ^^^^^^ but also by a local disturbance ^^^^^^. Thus, the state of the controlled entity 210 after performing the operation according to the actual control input data ^^^^^^ may be modeled as: ^^^^^ ^ 1^ ൌ ^^൫^^^^^^, ^^^^^^൯ ^ ^^^^^^,where the function ^^^⋅^performed by the controlled entity 210.
[0071] After performing the step s312, the process 300 may proceed to step s314performed by the predictor 206.
[0072] The predictor 206 is a model of how the operator expects the controlled entity 210 to behave if there were no disturbances acting on the operations of the controlled entity 210. Given a nominal input and the current nominal state, the predictor 206 is configured to produce a nominal state, which represents the desired state of the controlled entity 210 by the operator.
[0073] By enabling the NN 102 to simulate the nominal process behavior in real-time, it can get a real-time estimate of the nominal state, which are then used to follow a trajectory and stabilize the system when no packet has been received. If there is no predictor at the NN 102, then the controlled entity 210 would be operated using the same data, resulting in running in an open loop during network outages which may result in not receiving controller packets in time. Hence, the use of the predictor 206 at the NN 102 decouples the trajectory generation and the trajectory tracking / disturbance rejection, which increases the survival time during network outages.
[0074] The step s314 comprises the predictor 206 predicting the next state of the controlled entity 210 based on the predicted current state of the controlled entity 210 and the consistent current control input data outputted from the consistency checker 208. In some embodiments, the predictor 206 may predict the next state of the controlled entity 210 as follows: ^^୬୭୫^^^ ^ 1^ ൌ ^^^^^୬୭୫^^^^,^^୬୭୫^^^^^.
[0075] As discussed above, in the step s308, the NN 102 may transmit, to the offloaded controller 104, the state packet 254 indicating the predicted current state ^^୬୭୫^^^^ of the controlled entity 210.
[0076] After receiving the state packet 254, in step s316, the predictor 202 of the offloadedcontroller 104 may predict the next state ^^^^^ ^ 1^ of the controlled entity 210 given the state upto time sequence ^^. More specifically, the predictor 202 may predict the next state ^^^^^ ^ 1^ ofthe controlled entity 210 based on the predicted current state ^^୬୭୫^^^^ of theentity 210 (which is included in the received state packet 254).
[0077] In predicting the next state of the controlled entity 210, a dynamic model ^^^⋅^ that simulates the operations performed by the controlled entity 210 may be used. For example, the next state of the controlled entity 210 may be determined as follows:^^^^^^ ^ 1|^^^ ൌ ^^൫^^^^^^|^^^,^^^^^^|^^^൯.
[0078] Here, theof ^^^^^^ given all receivedstates up to time step ^^. Let ^^^ ∈ ^0,1^ indicate if the state packet 254 was received (^^^ ൌ 1) ornot (^^^ ൌ 0^. The estimates ^^^^^^|^^^ and ^^^^^^|^^^ may be determined as:^^^^^^|^^^ ൌ ^^ ୬୭୫^^^ ^^^^ ^ ^1 െ ^^^^^^∗^^0^,^^^^^^|^^^ ൌ ^^^^^୬୭୫^^^^ ^ ^1 െ ^^^^^^∗^^0^,which uses the received nominal state to calculate the estimate.
[0079] This guarantees that ^^^^^ ^ 1^ ∈ ^^^^^^^ ^ 1|^^^^ ⊕ ℤ^, where ℤ^ denotes the minimallyrobust invariant set and ⊕be confused with the direct sum, which often is indicated with the same symbol.
[0080] As explained above with respect to the step s308, in some embodiments, the NN 102 may transmit, to the offloaded controller 104, the state packet 254 including the predicted nominal state data ^^୬୭୫^^^^and the timing data ^^^. However, in other embodiments, the state packet 254may additionally include the measured state data ^^^^^^ – i.e., the state packet 254 is^^^^^^^, ^^୬୭୫^^^^, ^^^^. One advantage of including the measured state data is that the offloadedcontroller 104 can obtain direct feedback on the current actual state of the controlled entity 210 as well as the predicted nominal state. One downside is that sending this additional data may require additional bandwidth.
[0081] As explained above, upon receiving the state packet 254, the predictor 202 of the offloaded controller 104 may predict the next state of the controlled entity 210 as follows: ^^^^^^|^^^ ൌ ^^^^^^^^^ ^ ^1 െ ^^^^^^∗^ ^0^, ^^^^^^|^^^ ൌ ^^^^^^^^^ ^ ^1 െ ^^^^^^∗^^0^.
[0082] However, in those embodiments where the state packet 254 additionally includes themeasured state data ^^^^^^, the predictor 202 may calculate the actual control input data ^^^^^^asfollows: ^^^^^^ ൌ ^^൫^^^^^^, ^^୬୭୫^^^^, ^^୬୭୫^^^^൯.
[0083] Here, the function ^^^⋅^ is the same function as used by the control input generator 212 in generating the actual control input data.
[0084] The advantage of these embodiments is that ^^^^^ ^ 1^ ∈ ^^^^^^^ ^ 1|^^^^ ⊕ ^^, whichgives us a better estimate of the state of the controlled entity 210 in the next time sequence as compared to the embodiments where the state packet 254 does not include the actual state data.However, it is no longer necessarily guaranteed that ^^^^^^ ^ 1|^^^ ∈ ^^^ holds such that theconstraint ℎ^⋅^ ൌ 0 used in the control input generator 212 to obtain the actual control input datais no longer satisfied. One potential option is to use the constraint: ^^^^^^^ ^ 1|^^^^ ⊕ ^^ ∈ ^^∗^ ^0^ ⊕ ℤ^,when a process packet has been received, i.e., ^^^ ൌ 1.
[0085] Otherwise, the following may be used: ^^^^^^ ^ 1|^^^ െ ^^∗^ ^0^ ൌ 0,which is the same as in the constraint explained above.
[0086] This modification allows changing the starting point of the nominal control input data from the predicted next state, which can lead to a better control performance. Finally, if the control input generator 212 adjusts the starting point of the optimal nominal control input data, the offloaded controller 104 needs to communicate the change in the nominal state to the NN 102. Therefore, these embodiments may require adding the change in nominal state to the controller packet such that the controller packet 254 comprises the current control input data ^^∗^ , the nominal state data ^^∗^ (0), and the previous the timing data ^^^– i.e., the controller packet is ^^^∗∗^,^^^ ^0^, ^^^^.
[0087] So whenever the consistency checker 208 confirms the consistency of a receivedpacket, i.e., if Θ^^^^ ൌ 1, then ^^^^^^^^^ ൌ ^^∗^ ^0^ and otherwise, the state of the nominal process on the local process side is not changed. In a summary, these embodiments improve the tracking performance due to the reset of the nominal process state but they require a larger bandwidth since more information needs to be exchanged between the NN 102 and the offloaded controller 104.
[0088] As explained above with respect to the step s302, in some embodiments, the offloaded controller 104 may transmit, to the NN 102, the controller packet 252 including the current nominal control input data ^^∗^ and the timing data ^^^– i.e., the controller packet 252 is ^^^∗^ , ^^^^ .However, in other embodiments, the controller packet 252 may additionally include current nominal state data ^^∗^ – i.e., the controller packet 252 is^^^∗∗^,^^^ , ^^^^.
[0089] This extra information enables the NN 102 to predict the next state of the controlled entity 210 as follows: ^^∗ ^^^ ^ ^^ ^^ ^ 1 ൌ ^ ^ 1 െ ^^^ if ^^ െ ^^^ ^ ^^,^ ୬୭୫^ ^ ೖ^^ ^
[0090] Thisat the NN 102, the predictor 206 may use it to determine the next state of the controlled entity 210. Otherwise, thepredictor 206 may use the function ^^ to predict the next state. The advantage here is thatcomputation load on the NN 102 can be reduced because the function ^^ only needs to be usedwhen ^^ െ ^^^ ^ ^^.
[0091] However, this requires usage of more bandwidth when transmitting the controller packet 252. Therefore, there is a possibility of tradeoff between a higher computational demand on the NN 102 and a higher network demand on the network 240.
[0092] Since the current nominal trajectory state data can be transmitted from the offloaded controller 104 to the NN 102, one can argue that the predictor 206 is no longer needed. However, the trajectory state data is of a finite length, in a scenario with large transmission gaps, one might reach the last entries of predicted nominal trajectory state data, ^^∗^ೖ, without having received new trajectory state data. In such case, the predictor 206 needs to generate new nominal state data, which should be tracked and of which stability should be guaranteed. Furthermore, the bandwidth of the network 240 may be limited such that arbitrarily large trajectory data cannot be sent over the network 240.
[0093] Accordingly, in some embodiments, the trajectory length may be chosen as explained below. Let ^^ denote the maximum bandwidth allowed. Then, the following relationship between the trajectory length ^^ and ^^ for the controller packet may be determined: ^^^ ^ 8 ∗ ^^^^ ^ 1^^^௨ ^ 1^^^^ ^^,where ^^^, ^^௨, and ^^^are the reserved bytes necessary to be included in a packet, for example, its header, the number of inputs, and the sampling time with which packets are sent, respectively. Here, it is assumed that each input as well as ^^^can be represented as an eight-byte float.
[0094] For a given sampling time ^^^, reserved bytes ^^^and bandwidth in kilobytes per second, an upper bound for the trajectory length can be determined as follows: ^^^^^ െ ^^ െ 8^^ ^ ^ ^ െ 1^.
[0095] This gives a simplelength. However, one needs to consider that the execution time of the trajectory generator, ^^^, depends on the trajectory length, i.e., the larger ^^, the larger ^^^.
[0096] If ^^^ ^ ^^^ then the trajectories will not be generated in time before the next trajectoryneeds to be sent. Hence, one can also not choose the trajectory length too large if one wants to fulfill real-time requirements. Therefore, according to some embodiments, the following method to choose the trajectory length is provided assuming that ^^ ೞ்ି^బି଼଼^ೠ െ 1^ ^ 0:1. Set ^^ ^ ೞ்ି^బି଼^ ൌ ^଼^ೠ െ 1^2.^^ on the execution time ^^^given ^^^, for example, its mean or median. 3. If ^^ ^ ^^^ choose ^^ ൌ ^^^ as the trajectory length, otherwise set ^^^ to ^^^ െ 1 and repeatfrom step 2.
[0097] This algorithm should be stopped whenever a suitable trajectory length is found or^^^ ^ 0 is reached. This enables finding a trajectory length ^^ ^ 1 which fulfills the bandwidthrequirement or determining that the trajectory generator is too slow to fulfill the real-time requirements.
[0098] If the trajectory generator is too slow, then ^^ should be modified or ^^^ should beincreased. However, choosing an arbitrarily large ^^^is not possible since there may be a need to get feedback on the process sufficiently fast especially when it is an unstable process. Note thatthe approach to choose the trajectory length here can be adjusted to the different controller packet sizes coming from the two embodiments mentioned further above.
[0099] FIG. 4 shows a process 400 performed by a network node (e.g., 102), according to some embodiments. The process 400 may comprise steps s402, s404, s406, s408, and s410. The process 400 may begin with the step s402. The step s402 comprises obtaining first control input data for controlling the device, wherein the first control input data is within a predefined set of control input data. Step s404 comprises generating, using a prediction model stored in the network node, predicted current state data which indicates a predicted current state of the device. The step s406 comprises obtaining measured current state data which indicates a measured current state of the device, wherein the measured current state of the device is measured by one or more sensors associated with the device. The step s408 comprises, based on the first control input data, the predicted current state data, and the measured current state data, generating modified control input data for controlling the device, wherein the modified control input data is within the predefined set of control input data. The step s410 comprises controlling the device using the modified control input data.
[0100] In some embodiments, the prediction model is configured to predict how a state of the device will transition from a predicted previous state to the predicted current state in case the device is operated according to second control input data without internal and / or external disturbance affecting the operation of the device, and the second control input data is within the predefined set of control input data.
[0101] In some embodiments, the predicted current state data is generated by the prediction model based on: i) the second control input data, and ii) predicted previous state data which indicates the predicted previous state of the device, which was predicted using the prediction model.
[0102] In some embodiments, the measured current state of the device is a state of the device after the device is operated according to third control input data with the internal and / or the external disturbance affecting the operation of the device, the third control input data is generated based on the second control input data, and the third control input data is within the predefined set of control input data.
[0103] In some embodiments, obtaining the first control input data for controlling the device comprises: receiving, from an offloaded controller, previous input data for controlling the device, wherein the previous input data is generated by the offloaded controller; and after receiving the previous input data, receiving, from the offloaded controller, current input data for controlling the device, wherein the current input data is generated by the offloaded controller, wherein the first control input data for controlling the device is generated based on one of the previous input data and the current input data.
[0104] In some embodiments, the network node is configured to sequentially transmit, to the offloaded controller, a plurality of packets each of which contains predicted state data indicating a predicted state of the device, and the current input data comprises timing data which indicates a timing ^^^at which the offloaded controller received, from the network node, the last packet included in the plurality of packets.
[0105] In some embodiments, obtaining the first control input data comprises: checking consistency of the current input data; and selecting one of the previous input data and the current input data for generating the first control input data based on the checked consistency of the current input data.
[0106] In some embodiments, among a plurality of packets sequentially transmitted by the offloaded controller to the network node, the last packet the offloaded controller transmitted to the network node comprises the current input data, each of the plurality of packets transmitted by the offloaded controller contains input data for controlling the device, and checking the consistency of the current input data comprises checking if all of the plurality of transmitted packets are received at the network node from the offloaded controller since ^^^.
[0107] In some embodiments, the plurality of packets transmitted by the offloaded controller comprises first through N-th packets, the N-th packet comprises the previous input data, the first control input data is generated based on i) the current input data as a result of determining that all of the plurality of packets transmitted from the offloaded controller is received at the network node or ii) the previous input data as a result of determining that the last packet transmitted from the offloaded controller is not received at the network node but the first through N-th packets are received at the network node.
[0108] In some embodiments, the process 400 comprises by providing the predicted current state data and the first control input data to the prediction model, generating predicted next state data which indicates a predicted next state of the device; and transmitting the predicted current state data to the offloaded controller.
[0109] In some embodiments, the network node receives, from the offloaded controller, a sequence of control input data, and the predicted current state data comprises timing data which indicates a timing ^^^of the network node receiving, from the offloaded controller, the last control input data for controlling the device.
[0110] FIG. 5 shows a process 500 performed by an offloaded controller (e.g., 104) via a network node (e.g., 102), according to some embodiments. The process 500 may comprise steps s502, s504, s506, and s508. The process 500 may begin with the step s502. The step s502 comprises obtaining predicted current state data which indicates a predicted current state of the device. The step s504 comprises obtaining target state data which indicates a target state of the device. The step s506 comprises, based on the predicted current state data and the target state data, generating current control input data for controlling the device. The step s508 comprises transmitting the current control input data to a network node controlling the device.
[0111] In some embodiments, obtaining the predicted current state data which indicates the predicted current state of the device comprises: receiving, from the network node, predicted previous state data which indicates a predicted previous state of the device; obtaining first control input data for controlling the device; and based on the predicted previous state data and the first control input data, generating, using a prediction model stored in the offloaded controller, the predicted current state data.
[0112] In some embodiments, obtaining the predicted current state data comprises: receiving, from the network node, measured previous state data which indicates a measured previous state of the device, wherein the measured previous state of the device is measured by one or more sensors associated with the device; obtaining first control input data for controlling the device; and based on the measured previous state data and the first control input data, generating the predicted current state data using a prediction model stored in the offloaded controller.
[0113] In some embodiments, the prediction model is configured to predict how a state of the device will transition from one state to another state in case the device is operated according to control input data without internal and / or external disturbance affecting the operation of the device.
[0114] In some embodiments, the measured previous state of the device is a state of the device after the device is operated according to control input data with the internal and / or external disturbance affecting the operation of the device.
[0115] FIG. 6 is a block diagram of network node 600 for implementing the offloaded controller 104 or the NN 102, according to some embodiments. As shown in FIG. 6, network node 600 may comprise: processing circuitry (PC) 602, which comprises one or more processors (P) 655 (e.g., one or more general purpose microprocessors and / or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like), which processors may be co-located in a single housing or in a single data center or may be geographically distributed (e.g., network node 600 may be a distributed computing apparatus comprising two or more computers or a monolithic computing apparatus consisting of a single computer); at least one network interface 648 (e.g., a physical interface or air interface) comprising a transmitter (Tx) 645 and a receiver (Rx) 647 for enabling network node 600 to transmit data to and receive data from other nodes connected to network 110 (e.g., an Internet Protocol (IP) network) to which network interface 648 is connected (physically or wirelessly) (e.g., network interface 648 may be coupled to an antenna arrangement comprising one or more antennas for enabling network node 600 to wirelessly transmit / receive data); and a storage unit (a.k.a., “data storage system”) 608, which may include one or more non-volatile storage devices and / or one or more volatile storage devices. In embodiments where PC 602 includes a programmable processor, a computer readable storage medium (CRSM) 642 may be provided. CRSM 642 may store a computer program (CP) 643 comprising computer readable instructions (CRI) 644. CRSM 642 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like. In some embodiments, the CRI 644 of computer program 643 is configured such that when executed by PC 602, the CRI causes network node 600 to perform steps described herein (e.g., steps described herein with reference to the flow charts). In other embodiments, network node 600 may be configured to perform steps described herein without the need for code.That is, for example, PC 602 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and / or software.
[0116] While various embodiments are described herein, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of this disclosure should not be limited by any of the above-described exemplary embodiments. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed by the disclosure unless otherwise indicated herein or otherwise clearly contradicted by context.
[0117] As used herein transmitting a message “to” or “toward” an intended recipient encompasses transmitting the message directly to the intended recipient or transmitting the message indirectly to the intended recipient (i.e., one or more other nodes are used to relay the message from the source node to the intended recipient). Likewise, as used herein receiving a message “from” a sender encompasses receiving the message directly from the sender or indirectly from the sender (i.e., one or more nodes are used to relay the message from the sender to the receiving node). Further, as used herein “a” means “at least one” or “one or more.”
[0118] Additionally, while the processes described above and illustrated in the drawings are shown as a sequence of steps, this was done solely for the sake of illustration. Accordingly, it is contemplated that some steps may be added, some steps may be omitted, the order of the steps may be re-arranged, and some steps may be performed in parallel.
[0119] References: 1. M. Pezzutto, M. Farina, R. Carli, and L. Schenato, "Remote MPC for Tracking Over Lossy Networks", IEEE Control Systems Letters, vol. 6, pp. 1040–1045, IEEE, 2022, doi: 10.1109 / LCSYS.2021.3088749 2. D. Limón, I. Alvarado, T. Alamo, and E. F. Camacho, “Robust tube-based MPC for tracking of constrained linear systems with additive disturbances”, Journal of Process Control, vol.20(3), pp.248–260, Elsevier, 2010, doi: 10.1016 / j.jprocont.2009.11.007
Claims
CLAIMS 1. A method (400) performed by a network node (102) for controlling a device (210), the method comprising: obtaining (s402) first control input data for controlling the device, wherein the first control input data is within a predefined set of control input data; generating (s404), using a prediction model stored in the network node, predicted current state data which indicates a predicted current state of the device; obtaining (s406) measured current state data which indicates a measured current state of the device, wherein the measured current state of the device is measured by one or more sensors associated with the device; based on the first control input data, the predicted current state data, and the measured current state data, generating (s408) modified control input data for controlling the device, wherein the modified control input data is within the predefined set of control input data; and controlling (s410) the device using the modified control input data.
2. The method of claim 1, wherein the prediction model is configured to predict how a state of the device will transition from a predicted previous state to the predicted current state in case the device is operated according to second control input data without internal and / or external disturbance affecting the operation of the device, and the second control input data is within the predefined set of control input data.
3. The method of claim 2, wherein the predicted current state data is generated by the prediction model based on: i) the second control input data, and ii) predicted previous state data which indicates the predicted previous state of the device, which was predicted using the prediction model.
4. The method of claim 2 or 3, whereinthe measured current state of the device is a state of the device after the device is operated according to third control input data with the internal and / or the external disturbance affecting the operation of the device, the third control input data is generated based on the second control input data, and the third control input data is within the predefined set of control input data.
5. The method of any one of claims 1-4, wherein obtaining the first control input data for controlling the device comprises: receiving, from an offloaded controller, previous input data for controlling the device, wherein the previous input data is generated by the offloaded controller; and after receiving the previous input data, receiving, from the offloaded controller, current input data for controlling the device, wherein the current input data is generated by the offloaded controller, wherein the first control input data for controlling the device is generated based on one of the previous input data and the current input data.
6. The method of claim 5, wherein the network node is configured to sequentially transmit, to the offloaded controller, a plurality of packets each of which contains predicted state data indicating a predicted state of the device, and the current input data comprises timing data which indicates a timing ^^^at which the offloaded controller received, from the network node, the last packet included in the plurality of packets.
7. The method of claim 5 or 6, wherein obtaining the first control input data comprises: checking consistency of the current input data; and selecting one of the previous input data and the current input data for generating the first control input data based on the checked consistency of the current input data.
8. The method of claim 7 when claim 7 depends on claim 6, whereinamong a plurality of packets sequentially transmitted by the offloaded controller to the network node, the last packet the offloaded controller transmitted to the network node comprises the current input data, each of the plurality of packets transmitted by the offloaded controller contains input data for controlling the device, and checking the consistency of the current input data comprises checking if all of the plurality of transmitted packets are received at the network node from the offloaded controller since ^^^.
9. The method of claim 8, wherein the plurality of packets transmitted by the offloaded controller comprises first through N- th packets, the N-th packet comprises the previous input data, the first control input data is generated based on i) the current input data as a result of determining that all of the plurality of packets transmitted from the offloaded controller is received at the network node or ii) the previous input data as a result of determining that the last packet transmitted from the offloaded controller is not received at the network node but the first through N-th packets are received at the network node.
10. The method of any one of claims 1-9, the method further comprising: by providing the predicted current state data and the first control input data to the prediction model, generating predicted next state data which indicates a predicted next state of the device; and transmitting the predicted current state data to the offloaded controller.
11. The method of claim 10, wherein the network node receives, from the offloaded controller, a sequence of control input data, and the predicted current state data comprises timing data which indicates a timing ^^^of the network node receiving, from the offloaded controller, the last control input data for controlling the device.
12. A method (500) performed by an offloaded controller (104) for controlling a device (210) via a network node (102), the method comprising: obtaining (s502) predicted current state data which indicates a predicted current state of the device; obtaining (s504) target state data which indicates a target state of the device; based on the predicted current state data and the target state data, generating (s506) current control input data for controlling the device; and transmitting (s508) the current control input data to a network node controlling the device.
13. The method of claim 12, wherein obtaining the predicted current state data which indicates the predicted current state of the device comprises: receiving, from the network node, predicted previous state data which indicates a predicted previous state of the device; obtaining first control input data for controlling the device; and based on the predicted previous state data and the first control input data, generating, using a prediction model stored in the offloaded controller, the predicted current state data.
14. The method of claim 12, wherein obtaining the predicted current state data comprises: receiving, from the network node, measured previous state data which indicates a measured previous state of the device, wherein the measured previous state of the device is measured by one or more sensors associated with the device; obtaining first control input data for controlling the device; and based on the measured previous state data and the first control input data, generating the predicted current state data using a prediction model stored in the offloaded controller.
15. The method of claim 13 or 14, wherein the prediction model is configured to predict how a state of the device will transition from one state to another state in case the device is operated according to control input data without internal and / or external disturbance affecting the operation of the device.
16. The method of claim 14 or 15 when claim 15 depends on claim 14, wherein the measured previous state of the device is a state of the device after the device is operated according to control input data with the internal and / or external disturbance affecting the operation of the device.
17. A computer program (600) comprising instructions (644) which when executed by processing circuitry (602) cause the processing circuitry to perform the method of any one of claims 1-16.
18. A carrier containing the computer program of claim 17, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.
19. A network node (102) for controlling a device (210), the network node being configured to: obtain (s402) first control input data for controlling the device, wherein the first control input data is within a predefined set of control input data; generate (s404), using a prediction model stored in the network node, predicted current state data which indicates a predicted current state of the device; obtain (s406) measured current state data which indicates a measured current state of the device, wherein the measured current state of the device is measured by one or more sensors associated with the device; based on the first control input data, the predicted current state data, and the measured current state data, generate (s408) modified control input data for controlling the device, wherein the modified control input data is within the predefined set of control input data; and control (s410) the device using the modified control input data.
20. The network node of claim 19, wherein the network node is further configured to perform the method of any one of claims 2-11.
21. An offloaded controller (104) for controlling a device (210) via a network node (102), the offloaded controller being configured to: obtain (s502) predicted current state data which indicates a predicted current state of the device; obtain (s504) target state data which indicates a target state of the device; based on the predicted current state data and the target state data, generate (s506) current control input data for controlling the device; and transmit (s508) the current control input data to a network node controlling the device.
22. The offloaded controller of claim 21, wherein the offloaded controller is further configured to perform the method of any one of claims 13-16.
23. An apparatus (600) comprising: a processing circuitry (602); and a memory (641), said memory containing instructions executable by said processing circuitry, whereby the apparatus is operative to perform the method of any one of claims 1-16.