Intelligent Allocation of Robotic Edge Devices in Edge Computing Ecosystems

The system intelligently assigns and reallocates robotic edge devices based on their attributes to maintain communication range, addressing latency issues and ensuring efficient task completion in edge computing environments.

JP2025534977APending Publication Date: 2025-10-22INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025517333
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-09-28
Filing Date
2023-09-22
Publication Date
2025-10-22

AI Technical Summary

Technical Problem

Existing edge computing systems face challenges in efficiently assigning robotic edge devices due to latency issues, which cause discontinuities in processing and prevent effective communication between devices, leading to delays in task completion.

Method used

A system that intelligently assigns robotic edge devices based on their attributes, such as physical capabilities and edge computing latency, to ensure they operate within communication range, allowing for efficient edge computing and physical activities by determining optimal device subsets and reallocating devices as needed to maintain uninterrupted communication.

Benefits of technology

This approach enables efficient task completion by ensuring robotic edge devices operate within communication range, reducing latency-induced delays and enhancing the effectiveness of edge computing systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025534977000001_ABST
    Figure 2025534977000001_ABST
Patent Text Reader

Abstract

A computer-implemented method, system, and computer program product are provided for intelligently allocating robotic edge devices to perform tasks using an edge computing ecosystem. A processor may identify a plurality of robotic edge devices at a geographic location. The processor may determine attributes of each robotic edge device among the plurality of robotic edge devices. The processor may identify a task to be performed at the geographic location by the plurality of robotic edge devices. The processor may determine a subset of the robotic edge devices capable of completing the task based on the attributes. The processor may assign the subset of the robotic edge devices to complete the task.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] The present disclosure relates generally to the field of robotic devices, and more particularly to intelligently allocating robotic edge devices to accomplish tasks using an edge computing ecosystem.

[0002] Edge computing is computation that occurs at or near the source of data, instead of relying on cloud computing in one or more data centers to perform processing. Edge computing does not eliminate the need for cloud computing, but rather leverages cloud computing and moves it closer to the geographic location of the edge computing device. It moves computation and data storage closer to where the data is generated, enabling better data control, reduced costs, faster insights and actions, and uninterrupted operation.

[0003] During edge computing, edge devices cooperate with each other to perform computations (e.g., exchange data and information with each other). Edge computing can be performed in any geographic location, such as a manufacturing site, a smart house, a disaster cleanup site, etc., where the edge devices can be configured as various types of robotic devices (e.g., motion machines, robots, or any other mobile machines such as rile spot robots).

[0004] In many cases, edge devices require ultra-low latency to communicate with each other. For example, ultra-low latency 5G communication typically requires micro-local positioning within 1,000 feet (approximately 304.8 meters). While performing edge computing, participating edge devices must be within communication range of each other; otherwise, the edge devices will not be able to communicate with each other without excessive latency, which would prevent edge computing from being performed. In different contextual situations, different robotic devices / machines need to participate in edge computing to perform tasks. However, latency issues can cause discontinuities in processing from one or more devices / machines on which the task is performed. Summary of the Invention

[0005] Embodiments of the present disclosure include computer-implemented methods, systems, and computer program products for intelligently assigning robotic edge devices to perform tasks using an edge computing ecosystem. A processor may identify a plurality of robotic edge devices at a geographic location. The processor may determine attributes of each robotic edge device among the plurality of robotic edge devices. The processor may identify a task to be performed at the geographic location by the plurality of robotic edge devices. The processor may determine a subset of robotic edge devices capable of completing the task based on the attributes. The processor may assign the subset of robotic edge devices to complete the task. This method for assigning robotic edge devices to perform tasks based on their various edge-related attributes is advantageous over conventional task assignment methods that utilize manually controlled robotic devices and / or fail to address specific edge device attributes.

[0006] In some embodiments, the determination of the subset of robotic edge devices may be based on one or more attributes, such as the physical capabilities of the robotic edge devices, edge computing latency, edge communication range, and geographic location of a given robotic device. This allows the processor to determine which robotic edge devices to assign to perform tasks based on their capabilities and / or given locations. For example, a particular task may require robotic edge devices to move within or out of a particular edge communication range from each other while completing the task at a geographic location. The processor may assign robotic edge devices that can operate appropriately within edge communication range when completing the task, which may include performing edge computing and / or physical activities associated with completing the task in an efficient manner, either in parallel or sequentially. This is advantageous over conventional task assignment techniques that could not assign tasks to robotic edge devices based on their communication range and / or latency, which may result in edge computing delays and / or task completion delays.

[0007] In some embodiments, the task may be a physical task determined from analyzing data input from one or more Internet of Things (IoT) devices. For example, the task may be a physical task (e.g., moving an object using a robotic device, building / demolishing a structure, etc.) determined by artificial intelligence through analysis of data input from an IoT camera. This allows the processor to automatically identify tasks to be completed from data input from various IoT devices.

[0008] In some embodiments, the processor initiates a subset of the robotic edge devices to complete a task and continuously monitors the subset of the robotic edge devices while completing the task, allowing the processor to determine whether any issues may arise that will delay or interrupt performance of the task (e.g., delayed performance due to latency and / or discontinuities in edge computing).

[0009] In some embodiments, the processor may determine that a first robotic edge device of the subset of robotic edge devices is experiencing difficulty completing at least one stage of a task and assign a second robotic edge device to complete at least one stage of the task. For example, if the first robotic edge device is experiencing computational latency issues when collaborating with another robotic edge device that is outside of edge communication range, the processor may assign the second robotic edge device or a new robotic edge device to assist the first robotic edge device in completing the stage of the task. For example, to enable edge communication to occur uninterrupted between all robotic edge devices, a mobile robotic edge device may be assigned to move to an area at a geographic location within edge communication range between the first and other robotic edge devices. This is advantageous over conventional edge computing activities that may experience delays due to latency issues when the device is outside of edge communication range.

[0010] The above summary is not intended to describe each illustrated embodiment or every implementation of the present disclosure. [Brief explanation of the drawings]

[0011] The drawings included in this disclosure are incorporated into and form a part of the specification. They illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the present disclosure. The drawings illustrate typical embodiments only and are not intended to limit the disclosure.

[0012] [Figure 1] 1 illustrates an example robotic edge device allocation system according to some embodiments of the present disclosure.

[0013] [Figure 2] 1 illustrates an exemplary edge computing architecture according to an embodiment of the present disclosure.

[0014] [Figure 3] 1 illustrates an exemplary diagram for assigning robotic edge devices to perform tasks at geographic locations, according to some embodiments of the present disclosure.

[0015] [Figure 4] 1 illustrates an example process for intelligently allocating robotic edge devices to accomplish tasks using an edge computing ecosystem, according to some embodiments of the present disclosure.

[0016] [Figure 5] FIG. 1 illustrates a high-level block diagram of an exemplary computer system that may be used to implement one or more of the methods, tools, and modules described herein, and any associated functionality, in accordance with embodiments of the present disclosure.

[0017] [Figure 6] FIG. 1 illustrates a schematic diagram of a computing environment for executing program code associated with the methods disclosed herein and for intelligent allocation of robotic edge devices, according to at least one embodiment.

