Abstract: The present disclosure relates to system(s) and method(s) for upgrading a set of robotic devices is illustrated. The system may receive a set of software patches and a priority level associated with each software patch. Further, the system may identify a current operation and a set of future operations associated with each robotic device from a set of robotic devices. Further, the system may distribute the set of software patches across one or more robotic devices from the set of robotic devices. Further, the system may test the set of software patches over the one or more robotic devices to generate a set of test results corresponding to each software patch. Further, the system may install the set of software patches at each robotic device from the set of robotic device, based on the set of test results corresponding to each software patch.
CROSS-REFERENCE TO RELATED APPLICATIONS AND PRIORITY
[001] The present application does not claim priority from any patent application.
TECHNICAL FIELD
[002] The present disclosure in general relates to the field of time critical systems. More particularly, the present invention relates to a system and method for upgrading time critical systems in real time.
BACKGROUND
[003] Now days there are different time critical systems implemented for different domains like industrial, healthcare, Oil and Gas and the like. These systems are functional for several years. There is possibility of adding different new functionalities to the existing systems and also find and fix the bugs in these systems during their lifetime.
[004] However, the integration of these new functionalities or bug fixes into the time critical systems is a lengthy process, since it involves testing and debugging of the new functionalities and fixes. In some cases, unit testing and regression testing is also performed to ensure the integrity of the upgraded system. Further, based on the type of the systems like real-time critical, non-critical systems the upgrade needs to be performed in secure, safety and prioritized manner. In some case, testing is performed by simulating the time critical systems. However, in case of simulation based testing is not preferred due to uncertainty of test results.
[005] In case of manual or automated testing, the downtime of these systems is very high resulting into poor production efficient. Moreover, some of the time critical system can never be scheduled for the purpose of testing and maintenance due the critical application on which they are working.
SUMMARY
[006] This summary is provided to introduce aspects related to systems and methods for upgrading a set of robotic devices and the aspects are further described below in the detailed description. This summary is not intended to identify essential features of the claimed subject matter nor is it intended for use in determining or limiting the scope of the claimed subject matter.
3
[007] In one embodiment, a system for upgrading a set of robotic devices is illustrated. The system comprises a processor coupled to a memory, wherein the processor is configured to execute programmed instructions stored in the memory. The processor may execute a programmed instruction stored in the memory to receive a set of software patches and a priority level associated with each software patch of the set of software patches. Further, the processor may execute a programmed instruction stored in the memory to identify a current operation, a set of future operations associated with each robotic device from a set of robotic devices, and relevance of each software patch from the set of software patches for the set of robotic devices. Further, the processor may execute a programmed instruction stored in the memory to distribute the set of software patches across one or more robotic devices from the set of robotic devices, based on the priority level associated with each software patch, the current operation associated with the one or more robotic devices, the set of future operations associated with the one or more robotic devices, and relevance of the software patch for the robotic device. Further, the processor may execute a programmed instruction stored in the memory to test the set of software patches over the one or more robotic devices to generate a set of test results corresponding to each software patch. In one embodiment, the set of software patches are tested based on the current operation and the set of future operations associated with the one or more robotic devices. The result of the testing may be positive or negative. Further, the processor may execute a programmed instruction stored in the memory to install the set of software patches at each robotic device from the set of robotic device, based on the set of test results corresponding to each software patch.
[008] In one embodiment, a method for upgrading a set of robotic devices is illustrated. The method may comprise receiving a set of software patches and a priority level associated with each software patch of the set of software patches. The method may further comprise identifying a current operation, a set of future operations associated with each robotic device from a set of robotic devices, and relevance of each software patch from the set of software patches for the set of robotic devices. The method may further comprise distributing the set of software patches across one or more robotic devices from the set of robotic devices, based on the priority level associated with each software patch, the current operation associated with the one or more robotic devices, the set of future operations associated with the one or more robotic devices, and relevance of the software patch for the robotic device. The method may further comprise testing the set of software patches over the one or more robotic devices to generate a set of test results
4
corresponding to each software patch. In one embodiment, the set of software patches are tested based on the current operation and the set of future operations associated with the one or more robotic devices. The result of the testing may be positive or negative. The method may further comprise installing the set of software patches at each robotic device from the set of robotic device, based on the set of test results corresponding to each software patch.
[009] In one embodiment, a non-transitory computer readable medium embodying a program executable in a computing device for upgrading a set of robotic devices is illustrated. The program comprises a program code for receiving a set of software patches and a priority level associated with each software patch of the set of software patches. The program comprises a program code for identifying a current operation, a set of future operations associated with each robotic device from a set of robotic devices, and relevance of each software patch from the set of software patches for the set of robotic devices. The program comprises a program code for distributing the set of software patches across one or more robotic devices from the set of robotic devices, based on the priority level associated with each software patch, the current operation associated with the one or more robotic devices, the set of future operations associated with the one or more robotic devices, and relevance of the software patch for the robotic device. The program comprises a program code for testing the set of software patches over the one or more robotic devices to generate a set of test results corresponding to each software patch. In one embodiment, the set of software patches are tested based on the current operation and the set of future operations associated with the one or more robotic devices. The result of the testing may be positive or negative. The program comprises a program code for installing the set of software patches at each robotic device from the set of robotic device, based on the set of test results corresponding to each software patch.
[0010] In one embodiment, a method for upgrading a set of robotic devices is illustrated. The method may comprise receiving, at the set of robotic devices, a set of software patches and a priority level associated with each software patch of the set of software patches. The method may further comprise identifying a current operation and a set of future operations associated therewith the set of robotic devices. The method may further comprise selecting a software patch from set of patches for each robotic device based on the priority level associated with each software patch, relevance of the patch to
5
the robotic device, the current operation associated therewith, and the set of future operations associated therewith. The method may further comprise identifying conflicts and mutually resolving the conflicts of selecting patches within the set of robotic devices. The method may further comprise testing the set of software patches by robotic devices and generate a set of test results corresponding to each software patch. In one embodiment, the set of software patches are tested based on the current operation and the set of future operations associated with the one or more robotic devices. The result of the testing may be positive or negative. The method may further comprise communicating the result to other robotic devices of the set of robotic device. The method may further comprise installing the set of software patches at each robotic device from the set of robotic device, based on the set of test results corresponding to each software patch received from other robotic devices.
BRIEF DESCRIPTION OF DRAWINGS
[0011] The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to refer like features and components.
[0012] Figure 1 illustrates a network implementation of a system for upgrading a set of robotic devices, in accordance with an embodiment of the present subject matter.
[0013] Figure 2 illustrates the system for upgrading a set of robotic devices, in accordance with an embodiment of the present subject matter.
[0014] Figure 3 illustrates a flow diagram for upgrading a set of robotic devices, in accordance with an embodiment of the present subject matter.
DETAILED DESCRIPTION
[0015] The present subject matter relates to a system for upgrading a set of robotic devices by way of addressing bugs and adding new functionalities to the set of robotic devices. In one embodiment, set of robotic devices are configured to perform mission critical application, and wherein the robotic devices are selected from an Unmanned Arial Vehicle (UAV), a robot, a satellite, or an IoT Device. Further, the system is configured to
6
connect with the set of robotic devices working in a time critical environment. Further, the system comprises a processor coupled to a memory, wherein the processor is configured to execute programmed instructions stored in the memory. The processor may execute a programmed instruction stored in the memory to receive a set of software patches and a priority level associated with each software patch of the set of software patches. In one embodiment, the software patches may be configured to either fix the bugs in the set of robotic device or add new functionalities to the set of robotic devices. In one embodiment, the set of software patches are received from a software development platform.
[0016] Further, the processor may execute a programmed instruction stored in the memory to identify a current operation, a set of future operations associated with each robotic device from a set of robotic devices, and relevance of each software patch from the set of software patches for the set of robotic devices. The current operation and a set of future operations for each robotic device may be received from a control unit in the robotic device through wired or wireless communication means.
[0017] Further, the processor may execute a programmed instruction stored in the memory to distribute the set of software patches across one or more robotic devices from the set of robotic devices, based on the priority level associated with each software patch, relevance of the patch for the one or more robotic devices, the current operation associated with the one or more robotic devices, the set of future operations associated with the one or more robotic devices, and relevance of the software patch for the robotic device. The priority level associated with each software patch may be based on the criticality of the new functionality or the bug addressed by the software patch. Further, the current operation and the set of future operations may include time critical tasks to be performed by the robotic device.
[0018] Further, the processor may execute a programmed instruction stored in the memory to test the set of software patches over the one or more robotic devices to generate a set of test results corresponding to each software patch. In one embodiment, the set of software patches are tested based on the current operation and the set of future operations associated with the one or more robotic devices. The result of the testing may be positive or negative. If the test result of a particular software patch, over the robotic device under testing is negative, the processor is configured to discard the software patch. However, if the test result is positive, the processor may execute a programmed instruction stored in the memory to install the set of software patches at each robotic
7
device from the set of robotic device, based on the set of test results corresponding to each software patch.
[0019] In one embodiment, each robotic device in the set of robotic devices is assigned different set of operations and may require upgrade from time to time. The system is configured to maintain the set of software patches to address the bugs and enrich the robotic devices with new functionalities. The set of robotic devices may communicate with each other via the system or through peer to peer network at the time of upgrade and resolve any conflicts.
[0020] In one embodiment, the set of software patches act as hot fixes or incremental software components need to integrate with the legacy software applications running on the existing real time critical system such as the set of robotic device. The software patches are mutually exclusive or independent from each other. In one embodiment, one or more robotic devices from the set of robotic devices are upgraded by one or more patches, based on the patch supporting functionalities, robotic device local status, priority of the patch, and status of the peer robotic devices. In one embodiment, the one or more robotic devices are selected based on the current operation and a set of future operations performed by the set of robotic devices. In one embodiment, the two or more robotic devices may resolve the patch selecting conflicts cooperatively between them.
[0021] In one embodiment, a set of test cases associated with a particular software patch are executed for a target robotic device from the one or more robotic device selected for upgrade using the particular software patch. After successful testing of the target robotic device, a set of test results are generated. If the set of test results are negative, the system is configured to restore the previous firmware version of the legacy software running on the target robotic device. If the test results for the target patch are positive, in the next step, the patch is installed at each and every robotic device of the set of robotic devices. In one embodiment, each robotic device comprises a set of modules with minimal functional interdependency. For the purpose of testing, software patch is classified into a set of sub patches, wherein each sub patch corresponds to a module from the set of modules. Further, each sub patch is tested over the corresponding module based on a current operation and a set of future associated with the module in the robotic device. The test results for each module is checked and accordingly the other robotic devices are updated with the test results of each module.
8
[0022] In one embodiment, the system is configured to establish bidirectional communication with the set of robotic devices, using communication network, for communicating setup information. The system may exchange message and data with the set of robotic devices. The messages may be associated with the set of software patches, available mapped test cases for each software patch, test results, list of bugs identified in the testing, and the like. The data may include the set of software patches, old stable firmware configuration, and the like. Further, the system may copy all the required build patches into respective folder along with the Test cases mapped to each patch along with functionality map. The patches may be selected by one or more robotic devices, for the purpose of testing, and intimate the other robotic devices through the system or through peer to peer communication. This is done in order to insure that no two robotic devices are testing the same software patch without the knowledge of other. Since each robotic device available for testing is assigned with one or more unique software patches, the testing time of the set of software patches is marginally reduced. The availability of the robotic device for the purpose of testing is determined based on the current operation and a set of future operations associated with the robotic devices. For example, is the there is no current operation assigned to a particular robotic device and the future set of operations associated there with are to be performed after 60 min, then such a robotic device may be considered as available robotic device for the testing of the software patch. In one embodiment, the priority level and estimated time for testing of the software patch is also taken into consideration while assigning patches for the purpose of testing.
[0023] In one embodiment, each of the robotic device may be involved in a set of operation modes as follows:
- Execution mode: In this mode, the robotic device may work for critical operations. Further the critical operations may be rated in the range of 1 to 100 based on different severity or priority of the robotic device task under execution.
- Noncritical execution mode: In this mode, the robotic device is configured to perform on non-critical operations. It can take the commands for moving to maintenance mode when there are patches available.
- Critical mode: In this mode, the robotic device is configured such that the system cannot take any commands which require moving the robotic device to maintenance mode. The robotic device cannot move to maintenance mode directly from this mode.
9
After completion of critical mode, the robotic device may move to Noncritical execution mode if required.
- Maintenance Mode: Here the robotic device is in maintenance mode and it can support for executing the test cases on the robotic device, based on the supported functionalities and priority.
[0024] In one embodiment, the system is configured to consider a set of constraints for choosing the right software patch for the respective robotic device from the one or more robotic devices. The constrains include:
- The robotic device local status: the robotic device should be either in maintenance or Noncritical mode of operation. Otherwise the robotic device may ignore the new patch event sent by system. The examples of context even in noncritical mode can also be the battery status can support for complete the testing and the like.
- Supported functionalities or bug fixed: the robotic device or the system is configured to verify that functionalities/bug is relevant to the robotic device or not.
- Priority of the patch: based on the severity and requirement by the robotic device.
- Conflicts with other robot device: If the chosen software patch is already taken by another robotic device for testing, the system is configured to resolve the conflicts between robotic devices. The conflicts resolution may be done by via the system (central server), or cooperatively between the robotic devices or joint decision between system (central server) and the set of robotic devices.
- Notify the results to the system: the robotic devices are configured to notify the results of the set of test cases to other robotic devices in the network. The robotic device is configured to rollback the previous of the software application running thereon if the test results are negative. The results of the test cases may be notified by robotic devices to either system (central server) or to other robotic devices in the network using peer to peer communication.
[0025] In one embodiment, the set of robotic devices may be configured to communicate with each other, without involving the system, using a peer to peer network and upgrade themselves based on the set of software patches. The set of robotic devices may cooperatively distribute the patches between themselves. In one embodiment, the robotic devices are self-intelligent to take a decision for choosing the right patch based on priority level of the patch, current and future set of operation associated with the set of devices, and relevance of the patch for the robotic device.
10
[0026] In one embodiment, once the software patches are distributed, in the next step, each robotic device is configured to test the software patch assigned to it and accordingly generate test results for the assigned software patch. As soon as the test results are generated, in the next step, the robotic device is configured to communicate the test results to other robotic device through the peer to peer network, without involvement of the system. Further, based on result other robot takes a decision without the involvement of the central server/ system. In one embodiment, the robotic device may be executing actions for non-critical event and there may be no critical task assigned in future. However, in this situation as well, the robotic device may verify the pattern of critical events which may occur in future based on time, sequence of critical and non-critical events observed in the past and accordingly take the decision of selecting a particulate software patch for testing and upgrade.
[0027] While aspects of described system and method for upgrading a set of robotic devices may be implemented in any number of different computing systems, environments, and/or configurations, the embodiments are described in the context of the following exemplary system.
[0028] Referring now to Figure 1, a network implementation 100 of a system 102 for upgrading a set of robotic devices is disclosed. Although the present subject matter is explained considering that the system 102 is implemented on a server, it may be understood that the system 102 may also be implemented in a variety of computing systems, such as a laptop computer, a desktop computer, a notebook, a workstation, a mainframe computer, a server, a network server, and the like. In one implementation, the system 102 may be implemented in a cloud-based environment. It will be understood that the system 102 may be accessed by multiple users through one or more user devices 104-1, 104-2…104-N, collectively referred to as user devices 104 hereinafter, or applications residing on the user devices 104. Examples of the user devices 104 may include, but are not limited to, a portable computer, a personal digital assistant, a handheld device, and a workstation, file server, version control servers, bugs tracking servers. The user devices 104 are communicatively coupled to the system 102 through a network 106.
[0029] In one implementation, the network 106 may be a wireless network, a wired network or a combination thereof. The network 106 can be implemented as one of the different types of networks, such as intranet, local area network (LAN), wide area
11
network (WAN), the internet, and the like. The network 106 may either be a dedicated network or a shared network. The shared network represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP), Wireless Application Protocol (WAP), and the like, to communicate with one another. Further the network 106 may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, and the like.
[0030] Further, the system 102 is connected to a set of robotic devices 110 through the network 106. In one embodiment, the set of robotic devices 110 are connected to each other through the network 106. In one embodiment, each device from the set of robotic devices 110 is to perform a set of operation. The set of operations may be time critical operations. The system is configured to receive a set of patches and a set of test cases for testing the set of patches. Further, the system 102 is configured to distribute and test the set of patches across the one or more robotic devices from the set of robotic devices 110. Further, the system is configured to upgrade each robotic device based on the test results. The process of upgrading a set of robotic devices is further elaborated with respect to figure 2.
[0031] Referring now to Figure 2, the system 102 is illustrated in accordance with an embodiment of the present subject matter. In one embodiment, the system 102 may include at least one processor 202, an input/output (I/O) interface 204, and a memory 206. The at least one processor 202 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the at least one processor 202 is configured to fetch and execute computer-readable instructions stored in the memory 206.
[0032] The I/O interface 204 may include a variety of software and hardware interfaces, for example, a web interface, a graphical user interface, and the like. The I/O interface 204 may allow the system 102 to interact with a user directly or through the user devices 104. Further, the I/O interface 204 may enable the system 102 to communicate with other computing devices, such as web servers and external data servers (not shown). The I/O interface 204 can facilitate multiple communications within a wide variety of networks and protocol types, including wired networks, for example, LAN, cable, etc.,
12
and wireless networks, such as WLAN, cellular, or satellite. The I/O interface 204 may include one or more ports for connecting a number of devices to one another or to another server.
[0033] The memory 206 may include any computer-readable medium known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes. The memory 206 may include modules 208 and data 210.
[0034] The modules 208 include routines, programs, objects, components, data structures, etc., which perform particular tasks, functions or implement particular abstract data types. In one implementation, the modules 208 may include a patch collection module 212, an operation detection module 214, a patch distribution module 216, a testing module 218, an upgrade module 220, and other modules 222. The other modules 222 may include programs or coded instructions that supplement applications and functions of the system 102. The data 210, amongst other things, serves as a repository for storing data processed, received, and generated by one or more of the modules 208. The data 210 may also include a local repository 226, and other data 228. The local repository 226 is configured to store the set of patches received from a developer platform or the user devices 104.
[0035] In one implementation, the system 102 is configured to connect with the set of robotic devices 110 working in a time critical environment. Further, the patch collection module 212 is configured to receive a set of software patches and a priority level associated with each software patch of the set of software patches along with test cases for each specific patch. In one embodiment, the software patches may be configured to either fix the bugs in the set of robotic device or add new functionalities to the set of robotic devices 110. In one embodiment, the set of software patches are received by the patch collection module 212 from a software development platform or the set of device 104.
[0036] Further, the operation detection module 214 is configured to identify a current operation and a set of future operations associated with each robotic device from a set of robotic devices 110. The current operation, a set of future operations for each robotic
13
device, and relevance of each software patch from the set of software patches for the set of robotic devices may be received from a control unit in the robotic device through wired or wireless communication means.
[0037] Further, the patch distribution module 216 is configured to distribute the set of software patches across one or more robotic devices from the set of robotic devices 110. In one embodiment, the distribution is based on the priority level associated with each software patch, the current operation associated with the one or more robotic devices, and the set of future operations associated with the one or more robotic devices, relevance of the patch for the each robotic device from the set of robotic devices 110. The priority level associated with each software patch may be based on the criticality of the new functionality or the bug addressed by the software patch. Further, the current operation and the set of future operations may include time critical tasks to be performed by the robotic device.
[0038] Further, the testing module 218 is configured to test the set of software patches over the one or more robotic devices to generate a set of test results corresponding to each software patch. In one embodiment, the set of software patches are tested based on the current operation and the set of future operations associated with the one or more robotic devices. The result of the testing may be positive or negative.
[0039] In one embodiment, if the test result of a particular software patch, over the robotic device under testing is negative, the upgrade module 220 is configured to discard the software patch. However, if the test result is positive, the upgrade module 220 may install the set of software patches at each robotic device from the set of robotic device, based on the set of test results corresponding to each software patch. The method for upgrading a set of robotic devices is further illustrated with respect to the block diagram of figure 3.
[0040] Referring now to figure 3, a method 300 for upgrading the set of robotic devices 110 is disclosed, in accordance with an embodiment of the present subject matter. The method 300 may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, functions, and the like, that perform particular functions or implement particular abstract data types. The method 300 may also be practiced in a distributed computing environment where functions are
14
performed by remote processing devices that are linked through a communications network. In a distributed computing environment, computer executable instructions may be located in both local and remote computer storage media, including memory storage devices.
[0041] The order in which the method 300 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method 300 or alternate methods. Additionally, individual blocks may be deleted from the method 300 without departing from the spirit and scope of the subject matter described herein. Furthermore, the method 300 can be implemented in any suitable hardware, software, firmware, or combination thereof. However, for ease of explanation, in the embodiments described below, the method 300 may be considered to be implemented in the above described system 102.
[0042] At block 302, the system 102 is configured to connect with the set of robotic devices 110 working in a time critical environment. Further, the patch collection module 212 is configured to receive a set of software patches, a priority level associated with each software patch of the set of software patches, and relevance of each software patch from the set of software patches for the set of robotic devices. In one embodiment, the software patches may be configured to either fix the bugs in the set of robotic device or add new functionalities to the set of robotic devices 110. In one embodiment, the set of software patches are received by the patch collection module 212 from a software development platform or the set of device 104.
[0043] At block 304, the operation detection module 214 is configured to identify a current operation and a set of future operations associated with each robotic device from a set of robotic devices 110. The current operation and a set of future operations for each robotic device may be received from a control unit in the robotic device through wired or wireless communication means.
[0044] At block 306, the patch distribution module 216 is configured to distribute the set of software patches across one or more robotic devices from the set of robotic devices 110. In one embodiment, the distribution is based on the priority level associated with each software patch, the current operation associated with the one or more robotic devices, and the set of future operations associated with the one or more robotic devices, and relevance of the patch for the each robotic device from the set of robotic devices 110. The priority level associated with each software patch may be based on the criticality of
15
the new functionality or the bug addressed by the software patch. Further, the current operation and the set of future operations may include time critical tasks to be performed by the robotic device. In one embodiment, the selection of the software patch from the set of patches by the set of robotic devices 110 is performed without communicating with the system 102. The set of robotic devices may mutually communicate and select patches based on the priority level associated with each software patch, the current operation which is executing the robotic device 110, the set of future operations associated with the robotic device 110, and relevance of the patch for robotic devices 110. In one embodiment, the conflicts of the patch selection between the set of robotic devices 110 is resolved by robotic devices 110 themselves cooperatively. In one embodiment, the conflicts of the patch selection may be resolved by the system 102.
[0045] At block 308, the testing module 218 is configured to test the set of software patches over the one or more robotic devices to generate a set of test results corresponding to each software patch. In one embodiment, the set of software patches are tested based on the current operation and the set of future operations associated with the one or more robotic devices. The result of the testing may be positive or negative.
[0046] At block 310, if the test result of a particular software patch, over the robotic device under testing is negative, the upgrade module 220 is configured to discard the software patch. However, if the test result is positive, the upgrade module 220 may install the set of software patches at each robotic device from the set of robotic device 110, based on the set of test results corresponding to each software patch. In one embodiment, the status of the test results is shared among robotic devices 110 cooperatively by using the network 106.
[0047] Although implementations for methods and systems for upgrading a set of robotic devices has been described, it is to be understood that the appended claims are not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as examples of implementations for upgrading the set of robotic devices.
WE CLAIM:
1. A system for upgrading a set of robotic devices, the system comprising:
a memory;
a processor coupled to the memory, wherein the processor is configured to execute program instructions stored in the memory to:
receive a set of software patches and a priority level associated with each software patch of the set of software patches;
identify a current operation and a set of future operations associated with each robotic device from a set of robotic devices;
identify relevance of each software patch from the set of software patches for each robotic device from a set of robotic devices;
distribute the set of software patches across one or more robotic devices from the set of robotic devices, based on the priority level associated with each software patch, the current operation associated with the one or more robotic devices, and the set of future operations associated with the one or more robotic devices and relevance of the software patch for the robotic device;
test the set of software patches over the one or more robotic devices to generate a set of test results corresponding to each software patch, wherein the set of software patches are tested based on the current operation and the set of future operations associated with the one or more robotic devices; and
install the set of software patches at each robotic device from the set of robotic device, based on the set of test results corresponding to each software patch.
2. The system of claim 1, wherein the set of robotic devices are configured to perform mission critical application, and wherein the robotic devices are selected from an Unmanned Arial Vehicle (UAV), a robot, a satellite, or an IoT Device.
3. The system of claim 1, wherein the software patch is configured to resolve a software bug in the set of robotic devices or add new functionality to the set of robotic devices.
4. The system of claim 1, wherein each robotic device comprises a set of modules with minimal functional interdependency, wherein software patch is classified into a set of sub patches, wherein each sub patch correspond to a module from the set of modules,
17
and wherein each sub patch is tested over the corresponding module based on a current operation and a set of future associated with the module, and wherein each patch from the set of patches are mutually exclusive or independent from each other.
5. A method for upgrading a set of robotic devices, the method comprising steps of:
receiving, by a processor, a set of software patches and a priority level associated with each software patch of the set of software patches;
identifying, by the processor, a current operation and a set of future operations associated with each robotic device from a set of robotic devices;
identify relevance of each software patch from the set of software patches for each robotic device from a set of robotic devices;
distributing, by the processor, the set of software patches across one or more robotic devices from the set of robotic devices, based on the priority level associated with each software patch, the current operation associated with the one or more robotic devices, and the set of future operations associated with the one or more robotic devices and relevance of the software patch for the robotic device;
testing, by the processor, the set of software patches over the one or more robotic devices to generate a set of test results corresponding to each software patch, wherein the set of software patches are tested based on the current operation and the set of future operations associated with the one or more robotic devices; and
installing, by the processor, the set of software patches at each robotic device from the set of robotic device, based on the set of test results corresponding to each software patch.
6. The method of claim 5, wherein the set of robotic devices are configured to perform mission critical application, and wherein the robotic devices are selected from an Unmanned Arial Vehicle (UAV), a robot, a satellite, or an IoT Device.
7. The method of claim 5, wherein the software patch is configured to resolve a software bug in the set of robotic devices or add new functionality to the set of robotic devices.
8. The method of claim 5, wherein each robotic device comprises a set of modules with minimal functional interdependency, wherein software patch is classified into a set of sub patches, wherein each sub patch correspond to a module from the set of modules,
18
and wherein each sub patch is tested over the corresponding module based on a current operation and a set of future associated with the module, and wherein each patch from the set of patches are mutually exclusive or independent from each other.
9. A non-transitory computer readable medium embodying a program executable in a computing device for upgrading a set of robotic devices, the computer program product comprising:
a program code for receiving a set of software patches and a priority level associated with each software patch of the set of software patches;
a program code for identifying a current operation and a set of future operations associated with each robotic device from a set of robotic devices;
a program code for identify relevance of each software patch from the set of software patches for each robotic device from a set of robotic devices;
a program code for distributing the set of software patches across one or more robotic devices from the set of robotic devices, based on the priority level associated with each software patch, the current operation associated with the one or more robotic devices, the set of future operations associated with the one or more robotic devices, and relevance of the software patch for the robotic device;
a program code for testing the set of software patches over the one or more robotic devices to generate a set of test results corresponding to each software patch, wherein the set of software patches are tested based on the current operation and the set of future operations associated with the one or more robotic devices; and
a program code for installing the set of software patches at each robotic device from the set of robotic device, based on the set of test results corresponding to each software patch.
| Section | Controller | Decision Date |
|---|---|---|
| # | Name | Date |
|---|---|---|
| 1 | 201611010388-IntimationOfGrant31-05-2023.pdf | 2023-05-31 |
| 1 | Form 9 [26-03-2016(online)].pdf | 2016-03-26 |
| 2 | 201611010388-PatentCertificate31-05-2023.pdf | 2023-05-31 |
| 2 | Form 3 [26-03-2016(online)].pdf | 2016-03-26 |
| 3 | 201611010388-Written submissions and relevant documents [04-05-2023(online)].pdf | 2023-05-04 |
| 4 | Form 18 [26-03-2016(online)].pdf | 2016-03-26 |
| 4 | 201611010388-AMENDED DOCUMENTS [08-04-2023(online)].pdf | 2023-04-08 |
| 5 | Drawing [26-03-2016(online)].pdf | 2016-03-26 |
| 5 | 201611010388-Correspondence to notify the Controller [08-04-2023(online)].pdf | 2023-04-08 |
| 6 | Description(Complete) [26-03-2016(online)].pdf | 2016-03-26 |
| 6 | 201611010388-FORM 13 [08-04-2023(online)].pdf | 2023-04-08 |
| 7 | Form 26 [06-07-2016(online)].pdf | 2016-07-06 |
| 7 | 201611010388-MARKED COPIES OF AMENDEMENTS [08-04-2023(online)].pdf | 2023-04-08 |
| 8 | 201611010388-POA [08-04-2023(online)].pdf | 2023-04-08 |
| 8 | 201611010388-GPA-(11-07-2016).pdf | 2016-07-11 |
| 9 | 201611010388-Form-1-(11-07-2016).pdf | 2016-07-11 |
| 9 | 201611010388-RELEVANT DOCUMENTS [08-04-2023(online)].pdf | 2023-04-08 |
| 10 | 201611010388-Correspondence Others-(11-07-2016).pdf | 2016-07-11 |
| 10 | 201611010388-US(14)-HearingNotice-(HearingDate-21-04-2023).pdf | 2023-03-31 |
| 11 | 201611010388-FER.pdf | 2021-10-17 |
| 11 | abstract.jpg | 2016-07-15 |
| 12 | 201611010388-CLAIMS [20-08-2020(online)].pdf | 2020-08-20 |
| 12 | 201611010388-OTHERS [20-08-2020(online)].pdf | 2020-08-20 |
| 13 | 201611010388-COMPLETE SPECIFICATION [20-08-2020(online)].pdf | 2020-08-20 |
| 13 | 201611010388-FER_SER_REPLY [20-08-2020(online)].pdf | 2020-08-20 |
| 14 | 201611010388-COMPLETE SPECIFICATION [20-08-2020(online)].pdf | 2020-08-20 |
| 14 | 201611010388-FER_SER_REPLY [20-08-2020(online)].pdf | 2020-08-20 |
| 15 | 201611010388-CLAIMS [20-08-2020(online)].pdf | 2020-08-20 |
| 15 | 201611010388-OTHERS [20-08-2020(online)].pdf | 2020-08-20 |
| 16 | abstract.jpg | 2016-07-15 |
| 16 | 201611010388-FER.pdf | 2021-10-17 |
| 17 | 201611010388-US(14)-HearingNotice-(HearingDate-21-04-2023).pdf | 2023-03-31 |
| 17 | 201611010388-Correspondence Others-(11-07-2016).pdf | 2016-07-11 |
| 18 | 201611010388-Form-1-(11-07-2016).pdf | 2016-07-11 |
| 18 | 201611010388-RELEVANT DOCUMENTS [08-04-2023(online)].pdf | 2023-04-08 |
| 19 | 201611010388-GPA-(11-07-2016).pdf | 2016-07-11 |
| 19 | 201611010388-POA [08-04-2023(online)].pdf | 2023-04-08 |
| 20 | 201611010388-MARKED COPIES OF AMENDEMENTS [08-04-2023(online)].pdf | 2023-04-08 |
| 20 | Form 26 [06-07-2016(online)].pdf | 2016-07-06 |
| 21 | 201611010388-FORM 13 [08-04-2023(online)].pdf | 2023-04-08 |
| 21 | Description(Complete) [26-03-2016(online)].pdf | 2016-03-26 |
| 22 | 201611010388-Correspondence to notify the Controller [08-04-2023(online)].pdf | 2023-04-08 |
| 22 | Drawing [26-03-2016(online)].pdf | 2016-03-26 |
| 23 | 201611010388-AMENDED DOCUMENTS [08-04-2023(online)].pdf | 2023-04-08 |
| 23 | Form 18 [26-03-2016(online)].pdf | 2016-03-26 |
| 24 | 201611010388-Written submissions and relevant documents [04-05-2023(online)].pdf | 2023-05-04 |
| 25 | Form 3 [26-03-2016(online)].pdf | 2016-03-26 |
| 25 | 201611010388-PatentCertificate31-05-2023.pdf | 2023-05-31 |
| 26 | Form 9 [26-03-2016(online)].pdf | 2016-03-26 |
| 26 | 201611010388-IntimationOfGrant31-05-2023.pdf | 2023-05-31 |
| 1 | 201611010388_SS_18-02-2020.pdf |