[0018] While the embodiments described herein are susceptible to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and will be described in detail. It is to be understood, however, that the particular embodiments described are not to be construed in a limiting sense. On the contrary, it is intended to cover all modifications, equivalents, and alternatives within the spirit and scope of the disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0019] Aspects of the present disclosure relate to the field of robotic devices, and more specifically to intelligently allocating robotic edge devices using an edge computing ecosystem. While the present disclosure is not necessarily limited to such applications, various aspects of the present disclosure may be understood through a discussion of various examples using this context.

[0020] Edge computing is computation that occurs at or near the source of data, instead of relying on cloud computing at one or more data centers to perform processing. Edge computing does not eliminate the need for cloud computing; rather, it leverages cloud computing and moves it closer to the geographic location of the edge computing device. During edge computing, edge devices collaborate with each other to perform computations. Edge computing can be performed in any geographic location, for example, a manufacturing / assembly site, a smart house, or a disaster cleanup site, and edge devices can be configured as various types of robotic devices.

[0021] Many edge devices require ultra-low latency to communicate with each other. While performing edge computing, participating edge devices must be within range of each other; otherwise, the edge devices may not be able to communicate with each other without excessive latency, thereby preventing edge computing from being performed. In different contextual situations, different robotic devices / machines need to participate in edge computing to perform tasks. However, latency issues may cause discontinuities in processing from one or more devices / machines on which the tasks are performed.

[0022] Embodiments of the present disclosure include systems, computer-implemented methods, and computer program products configured to intelligently assign robotic edge devices to perform one or more tasks based on capabilities using an edge computing ecosystem. In embodiments, the robotic edge devices may perform physical activities in conjunction with participating in an ultra-low latency edge computing environment, such that physical activities and edge computing may be performed together by the assigned robotic edge devices.

[0023] In embodiments, the system may identify multiple robotic edge devices in a geographic location (zone, area, building, structure, road, etc.). The robotic edge device may be any type of robotic edge device capable of performing a task (e.g., a physical task and / or a computational task). The system may determine attributes of each robotic edge device among the multiple robotic edge devices. The attributes may consist of various capabilities and / or characteristics associated with the robotic edge device, such as each robotic edge device's physical capabilities, edge computing latency, edge communication range, and precise geographic location (e.g., using terrestrial location data, local location data, etc.). For example, a first robotic edge device may have physical capabilities, such as a robotic prosthetic leg / limb, that enable the robotic edge device to pick up, move, and / or assemble various objects, while also having edge computing capabilities that enable it to communicate (e.g., gather data / information) with other robotic edge devices to complete various tasks / functions.

[0024] In embodiments, the system may identify a task to be performed at a geographic location by one or more of a plurality of robotic edge devices. In embodiments, the task is determined by analyzing data input from one or more Internet of Things (IoT) devices. For example, the task may be determined by analyzing data input from one or more cameras and / or sensors positioned at the geographic location. In some embodiments, the task may be a physical task requiring the robotic edge device to move / assemble / disassemble one or more objects in a sequence of steps at the geographic location. In some embodiments, the task may be a computational task (edge ​​computing) in addition to a physical task.

[0025] In embodiments, the system may determine edge computing requirements for completing a task. For example, the edge computing requirements may be determined by evaluating the sequence of steps required by a robotic edge device to complete the task in an appropriate and efficient manner. For example, if the task is to remove debris (e.g., a structure that has collapsed) from an area, the system may determine / predict the computational requirements of the robotic edge device to perform the sequence of steps for removing the debris in an appropriate, safe, and cooperative manner so that the debris does not collapse. In this manner, the system may perform robotic edge device allocation by identifying ultra-low latency edge communication needs in any surrounding and / or geographic location.

[0026] In embodiments, the system may determine a subset of robotic edge devices that can complete a task based on attributes. For example, based on identifying a task and attributes associated with a plurality of robotic edge devices, the system determines which robotic edge devices of a plurality of robotic edge devices can perform a task in an efficient manner.

[0027] In embodiments, the system assigns a subset of robotic edge devices to complete a task. In some embodiments, the system may evaluate and / or predict priorities between edge computing and physical activities (e.g., based on the relative positions, distances, timing, and / or sequence of steps to complete a task of the robotic edge devices) to identify which should be given priority and which should be performed in parallel or sequentially when completing a task. Based on computational and physical task requirements, the system dynamically arranges robotic edge devices at geographic locations so that edge computing decisions can be performed in a collaborative manner.

[0028] In some embodiments, robotic edge devices are assigned to perform physical activities and edge computing together, while the system assigns activities and / or communication ranges to edge devices so that the assigned robotic edge device can perform physical activities and edge computing within a specified range (e.g., 500 feet, 1000 feet, etc.).

[0029] In some embodiments, the system initiates a subset of robotic edge devices to complete a task and monitors the subset of robotic edge devices while completing the task. In some embodiments, the system may determine that a first robotic edge device of the subset of robotic edge devices is experiencing difficulty completing at least one stage of the task and assign a second robotic edge device to complete at least one stage of the task. For example, if the first robotic edge device is experiencing computational latency issues when collaborating with another robotic edge device that is outside of edge communication range, the processor may assign a second or new robotic edge device to assist the first robotic edge device in completing the stage of the task. For example, to enable edge communication to occur uninterrupted between all robotic edge devices, a mobile robotic edge device may be assigned to move to an area at a geographic location within edge communication range between the first and other robotic edge devices. In this manner, the system may dynamically assign / reallocate robotic edge devices to prevent delays in completing the task.

[0030] The above advantages are examples of advantages, and not all advantages have been discussed. Moreover, embodiments of the present disclosure may include all, some, or none of the above advantages while remaining within the spirit and scope of the present disclosure.

[0031] 1, a block diagram of an exemplary robotic edge device allocation system 100 in which exemplary embodiments of the present disclosure may be implemented is shown. In the illustrated embodiment, the robotic edge device allocation system 100 includes a robotic edge device allocation manager 102 communicatively coupled to robotic edge device 120A, robotic edge device 120B, robotic edge device 120N (collectively referred to as robotic edge devices 120), and Internet of Things (IoT) devices 130 via a network 150. In an embodiment, the robotic edge device allocation manager 102, the robotic edge devices 120, and the IoT devices 130 may be configured as any type of computer system and may be substantially similar to computer system 501 of FIG. 5.

[0032] In embodiments, network 150 may be any type of communications network, such as a wireless network, an edge computing network, a cloud computing network, or any combination thereof (e.g., a hybrid cloud network / environment). Consistent with various embodiments, a cloud computing environment may include a network-based distributed data processing system that provides one or more edge / network / cloud computing services. Additionally, a cloud computing environment may include a large number of computers (e.g., hundreds or thousands or more computers) located in one or more data centers and configured to share resources via network 150. In some embodiments, network 150 may be substantially similar to computing environment 600 of FIG. 6.

[0033] In some embodiments, the network 150 may be implemented using any number of any suitable communication media. For example, the network may be a wide area network (WAN), a local area network (LAN), the Internet, or an intranet. In particular embodiments, the various systems may communicate with each other locally via any suitable local communication medium. For example, the robotic edge device assignment manager 102 may communicate with the robotic edge devices 120 and the IoT devices 130 using a WAN, one or more hardwired connections (e.g., Ethernet cables), and / or a wireless communication network. In some embodiments, the various systems may be communicatively coupled using a combination of one or more networks and / or one or more local connections. For example, the robotic edge device assignment manager 102 may communicate with the IoT devices 130 through hardwired connections, while communication between the robotic edge devices 120 may be through a wireless communication network.

[0034] In an embodiment, the robotic edge device allocation manager 102 includes a processor 106 and a memory 108. The robotic edge device allocation manager 102 may be configured to communicate with the robotic edge devices 120 and the IoT devices 130 through an internal or external network interface 104. The network interface 104 may be, for example, a modem or a network interface. The robotic edge device allocation manager 102 may include a display or monitor. Additionally, the robotic edge device allocation manager 102 may include optional input devices (e.g., a keyboard, a mouse, a scanner, or other input devices) and / or any commercially available or custom software (e.g., browser software, communication software, server software, natural language processing / understanding software, search engine and / or web crawling software, filter modules for filtering content based on predefined parameters, etc.).

[0035] In embodiments, the robotic edge device assignment manager 102 may include an artificial intelligence (AI) component 110, an edge device location component 112, an assignment component 114, an analysis component 116, and a knowledge corpus 118.

[0036] In embodiments, the AI ​​component 110 is configured to collect, analyze, and identify attributes 122 associated with each robotic edge device 120. The attributes 122 may include various capabilities of each respective robotic device 120. The capabilities may include physical capabilities (e.g., robotic limbs capable of moving objects, locomotion capabilities, edge communication capabilities / range, edge processing capabilities, etc.) that may be correlated to performing different tasks. The AI ​​component 110 may utilize the edge device location component 112 to determine the precise locations (e.g., using location data) and distances of the robotic edge devices 120 relative to each other and / or relative to the geographic location of the task being performed. The AI ​​component 110 may use the precise locations and distances of the robotic edge devices 120 to determine which robotic edge devices are available within a given geographic location and whether the robotic edge devices are within communication range (based on the attributes) so that edge computing / data communication can be performed.

[0037] In embodiments, the AI ​​component 110 may use the analysis component 116 to determine requirements for the performance of a task at a geographic location. For example, the AI ​​component 110 may analyze various data inputs and identify that a physical task may be required to be performed. The task may be identified by collecting and analyzing data inputs (e.g., based on visual data or sensor inputs) received from IoT devices 130. For example, the AI ​​component 110 may analyze data feeds from IoT cameras located at the geographic location and determine / detect (e.g., using image recognition, computer vision techniques) that debris needs to be removed by one or more robotic edge devices. The analysis component 116 may determine which robotic devices are capable of removing the debris based on the identified attributes 122 of the robotic edge devices 120. The analysis component 116 may utilize the knowledge corpus 118 to identify various attributes / capabilities associated with each of the robotic edge devices 120 and which attributes 122 are best for removing debris based on historical data of the performance of similar tasks. Additionally, the AI ​​component 110 may analyze and predict one or more steps required to complete a task and the computational requirements for performing the steps. For example, the AI ​​component 110 may determine the sequence of steps required to be performed by the robotic edge device to complete an identified task. For example, the AI ​​component 100 may predict which steps to perform to clear debris (e.g., remove specific debris from a collapsed structure to prevent collapse or damage) should be performed so that the task can be performed in a safe manner. The sequence of steps may be communicated to the robotic edge device 120 so that they can cooperate with each other while completing the steps of the task in order.

[0038] In embodiments, the robotic edge device assignment manager 102 may utilize the assignment component 114 to assign an appropriate robotic edge device 120 to perform a task at the identified geographic location based on the attributes. The AI ​​component 110 may initiate completion of the task by the robotic edge device 120. The analysis component 116 may continuously monitor edge data from the robotic edge device 120 to determine whether the task is complete. In some embodiments, the analysis component 116 may determine that one or more robotic devices are experiencing difficulties completing the task (e.g., loss of communication between robotic devices, robotic device wandering, etc.) and may reassign a new or different robotic device 120 to complete at least a portion or stage of the task. For example, one or more robotic edge devices 120 may be unable to perform various stages of a task due to communication range limitations. For example, edge computing / processing may be unable to be performed because one or more robotic edge devices 120 have exceeded communication range limitations. The allocation component 114 may identify a robotic edge device having difficulty completing a task and allocate a new robotic edge device (e.g., a mobile robot) to provide assistance in completing the task. For example, the new robotic edge device may increase the communication range of another robotic edge device by filling a communication gap between the two robotic edge devices.

[0039] In some embodiments, the allocation component 112 further evaluates the priority between edge computing and physical activities (based on relative position, distance, timing, etc.) performed by the robotic edge devices 120 to identify which should be given priority vs. which should be performed in parallel, and assigns them to different robotic edge devices within a defined range or zone in geographic location. For example, the allocation component 114 may assign robotic edge device 120A to perform physical activities outside edge communication range for a first phase of a task, and once the first phase is complete, assign robotic edge device 120A to move to edge device 120B within edge computing range and begin performing the second phase of the task. In this manner, the first phase of the task may not require edge computing in parallel with the physical activities and thus can be completed outside communication range. In this manner, the robotic edge device allocation manager 102 may dynamically allocate / position robotic edge devices in the vicinity so that edge computing decisions can be made in the most efficient manner when completing the identified task.

[0040] In embodiments, the knowledge corpus 118 may be used to store, access, and / or update data for making decisions related to assigning robotic devices to complete tasks at geographic locations. For example, the AI ​​component 110 may access various historical data associated with robotic edge devices 120 performing similar historical tasks and use this information to determine which robotic edge device is best to assign to a given task. For example, a first robotic edge device may perform physical tasks well (e.g., assembly tasks, object movement tasks, etc.) but have limited edge computing capabilities (e.g., latency issues, short communication range, etc.). Thus, the AI ​​component 110 may not assign this robotic edge device to perform tasks that require a greater communication range to complete edge computing in parallel with the physical activity associated with the identified task.

[0041] In some embodiments, the AI ​​component 110 may use machine learning algorithms to automatically improve its allocation capabilities through experience and / or iteration without procedural programming. For example, the AI ​​component 110 may analyze historical data related to the performance of various tasks using one or more robotic edge devices. The AI ​​component 110 may analyze the performance of various robotic edge devices, along with their attributes, and, through iteration, improve the efficiency of the allocation of robotic edge devices to complete new tasks.

[0042] Machine learning algorithms may include, but are not limited to, decision tree learning, association rule learning, artificial neural networks, deep learning, inductive logic programming, support vector machines, clustering, Bayesian networks, reinforcement learning, representation learning, similarity / distance training, sparse dictionary learning, genetic algorithms, rule-based learning, and / or other machine learning techniques.

[0043] For example, machine learning algorithms may include the following exemplary techniques: K-nearest neighbors (KNN), learning vector quantization (LVQ), self-organizing maps (SOM), logistic regression, ordinary least squares regression (OLSR), linear regression, stepwise regression, multivariate adaptive regression splines (MARS), ridge regression, least absolute shrinkage and selection operator (LASSO), elastic net, least angle regression (LARS), probabilistic classifiers, naive Bayes classifiers, binary classifiers, linear classifiers, hierarchical classifiers. , Canonical Correlation Analysis (CCA), Factor Analysis, Independent Component Analysis (ICA), Linear Discriminant Analysis (LDA), Multidimensional Scaling (MDS), Non-negative Matrix Factorization (NMF), Partial Least Squares Regression (PLSR), Principal Component Analysis (PCA), Principal Component Regression (PCR), Sammon Mapping, t-SNE (t-SNE), Bootstrap Aggregation, Harmonic Mean, Gradient Boosting Decision Tree (GBDT), Gradient Boosting Machine (GBM), Inductive Bias Algorithm The machine learning techniques may include one or more of: algorithms, Q-learning, state-action-reward-state-action (SARSA), temporal difference (TD) learning, a priori algorithms, equivalence class transformation (ECLAT) algorithms, Gaussian process regression, gene expression programming, group methods of data processing (GMDH), inductive logic programming, learning from examples, logic model trees, information fuzzy networks (IFN), hidden Markov models, Gaussian naive Bayes, multinomial naive Bayes, average-one dependence estimators (AODE), Bayesian networks (BN), classification and regression trees (CART), chi-squared automated interaction detection (CHAID), expectation maximization algorithms, forward propagation neural networks, logic learning machines, self-organizing maps, single-link clustering, fuzzy clustering, hierarchical clustering, Boltzmann machines, convolutional neural networks, recurrent neural networks, hierarchical temporary memories (HTM), and / or other machine learning techniques.

[0044] It should be noted that Figure 1 is intended to illustrate representative major components of an exemplary robotic edge device allocation 100. However, in some embodiments, the individual components may be more or less complex than depicted in Figure 1, and there may be components other than or in addition to those shown in Figure 1, and the number, type, and configuration of such components may vary.

[0045] For example, while Figure 1 illustrates a robotic edge device allocation system 100 with a single robotic edge device allocation manager 102, three robotic edge devices 120, a single IoT device 130, and a single network 150, a suitable computing environment for implementing embodiments of the present disclosure may include any number of robotic edge device allocation systems, robotic edge device allocation managers, robotic edge devices, IoT devices, and networks. The various modules, systems, and components illustrated in Figure 1 may, in some cases, exist across multiple robotic edge device allocation systems, robotic edge device allocation managers, robotic edge devices, IoT devices, and networks.

[0046] Referring now to Figure 2, an exemplary edge computing architecture 200 is shown, according to an embodiment of the present disclosure. In the illustrated embodiment, a public cloud 202 and a private cloud 204 are communicatively connected to an edge network topology 220. In an embodiment, the public cloud 202 and the private cloud 204 may be substantially similar to the computing environment 600 illustrated in Figure 6. In some embodiments, the public cloud 202 and the private cloud 204 may be linked such that they collectively are a hybrid cloud.

[0047] Edge network topology 220 illustrates the edge environment in which the robotic edge device allocation system 100 of FIG. 1 resides. In the illustrated embodiment, edge network topology 220 includes a region edge 206, a network edge 208A, a network edge 208B, a network edge 208N (collectively referred to as network edges 208), an edge cluster 210A, an edge cluster 210B, an edge cluster 210N (collectively referred to as edge clusters 210), a robotic edge device 212A, a robotic edge device 212B, a robotic edge device 212C, and a robotic edge device 212N (collectively referred to as robotic edge devices 212), communicatively connected to each other via a distributed computing network. In some embodiments, the robotic edge device allocation manager 102 may be configured as a region edge 206, one of the network edges 208, and / or one of the edge clusters 210. In embodiments, the robotic edge device 120 may be configured as a robotic edge device 212. In embodiments, the edge network topology 220 is configured to bring analytical computational resources closer to a given identified task and / or the geographic location of the end user, thus increasing the responsiveness and throughput of the use and / or performance of the robotic edge devices 212. By bringing computational resources closer to the geographic location of the task, and particularly through the collaboration of computational data between robotic edge devices related to the performance of the task, the use of the edge network topology 220 significantly outperforms traditional cloud-based-only systems by reducing data access response times and management costs.

[0048] Referring now to FIG. 3 , an example diagram 300 for assigning robotic edge devices to perform tasks at a geographic location is shown, according to some embodiments of the present disclosure. In the illustrated embodiment, the identified task to be performed at the geographic location is removing debris by utilizing multiple robotic edge devices. This task may be identified by a robotic edge device assignment manager by analyzing data input obtained from one or more IoT devices (not shown) within the geographic location. The robotic edge device assignment manager utilizes the data to determine the edge computing needs and / or physical requirements necessary to complete the task. For example, based on the identified debris, the robotic edge device assignment manager determines the appropriate steps and / or sequence that the robotic edge devices need to follow to remove the debris in an efficient and appropriate manner. This determination may be performed using an AI component and based on past data of the performance of similar tasks. For example, if a building collapses, the robotic edge device assignment manager identifies the appropriate sequence for using robotic edge devices to demolish the collapsed building in a safe manner.

[0049] In the illustrated embodiment, robotic edge device 302A, robotic edge device 302B, and robotic edge device 302C (collectively referred to as robotic edge device 302) are geographically positioned in Zone A of the geographic location. Robotic edge device 304A and robotic edge device 304B (collectively referred to as robotic edge device 304) are geographically positioned in Zone C of the geographic location. Due to significant debris between Zone A and Zone C, robotic edge device 302 and robotic edge device 304 are not in close enough proximity to each other (based on their given locations) to perform edge computing (based on edge latency) to remove all of the debris 301 in an efficient manner (e.g., in a sequence determined by AI). Furthermore, size (large automated truck / excavator) and mobility capabilities (static robotic devices) may prevent robotic edge devices 302 and 304 from approaching in sufficient proximity (edge ​​communication range) to enable adequate edge computing. Thus, the robotic edge device allocation manager analyzes the relative locations (e.g., using global positioning and / or local location data) and attributes associated with all robotic edge devices at a geographic location and deploys additional robotic edge devices to complete the task.

[0050] For example, the relative distance between Zone A and Zone C may be 1500 feet (approximately 457.2 meters), while the relative distance between Zone A and Zone B and between Zone B and Zone C may be within 750 feet (approximately 228.6 meters). If robotic edge device 302 and robotic edge device 304 only have a communication range of 1000 feet (approximately 304.8 meters) to perform collaborative edge computing, these robotic edge devices will not be able to fully complete the task. Therefore, the robotic edge device allocation manager may allocate additional robotic devices to close the gap in communication range. Additionally, the robotic edge device allocation manager may allocate robotic edge devices (e.g., smaller robotic edge devices, such as reconnaissance robotic devices, smart unmanned ground vehicles, unmanned aerial vehicles, etc.) that have mobility capabilities that enable the robotic edge devices to move through debris that larger robotic edge devices (robotic edge devices 302 and 304) may not be able to get through before completing various stages of a task.

[0051] In the illustrated embodiment, the robotic device allocation manager deploys robotic edge device 306A, robotic edge device 306B, and robotic edge device 306C (collectively referred to as robotic edge devices 306) in geographic location zone B. This allows edge computing and / or communication to be performed among robotic device 302, robotic device 304, and robotic device 306 within the communication range of the given devices, while further allowing completion of the task (debris removal) to be performed in an efficient manner.

[0052] Referring now to FIG. 4, an example process 400 for intelligently allocating robotic edge devices to perform tasks using an edge computing ecosystem is shown, according to some embodiments of the present disclosure. Process 400 may be performed in processing logic comprising hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processor), firmware, or a combination thereof. In some embodiments, process 400 is a computer-implemented process. In an embodiment, process 400 may be performed by the processor 106 of the robotic edge device allocation manager 102 illustrated in FIG. 1.

[0053] In embodiments, process 400 begins by identifying multiple robotic edge devices at a geographic location. This is shown at step 405. For example, the robotic device allocation manager may use location data from the robotic edge devices to identify various robotic edge devices within various locations / zones of the geographic location. The robotic edge devices may be any type of robotic edge device capable of performing a task (e.g., physical tasks and / or computational tasks). In some embodiments, the multiple robotic edge devices may consist of one or more of reconnaissance robotic devices, manufacturing robotic devices, assembly robotic devices, debris removal robotic devices, excavation robotic devices, smart vehicles, unmanned ground vehicles, and unmanned aerial vehicles.

[0054] Process 400 continues by determining attributes for each robotic edge device of the plurality of robotic edge devices. This is shown at step 410. In embodiments, the attributes may comprise various capabilities and / or characteristics associated with the robotic edge devices, such as each robotic edge device's physical capabilities, edge computing latency, edge communication range, and precise geographic location (e.g., using terrestrial location data, local location data, etc.). For example, a first robotic edge device may have physical capabilities, such as a robotic prosthetic leg / limb, that enable the robotic edge device to pick up, move, and / or assemble various objects, while also having edge computing capabilities that enable it to communicate (e.g., gather data / information) with other robotic edge devices to complete various tasks / functions.

[0055] Process 400 continues by identifying tasks to be performed at the geographic location by multiple robotic edge devices. This is shown at step 415. In embodiments, the tasks are determined by analyzing data input from one or more Internet of Things (IoT) devices. For example, the tasks may be determined using one or more cameras and / or sensors to identify tasks that need to be completed. In some embodiments, the tasks may be physical tasks that require the robotic edge devices to move one or more objects in a sequence of steps at the geographic location. For example, visual input may be analyzed to identify that debris (e.g., a collapsed building or a traffic accident) needs to be removed in the proper order from a road / zone at the geographic location. In another example, the task may be a manufacturing task such as vehicle assembly, where various robotic edge devices perform one or more assembly steps of the task in a collaborative manner at a manufacturing facility. In some embodiments, the tasks may be computational tasks (edge ​​computing) in addition to physical tasks.

[0056] In embodiments, the robotic device allocation manager utilizes an AI component that can be trained to allocate robotic edge devices based on an analysis of past data generated when performing past tasks. For example, based on an assessment of the physical environment in a given geographic location, the robotic device allocation manager is trained to identify which type of robotic edge device (e.g., soil removal machine, robot, forklift, manufacturing / assembly robot, etc.) should be assigned to complete the task and to take into account the edge computing capabilities of the robotic edge device. The robotic device allocation manager can infer edge computing needs based on learning history (e.g., a previously assigned robotic edge device previously performed improper debris removal that caused collapses and / or accidents).

[0057] Process 400 continues by determining a subset of robotic edge devices from the plurality of robotic edge devices that can complete the task based on the attributes. This is shown at step 420. For example, based on identifying the task and the attributes associated with the plurality of robotic edge devices, the robotic device assignment manager determines which robotic edge devices can perform the task. For example, if the task is determined to be soil / debris removal from a geographic location, the robotic device assignment manager determines that various soil removal devices (e.g., robotic excavators, robotic trucks, etc.) with edge computing capabilities are grouped together to perform the task. For example, robotic edge devices that can cooperatively determine the appropriate sequence of debris removal are assigned to complete the task based on their capabilities. In this manner, an appropriate subset of robotic edge devices is assigned to perform and complete the task.

[0058] In embodiments, edge computing needs are identified based on the task. For example, the robotic device allocation manager identifies what communication range capabilities are required for a subset of robotic edge devices based on the area or size of the geographic location where the task will be performed. For example, if the task requires movement around the geographic location, the robotic device allocation manager predicts the maximum travel distance within the zone of the geographic location between robotic edge devices when performing the task. Using the predicted maximum travel distance, the robotic device allocation manager may allocate more or fewer robotic edge devices to perform the task based on their capabilities (e.g., latency, communication range, physical capabilities, location, etc.) and their assigned positions within the geographic location. For example, the system may allocate more robotic edge devices to perform a task if the predicted travel distance to complete the task would place the robotic devices outside of their communication range capabilities when moving within the zone of the geographic location.

[0059] Process 400 continues by assigning a subset of robotic edge devices to complete the task. This is shown in step 425. In some embodiments, process 400 further includes initiating the subset of robotic edge devices to complete the task and monitoring the subset of robotic edge devices while completing the task. In embodiments, the system identifies the relative location and position of each of the robotic edge devices within a geographic location. The system may monitor how the robotic edge devices perform activities and physically move around the geographic location. Based on changes in the mobility of the robotic edge devices, devices may move out of their range and be unable to communicate with each other. Therefore, periodic monitoring may be required to verify that steps of a given task are completed.

[0060] For example, the processor may determine that a first robotic edge device of a subset of robotic edge devices is experiencing difficulty completing at least one stage of a task and assign a second robotic edge device to complete at least one stage of the task. For example, if the first robotic edge device is experiencing computational latency issues when collaborating with another robotic edge device outside of edge communication range, the processor may assign a second robotic edge device or a new robotic edge device to assist the first robotic edge device in completing the stage of the task. For example, to enable uninterrupted edge communication between all robotic edge devices, a mobile robotic edge device may be assigned to move to an area at a geographic location within edge communication range between the first and other robotic edge devices. In this way, the proposed system dynamically deploys appropriate edge devices so that transmission routes for edge computing decisions can be created to efficiently complete tasks.

[0061] 5, there is shown a high-level block diagram of an exemplary computer system 501 that may be used to implement one or more of the methods, tools, and modules, and any associated functionality, described herein (e.g., using one or more processor circuits of a computer or computer processor), in accordance with embodiments of the present disclosure. In some embodiments, the major components of computer system 501 may include one or more CPUs 502, a memory subsystem 504, a terminal interface 512, a storage interface 516, an I / O (input / output) device interface 514, and a network interface 518, all of which may be communicatively coupled, directly or indirectly, via a memory bus 503, an I / O bus 508, and an I / O bus interface 510 for inter-component communication.

[0062] Computer system 501 may include one or more general-purpose programmable central processing units (CPUs) 502A, 502B, 502C, and 502D, collectively referred to herein as CPUs 502. In some embodiments, computer system 501 may include multiple processors typical of relatively large systems, while in other embodiments, computer system 501 may alternatively be a single-CPU system. Each CPU 502 may execute instructions stored in memory subsystem 504 and may include one or more levels of on-board cache. In some embodiments, the processor may include at least one or more of a memory controller and / or a storage controller. In some embodiments, the CPU may execute processes included herein (e.g., process 400 illustrated in FIG. 4). In some embodiments, computer system 501 may be configured as robotic device allocation system 100 of FIG. 1.

[0063] System memory subsystem 504 may include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 522 or cache memory 524. Computer system 501 may also include other removable / non-removable, volatile / non-volatile computer system data storage media. By way of example only, storage system 526 may be provided for reading from and writing to non-removable, non-volatile magnetic media, such as a “hard drive.” Although not shown, a magnetic disk drive may be provided for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), or an optical disk drive may be provided for reading from and writing to a removable, non-volatile optical disk, such as a CD-ROM, DVD-ROM, or other optical media. Additionally, memory subsystem 504 may include flash memory, such as a flash memory stick drive or flash drive. Memory devices may be connected to memory bus 503 by one or more data media interfaces. The memory subsystem 504 may include at least one program product having a set (eg, at least one) of program modules configured to perform the functions of various embodiments.

[0064] 5 as a single bus structure providing a direct communication path between CPU 502, memory subsystem 504, and I / O bus interface 510, memory bus 503, in some embodiments, may include multiple different buses or communication paths, which may be arranged in any of a variety of configurations, such as point-to-point links in a hierarchical, star, or web configuration, multiple hierarchical buses, parallel and redundant paths, or any other suitable type of configuration. Furthermore, while I / O bus interface 510 and I / O bus 508 are shown as a single unit, computer system 501, in some embodiments, may include multiple I / O bus interfaces 510, multiple I / O buses 508, or both. Furthermore, while multiple I / O interface units are shown isolating I / O bus 508 from the various communication paths extending to the various I / O devices, in other embodiments, some or all of the I / O devices may be directly connected to one or more system I / O buses.

[0065] In some embodiments, computer system 501 may be a multi-user mainframe computer system, a single-user system, or a server computer or similar device that has little or no direct user interface but receives requests from other computer systems (clients). Further, in some embodiments, computer system 501 may be implemented as a desktop computer, a portable computer, a laptop or notebook computer, a tablet computer, a pocket computer, a telephone, a smartphone, a network switch or router, or any other suitable type of electronic device.

[0066] It should be noted that Figure 5 is intended to illustrate representative major components of an exemplary computer system 501. However, in some embodiments, the individual components may be more or less complex than depicted in Figure 5, components other than or in addition to those depicted in Figure 5 may be present, and the number, type, and configuration of such components may vary.

[0067] One or more programs / utilities 528, each having a set of at least one program module 530, may be stored in the memory subsystem 504. The programs / utilities 528 may include a hypervisor (also referred to as a virtual machine monitor), one or more operating systems, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data, or any combination thereof, may comprise an implementation of a networking environment. The programs / utilities 528 and / or program modules 530 generally perform the functions or methodologies of various embodiments.

[0068] Various aspects of the present disclosure are described by way of text, flowcharts, block diagrams of computer systems, and / or block diagrams of machine logic included in embodiments of a computer program product (CPP). For any flowchart, depending on the technology involved, operations may be performed in an order different from that shown in a given flowchart. For example, two operations shown in successive flowchart blocks may be performed in the reverse order, as a single integrated step, simultaneously, or in an at least partially overlapping manner, again depending on the technology involved.

[0069] A computer program product embodiment ("CPP embodiment" or "CPP") is a term used in this disclosure to describe any set of one or more storage media (also referred to as "media"), collectively contained in one or more storage devices, that collectively contain machine-readable code corresponding to instructions and / or data for performing the computer operations specified in a given CPP claim. A "storage device" is any tangible device that can hold and store instructions for use by a computer processor. The computer-readable storage medium may be, but is not limited to, an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these media include diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices (such as punch cards or pits / lands formed on a major surface of a disk), or any suitable combination of the foregoing. Computer-readable storage media, as the term is used in this disclosure, is not to be construed as storage in the form of transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, light pulses passing through fiber optic cables, electrical signals communicated over wires, and / or other transmission media. As will be appreciated by those skilled in the art, data is typically moved at some infrequent time during the normal operation of a storage device, such as during access, defragmentation, or garbage collection, but the above does not make a storage device transient because data is not transient while it is stored.

[0070] Embodiments of the present disclosure may be implemented with virtually any type of computer, regardless of whether the platform is suitable for storing and / or executing program code. Figure 6 illustrates, by way of example, a computing environment 600 (e.g., a cloud computing system) suitable for executing program code associated with the methods disclosed herein and for circuit design automation. In some embodiments, computing environment 600 may be the same as or be an implementation of computing environment 100.

[0071] Computing environment 600 includes an example environment for the execution of at least some of the computer code involved in performing the methods of the invention, such as robotic edge device allocation code 700. Robotic edge device allocation code 700 may be a code-based implementation of robotic device allocation system 100. In addition to robotic edge device allocation code 700, computing environment 600 includes, for example, a computer 601, a wide area network (WAN) 602, an end user device (EUD) 603, a remote server 604, a public cloud 605, and a private cloud 606. In this embodiment, computer 601 includes a set of processors 610 (including processing circuitry 620 and cache 621), a communications fabric 611, volatile memory 612, persistent storage 613 (operating system 622, as identified above, and including robotic edge device allocation code 700), a set of peripheral devices 614 (including a set of user interface (UI) devices 623, storage 624, and an Internet of Things (IoT) sensor set 625), and a network module 615. Remote server 604 includes a remote database 630. Public cloud 605 includes a gateway 640, a cloud orchestration module 641, a set of host physical machines 642, a set of virtual machines 643, and a set of containers 644.

[0072] Computer 601 may take the form of a desktop computer, a laptop computer, a tablet computer, a smartphone, a smartwatch or other wearable computer, a mainframe computer, a quantum computer, or any other form of computer or mobile device now known or later developed that is capable of executing programs, accessing a network, or querying a database, such as remote database 630. As is well understood in the field of computer technology, and depending on the technology, performance of a computer-implemented method may be distributed among multiple computers and / or among multiple locations. However, in this representation of computing environment 600, to keep the presentation as concise as possible, the detailed discussion focuses on a single computer, specifically computer 601. Although computer 601 is not depicted within the cloud in FIG. 1 , it may be located within the cloud. However, computer 601 may not be required within the cloud except to any extent that may be expressly indicated.

[0073] Processor set 610 includes one or more computer processors of any type now known or later developed. Processing circuitry 620 may be distributed across multiple packages, e.g., multiple cooperating integrated circuit chips. Processing circuitry 620 may implement multiple processor threads and / or multiple processor cores. Cache 621 is located on the processor chip package and is typically memory used for data or code that should be available for fast access by threads or cores executing on processor set 610. Cache memory is typically organized into multiple levels depending on relative proximity to the processing circuitry. Alternatively, some or all of the cache for a processor set may be located “off-chip.” In some computing environments, processor set 610 may be designed to operate with qubits and perform quantum computations.

[0074] Computer-readable program instructions are typically loaded into computer 601 and cause a series of operational steps to be performed by processor set 610 of computer 601, thereby realizing a computer-implemented method, such that the instructions so executed instantiate the method specified in the flowcharts and / or narrative descriptions of the computer-implemented methods contained herein (collectively referred to as the "invention methods"). These computer-readable program instructions are stored in various types of computer-readable storage media, such as cache 621 and other storage media discussed below. The program instructions and associated data are accessed by processor set 610 to control and direct the performance of the inventive methods. In computing environment 600, at least some of the instructions for performing the inventive methods may be stored in robotic edge device allocation code 700 in persistent storage 613.

[0075] Communications fabric 611 is the signaling pathway that allows various components of computer 601 to communicate with one another. Typically, this fabric is made up of switches and conductive pathways, such as switches and conductive pathways that make up buses, bridges, physical input / output ports, etc. Other types of signaling pathways may be used, such as fiber optic and / or wireless communication pathways.

[0076] Volatile memory 612 may be any type of volatile memory, now known or later developed. Examples include dynamic random access memory (RAM) or static RAM. Typically, volatile memory 612 is characterized by random access, although this is not required unless expressly indicated. In computer 601, volatile memory 612 is located in a single package and is internal to computer 601; however, alternatively or additionally, volatile memory may be distributed across multiple packages and / or may be located external with respect to computer 601.

[0077] The persistent storage 613 is any form of non-volatile storage for a computer, now known or later developed. The non-volatility of this storage means that stored data is maintained regardless of whether power is supplied to the computer 601 and / or to the persistent storage 613 directly. The persistent storage 613 can be read-only memory (ROM), but typically at least a portion of the persistent storage allows data to be written, data to be erased, and data to be rewritten. Some well-known forms of persistent storage include magnetic disks and solid-state storage devices. The operating system 622 can take several forms, such as various known proprietary operating systems or open-source Portable Operating System Interface-type operating systems that use a kernel. The code included in the robotic edge device allocation code 700 typically includes at least a portion of the computer code involved in performing the inventive methods.

[0078] The peripheral device set 614 includes a set of peripheral devices of the computer 601. Data communication connections between the peripheral devices and other components of the computer 601 can be implemented in various ways, such as Bluetooth connections, Near-Field Communication (NFC) connections, connections made by cable (such as a universal serial bus (USB) type cable), insertion-type connections (e.g., a secure digital (SD) card), connections made through a local area communication network, and even connections made through a wide area network such as the Internet. In various embodiments, the UI device set 623 can include components such as a display screen, speakers, a microphone, wearable devices (such as goggles and smartwatches), a keyboard, a mouse, a printer, a touchpad, a game controller, and a haptic device. The storage 624 can be external storage, such as an external hard disk, or insertable storage, such as an SD card. The storage 624 can be persistent and / or volatile. In some embodiments, the storage 624 can take the form of a quantum computing storage device for storing data in the form of qubits. In embodiments where computer 601 requires large amounts of storage (e.g., computer 601 stores and manages large databases locally), this storage may be provided by a peripheral storage device designed for storing very large amounts of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. IoT sensor set 625 consists of sensors that may be used in Internet of Things applications. For example, one sensor may be a thermometer and another sensor may be a motion detector.

[0079] The network module 615 is a collection of computer software, hardware, and firmware that enables the computer 601 to communicate with other computers over the WAN 602. The network module 615 may include hardware such as a modem or Wi-Fi signal transceiver, software for packetizing and / or de-packetizing data for communication network transmission, and / or web browser software for communicating data over the Internet. In some embodiments, the network control and network forwarding functions of the network module 615 are performed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software-defined networking (SDN)), the control and forwarding functions of the network module 615 are performed on physically separate devices, such that the control function manages several different network hardware devices. Computer-readable program instructions for performing the methods of the invention may be downloaded to the computer 601 from an external computer or external storage device, typically through a network adapter card or network interface included in the network module 615.

[0080] WAN 602 is any wide area network (e.g., the Internet) capable of communicating computer data over non-local distances by any technology for communicating computer data, now known or later developed. In some embodiments, WAN 602 may be replaced and / or supplemented by a local area network (LAN) designed to communicate data between devices located in a local area, such as a Wi-Fi network. WANs and / or LANs typically include copper transmission cables, optical fiber transmissions, wireless transmissions, and computer hardware such as routers, firewalls, switches, gateway computers, and edge servers.

[0081] End-user device (EUD) 603 is any computer system used and controlled by an end user (e.g., a customer of the enterprise operating computer 601) and may take any of the forms discussed above in connection with computer 601. EUD 603 typically receives useful and useful data from the operation of computer 601. For example, in the hypothetical case where computer 601 is designed to provide recommendations to the end user, the recommendations would typically be communicated to EUD 603 from network module 615 of computer 601 over WAN 602. In this manner, EUD 603 may display or otherwise present the recommendations to the end user. In some embodiments, EUD 603 may be a client device such as a thin client, a heavy client, a mainframe computer, a desktop computer, or the like.

[0082] Remote server 604 is any computer system that provides at least some data and / or functionality to computer 601. Remote server 604 may be controlled and used by the same entity that operates computer 601. Remote server 604 represents a machine that collects and stores useful and useful data for use by other computers, such as computer 601. For example, in the hypothetical case where computer 601 is designed and programmed to provide recommendations based on past data, this past data may be provided to computer 601 from remote database 630 of remote server 604.

[0083] A public cloud 605 is any computer system available for use by multiple entities that provides on-demand availability of computer system resources and / or other computer capabilities, particularly data storage (cloud storage) and computing power, without direct, active management by users. Cloud computing typically leverages resource sharing to achieve coherence and economies of scale. Direct, active management of the public cloud 605's computing resources is performed by the computer hardware and / or software of a cloud orchestration module 641. The computing resources provided by the public cloud 605 are typically implemented by virtual computing environments running on various computers comprising a host physical machine set 642, which are areas of physical computers in and / or available to the public cloud 605. The virtual computing environments (VCEs) typically take the form of virtual machines from a virtual machine set 643 and / or containers from a container set 644. It is understood that these VCEs may be stored as images and may be transferred among and between various physical machine hosts, either as images or after instantiation of the VCEs. The cloud orchestration module 641 manages the transfer and storage of images, deploys new instantiations of the VCE, and manages the active instantiation of VCE deployments. The gateway 640 is a collection of computer software, hardware, and firmware that enables the public cloud 605 to communicate over the WAN 602.

[0084] Some further description of virtualized computing environments (VCEs) is now provided. A VCE can be stored as an "image." A new, active instance of a VCE can be instantiated from the image. Two well-known types of VCEs are virtual machines and containers. A container is a VCE that uses operating system-level virtualization. This refers to a feature of an operating system in which the kernel allows the existence of multiple isolated user space instances, called containers. These isolated user space instances typically behave as real computers from the perspective of programs running within them. A computer program running on a typical operating system can utilize all of the computer's resources, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, a program running inside a container can only use the contents of the container and of the devices assigned to the container; this feature is known as containerization.

[0085] Private cloud 606 is similar to public cloud 605, except that the computing resources are available only for use by a single enterprise. While private cloud 606 is shown in communication with WAN 602, in other embodiments, the private cloud may be completely disconnected from the Internet and accessible only through a local / private network. A hybrid cloud is a composite of multiple clouds of different types (e.g., private, community, or public cloud types), often each implemented by a different vendor. While each of the multiple clouds remains a separate, discrete entity, the larger hybrid cloud architecture is bound together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between the constituent clouds. In this embodiment, both public cloud 605 and private cloud 606 are part of a larger hybrid cloud.

[0086] Although this disclosure includes detailed descriptions of cloud computing, it is understood that implementation of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of the present disclosure can be implemented in conjunction with any other type of computing environment now known or later developed.

[0087] In some embodiments, one or more of the operating system 622 and the robotic edge device allocation code 700 may be implemented as a service model. Service models may include software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). In SaaS, the consumer is provided with the ability to use a provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings. In PaaS, the consumer is provided with the ability to deploy consumer-created or acquired applications, written using programming languages ​​and tools supported by the provider, onto the cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but has control over the deployed applications and, in some cases, the application hosting environment configuration. In IaaS, the consumer is provided with the ability to provision processing, storage, network, and other basic computing resources on which the consumer can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but does control the operating systems, storage, deployed applications, and, in some cases, limited control over select networking components (e.g., host firewalls).

[0088] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0089] These computer-readable program instructions may be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, such that the instructions, which execute on the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams, thereby causing a machine. These computer-readable program instructions may also be stored on a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and / or other device to function in a particular manner, such that the computer-readable storage medium on which the instructions are stored has an article of manufacture including instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.

[0090] Furthermore, computer-readable program instructions may be loaded into a computer, other programmable data processing apparatus, or other device, causing the computer, other programmable data processing apparatus, or other device to perform a series of operational steps, resulting in a computer-implemented process, such that the instructions, which execute on the computer, other programmable data processing apparatus, or other device, implement the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.

[0091] The flowcharts and / or block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially concurrently, or the blocks may be executed in the reverse order, depending on the functionality involved. It should also be noted that each block in the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified function or operation or executes a combination of dedicated hardware and computer instructions.

[0092] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprise" and / or "comprising," when used herein, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0093] Corresponding structures, materials, acts, and equivalents of all means or steps and functional elements in the following claims are intended to include any structure, material, or act for performing the function in combination with other claim elements as specifically claimed. The description of the present disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or to limit the disclosure to the precise form disclosed. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the present disclosure. The embodiments have been chosen and described in order to explain the principles and practical applications of the disclosure and to enable others skilled in the art to appreciate the present disclosure in various embodiments with various modifications as suited to the particular uses contemplated.

[0094] While the description of various embodiments of the present disclosure has been presented for purposes of illustration, it is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein has been selected to explain the principles of the embodiments, their practical applications, or technical improvements over technology found in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. identifying a plurality of robotic edge devices at a geographic location; determining an attribute of each robotic edge device of the plurality of robotic edge devices; identifying tasks to be performed at the geographic location by the plurality of robotic edge devices; determining a subset of robotic edge devices capable of completing the task based on the attributes; and assigning a subset of the robotic edge devices to complete the task; A computer-implemented method comprising:

2. initiating a subset of the robotic edge devices to complete the task; and monitoring the subset of robotic edge devices while completing the task. The computer-implemented method of claim 1 further comprising:

3. determining that a first robotic edge device of the subset of robotic edge devices is experiencing difficulty completing at least one stage of the task; assigning a second robotic edge device to complete the at least one stage of the task. The computer-implemented method of claim 2 further comprising:

4. The computer-implemented method of claim 3 , wherein the second robotic edge device is a new robotic edge device.

5. The attributes of each robotic edge device are: the physical capabilities of the robotic edge device; Edge computing latency; Edge communication range; and geographical location The computer-implemented method of claim 1 , wherein the attribute has one or more attributes selected from the group consisting of:

6. Each robotic edge device: Reconnaissance robotic devices; Debris removal robotic devices; Excavation robotic devices; Smart vehicles; and unmanned aerial vehicle 10. The computer-implemented method of claim 1, wherein the robotic edge device is selected from the group consisting of:

7. The computer-implemented method of claim 1 , wherein the tasks are determined by analyzing data input from one or more Internet of Things (IoT) devices.

8. 8. The computer-implemented method of claim 7, wherein the one or more IoT devices are selected from the group of IoT devices consisting of: a camera, a sensor, and a computer.

9. The computer-implemented method of claim 1 , wherein the task is a physical task.

10. 10. The computer-implemented method of claim 9, wherein the physical task requires the subset of robotic edge devices to use edge computing at the geographic location to move one or more objects between each robotic edge device of the subset of robotic edge devices.

11. a processor; and communicatively coupled to the processor and, when executed by the processor, causing the processor to: identifying a plurality of robotic edge devices at a geographic location; determining an attribute of each robotic edge device of the plurality of robotic edge devices; identifying tasks to be performed at the geographic location by the plurality of robotic edge devices; determining a subset of robotic edge devices capable of completing the task based on the attributes; and assigning a subset of the robotic edge devices to complete the task; a computer-readable storage medium storing program instructions for performing a method having the steps of: A system comprising:

12. The method performed by the processor: initiating a subset of the robotic edge devices to complete the task; and monitoring the subset of robotic edge devices while completing the task. The system of claim 11 further comprising:

13. The method performed by the processor: determining that a first robotic edge device of the subset of robotic edge devices is experiencing difficulty completing at least one stage of the task; assigning a second robotic edge device to complete the at least one stage of the task. The system of claim 12 further comprising:

14. The attributes of each robotic edge device are: the physical capabilities of the robotic edge device; Edge computing latency; Edge communication range; and geographical location 12. The system of claim 11, comprising one or more attributes selected from the group consisting of:

15. Each robotic edge device: Reconnaissance robotic devices; Debris removal robotic devices; Excavation robotic devices; Smart vehicles; and unmanned aerial vehicle 12. The system of claim 11, wherein the robotic edge device is selected from the group consisting of:

16. a computer-readable storage medium having program instructions embodied thereon, the program instructions causing a processor to: identifying a plurality of robotic edge devices at a geographic location; determining an attribute of each robotic edge device of the plurality of robotic edge devices; identifying tasks to be performed at the geographic location by the plurality of robotic edge devices; determining a subset of robotic edge devices capable of completing the task based on the attributes; and assigning a subset of the robotic edge devices to complete the task; a computer program product executable by the processor to perform a method comprising:

17. The method performed by the processor: initiating a subset of the robotic edge devices to complete the task; and monitoring the subset of robotic edge devices while completing the task.

17. The computer program product of claim 16, further comprising:

18. The method performed by the processor: determining that a first robotic edge device of the subset of robotic edge devices is experiencing difficulty completing at least one stage of the task; assigning a second robotic edge device to complete the at least one stage of the task.

20. The computer program product of claim 17, further comprising:

19. The attributes of each robotic edge device are: the physical capabilities of the robotic edge device; Edge computing latency; Edge communication range; and geographical location 17. The computer program product of claim 16, comprising one or more attributes selected from the group consisting of:

20. Each robotic edge device: Reconnaissance robotic devices; Debris removal robotic devices; Excavation robotic devices; Smart vehicles; and unmanned aerial vehicle 17. The computer program product of claim 16, wherein the robotic edge device is selected from the group consisting of: