US20220400061A1 - Methods and systems for autonomous software defined network - Google Patents
Methods and systems for autonomous software defined network Download PDFInfo
- Publication number
- US20220400061A1 US20220400061A1 US17/836,655 US202217836655A US2022400061A1 US 20220400061 A1 US20220400061 A1 US 20220400061A1 US 202217836655 A US202217836655 A US 202217836655A US 2022400061 A1 US2022400061 A1 US 2022400061A1
- Authority
- US
- United States
- Prior art keywords
- data
- atp
- controller
- autonomous
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/10—Simultaneous control of position or course in three dimensions
- G05D1/101—Simultaneous control of position or course in three dimensions specially adapted for aircraft
- G05D1/104—Simultaneous control of position or course in three dimensions specially adapted for aircraft involving a plurality of aircrafts, e.g. formation flying
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64U—UNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
- B64U20/00—Constructional aspects of UAVs
- B64U20/40—Modular UAVs
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0011—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
- G05D1/0022—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement characterised by the communication link
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0011—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
- G05D1/0044—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement by providing the operator with a computer generated representation of the environment of the vehicle, e.g. virtual reality, maps
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/60—Intended control result
- G05D1/69—Coordinated control of the position or course of two or more vehicles
- G05D1/695—Coordinated control of the position or course of two or more vehicles for maintaining a fixed relative position of the vehicles, e.g. for convoy travelling or formation flight
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0853—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y80/00—Products made by additive manufacturing
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64U—UNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
- B64U10/00—Type of UAV
- B64U10/10—Rotorcrafts
- B64U10/13—Flying platforms
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64U—UNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
- B64U20/00—Constructional aspects of UAVs
- B64U20/60—UAVs characterised by the material
- B64U20/65—Composite materials
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64U—UNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
- B64U2101/00—UAVs specially adapted for particular uses or applications
- B64U2101/30—UAVs specially adapted for particular uses or applications for imaging, photography or videography
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y40/00—IoT characterised by the purpose of the information processing
- G16Y40/20—Analytics; Diagnosis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2209/00—Arrangements in telecontrol or telemetry systems
Definitions
- the subject matter disclosed herein relates to processing of telemetry and data from one or more autonomous systems or devices, and in particular to unmanned, autonomous, or remotely operated systems and methods for adding telemetry acquisition, processing, and distribution capabilities to additional devices to at least one remote system to enhance or increase system functionality.
- a remote system includes a remote system/vehicle and either remote system control (computer, micro-controller, mobile smartphone or tablet, base or ground station system) for autonomous operation, or semi-autonomous control through a remote agent, for managing the remote system operations and activities.
- a remote system is an autonomous system (AS), which is any system or device that can operate with minimal, limited, or no human intervention.
- An autonomous system can be a single instance or can be deployed as part of a distributed system architecture. In some cases, an autonomous system can be capable of moving (e.g. flying, crawling, roving, etc.) autonomously or semi-autonomously under the control of an operator or intelligent agent.
- an autonomous system can be substantially stationary (e.g., a nuclear magnetic resonance (NMR) device, a magnetic resonance imaging (MRI) device), a portable medical device, or industrial control or sensor device.
- the autonomous system may include or be associated with one or more devices for collecting data (e.g., camera, temperature sensor, pressure sensor, gas sensor, NMR imaging sensor, MRI imaging sensor, and/or the like, including combinations and/or multiples thereof). These devices can acquire telemetry data for operation or analysis in order to provide for a complete set of functions required to achieve some goal or objective.
- a system in one exemplary embodiment, includes a plurality of processor modules. Each of the plurality of processor modules is communicatively couplable to an autonomous system of a plurality of autonomous systems. Each of the processor modules includes an autonomous software defined network (A-SDN) data-plane communications controller. The system further includes a portable network controller including an A-SDN control-plane communications controller.
- A-SDN autonomous software defined network
- further embodiments of the system may include that the A-SDN control-plane communications controller operates in one of a global mode or a local mode.
- further embodiments of the system may include that the A-SDN control-plane communications controller operates in one of the global mode or the local mode based at least in part on a network topology.
- further embodiments of the system may include that the A-SDN control-plane communications controller manages and orchestrates communications between and among the plurality of processor modules.
- further embodiments of the system may include that the A-SDN data-plane communications controller implements, executes, and provisions network rules and policies established by the A-SDN control-plane communications controller.
- the portable network controller further includes: a communication module; a network interface card; a topology manager; a routing manager; a metrics manager; a policy manager; a portable network controller processor; a platform interface module; a communications system; a memory system; and a configuration manager.
- further embodiments of the system may include that the communication module is selected from a group consisting of: a radio frequency module, a satellite module, a WiFi module, a Bluetooth module, and a cellular module.
- the communication module is selected from a group consisting of: a radio frequency module, a satellite module, a WiFi module, a Bluetooth module, and a cellular module.
- a method for establishing an autonomous software defined network (A-SDN) among a plurality of autonomous systems includes establishing network rules and policies by an A-SDN control-plane communications controller associated with a portable network controller. The method further includes distributing the network rules and polices from the A-SDN control-plane communications controller to a plurality of processor modules, each of the plurality of processor modules communicatively couplable to an autonomous system of the plurality of autonomous systems. The method further includes establishing a communication link between a first autonomous system of the plurality of autonomous systems and a second autonomous system of the plurality of autonomous systems. The first autonomous system includes a first processor module and the second autonomous system includes a second processor module. The method further includes transmitting data, based on the content of the data and the network rules and policies, from the first autonomous system to the second autonomous system using the communication link.
- A-SDN autonomous software defined network
- further embodiments of the method may include that the A-SDN control-plane communications controller is external to each of the plurality of autonomous systems.
- each of the plurality of processor modules includes an A-SDN data-plane communications controller of a plurality of A-SDN data-plane communications controllers.
- further embodiments of the method may include that the plurality of A-SDN data-plane communications controllers implements, executes, and provisions network rules and policies established by the A-SDN control-plane communications controller.
- further embodiments of the method may include that transmitting the data is further based on local metrics of the first autonomous system.
- further embodiments of the method may include that a first subset of the plurality of processor modules are grouped into a first domain, and wherein a second subset of the plurality of processor modules are grouped into a second domain.
- further embodiments of the method may include that the first domain and the second domain are grouped into a global domain.
- further embodiments of the method may include that the first domain includes the portable network controller, and wherein the second domain includes another portable network controller.
- further embodiments of the method may include that the plurality of processor modules transmit data to and receive data from a cloud computing environment via the portable network controller.
- further embodiments of the method may include that the plurality of processor modules and the portable network controller form a mesh network.
- a system in yet another exemplary embodiment includes a first processor module communicatively couplable to a first autonomous system and associated with a first device to collect first data.
- the first processor module facilitates communication between the first device and the first processor module via a first communication link between the first processor module and the first device.
- the first processor module includes a first autonomous software defined network (A-SDN) data-plane communications controller.
- the system further includes a second processor module communicatively couplable to a second autonomous system and associated with a second device to collect second data.
- the second processor module facilitates communication between the second device and the second processor module via a second communication link between the second processor module and the second device.
- the second processor module includes a second A-SDN data-plane communications controller.
- the system further includes a portable network controller including an A-SDN control-plane communications controller. The portable network controller, the first processor module, and the second processor module form an A-S DN.
- further embodiments of the system may includes that the portable network controller controls data being transmitted by the first processor module and the second processor module across the A-SDN based at least in part on the first data, the second data, metrics associated with the first autonomous system, and metrics associated with the second autonomous system.
- further embodiments of the system may includes that the metrics associated with the first autonomous system include a bandwidth measurement, a latency measurement, a signal strength measurement, and device data.
- FIGS. 1 A- 1 C are schematic illustrations of example implementations of an ATP processor module according to one or more embodiments described herein;
- FIG. 2 is a schematic illustration of an example implementation of an ATP processor module according to one or more embodiments described herein;
- FIGS. 3 A and 3 B are schematic illustrations of communication schemes for incoming (inbound) command/data and outgoing (outbound) command/data that utilize dynamically controlled synchronous and/or asynchronous communication processing according to one or more embodiments described herein;
- FIG. 3 C is a block diagram of a an autonomous system network controller according to one or more embodiments described herein;
- FIG. 3 D is a block diagram of an autonomous system network controller according to one or more embodiments described herein;
- FIG. 3 E is a block diagram of a real-time transport and telemetry metrics processor of the autonomous system network controller of FIGS. 3 C and 3 D according to one or more embodiments described herein;
- FIGS. 3 F and 3 G are block diagrams of a communications controller of the autonomous system network controller of FIGS. 3 C and 3 E ;
- FIG. 3 H is a block diagram of an ATP interface controller of the ATP processor module of FIG. 2 according to one or more embodiments described herein;
- FIGS. 4 A- 4 F are schematic illustrations of examples of implementations of an autonomous telemetry platform (ATP) according to embodiments described herein;
- FIG. 5 A is a schematic illustration of the ATP of FIG. 4 A according to one or more embodiments described herein;
- FIG. 5 B is a schematic illustration of the ATP of FIG. 4 B according to one or more embodiments described herein;
- FIGS. 6 A and 6 B are schematic illustrations of example implementations of a host platform and an ATP according to one or more embodiments described herein;
- FIGS. 7 A- 7 D are schematic illustrations of communication paths between multiple ATPs and/or remote computing systems according to one or more embodiments described herein;
- FIGS. 7 E and 7 F are schematic illustrations of example implementations of an ATP within an autonomous system and an autonomous system platform controller according to one or more embodiments described herein;
- FIGS. 7 G and 7 H are schematic illustrations of example implementations of an ATP within an autonomous system, an autonomous system platform controller, and an ATP platform controller and ATP applications according to one or more embodiments described herein;
- FIG. 7 I is a schematic illustration of an example implementation of an ATP portable network controller according to one or more embodiments described herein;
- FIG. 7 J is a schematic illustration of an example implementation of the ATP portable network controller of FIG. 7 I according to one or more embodiments described herein;
- FIG. 7 K is a schematic illustration of an example of multiple ATPs deployed in local domains, which together form a global domain according to one or more embodiments described herein;
- FIGS. 7 L, 7 M, 7 N, and 70 are schematic illustrations of examples of use cases for the ATP portable network controller of FIGS. 7 J and 7 K according to one or more embodiments described herein;
- FIG. 7 P is a schematic illustration of multiple autonomous systems, each having an ATP with an autonomous SDN data-plane controller according to one or more embodiments described herein;
- FIG. 8 A is a schematic illustration of an example of multiple unmanned aerial vehicles (UAV) each equipped with an ATP according to one or more embodiments described herein;
- UAV unmanned aerial vehicles
- FIG. 8 B is a schematic illustration of an example of multiple UAVs each equipped with an ATP and together forming a partial mesh network according to one or more embodiments described herein;
- FIG. 9 is a flow diagram of a method according to one or more embodiments described herein.
- FIGS. 10 A- 10 C are schematic illustrations of an autonomous telemetry platform including an autonomous system (AS) network controller according to one or more embodiments described herein; and
- AS autonomous system
- FIG. 11 is a schematic illustration of ATP groups deployed across a geographic area according to one or more embodiments described herein.
- remote systems can take several forms, such as but not limited to autonomous guided vehicles (AGV), unmanned aerial vehicles (UAV), autonomous underwater vehicles (AUV), portable devices, industrial control and sensor systems, Internet of Things (IoT) devices, and the like.
- AGV autonomous guided vehicles
- UAV unmanned aerial vehicles
- AUV autonomous underwater vehicles
- portable devices such as but not limited to portable devices, industrial control and sensor systems, Internet of Things (IoT) devices, and the like.
- IoT Internet of Things
- remote system may refer to any of the foregoing or other remotely operated (either autonomous, semi-autonomous, or operator controlled) device or system, or autonomous system (AS).
- embodiments herein may refer to specific remote systems, such as the aforementioned AGV, UAV, AUV, portable devices, industrial control and sensor systems, IoT devices, and/or the like including combination or multiples thereof, this is for example purposes and the claims should not be so limited.
- an autonomous telemetry platform for collecting, processing and managing data for one or more aspects of an autonomous system.
- an ATP is used to process data and manage data flows and communications within an autonomous system and/or between/among multiple autonomous systems.
- an ATP is used to process data and manage data-flows and communications within an ATP and/or between and among multiple ATP systems, or combinations of ATP and autonomous systems thereof.
- An autonomous system is any system or device that can operate with minimal, limited, or no human intervention.
- An AS can be a single instance or can be deployed as part of a distributed system architecture.
- the AS can be a portable medical device or an industrial component (e.g., an intelligent flow measurement or detection device at a plant facility) that is stationary and part of a distributed network of such devices.
- FIGS. 1 A- 1 C are schematic illustrations of example implementations of an ATP processor module 102 according to one or more embodiments described herein.
- the ATP processor module 102 can be coupled to or integrated with an ATP 100 .
- the ATP processor module 102 can be implemented in an autonomous system 404 (see, e.g., FIG. 4 A ).
- Other implementations are also possible as described herein, see, e.g., FIGS. 4 A- 4 F, 5 A, 5 B, 6 A, 6 B , and/or the like, including combinations and/or multiples thereof.
- the ATP platform is a distributed network system of components, which could include an ATP processor module 102 , a network of ATP processor modules 102 , a device (e.g., the device 110 ) integrated therein, a communication bus and/or communication resources, and/or the like, including combinations and/or multiples thereof.
- the ATP 100 provides “edge artificial intelligence” processing as part of an end-to-end analytics platform.
- the ATP 100 can deliver processed telemetry data locally and/or to one or more remote systems.
- the ATP 100 manages data flows as part of an intelligent ATP network (e.g., an autonomous software defined network can manage data flows specifically), which is further described herein.
- the ATP 100 uses the ATP processor module 102 , which can take one of several forms.
- the ATP processor module 102 is implemented using a system on module (SOM) architecture.
- SOM system on module
- the ATP processor module 102 supplements the SOM architecture with an intelligent ATP processor (iATP) system-on-a chip (SoC) (iATP SoC) architecture.
- the ATP processor module 102 implements the features of the SOM architecture and iATP SoC architecture as an integrated iATP SoC architecture.
- the ATP processor module 102 facilitates and manages communication between the one or more devices 110 as part of an autonomous system. It should be appreciated that one or more of the devices 110 can be included in the ATP 100 and/or can be external to the ATP 100 , such as included in the autonomous system 400 , for example, as shown in FIGS. 1 A- 1 C . This can include receiving data from one or more of the devices 110 , sending data and/or commands to one or more of the devices 110 , and the like.
- one or more of the devices 110 can include one or more sensors (e.g., a camera, a gas sensor, a chemical sensor, a nuclear magnetic resonance (NMR) device, a magnetic resonance imaging (MRI) device, a biological measurement and monitoring device, a temperature sensor, a pressure sensor, etc.) which can be used to collect data.
- the ATP 100 can command one or more of the devices 110 to collect data (or the data can be collected responsive to some other trigger event) and, in response, the sensor(s) of the one or more devices 110 collects the data and transmits it to the ATP 100 .
- the ATP 100 is integral to, coupled to, or otherwise associated with a remote system.
- the ATP 100 can determine one or more communication schemes to utilize, such as an asynchronous scheme or a synchronous scheme, as described further herein.
- the ATP processor module 102 facilitates and manages communication between the one or more devices 110 and the ATP 100 .
- the ATP processor module 102 facilitates and manages communication using an SOM architecture.
- the ATP processor module 102 includes a system processor SoM 104 that collects and processes data from the devices 110 and facilitates communication (using communication devices 106 ) between, for example, an autonomous system (see, e.g., FIGS. 4 A, 4 B, 4 F ) and the devices 110 . This can be done by processing telemetry data and providing message and transport services, which manages the scheduling, transport, and delivery characteristics for incoming and outbound message data consumed or generated by the ATP processor module.
- the ATP processor module 102 includes an ATP interface controller 112 , an ATP telemetry data/model processor 114 , an ATP processor module system software/operating system (OS), a message and transport services module 118 , and transport handlers 122 .
- Data flows from the devices 110 , through the ATP processor module 102 and its components, to the communication devices 106 as shown.
- data flows from the communication devices 106 , through the ATP processor module 102 and its components, to the devices 110 as shown.
- the communication devices 106 can include one or more modules for transmitting and/or receiving data.
- Such modules can include a Bluetooth module, a WiFi (e.g., IEEE 802.11) module, a universal serial bus (USB) module (e.g., USB type C), a cellular module (e.g., 4G, 5G), a satellite module, a radio frequency (RF) module, and/or the like, including combinations and/or multiples thereof.
- a Bluetooth module e.g., IEEE 802.11
- a USB universal serial bus
- cellular module e.g., 4G, 5G
- satellite module e.g., 4G, 5G
- RF radio frequency
- the ATP interface controller 112 provides a software interface abstraction, module control, feature implementation, and integration for each of the one or more devices 110 .
- the ATP interface controller 112 manages these functions for each of the devices 110 while acting as an interface between the system, application, and communications processes executing concurrently in support of the overall platform operation of the ATP 100 .
- the ATP interface controller 112 is described in more detail herein with reference to FIG. 2 .
- the ATP telemetry data/model processor 114 receives data from the devices 110 via the ATP interface controller 112 and interprets telemetry information from the devices 110 .
- the ATP telemetry data/model processor 114 takes multiple data formats from one or more sensors associated with one or more of the devices 110 and unifies the data into a common data model format.
- the ATP telemetry data/model processor 114 receives data in multiple formats and performs a translation into the common data model format by extracting information from the data, transforming the information into the common data model format, and then storing the information.
- the common data model format enables the various components of the system processor SoM 104 to utilize the data (e.g., read the data, process the data, modify the data, etc.). This enables sensors of different types, makes, models, manufacturers, etc. to be used together such that the ATP 100 can read and utilize the data from the different sensors and/or different devices 110 .
- the ATP processor module system software/OS 116 executes the SOM operating system software including a supervisory control program as well as system and/or application-level software components.
- SOM operating system software including a supervisory control program as well as system and/or application-level software components.
- system software is the software code module execution whose function is to integrate the message and transport services to one or more autonomous system controllers through one of the available communications resources.
- the message and transport services module 118 manages the scheduling, transport, and delivery characteristics for incoming and outbound message data consumed or generated by the ATP processor module 102 .
- incoming and outbound message data and therefore related sets of message data, are associated or grouped together as an instance of a message flow or pattern of communications for the given software or hardware process or device.
- one or more of the devices 110 generates a continuous stream of telemetry data that may be pre-processed by the ATP processor module 102 and subsequently delivered to a remote system (e.g., another autonomous system), or other ATP.
- the AS network controller 124 For inbound command/data (see, e.g., FIG. 3 A ), the AS network controller 124 (see, e.g., FIGS. 1 B and 1 C ) routes a given message, and consequently its associated message flow, for processing synchronously or asynchronously.
- the determination of whether a given message, and consequently its associated message flow, is processed synchronously or asynchronously depends on the configuration of the ATP processor module 102 .
- a connection manager 311 For example, for the embodiment of the ATP processor module 102 in FIG. 1 A , a connection manager 311 (see, e.g., FIGS.
- connection manager 311 may determine whether a given message, and consequently its associated message flow, is processed synchronously or asynchronously, by interfacing with the ATP processor module system software/OS 116 .
- the connection manager 311 directly determines whether a given message, and consequently its associated message flow, is processed synchronously or asynchronously and causes a suitable message path to be implemented. Synchronous and asynchronous data handling is described in more detail herein with reference to at least FIGS. 3 A and 3 B .
- AS network controller 124 adaptively manages message delivery across both asynchronous and synchronous message delivery processing methods in accordance with the optimal delivery method given network communications bandwidth, latency, and channel/transport characteristics that are monitored by the AS network controller 124 as well as configuration of the given device instance.
- a particular device e.g., one of the devices 110
- the AS network controller 124 may dynamically move respective messages to a message queue for asynchronous message delivery (see, e.g., FIG. 3 A ).
- the AS network controller 124 may cause the messages to be persisted or stored automatically through persistent message queuing (message data stored in local non-volatile memory). Once the communications channel is no longer in a degraded or fault-condition, any messages that have been persisted can be automatically delivered over the communications channel as originally intended.
- the collective communication activities orchestrated by the AS network controller 124 in conjunction with respective communications device functions, form an integrated autonomous system network implementation for an individual autonomous system or a swarm or fleet of multiple autonomous systems in a point-to-point or mesh configuration.
- network communications in terms of one or more of message delivery performance, latency-minimization, path and message routing as well as QoS are optimized across one or more communications resources available to each ATP and corresponding autonomous system host device.
- the AS network controller 124 can implement an autonomous system network instance to improve message delivery from one ATP to a remote computing system.
- the 116 ATP processor module system software/OS can support these features in software.
- the message and transport services module 118 orchestrates signaling to the ATP interface controller 112 for upstream synchronous or asynchronous communications at the connection level.
- the ATP processor module system software/OS decides, based on metrics from the transport handlers 122 , on which connection type to use as described above.
- the AS network controller 124 provides this functionality. The foregoing applies outbound communication flows (see, e.g., FIG. 3 B ). Inbound communication flows (see, e.g., FIG. 3 A ) are processed in parallel and independent of one another.
- multiple AS network controllers 124 can coordinate to improve multiple performance metrics such as bandwidth, latency, and reliability by routing one or more messages/data across communications devices and resources across multiple expansion platforms, remote systems (e.g., UAVs), and/or remote computing systems.
- performance metrics such as bandwidth, latency, and reliability
- the transport handlers 122 include one or more transport handlers that communicate with the communication devices 106 .
- the transport handlers 122 can include a separate transport handler for each type of module present in the communication devices 106 .
- the transport handlers 122 can include a corresponding USB transport handler for interfacing with the USB module of the communication devices 106 .
- the ATP processor module includes an iATP SoC 108 .
- the iATP SoC and the system processor SoM communicate via a shared memory/internal system bus 109 , each of which are hardware resources enabling the integration of the system processor SoM 104 and iATP SoC 108 .
- the iATP SoC 108 provides the ATP processor module 102 with autonomous system (AS) network services 120 using the transport handlers 122 and an AS network controller 124 (see, e.g., FIGS. 3 C and 3 D ).
- the transport handlers 122 are implement in the AS network services 120 rather than in the system processor SoM 104 .
- the AS network services 120 establishes and manages communications across one or more ATPs and/or autonomous systems and/or devices as part of the ATP processor module 102 functionality.
- the AS network services 120 attempts to optimize communications performance metrics based on the available communications links. For example, a higher bandwidth communication link (e.g., 5G) may be used where available instead of a lower bandwidth communication link (e.g., Bluetooth). It should be appreciated that the AS network services 120 can change what communication links are used over time as conditions/environments change (e.g., a communication link becomes available that was previously unavailable). It should also be appreciated that the AS network services 120 can make communication decisions based on the content of the data collected, such as by one or more of the devices 110 . For example, if a gas sensor detects a gas leak, the AS network services 120 may select a fastest communication link.
- a higher bandwidth communication link e.g., 5G
- a lower bandwidth communication link e.g., Bluetooth
- the AS network services 120 can change what communication links are used over time as conditions/environments change (e.g., a communication link becomes available that was previously unavailable). It should also be appreciated that the AS network services 120 can make communication decisions based on
- the AS network services 120 can indicate to the ATP 100 that the ATP 100 should modify its trajectory or behavior to avoid a loss of communications.
- the AS network services 120 can route communications to an ATP, autonomous system or remote system, or combination thereof, to act as a communications proxy in order to maintain an operational (e.g., to within a desired quality of service) end-to-end communications path to a remote system controller even in the presence of degraded performance or loss of communications.
- the AS network services 120 can support a software defined network.
- the AS network services 120 includes an autonomous software defined network (A-SDN) data-plane communications controller 370 (see, e.g., FIG. 3 D ), which implements packet forwarding and routing based on an A-SDN control-plane communications controller 755 (see, e.g., FIG. 7 J ), which manages the complete network topology of the A-SDN.
- A-SDN control-plane communications controller 755 is external to the ATP 100 , residing on a remote host, an ATP portable network controller 744 (see, e.g., FIG. 7 J ), an ATP platform controller with applications 736 , and/or the like, including combinations and/or multiples thereof.
- the AS network services 120 coordinates a software defined network for the ATP processor module 102 in conjunction with the A-SDN control-plane.
- the AS network services 120 can implement a network instance to manage communications between the ATP processor module 102 and the one or more of the devices 110 (and/or any other suitable devices).
- the AS network services 120 can analyze the content of data collected by the one or more devices 110 to make decisions on how to handle the data (e.g., route the data synchronously, route the data asynchronously, log/store the data for later routing, etc.).
- the environment, conditions, etc. detected by the sensors of the one or more devices 110 can change how the AS network services 120 routes data.
- the iATP SoC 108 also provides additional processing-cores for performing other tasks related to edge analytic data processing and machine learning, requiring the use of processing cores implementing AI, DSP, etc.
- the iATP SoC 108 includes AI processor cores 126 , digital signal processor (DSP) processor cores 128 , scalar processor cores 130 , real-time processor cores 132 , and an inference and event engine 134 .
- the AI (artificial intelligence) processor cores 126 analyze data collected by sensor(s) associated with the one or more devices 110 as described herein.
- the AI processor cores 126 can implement one or more machine supervised learning engines trained to perform a task.
- the AI processor cores 126 can implement one or more unsupervised algorithms that do not rely on training in order to perform a task.
- an AI processor core of the AI processor cores 126 can include a machine learning model trained to identify a certain feature within images, such as using a convolutional neural network. Other types of AI/machine learning can also be implemented.
- the DSP processor cores 128 include one or more digital signal processors that perform digital signal processing and complex mathematically operation (e.g., encoding/decoding, compressing, encryption, speech/image recognition/synthesis, noise cancelation, matrix mathematics, floating point calculations, and the like), on the data received by the one or more devices 110 .
- the scalar processor cores 130 include one or more scalar processors that perform scalar processing (e.g., general computation operations, integer operations, etc.) on the data received by the one or more devices 110 .
- the real-time processor cores 132 include one or more real-time processors for processing the data received by the one or more devices 110 in real-time (or near-real-time) within specific timing constraints or “deadlines” which may be adjustable, user-definable, and/or preset.
- the real-time processor cores 132 can also be utilized to generate complex pulse sequences used by NMR or MRI devices, for example.
- the inference and event engine 134 provides the ability to ask questions of the iATP SoC 108 (e.g., query the iATP SoC 108 to determine when a particular event occurs).
- a remote system application can register to receive an event that is generated when a particular inference result has occurred, such as the detection of a given property within a processed image or inference derived from some combination or pattern of sensor results.
- an event that is generated when a particular inference result has occurred such as the detection of a given property within a processed image or inference derived from some combination or pattern of sensor results.
- the resulting analysis of an NMR measurement device can be utilized by the inference and event engine 134 to generate an event when a particular property of the sample is detected or measured and classified accordingly.
- the iATP SoC 108 is a separate hardware device from the system processor SOM 104 .
- some or all of the features and functionality of the system processor SOM 104 and the iATP SoC 108 can be integrated into a single hardware device, such as shown in FIG. 1 C .
- the example of FIG. 1 C integrates the features and functionality of the system processor SoM 104 and the iATP SoC 108 as a single unit (e.g., integrated iATP SoC 108 a ). That is, the integrated iATP SoC 108 a includes some or all of the features and functionality of the system processor SoM and the iATP SoC 108 .
- FIG. 2 is a schematic illustration of an example implementation of the ATP processor module 102 in a control system 200 according to one or more embodiments described herein.
- This example shows the basic structure of the ATP processor module 102 including an ATP interface controller 112 .
- This example further shows that the ATP processor module 102 is in communication with “dumb” (non-intelligent) and “smart” (intelligent) devices 110 a , 110 b respectively via an external system bus 209 .
- the control system 200 manages the operation, command and control, data exchanges, and orchestration of functions between the ATP processor module 102 and one or more devices 110 a , 110 b .
- the ATP processor module 102 includes the ATP interface controller 112 .
- the ATP processor module 102 manages interactions between ore or more ATPs coupled to an autonomous system (see, e.g., FIGS. 4 A, 4 B, 4 F ) through one or more communications methods.
- the ATP interface controller 112 provides a software interface abstraction, module control, feature implementation, and integration for each of the devices 110 (e.g., the devices 110 a , 110 b ).
- the ATP interface controller 112 manages these functions for each device 110 (e.g., the devices 110 a , 110 b ) while acting as an interface between the system, application, and communications processes executing concurrently in support of the overall platform operation.
- the ATP interface controller 112 is implemented a layered architecture, for example, having multiple layers.
- the upmost layer of the layered architecture handles message data communications for delivery or consumption outside the unit.
- the middle layer of the layered architecture includes one or more device feature implementations for managing the operation of a given device without requiring knowledge of the underlying hardware for that device.
- the lowest layer of the layered architecture includes the hardware interface layer, where feature operations from the layer above (i.e., the middle layer) are translated into direct hardware signaling and control operations.
- the ATP interface controller 112 manages each device's hardware instance (e.g., one or more of the devices 110 b , 1210 b ) in terms of low-level hardware level command and control methods over device busses that include UART, SPI, I2C, USB, programmable I/O, parallel and serial communications, and other real-time device interfaces.
- each of the devices 110 a , 110 b has a specific feature implementation that includes software code for managing and operating the given device 110 and its associated functionality.
- a temperature sensor device utilizes a device feature implementation that can read the specific temperature sensor device (registers) hardware, potentially transforming the accessed data, before handing the data to either of the synchronous or asynchronous message data delivery subsystems for processing further within the message and transport services module 118 .
- the ATP interface controller 112 supports multiple device feature implementations in a fully dynamic manner, whereby new feature implementations can be added, updated, and/or removed as devices 110 are also added, updated, and/or removed.
- the ATP processor module 102 communicates with the devices 110 a , 110 b via an external system bus 209 that implements hardware control/data signals as previously described.
- the external system bus 209 transfers information (e.g., data, messages, commands, etc.) between the ATP processor module 102 and one or more of the devices 110 a , 110 b , which can be performed synchronously and/or asynchronously based on the hardware implementation.
- serial peripheral interface SPI
- UART universal asynchronous receiver/transmitter
- the external system bus 209 transfers command and control messages and/or data messages between the ATP processor module 102 and one or more of the devices 110 a , 110 b .
- the command and control messages can command, for example, one of the devices 110 a , 110 b to perform a function.
- the data messages can include data, for example, collected by a sensor associated with one of the devices 110 a , 110 b .
- the ATP processor module 102 uses the external system bus 209 to transfer a command and control message to the device 110 b to command the device 110 b to perform a task.
- the device 110 b can send a data message (e.g., an acknowledgment, data collected by a sensor, etc.) back to the ATP processor module 102 via the external system bus 209 .
- command and data communications is provided over a synchronous delivery method based on request/response communication method that occur in near-or-real-time.
- there is no message queuing wherein the message delivery occurs in accordance with the minimal latency of any computing device or communications channel.
- near or real-time streaming of data is possible as messages are delivered within a bounded time-period.
- the ATP interface controller 112 includes an ATP interface services 202 , device feature libraries 204 a - 204 n , . . . 204 n for the devices (e.g., the devices 110 a , 110 b ), and device hardware interfaces 240 .
- the device feature library 204 a is associated with the device 110 a
- the device feature library 204 b is associated with the device 110 b
- Additional device feature libraries e.g., the device feature library 204 n
- the ATP interface services 202 includes the one or more device feature libraries implementations (e.g., the device feature libraries 204 a - 204 n ) having instruction codes on how to manage, operate and communicate (at the device electronics interface level via the device hardware interfaces 240 ) with the hardware specific devices in order to utilize the device capabilities and resources.
- Each of the device feature libraries 204 a - 204 n define the features of its respective device. For example, if the device 110 a is a non-intelligent device (as described herein), the device feature library 204 a might define the type of sensor(s) disposed on the device 110 a , and other information about the device 110 a .
- the device feature library 204 b might define the intelligent communications stack offloading message delivery protocol that the device 110 b uses, and other information about the device 110 b .
- the device hardware interfaces 240 provide the hardware (e.g., electronic signals, protocols, devices, and/or the like, including combinations and/or multiples thereof) and driver-level interfaces to enable communication between the ATP processor module 102 and the devices 110 a , 110 b.
- devices such as the devices 110 a , 110 b
- devices fall into one of two categories: non-intelligent (e.g., the device 110 a ) and intelligent (e.g., the device 110 b ).
- non-intelligent e.g., the device 110 a
- intelligent e.g., the device 110 b
- an “intelligent” device is a fully programmable element that is not fixed at design time and typically runs an operating system, which in turn can implement various program instructions.
- an intelligent device could support intelligent communications stack offloading message delivery from the ATP processor module 102 (e.g., via a satellite module or the like), perform machine learning on data captured from sensors on board the device, execute device-specific feature processing and/or device driver functions to offload the ATP processor module 102 , and/or the like, including combinations and/or multiples thereof.
- an intelligent device is able to perform message publishing to the external system bus 209 or even generate HTTP operations towards the ATP processor module 102 .
- a “non-intelligent” device does not have a fully reprogrammable processor running an OS or some stack and instead relies on the ATP processor module 102 to perform tasks that an intelligent device would do.
- a non-intelligent device in one embodiment is a sensor module where the ATP processor module 102 is interfacing at the hardware level to pull data from the sensor.
- the ATP processor module 102 publishes or generates a synchronous data push on behalf of the non-intelligent device (e.g., the device 110 a ).
- the non-intelligent device could still include a complex state-machine, FPGA, etc. to process fixed instructions and/or algorithms encoded in the state-machine. Examples include reading the sensor, averaging data or performing other data processing, real-time hardware management or processing, compressing/encrypting, and packetizing data so the ATP processor module 102 device driver does not have to perform or deal with these operations, and the like.
- the device 110 a includes a device hardware interface 210 to interface with the ATP processor module 102 via the external system bus 209 .
- the device 110 a also includes device feature hardware 212 , such as a sensor, an analog-to-digital converter, an image scanner, and/or the like, including combinations and/or multiples thereof.
- the device 110 a is a non-intelligent device in that software is executed outside of the device feature hardware 212 or within the ATP processor module 102 . In such cases, the data is communicated to the ATP processor module 102 via the external system bus 209 using synchronous and/or asynchronous communication as described in FIGS. 3 A, 3 B .
- synchronous and/or asynchronous delivery schemes can be message-based and/or restful-based services over multiple connection types.
- Connection types can include TCP/IP, UDP/IP, HTTP over TCP/IP, Reliable UDP/IP (for example QUIC protocol over UDP), HTTP over QUIC/UDP/IP, as well as support for each of unicast, multicast, and broadcast domains over standard or proprietary transport and physical layer mediums.
- the connection manager 311 provides information to the ATP interface controller 112 so the ATP interface controller 112 knows, for outbound communications, which connection type (e.g., synchronous or asynchronous) is ideal for a given window of messages.
- the window size (definable in terms of number of time-duration, packets, messages, or ATP interface controller 112 function calls) can be configured through either of user configuration 321 and/or system configuration 323 , and/or dynamically by metrics processed by the AS network controller.
- the device 110 b includes a device hardware interface 210 to interface with the ATP processor module 102 via the external system bus 209 .
- the device 110 b also includes device feature hardware 216 (e.g., a sensor, an analog-to-digital converter, an image scanner, and/or the like, including combinations and/or multiples thereof), a device operating system 218 , and device processor and program code 220 .
- the device 110 b is an intelligent device in that software can reside on the device 110 b as shown by the device operating system 218 and the device processor and program code 220 .
- the device operating system 218 executes the program code residing on the device processor and program code 220 , which together provide for the device 110 b (an intelligent device) to execute software code or instructions independent from the ATP processor module 102 .
- the device hardware interfaces 1240 provides low-level hardware control and data signals between the devices 110 a , 110 b and the ATP processor module 102 .
- the intelligent device e.g., the device 110 b
- the intelligent device (e.g., the device 110 b ) and/or the ATP processor module 102 can provide communications and processing of data for orchestrating and coordination the operation and functionality of one or more other autonomous systems or devices.
- FIGS. 3 A and 3 B are schematic illustrations of communication schemes for incoming (inbound) command/data and outgoing (outbound) command/data that utilize dynamically controlled synchronous and/or asynchronous communication processing according to one or more embodiments described herein.
- FIG. 3 A shows a communication scheme 300 A for incoming (inbound) command/data.
- the communication scheme 300 A sends data from an external source (e.g., an autonomous system, an ATP, an ATP portable network controller, or remote host) through the ATP processor module 102 to one or more devices 110 .
- the communication scheme 300 A can use a synchronous communication path 310 and/or an asynchronous communication path 312 , which are now described in more detail.
- the communication scheme 300 A sends data 304 from an external source (e.g., an autonomous system) through the ATP processor module 102 and to one or more devices 110 .
- the ATP processor module system software/OS 116 performs relevant portions of the scheme 300 A.
- there could be a device e.g., one of the devices 110 ) that implements a communication function that sends its data to, or receives data from, the ATP processor module 102 in a manner that is consistent with the architecture of FIGS. 3 A, 3 B .
- data 304 is received as described herein, such as from an autonomous system, a platform controller, an ATP portable network controller (see, e.g., FIG.
- the data 304 can be data in any form, including raw data, a command, a formatted message, etc.
- the data 304 can be received via any suitable communications protocol, such as USB, radio frequency, WiFi, Bluetooth (BT), satellite, cellular, ethernet, etc.
- the data are received by the transport handlers 122 depending on the type of communications protocol used (e.g., a USB transport hander handles data received by USB, etc.).
- the data 304 is then passed from the appropriate one of the transport handlers 122 to the AS network controller 124 .
- the AS network controller 124 then routes the data to the devices via the message and transport services module 118 using a synchronous communication path 310 and/or an asynchronous communication path 312 .
- the synchronous communication path 310 begins at block 314 , where the data 304 is decoded and processed as a synchronous message. The data 304 is then passed to block 316 where the synchronous message is delivered to the ATP interface controller 112 . The data can then be processed and passed to one or more of the devices 110 as appropriate.
- the asynchronous communication path 312 begins at block 318 , where the data 304 is decoded and processed as an asynchronous message.
- the data 304 is then passed to block 320 where the asynchronous message is queued and published to a command/data queue.
- a message broker 322 then delivers the queued message to the appropriate one or more of the devices 110 .
- FIG. 3 B shows a communication scheme 300 B for outgoing (outbound) command/data.
- This communication scheme sends data from one or more devices 110 through the ATP processor module 102 to an external device (e.g., an autonomous system).
- the communication scheme 300 B can use the synchronous communication path 310 and/or the asynchronous communication path 312 based on the decisioning logic of the connection manager 311 in conjunction with the ATP interface controller 112 .
- the connection manager 311 provides information to the ATP interface controller 112 so the ATP interface controller 112 knows, for outbound communications, which connection type (e.g., synchronous or asynchronous) is ideal for a given window of messages.
- connection type e.g., synchronous or asynchronous
- connection manager 311 queries the ATP processor module system software/OS 116 (as shown in FIG. 3 B ), which gathers metrics from the transport handlers 122 to provide the connection manager 311 with intelligence.
- the connection manager 311 receives its “intelligence” from the AS network controller 124 .
- Intelligence in this context means the results of AI or rules-based processing of the communications systems data as described herein (e.g., QoS, bandwidth, latency, etc.) and what the ideal connection types are for some window of time.
- the connection manager 311 provides control signaling data to the ATP interface controller 112 so the ATP interface controller 112 knows whether the data to be sent outbound (see FIG.
- the communication scheme 300 B generally flows opposite the communication scheme 300 A, in that the data 304 is transferred by one or more of the devices 110 through the ATP processor module 102 (using the synchronous communication path 310 and/or the asynchronous communication path 312 ) and outbound to an external device, such as an autonomous system.
- one or more of the devices 110 transfers the data 304 to the ATP interface controller 112 , which then transfers the data 304 using the synchronous communication path 310 and/or the asynchronous communication path 312 as shown.
- the connection manager 311 decides whether to use the synchronous communication path 310 and/or the asynchronous communication path 312 .
- the data 304 is transferred inbound and outbound using the same communication scheme. For example, if the connection manager 311 decides what to do as the data 304 heads outbound (e.g., reroute over message bus, stay on HTTP, persist to local flash memory storage, schedule for later delivery, etc.), the data 304 is processed the same way when heading inbound.
- the data 304 is passed to block 316 where the synchronous message is delivered to the AS network controller 124 , which performs scheduling, transport selection, and delivery management.
- the data 304 is passed to the message broker 322 , which then transfers the data 304 to the AS network controller 124 .
- the AS network controller 124 can perform its functions by the assembly of SDN control, transport rule engine management, quality of service (QoS)/rate processing units, and/or the like, including combinations and/or multiples thereof.
- QoS quality of service
- the AS network services 120 uses the transport handlers 122 to transmit the data from the AS network controller 124 to an external device (e.g., an autonomous system).
- the AS network controller 124 can utilize user configuration 321 and/or system configuration 323 to determine how to transfer the data.
- the user configuration 321 and/or the system configuration 323 can specify which of the transport handlers 122 to use in various situations, what policies require implementation and/or enforcement, when to transfer the data 304 , when to store the data 304 locally, etc.
- the AS network services 120 performs tag processing.
- the AS network controller 124 functions as a tagging module (see e.g., VAN tagging engine 372 of FIG. 3 E).
- telemetry streams can be assigned and associated to a “virtual autonomous network” identifier (VAN ID #) to support virtual or logical networks each with a QoS that is tied to the telemetry modules, devices, and/or the data entity characteristics across one or more autonomous systems or devices whose networks are either flat or complex topologies, and/or heterogeneous in nature (e.g., 5G, WiFi, satellite, etc.).
- VAN ID # virtual autonomous network identifier
- the tagging module can be incorporated the AS network controller 124 to provide for realization of device or mesh networks that are more intelligent.
- FIG. 3 C is a block diagram of the AS network controller 124 of the autonomous system network services 120 according to one or more embodiments described herein.
- the AS network controller 124 is able to react to what is occurring within a network layer and external devices (e.g., the devices 110 ). For example, where radiation or energy field levels are detected to be rising, a communication path becomes noisier.
- the AS network controller 124 can cause the autonomous system 404 (see, e.g., FIGS. 4 A, 4 B, 4 F ) to take an action such as stop/back out because of increasing radiation or energy levels or switch from WiFi to radio frequency, for example, because the autonomous system is about to lose WiFi connectivity due to being out of range.
- data 304 is transferred from and received by a real-time network packet processing engine 350 whose message streams operate either synchronously and/or asynchronously, as described with reference to FIGS. 3 A, 3 B .
- the data 304 is sent to and/or received from transport handlers 122 .
- the data 304 is sent to and/or received from the ATP interface controller 112 .
- the real-time network packet processing engine 350 is communicatively coupled to a real-time transport and telemetry metrics processor 352 and a communications controller 354 .
- the real-time transport and telemetry metrics processor 352 analyzes real-time telemetry parametric data 366 associated with the data 304 .
- the real-time telemetry parametric data 366 includes telemetry data/information collected by one or more of the devices 110 . Telemetry data/information can include quality-of-service information, signal level information, etc.
- the real-time telemetry parametric data 366 can be hardware driven, for example, a frequency of measurements from a sensor that is fixed as part of the device configuration profile or a fixed set of image data sizes from a camera.
- the real-time telemetry parametric data 366 can be statically defined as part of defining the resources for a given device or dynamically defined and change in real-time over time. For example, camera resolution can change or the frequency of measurements can increase or decrease based on environment conditions. As another example, size of data samples can change over time depending on the configuration of devices utilized and/or their respective configurations.
- the real-time transport and telemetry metrics processor 352 may see data from other processor modules and/or platforms in cases where it is potentially routing messages. In this case, the real-time telemetry parametric data 366 are a stream of data messages that may have dynamic characteristics and behavior.
- the real-time transport and telemetry metrics processor 352 and the communications controller 354 make decisions based on various inputs, such as the real-time telemetry parametric data 366 , rules/policies generated by a configuration and transport rules/policy generator 356 , data 304 received by an ATP system interface 364 , and information received from the autonomous system via an inference and event engine 360 and the ATP processor module system software/OS 116 .
- the inference and event engine 336 based on real-time metrics, generates events to the autonomous system 404 , other ATPs, a remote host, portable network controller subsystems as described herein, and/or the like, including combinations and/or multiples thereof.
- the configuration and transport rules/policy generator 356 establishes rules and/or policies that define how the communications controller 354 is to orchestrate the processing of data messages by the real-time network packet processing engine 350 depending on different conditions. For example, where quality of service metrics indicate a reduction in one communication protocol (e.g., WiFi), the rules may dictate that the real-time network packet processing engine 350 should change to a different communication protocol (e.g., radio frequency).
- the configuration and transport rules/policy generator 356 establishes the rules and/or policies based on user configuration 321 and/or system configuration 323 .
- the real-time transport and telemetry metrics processor 352 in conjunction with the communications controller 354 , orchestrates low-level communications processing by the real-time network packet processing engine 350 accordingly. That is, in examples, the communications controller 354 can provide scheduling and selection of transports to optimize delivery and satisfaction of user-defined communication metrics provided by the user configuration 321 information.
- input configurations are processed and a static/deterministic set of rule processing is utilized by the communications controller 354 to decide how to utilize communication resources. This scheme shown in FIG.
- the communications controller 354 in conjunction with the real-time transport and telemetry metrics processor 352 provide control signaling to the connection manager 311 in order to orchestrate the optimal connection protocols (such as synchronous or asynchronous message delivery) during outbound communications (see, e.g., FIG. 3 B ).
- connection manager 311 of the message and transport services module 118 provides steering logic to the ATP interface controller 112 so the ATP interface controller 112 can control how to send messages (e.g., synchronously over HTTP, asynchronously (message based (utilizing MQTT as example also known as MQ Telemetry Transport a light-weight messaging protocol based on the publish/subscribe machine-to-machine communications pattern)), and/or the like, including combinations and/or multiples thereof).
- messages e.g., synchronously over HTTP, asynchronously (message based (utilizing MQTT as example also known as MQ Telemetry Transport a light-weight messaging protocol based on the publish/subscribe machine-to-machine communications pattern)
- MQTT as example also known as MQ Telemetry Transport a light-weight messaging protocol based on the publish/subscribe machine-to-machine communications pattern
- the configuration and transport rules/policy generator 356 can develop an intelligent strategy (for managing the communications resources and network tasks) that adapts over time based on the real-time transport and telemetry metrics processor 352 and the communications controller 354 constantly making decisions (based on rules or learning algorithms) on how to manage the message delivery needs versus available and state of the communications resources. For example, it can generate and deliver the optimal connection protocol behavior to the message and transport services module 118 defining when to use asynchronous or synchronous communication as described herein.
- the communications controller 354 considers each of these conditions when determining how to configure or reconfigure in real-time the real-time network packet processing engine 350 for best use of available communication resources. The decision can be made separately for each packet, destination, for a particular device, for a particular session/connection, and/or the like. The communications controller 354 directs the real-time network packet processing engine 350 accordingly. This approach is particularly useful when dealing with a distributed architecture (e.g., mesh networks, swarms of remote systems such as UAVs, etc.).
- a distributed architecture e.g., mesh networks, swarms of remote systems such as UAVs, etc.
- FIG. 3 D is a block diagram of the autonomous system network controller 124 according to one or more embodiments described herein.
- the AS network controller 124 includes the components of the AS network controller 124 but also supports an autonomous software defined network (A-SDN) using an A-SDN data-plane communications controller 370 .
- the box 368 is used to show that each of the ATP system interface 364 and the configuration and transport rules/policy generator 356 are in communication with the real-time transport and telemetry metrics processor 352 , the communications controller 354 , and the A-SDN data-plane communications controller 370 .
- the A-SDN data-plane communications controller 370 manages, at a data-plane level, communications within an A-SDN as described further herein.
- the A-SDN data-plate communications controller 370 reacts to command/control messages received from an A-SDN control-plane communications controller 755 (see, e.g., FIG. 7 J ) and to inject these into the communications controller 354 .
- the communications controller 354 can arbitrate these command/control messages (e.g., instructions) against local policies/rules defined by the configuration and transport rules/policy generator 356 and metrics from the real-time transport and telemetry metrics processor 352 .
- some of the optimization processing performed by the communications controller 354 can be handled by machine learning and/or other statistical learning techniques as described herein.
- the communications controller 354 can control and orchestrate the operation of the real-time network packet processing engine 350 .
- the communications controller 354 can select the optimal communications transport based on a combination of local metrics from the real-time transport and telemetry metrics processor 352 , and operations from the A-SDN data-plane communications controller 370 as a function of the global topological or environmental conditions processed and delivered by the A-SDN control-plane communications controller 755 (see, e.g., FIG. 7 J ).
- FIG. 3 E is a block diagram of the real-time transport and telemetry metrics processor 352 of the autonomous system network controller 124 of FIGS. 3 C and 3 D according to one or more embodiments described herein.
- the real-time transport and telemetry metrics processor 352 communicatively couples to the communications controller 354 and the real-time network packet processing engine 350 as shown (see also FIG. 3 D ).
- the real-time transport and telemetry metrics processor 352 also receives data/information from the configuration and transport rules/policy generator 356 as shown.
- the real-time transport and telemetry metrics processor 352 includes various analyzers, engines, and optimizers to generate metrics about communications.
- the real-time transport and telemetry metrics processor 352 includes a rate/bandwidth (BW) analyzer 371 , a transport rule engine 373 , a quality of service (QoS) analyzer 374 , and a constraint optimizer 375 .
- the rate/BW analyzer 371 generates rate/bandwidth information indicative of the rate/bandwidth of various communications channels/protocols/schemes.
- the transport rule engine 373 defines transport rules (e.g., if-then-else statements) that are implemented to facilitate data transport.
- the QoS analyzer 374 generates QoS information indicative of the quality of service of various communications channels/protocols/schemes.
- the constraint optimizer 375 determines how to best schedule message streams delivery requirements across available communications resources to optimize resource utilization to maximize bandwidth and/or minimize latency given a set of constraints (e.g., bit-rate errors, latency measurements, signal quality, and/or the like, including combinations and/or multiples thereof). The decision can be made separately for each packet, message stream, ATP, for a particular device, for a particular session/connection, and/or the like.
- the real-time transport and telemetry metrics processor 352 also includes a metrics processor 376 to process the metrics generated by the rate/BW analyzer 371 , the transport rule engine 373 , the QoS analyzer 374 , and the constraint optimizer 375 .
- the time transport and telemetry metrics processor 352 also includes a metrics cache memory 377 to store the metrics generated by the rate/BW analyzer 371 , the transport rule engine 373 , the QoS analyzer 374 , and the constraint optimizer 375 .
- Communication resource status includes multiple metrics (that may be computed, measured, and/or otherwise learned utilizing machine learning algorithms) by communications method, such as communications link status, average bandwidth, response time, latency, congestion, reliability, signal strength, and other cost/metrics-based functions or other quality-of-service (QoS) parameters associated to a given communications service.
- the transport rule engine as described herein, also establishes scheduling events and delivery prioritization associated to a message flow. For example, high-priority messages are routed to a synchronous delivery method; however, if this resource is unavailable, the transport rule engine determines whether the message flow should be queued for asynchronous delivery.
- the transport rule engine determines whether message-data should be persisted locally in order to prevent loss of data in the case of communications systems unavailability.
- the data transmission/reception performed by the message and transport services module 118 can be synchronous or asynchronous communications as described herein (see, e.g., FIGS. 3 A, 3 B ).
- the processing algorithms executed by the message and transport services module 118 are driven by user and/or system level configuration information (see, for example, FIGS. 3 B, 3 D ).
- User configuration information e.g., user configuration 321
- the system configuration information (e.g., system configuration 323 ) defines global parameters as well as default processing rules in the event the user configurations are unrealizable or non-optimal given the current state of the ATP communication resources.
- FIGS. 3 F and 3 G are block diagrams of the communications controller 354 of the autonomous system network controller 124 of FIGS. 3 C and 3 D .
- the communications controller 354 communicatively couples to the real-time network packet processing engine 350 and the real-time transport and telemetry metrics processor 352 as shown (see also FIG. 3 D ).
- the real-time transport and telemetry metrics processor 352 includes local metrics/data processing 1902 and remote metrics/data processing 1904 for processing local metrics 786 (see FIG. 7 P ) and remote metrics 788 (see FIG. 7 P ) respectively.
- the communications controller 354 includes a network packet processing engine control module 380 , a communications processor 381 , a configuration manager 382 , a machine learning based processing engine 1912 , and a rule based processing engine 1910 .
- the network packet processing engine control module 380 examines/evaluates/manipulates network packets and executes the forwarding of layer 0 and/or layer 1 network frames among communication interfaces based on control signaling operations from the communications controller 354 .
- the real-time network packet processing engine 350 maintains a set of metric counters for measuring communication network metrics as described herein.
- the real-time network packet processing engine 350 provides for port forwarding and routing, policy/rules implementation/enforcement, VAN tagging by packet manipulation, downstream routing/caching for synchronous versus asynchronous data, and deep packet inspection (DPI)/extraction/computation of metrics used by the real-time transport telemetric metrics processor 352 .
- DPI deep packet inspection
- the configuration manager 382 receives configuration/policy rules 1906 (e.g., the user configuration 321 , the system configuration 323 , etc.).
- the engines 1910 , 1912 process data and determine how to manage communications. For example, the engines 1910 , 1912 can use the local metrics/data processing 1902 , the remote metrics/data processing 1904 , and/or the configuration/policy rules 1906 to determine how to route data for given measurements (e.g., bandwidth measurements, latency measurements, signal strength measurements, device measurements, and/or the like, including combinations and/or multiples thereof as described in FIGS. 10 A- 10 C ). That is, the engines 1910 , 1912 provide a framework to make intelligent decisions on next-state behavior for local and/or remote communication resources targets.
- the communications processor 381 evaluates information provided by the engines 1910 , 1912 on how to manage network resources within the network packet processing engine control module 380 .
- the real-time network packet processing engine 350 can include a VAN tagging engine 372 .
- the VAN tagging engine 372 can instead be implemented by the communications controller 354 .
- the VAN tagging engine 372 assigns a “virtual autonomous network” (VAN) identifier (VAN ID #) to support virtual or logical networks, each with a QoS that is tied to the telemetry modules, devices, and/or the data entry characteristics across one or more autonomous systems or devices whose networks are either flat or have complex topologies, and/or heterogeneous in nature (e.g., 5G, WiFi, satellite, and/or the like, including combinations and/or multiples thereof).
- VAN virtual autonomous network
- This provides for prioritizing the traffic in an end-to-end manner and across multiple autonomous devices and/or ATPs for a given telemetry stream.
- the rules/policies defined by the configuration and transport rules/policy generator 356 tells the communication controller 354 how to coordinate the tagging of network packets within the real-time network packet processor engine 350 .
- the communications controller 354 supports A-SDN implementations.
- the communications controller 354 can also include an OpenFlow A-SDN processing module 383 communicatively coupled to the A-SDN data-plane communications controller 370 .
- the communications controller 354 can act alone and/or in parallel to processing A-SDN data-plane instructions by the OpenFlow A-SDN processing module 383 . This is described further herein regarding how to operate with or without A-SDN functionality.
- FIG. 3 H is a block diagram of the ATP interface controller 112 of the ATP processor module 102 of FIG. 2 according to one or more embodiments described herein. This example shows the handling of incoming (inbound) command/data and outgoing (outbound) command/data according to one or more embodiments described herein.
- a device feature library instance 204 e.g., an instance of one or more of the device feature libraries 204 a - 204 n
- the command/data is received at a command/data message subscriber 387 .
- a device feature implementation unit 388 implements the command/data using information about the device 110 stored in the device feature library instance 204 .
- the processor module hardware interface 389 provides the hardware and driver-level interfaces to enable communication between the ATP processor module 102 and one or more of the devices 110 .
- Outbound communication is similar as shown. However, in the case of the outbound communication, the connection manager 311 is implemented. For outbound communication, the a device 110 sends command/data through the processor module hardware interface 389 , which uses the device feature library instance 204 to transmit the command/data out as shown. The connection manager 311 informs the device feature library instance 204 of the ATP interface controller 112 whether to use synchronous or asynchronous messaging as described herein (see, e.g., FIG. 3 B ). For synchronous outbound command/data, a request/response synchronous callback interface 390 is used. For asynchronous outbound command/data, the command/data are queued and published to a command/data queue at block 391 . In either case, the data is then output through the ATP interface controller 112 as shown.
- inbound communications and associated connection type is based on the source of network messages.
- Outbound messages begin from the ATP interface controller 112 , where connection type is determined by the connection manager 311 based on metrics gathered (as described herein), and messages first flow to the message and transport services module 118 , then out towards the network modules depending on the implementation of the ATP processor module 102 used (see, e.g., FIGS. 1 A- 1 C )
- FIGS. 4 A- 4 F are schematic illustrations of examples of implementations of the autonomous telemetry platform (ATP) 100 according to embodiments described herein.
- the ATP 100 collects, processes, and manages data for one or more aspects of an autonomous system.
- an ATP is used to acquire, process data, and manage data flows and communications within an autonomous system and/or between/among multiple autonomous systems, and/or between/among multiple ATPs.
- FIG. 4 A shows an internal implementation of the ATP 100 being integrated or embedded into an autonomous system 404 or other similarly suitable device.
- the example of FIG. 4 B shows an external implementation of the ATP 100 being integrated into a host platform 405 , which is in communication with the autonomous system 404 or other similarly suitable device.
- the host platform 405 can be any platform in which an ATP is embedded separate from the autonomous system or device.
- the example of FIG. 4 C shows an implementation of the ATP 100 being coupled to a vehicle 406 .
- FIG. 4 D shows an implementation of the ATP 100 being coupled to an aircraft 408 .
- the example of FIG. 4 E shows an implementation of the ATP 100 being coupled to a UAV 409 .
- FIGS. 4 A- 4 F shows an implementation of the ATP 100 being integrated into an expansion platform 410 where one or more sensors are controlled and data is processed by an instance of ATP 100 prior to delivery to the autonomous system 400 or other similarly suitable device. It should be appreciated that the examples of FIGS. 4 A- 4 F are provided for illustrative purposes and are not intended to limit the claims. Other examples are also possible.
- FIG. 5 A is a schematic illustration of the ATP 100 of FIG. 4 A according to one or more embodiments described herein.
- the ATP 100 is integrated or embedded in an autonomous system 404 (see, e.g., FIG. 4 A ).
- the ATP 100 includes the ATP processor module 102 , which can be configured in accordance with one or more embodiments described herein (see, e.g., FIGS. 1 A- 1 C ) and can use the communications subsystem implementation shown in FIGS. 3 C and 3 D .
- the autonomous system 404 also includes devices 110 , which may be equipped with one or more sensors for collecting data.
- the devices 110 can include intelligent devices and/or non-intelligent devices as described herein. Although five devices 110 are shown, other numbers (e.g., more or less) of devices 110 can be implemented in other examples.
- FIG. 5 B is a schematic illustration of the ATP 100 of FIG. 4 B according to one or more embodiments described herein.
- the ATP 100 is integrated or embedded in a host platform 405 (see, e.g., FIG. 4 B ).
- the ATP 100 includes the ATP processor module 102 , which can be configured in accordance with one or more embodiments described herein (see, e.g., FIGS. 1 A- 1 C ) and can use the communications subsystem implementation shown in FIGS. 3 C and 3 D .
- the host platform 405 is in communication (e.g., USB, cellular, Bluetooth, radio frequency, satellite, etc.) as described with the autonomous system 404 as shown.
- the autonomous system 404 includes devices 110 , which may be equipped with one or more sensors for collecting data.
- the devices 110 can include intelligent devices and/or non-intelligent devices as described herein. Although five devices 110 are shown, other numbers (e.g., more or less) of devices 110 can be implemented in other examples.
- FIGS. 6 A and 6 B are schematic illustrations of example implementations of the host platform 405 and the ATP 100 according to one or more embodiments described herein.
- the ATP 100 is separate from but in communication with both the host platform 405 and the autonomous system 404 .
- the host platform 405 can be an expansion platform.
- the host platform can be other portable embedded computing devices provided they operate semi-autonomously and/or autonomously.
- the ATP 100 includes the ATP processor module 102 , which can be configured in accordance with one or more embodiments described herein (see, e.g., FIGS. 1 A- 1 C ) and can use the communications subsystem implementation shown in FIGS. 3 C and 3 D .
- the ATP 100 facilitates and manages communication between the ATP 100 and one or more devices 110 (e.g., sensors), which are disposed in or otherwise associated with the host platform 405 .
- devices 110 e.g., sensors
- the host platform 405 is coupled to or otherwise accessible via a network to the ATP 100 while in FIG. 6 B , the ATP 100 is embedded in the host platform 405 .
- the host platform 405 can be an expansion platform.
- the host platform can be other portable embedded computing devices provided they operate semi-autonomously and/or autonomously.
- the ATP 100 includes the ATP processor module 102 , which can be configured in accordance with one or more embodiments described herein (see, e.g., FIGS. 1 A- 1 C ) and can use the communications subsystem implementation shown in FIGS. 3 C and 3 D .
- the ATP 100 facilitates and manages communication between the ATP 100 and one or more devices 110 (e.g., sensors), which in communication with the host platform 405 .
- the ATP 100 can be utilized within a portable or autonomous or semi-autonomous NMR detector, monitor, or analysis device.
- the NMR device can be a module and the ATP 100 is coupled to the NMR device.
- the ATP 100 can be embedded within the NMR device to provide the ATP functionality to the NMR device.
- such an ATP 100 can interface with an autonomous system 404 that is a NMR system or device as depicted in the examples of FIGS. 5 A, 5 B, 6 A, 6 B .
- the NMR application for visualization and user activity can be remote from the data acquisition. This results in a distributed NMR system for portable data acquisition where the ATP 100 provides for data acquisition, pre-processing, and/or transmission to another device that provides for remote display/visualization of the data.
- FIGS. 7 A- 7 D are schematic illustrations of different communication paths between and among multiple ATPs 100 and/or a remote computing system 720 according to one or more embodiments described herein.
- the communication paths shown in FIGS. 7 A- 7 D can be any combination of unicast, multicast, or broadcast; synchronous or asynchronous; and over multiple transport types concurrently; organized in a different topologies, such as mesh; and/or the like, including combinations and/or multiples thereof.
- communications can be point-to-point between the ATPs 100 (e.g., FIG. 7 A ), point-to-point between ATPs 100 and the remote computing system 720 (e.g., FIG. 7 B ), and/or can be relayed (e.g., FIG. 7 C ).
- a mesh network among the ATPs and remote computing system can be formed (e.g., FIG. 7 D ).
- FIG. 7 A three autonomous systems 404 are shown, each having an ATP 100 embedded in or otherwise associated therewith.
- the ATPs are in point-to-point communication with each other as shown by links 710 .
- FIG. 7 B three autonomous systems 404 are shown, each having an ATP 100 embedded in or otherwise associated therewith.
- the ATPs 100 are in point-to-point communication with the remote computing system 720 as shown by the links 712 .
- the remote computing system 720 can be any suitable computing device or system, such as a laptop computer, a tablet computer, a smartphone, a server, a node of a cloud computing environment 722 , an embedded processor or controller, and/or the like, including combinations and/or multiples thereof.
- FIG. 7 C three autonomous systems 404 are shown, each having an ATP 100 embedded in or otherwise associated therewith.
- the ATPs 100 can utilize one another's communication resources to transfer data among each other and to the remote computing system 720 as shown by the links 714 .
- This configuration provides for relaying data/messages from one ATP 100 to the remote computing system 720 via other ATPs 100 as shown.
- FIG. 7 D three autonomous systems 404 are shown, each having an ATP 100 embedded in or otherwise associated therewith.
- the ATPs 100 and remote computing system 720 together form a mesh network as shown by the links 716 .
- FIGS. 7 E and 7 F are schematic illustrations of example implementations of the ATP 100 within the autonomous system 404 and an autonomous system platform controller 734 according to one or more embodiments described herein.
- the ATP 100 includes communication resources 730 , which include the hardware, interfaces, and/or protocols capable of transmitting data from and/or receiving by the ATP 100 while utilizing the AS communications transport 732 implemented by the AS 404 to simultaneously carry data to/from the ATP 100 and a remote system.
- the communication resources 730 transmits data to and/or receives data from the AS platform controller 734 via an AS communications transport 732 as shown.
- the AS platform controller 734 includes an ATP platform controller with applications 736 , which is integrated/embedded into the AS platform controller 734 .
- the AS platform controller 734 manages communications between the autonomous system 404 and external devices, such as other autonomous systems, remote computing systems, cloud computing environments, and/or the like, including combinations and/or multiples thereof.
- the ATP platform controller with applications 736 leverages communications support/infrastructure within the AS platform controller.
- the AS platform controller 734 communicates with a cloud environment referred to as ATP cloud platform with applications 740 , such as via a network connection (e.g., the Internet 738 ).
- FIGS. 7 G and 7 H are schematic illustrations of example implementations of the ATP 100 within the autonomous system 404 , the AS platform controller 734 , and the ATP platform controller with applications 736 according to one or more embodiments described herein.
- the ATP platform controller with applications 736 resides on a separate remote host/computer (e.g., a tablet computing device, a smartphone, a laptop, and/or the like, including combinations and/or multiples thereof), which leverages autonomous system communications support/infrastructure.
- the AS platform controller 734 and the ATP platform controller with applications 736 communicate via an AS-ATP communications transport link 742 as shown. Access to the ATP cloud platform with applications 740 is also supported as shown in FIG. 7 H via the Internet 738 or another suitable communication link.
- the ATP platform controller with applications 736 can analyze and act on data that is received, such as from the ATP 100 .
- a device 110 associated with the ATP 100 can collect data as described herein (e.g., sensor data or NMR device), and the ATP platform controller with applications 736 can analyze/process the data and perform operations depending on what applications are available on the ATP platform controller with applications 736 .
- the ATP platform controller with applications 736 can receive data from multiple ATPs 100 , can analyze the data to determine where the ATPs are located geographically and where to move or change the behavior of the autonomous system 404 to depending on an event occurring within an environment of the ATPs 100 (e.g., detected weather event, such as a storm may indicate that the autonomous system 404 should be moved where the ATPs are embedded in or otherwise associated with the autonomous system 404 , which can be an unmanned aerial vehicle).
- the ATP cloud platform with applications 740 can provide similar functionality to the ATP platform controller with applications 736 .
- FIG. 7 I is a schematic illustration of an example implementation of an ATP portable network controller 744 according to one or more embodiments described herein.
- the ATP platform controller leverages and accesses the ATP portable network controller 744 , which manages one or more ATP communications and provides access point capabilities and connectivity across multiple communication resources, dynamically/intelligently.
- the ATP portable network controller 744 can support various communication schemes/protocols, such as radio frequency, satellite, WiFi, Bluetooth, cellular, and/or the like, including combinations and/or multiples thereof.
- the A-SDN control-plane communications controller 755 is implemented (see, e.g., FIG. 3 D, 3 G ) in the ATP portable network controller 744 . Access to the ATP cloud platform with applications 740 is also provided.
- the communication resources 730 of the ATP 100 can be in communication with a satellite 746 or other suitable device for relaying data between the ATP 100 and the ATP cloud platform with applications 740 .
- the communication resources 730 of the ATP 100 can also be in communication with the ATP portable network controller 744 via a first communication protocol (e.g., radio frequency, WiFi, cellular, etc.) which is provided by the ATP 100 and/or autonomous system 404 .
- the communication resources 730 of the ATP 100 can also be in communication with the ATP platform controller with applications 736 via a second communication protocol (which may be the same or different than the first communication protocol) (e.g., WiFi, cellular, and/or the like, including combinations and/or multiples thereof).
- a second communication protocol which may be the same or different than the first communication protocol
- FIG. 7 J is a schematic illustration of an example implementation of the ATP portable network controller 744 of FIG. 7 I according to one or more embodiments described herein.
- the ATP portable network controller 744 can operate in a local mode or a global mode. In the local mode, the ATP portable network controller 744 manages communication between one or more local ATPs 100 (see, e.g., FIG. 7 L, 7 N, 7 O ) directly. In the global mode, the ATP portable network controller manages communication between ATPs 100 via other intermediate ATP portable network controllers (see, e.g., FIGS.
- each ATP portable network controller 744 in a multi-portable ATP network controller implementation, intelligently manages, orchestrates, and optimizes the communication resources and activities across the complete network topology (global domain) of the AS-ATP system (see, e.g., FIG. 7 N ).
- each ATP portable network controller 744 intelligently manages, orchestrates, and optimizes the communication resources and activities within the network topology (local domain) comprising AS-ATP systems visible to the given instance of the ATP portable network controller (see, e.g., FIG. 7 N ).
- the ATP portable network controller 744 is in communication with ATPs 100 using one or more suitable communications modules, such as an RF radio module 750 , a satellite module 751 , a WiFi/BT module 752 , a cellular module 753 , and/or the like, including combinations and/or multiples thereof.
- the modules 750 - 753 interface with a network interface card that provides network services to the ATP portable network controller 744 .
- the ATP portable network controller 744 also includes an instance of an A-SDN control-plane communications controller 755 which supports A-SDN features and functions as described herein. Particularly, the A-SDN control-plane communications controller 755 manages and orchestrates communications for the network of ATPs and autonomous systems.
- the ATP portable network controller 744 also includes a topology manager 756 to manage the topology (i.e., structure or network graph of ATPs 100 ), a routing manager 757 to route data/commands/messages, a metrics manager 758 to evaluate metrics of data passing through such as quality of service metrics, and a policy manager 759 to apply policies for routing, topology decision making, and/or the like, including combinations and/or multiples thereof.
- Functional blocks 756 - 759 of FIG. 7 J are implemented through a rule-based approach and/or methods of machine learning to compute optimal topology, routing, and policy decisions provided to the A-SDN control-plane communications controller 755 .
- the A-SDN control-plane communications controller 755 operates based on policy configurations and real-time metrics collection from both the metrics manager 758 and telemetry data received from the network of ATPs. In this manner, the A-SDN overall operation is based on a distributed processing and analysis of metrics data for optimal orchestration of the ATP network and indirectly (through ATP 100 interaction with the autonomous system 404 ) the collection of autonomous systems.
- the A-SDN control-plane communications controller 755 , the topology manager 756 , the routing manager 757 , and/or the policy manager 759 can operate in a local mode or a global mode consistent with the operating mode of the ATP portable network controller 744 .
- Operations of the ATP portable network controller 744 are performed by an ATP portable network controller processor 760 , which may be any suitable device for processing data or implementing instructions as described herein. Data can be stored in a memory/storage 748 , which may be accessible by one or more of the components of the ATP portable network controller 744 described herein.
- a communications/message system 747 is responsible for internal communications/messaging within the ATP portable network controller 744 .
- a configuration manager 762 is responsible for providing configurations for the ATP portable network controller 744 , such as configurations for the local and global modes.
- the ATP portable network controller 744 is in communication with the ATP platform controller with applications 736 via an ATP platform interface module 761 .
- FIG. 7 K is a schematic illustration of an example of multiple ATPs 100 deployed in local domains 764 a , 764 b , 765 c , which together form a global domain 763 according to one or more embodiments described herein.
- a local domain 764 a includes three ATPs 100 , and each of the local domains 764 b , 764 c includes four ATPs 100 , as shown.
- the ATPs 100 are in communication as shown by the solid lines connecting the various ATPs.
- the ATPs 100 can be connected in accordance with one or more embodiments described herein (see, e.g., FIGS. 7 A- 7 D ).
- FIGS. 7 L, 7 M, 7 N, and 70 are schematic illustrations of examples of use cases for the ATP portable network controller 744 of FIGS. 71 and 7 J according to one or more embodiments described herein.
- the ATP portable network controller 744 is in communication with ATPs 100 , which in this example are unmanned aerial vehicles 409 (see, e.g., FIG. 4 E ) but are not so limited.
- the ATPs 100 are in direct communication with the ATP portable network controller 744 using any suitable communication protocol(s) as described herein.
- the ATP portable network controller 744 is also in communication with the ATP platform controller with applications 736 and the ATP cloud platform with applications 740 as shown, again using any suitable communication protocol(s) as described herein.
- multiple ATP portable network controllers 744 are implemented and are responsible for managing groups of ATPs 100 shown as local domains 764 a - 764 c .
- each of these examples implements different configurations of local and global control using various instances of: the ATP portable network controller 744 , ATP platform controller with applications 736 , and ATP cloud platform with applications 740 .
- the ATP cloud platform with applications 740 can communicate directly with the ATP portable network controller 744 and/or indirectly via the ATP platform controller with applications 736 .
- the instances of the ATP portable network controller 744 can communicate with one another and/or with the ATP platform controller with applications 736 and/or the ATP cloud platform with applications 740 .
- the instances of the ATP portable network controller are operating in the global mode each having visibility and awareness for intelligent orchestration across the network topology encompassing 764 a , 764 b , and 764 c.
- FIG. 7 N provides a hybrid model with a hierarchy on top of the architecture shown in FIG. 7 M where a number of elements (where each of the ATPs 100 , ATP portable network controllers 744 , ATP platform controller with applications 736 , and ATP cloud platform with applications 740 represent an element) is greater than a first threshold and/or a network diameter or span is greater than a second threshold.
- a transition may occur to a federated or hierarchical model (which could occur dynamically) as the number of ATPs increases such that the ability to manage the network topology becomes difficult by single layer of controllers.
- the threshold can be set/adjusted based on, for example, management capabilities/limitations for the network topology, and/or performance metrics collected during network and system operation.
- the ATP cloud platform with applications 740 is in direct communication with the instances of the ATP platform controller with applications 736 .
- one or more instances of the ATP platform controller with applications 736 can be implemented.
- the instances of the ATP platform controller with applications 736 are in direct communication with one or more instances of the ATP portable network controller 744 , which are operating in the global mode, as shown.
- the global instances of the ATP portable network controller 744 are in communication with one another and each is in communication with a respective instance of the ATP portable network controller 744 operating in the local mode as shown.
- the local instances of the ATP portable network controller 744 are responsible for managing the groups of ATPs 100 shown as local domains 764 a - 764 c.
- FIG. 7 O (like the example of FIG. 7 N ), provides a hybrid model with a hierarchy on top of the architecture shown in FIG. 7 M where a number of elements is greater than a first threshold and/or a network diameter or span is greater than a second threshold as described herein.
- an instance of the ATP platform controller with applications 736 is moved to the cloud where it interfaces with a global instance of the ATP portable network controller 744 as shown.
- one or more ATP portable network controllers 744 can be implemented in various configurations.
- the ATP cloud platform with applications 740 integrates with a ATP portable network controller 744 directly, where the ATP platform controller is impeded in the ATP cloud platform with applications 740 .
- other configurations are also possible.
- the ATPs 100 in FIGS. 7 L- 70 are shown as unmanned aerial vehicles but could be any suitable device, system, vehicle, embedded controller, and/or the like, including combinations and/or multiples thereof.
- FIG. 7 P is a schematic illustration of multiple autonomous systems 404 , each having an ATP 100 with an autonomous SDN data-plane communications controller 370 according to one or more embodiments described herein. Particularly, FIG. 7 depicts a system 700 P having multiple autonomous systems 404 , each with an ATP 100 having an A-SDN data-plane communications controller 370 . Together, the ATPs 100 form a mesh network such that the ATPs are in mesh communication with one another and with a higher-level controller 782 , which can be the ATP platform controller with applications 736 or the ATP portable network controller 744 .
- the higher-level controller 782 can include an A-SDN control-plane communications controller 755 , which defines network rules and policies that are then implemented, executed, or provisioned, within each A-SDN data-plane communications controller 370 (see FIG. 3 D ) of the ATP 100 instance as shown.
- A-SDN control-plane communications controller 755 defines network rules and policies that are then implemented, executed, or provisioned, within each A-SDN data-plane communications controller 370 (see FIG. 3 D ) of the ATP 100 instance as shown.
- A-SDN control-plane communications controller 755 which defines network rules and policies that are then implemented, executed, or provisioned, within each A-SDN data-plane communications controller 370 (see FIG. 3 D ) of the ATP 100 instance as shown.
- an autonomous software defined network is established, whereby a control-plane manages, orchestrates and controls the network topology comprising one or more ATPs 100 coupled to respective autonomous systems using the A-SDN control-plane communications controller 7
- the ATP coupled to each autonomous system 404 can receive local metrics from the respective ATP processor modules (e.g., the ATP processor module 102 ) of the ATPs 100 and/or remote metrics from other ATPs.
- the A-SDN data-plane communications controller 370 receives local metrics 786 from its own autonomous system 404 and receives commands from the A-SDN control-plane based on remote metrics received by the A-SDN control-plane from the one or more ATPs.
- the ATP processor module 102 is not operating in A-SDN mode (see FIG. 3 C )
- both local and remote metrics are used at the ATP level since the connection manager 311 is acting as the decision maker.
- an A-SDN enhancement mode see FIG.
- both local and remote metrics for the connection manager 311 are used as described herein.
- the ATP local metrics are conveyed (received as remote-metrics from A-SDN control-plane perspective) to the A-SDN control-plane communications controller 755 as the decision maker, which means local metrics for each ATP is sent to the A-SDN control-plane system (e.g. the ATP platform controller with applications 736 , the ATP portable network controller 744 , etc.
- the A-SDN control-plane communications controller 755 manages the network unless there is an override rule, policy, or situation (environmental) where the local communications controller will control versus the A-SDN control-plane system.
- the arbitration logic for master or slave operation can dynamically change based on rules, policies, inference from machine learning, or events based on configuration or real-time metrics (computed or learned through machine-learning methods) as described herein.
- This example provides for mesh communications (utilizing any suitable combination of communication protocols, types, or resources) between/among the ATPs 100 by establishing an autonomous software defined network 799 .
- the autonomous software defined network 799 is based on one or more A-SDN data-plane communications controllers 370 (see FIG. 3 D ) that collect metrics, which are transported to the A-SDN control-plane communications controller 755 (see FIG. 7 J ).
- the autonomous SDN data-plane communications controllers 370 in conjunction with the communications controller 354 , the real-time transport and telemetry metrics processor 352 , and the inference and event engine 360 generate events consumed by one or more of the autonomous systems 404 to influence their operations and behavior
- the A-SDN control-plane communications controller 755 manages and orchestrates communications for the network 799 of ATPs 100 and autonomous systems 404 as described herein.
- the A-SDN control-plane communications controller 755 generates global rules, policies, and network packet processing configurations (e.g., forwarding rules on a communication resource or port-by-port basis for each network packet, and dynamic configuration of the network based on metrics, events, etc.), for each A-SDN data-plane communications controller 370 in the network formed by the autonomous systems 404 and their respective ATPs 100 .
- the A-SDN control-plane communications controller 755 receives metrics from one or more of the ATPs 100 as described herein from the metrics processing within the AS network controller 124 .
- FIG. 8 A is a schematic illustration of an example of multiple unmanned aerial vehicles (UAV) each equipped with an ATP according to one or more embodiments described herein.
- FIG. 8 B is a schematic illustration of an example of multiple unmanned aerial vehicles (UAV) each equipped with an ATP and together forming a partial mesh network according to one or more embodiments described herein.
- multiple UAVs are shown, which each include an ATP.
- This implementation supports multi-sensor acquisition and analysis based on distributed ATPs, which support multiple possible communication paths/network transports and remote system coordination.
- UAV unmanned aerial vehicle
- FIGS. 8 A and 8 B systems 801 and 811 , respectively, are shown that provide for multiple (N) UAV systems 800 A- 800 N.
- the UAV systems 800 A- 800 N include UAVs 804 A- 804 N and corresponding UAV Base Controllers 808 A- 808 N communicatively coupled by UAV radio links 806 A- 806 N.
- Each of the UAV systems 800 A- 800 N includes at least one ATP 802 A- 802 N (e.g., ATP 100 ) (see, e.g., FIG. 4 E ), where each ATP 802 A- 802 N includes an ATP processor module (not shown) (e.g., the ATP processor module 102 ) as described herein.
- Each UAV systems 800 A- 800 N further includes a sensor (not shown) (e.g., gas/liquid chemical sensor) for sensing an environmental property and being operably coupled to a device (e.g., the device 110 ).
- the device can communicate directly to a cloud computing environment 814 (e.g., hosting a distributed sensor analysis and prediction application, such as a cloud/distributed computing environment for example) and/or indirectly via the multiple network transports 818 to the platform controller remote computing system scenarios 810 which includes one or more platform controllers, cloud-based platform controller 812 and standalone platform controller 816 as described herein, such as through an application or software being executed on the cloud computing environment 814 , or alternatively by directly (not shown) as a direct unicast connection.
- a sensor e.g., gas/liquid chemical sensor
- the device can communicate directly to a cloud computing environment 814 (e.g., hosting a distributed sensor analysis and prediction application, such as a cloud/distributed computing environment for example) and/or indirectly via
- the communications channel is configured as a unicast from the UAV 802 to cloud computing environment 814 (using TCP/IP or QUIC/UDP/IP for message delivery, for example).
- cloud computing environment 814 there can be data and command/control message queues within the cloud computing environment 814 to enable asynchronous communication as described herein and an ATP processor module associated to each sensor (e.g., gas/liquid sensor module).
- ATP processor module associated to each sensor
- sensor readings are published to the data queues on the ATP processor module 102 instance and transmitted to a corresponding data message queue in the cloud computing environment 814 , where it can be aggregated with other data message queue data, processed, and/or analyzed based on the global set of datasets across all or a portion of UAV expansion platform sensors modules.
- the cloud computing environment 814 communicates with one or more of the cloud-based platform controller 812 and/or the standalone platform controller 816 (collective “the platform controllers 812 , 816 ”) with updated telemetry that actuates the operation of the ATPs 802 A- 802 N.
- the platform controllers 812 , 816 sends updated command and control data so all or at least a portion of the ATPs 802 A- 802 N are able to execute the appropriate actions in response to the collective environmental analysis in parallel, since all or at least a portion of the ATPs 802 A- 802 N receive any operational command and control messages in real-time (or near-real-time) and within the same multicast group reception time period.
- Operations on the ATPs 802 A- 802 N can include increasing the resolution of gas/liquid sampling, activating other sensors in response to the cloud/distributed computing based data analysis, or even making telemetry available such as updated location or position coordinates that can be communicated to the UAV systems 804 A- 804 N to modify target trajectory patterns (as would be the case in a swarm-based optimization scenario) so the cluster of N UAVs can converge towards an operational goal.
- one or more of the UAV systems 800 A- 800 N is linked to the platform controller remote computing system scenarios 1610 via the links 1630 and/or 1631 .
- one or more of the UAV systems 800 A- 800 N is linked to the platform controller remote computing system scenarios 1610 via the links 1630 and/or 1631 and/or are linked together to form a meshed network shown by the links 1632 .
- FIG. 9 is a flow diagram of a method 900 according to one or more embodiments described herein.
- the method 900 can be implemented, for example, using the ATP processor module 102 and/or another suitable device and/or system.
- the method 900 details one example procedure for initiating and configuring an ATP processor module (e.g., the ATP processor module 102 ), which includes, for example, starting communication services and message and transport services, loading system configuration information, and the like.
- an ATP processor module e.g., the ATP processor module 102
- the method 900 details one example procedure for initiating and configuring an ATP processor module (e.g., the ATP processor module 102 ), which includes, for example, starting communication services and message and transport services, loading system configuration information, and the like.
- the control system 200 performs a power on or reset of the ATP processor module 102 . This can include booting a processor module operating system and/or initializing any associated services.
- an ATP processor module system software/OS 116 is initialized.
- a platform configuration is loaded from a memory, such as a flash memory, an electrically erasable programmable read-only memory (EEPROM), or another suitable memory.
- communications services e.g., the AS network services 120
- message/transport services e.g., message and transport services module 118
- a message broker and queues are initialized, including synchronous handlers (see, e.g., FIGS. 3 A and 3 B ).
- the ATP interface controller 112 is started, which can include loading/updating a module registry, initializing/configuring device feature libraries, etc. This initialization process can be restarted, as shown by the arrow 913 , as needed, on demand, periodically, responsive to a trigger event, etc.
- the method 900 proceeds to block 916 , where a default system configuration is implemented, which can be stored, for example, in local storage 917 .
- the ATP processor module 102 utilizes the default configuration from block 916 , including static command and control software instructions, which are command and control instructions that do not change based on the particular system configuration (e.g., default vs. custom) and can be stored in the local storage 919 , for example. Also at block 918 , the ATP processor module 102 performs device configuration, initialization, and calibration functions of the one or more of the devices 110 .
- the ATP processor module 102 and one or more of the devices 110 then execute their respective tasks/instructions, and collected data is stored locally, such as in the local storage 919 . Subsequent to completion at block 918 , the ATP processor module 102 powers off at block 920 .
- the method 900 proceeds to block 922 where it is determined whether to update configuration/code. If so, at block 924 , a configuration/code update process is executed using data received from local storage 925 and/or other devices via communication protocol(s) 926 , which can include USB/USB-C, Bluetooth, satellite, or any other suitable communication protocol and/or the like, including combinations and/or multiples thereof.
- communication protocol(s) 926 can include USB/USB-C, Bluetooth, satellite, or any other suitable communication protocol and/or the like, including combinations and/or multiples thereof.
- the method 900 proceeds to block 928 .
- the ATP processor module 102 executes the updated configuration (e.g., from block 924 ) and performs device configuration, initialization, and calibration of one or more of the devices 110 .
- the ATP processor module 102 utilizes static and/or dynamic/interactive command and control instructions, which can be received, for example, by communication protocol(s) 932 , which can include USB/USB-C, Bluetooth, satellite, or any other suitable communication protocol and/or the like, including combinations and/or multiples thereof.
- the ATP processor module 102 and one or more of the devices 110 then execute their respective tasks/instructions, and collected data is stored locally, such as in the local storage 935 and/or remotely in another device which receives the data via communication protocol(s) 936 , which can include USB/USB-C, Bluetooth, satellite, or any other suitable communication protocol and/or the like, including combinations and/or multiples thereof.
- communication protocol(s) 936 can include USB/USB-C, Bluetooth, satellite, or any other suitable communication protocol and/or the like, including combinations and/or multiples thereof.
- the ATP processor module 102 powers off at block 920 .
- the local storage 917 , 919 , 925 , 935 can be the same physical or logical storage device or can be multiple physical and/or logical storage devices.
- the local storage 917 , 919 , 925 and/or 935 can store data locally and/or remotely relative to the control system 200 .
- FIGS. 10 A- 10 C are schematic illustrations of an autonomous telemetry platform 100 an autonomous system (AS) network controller 124 providing data to the inference and event engine 360 for event generation to multiple targets according to one or more embodiments described herein.
- a processing block 1002 represents features and functions of the AS network controller 124 and the inference and event engine 360 .
- the processing block 1002 receives data sources such as metrics, device data, etc., generates events of interest based on performing an inference from the data sources, and delivers those events to one or more devices/systems as appropriate.
- the processing block 1002 uses a bandwidth measurement X 1004 , and/or a latency measurement Y 1006 , and a signal strength measurement Z 1008 to generate an event and then delivers the event to one or more of the autonomous system 404 , the ATP portable network controller 744 , the ATP platform controller with applications 736 , a remote ATP 1010 , and/or the like, including combinations and/or multiples thereof.
- FIG. 10 A the processing block 1002 uses a bandwidth measurement X 1004 , and/or a latency measurement Y 1006 , and a signal strength measurement Z 1008 to generate an event and then delivers the event to one or more of the autonomous system 404 , the ATP portable network controller 744 , the ATP platform controller with applications 736 , a remote ATP 1010 ,
- the processing block 1002 uses device data X 1014 , device data Y 1016 , and/or device data Z 1018 to generate an event and then delivers the event to one or more of the autonomous system 404 , the ATP portable network controller 744 , the ATP platform controller with applications 736 , a remote ATP 1010 , and/or the like, including combinations and/or multiples thereof.
- FIG. 10 C represents a combination of FIGS.
- the processing block 1002 generates and delivers an event based on one or more of the bandwidth measurement X 1004 , the latency measurement Y 1006 , the signal strength measurement Z 1008 , the device data X 1014 , the device data Y 1016 , and/or the device data Z 1018 .
- the ATP 100 of FIGS. 10 A- 10 C may have support for an autonomous SDN (A-SDN), for example, if the AS network controller 124 has an A-SDN capability enabled (see, e.g., FIG. 3 D ).
- A-SDN autonomous SDN
- the processing block 1002 receives information associated with the data (as described) and can use this information (e.g., one or more of the bandwidth measurement X 1004 , the latency measurement Y 1006 , the signal strength measurement Z 1008 , the device data X 1014 , the device data Y 1016 , and/or the device data Z 1018 ) to generate an event.
- information associated with the data e.g., one or more of the bandwidth measurement X 1004 , the latency measurement Y 1006 , the signal strength measurement Z 1008 , the device data X 1014 , the device data Y 1016 , and/or the device data Z 1018 .
- Examples of events the processing block 1002 can generate and deliver are as follows: update as network controller information; update remote ATP 100 as a network controller with communications information; updating remotely A-SDN control-plane communications controller 755 where this functional block exists; send event (e.g., where the event is asynchronous message containing data) to the autonomous system 404 ; stop/start/change autonomous system 404 or device 110 operation; move autonomous system 404 or device 110 forward or backward, up or down, etc.; move autonomous system 404 or device 110 to a new position; send ATP 100 processed module data to autonomous system 404 ; configure/reprogram as an AS network controller 124 and/or an A-SDN control-plane communications controller 755 ; configure/modify the autonomous system 404 or device 110 operation or behavior; and/or the like, including combinations and/or multiples thereof. It should be appreciated that these examples of events are merely examples and there can be many other event types/messages, which can be sent to any number of different targets.
- FIG. 11 is a schematic illustration of ATP groups 1101 , 1102 , 1103 deployed across a geographic area 1100 according to one or more embodiments described herein.
- the groups 1101 , 1102 , 1103 are examples of the local domains 764 a , 764 b , 764 c respectively of FIG. 7 K .
- the ATP groups 1101 , 1102 , 1103 each include one or more ATPs (see, e.g., FIGS. 1 A- 1 C ) and can be controlled, for example, using one or more of the topologies illustrated in FIGS. 7 L- 70 .
- ATPs within the ATP groups collect data using sensors. Based on the collected sensor data collected at the ATPs, the ATPs in conjunction with the autonomous system 404 determines a new location 1110 (“Loc X”). The ATPs also evaluate network performance (e.g., reliability, error-rates, QoS) and share metrics with each communications controller (see, e.g., FIGS. 3 F, 3 G ) (depending on particular topology configuration) to select communication resources (based on topology, communication metrics, etc.) for the given current location to optimize the communication performance across ATPs. Based on sensor data and/or network data, a trajectory can be determined and provided to the autonomous systems where one or more autonomous systems can move towards the new location 1110 as illustrated.
- network performance e.g., reliability, error-rates, QoS
- Embodiments of the present disclosure provide technical solutions to processing of telemetry and data from one or more autonomous systems or devices.
- a sensor associated with an autonomous system can collect data.
- An autonomous telemetry platform processor module can analyze the sensor data and properties related to the data to make decisions, such as how to transmit the data, how to control the autonomous system and/or other autonomous systems, how to implement network topologies to provide for optimal data transmission, and/or the like, including combinations and/or multiples thereof.
- decisions such as how to transmit the data, how to control the autonomous system and/or other autonomous systems, how to implement network topologies to provide for optimal data transmission, and/or the like, including combinations and/or multiples thereof.
- the teachings described herein may be used with other types of autonomous systems and/or other types of unmanned, semiautonomous, or autonomous vehicles, such as but not limited to land-based vehicles (e.g. wheeled or tracked vehicles), water-based vehicles (e.g. boats or submersible vehicles), as well as other portable or mobile devices, including industrial control or sensor systems, IoT devices, medical devices, NMR devices, MRI devices, and/or the like, including combinations and/or multiples thereof, for example, without deviating from the teachings provided herein.
- the remote systems may be autonomous, semi-autonomous, or remotely operator controlled.
- one or more of the various components, modules, engines, etc. described can be implemented as instructions stored on a computer-readable storage medium, as hardware modules, as special-purpose hardware (e.g., application specific hardware, application specific integrated circuits (ASICs), application specific special processors (ASSPs), field programmable gate arrays (FPGAs), as embedded controllers, hardwired circuitry, etc.), or as some combination or combinations of these.
- the engine(s) described herein can be a combination of hardware and programming.
- the programming can be processor executable instructions stored on a tangible memory
- the hardware can include a processing device (e.g., a processor, processing circuitry, and/or the like, including combinations and/or multiples thereof) for executing those instructions.
- a system memory e.g., a random access memory, a read-only memory, and/or the like, including combinations and/or multiples thereof
- Other components, modules, engines, etc. can also be utilized to include other features and functionality described in other examples herein.
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mechanical Engineering (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Game Theory and Decision Science (AREA)
- Medical Informatics (AREA)
- Manufacturing & Machinery (AREA)
- Selective Calling Equipment (AREA)
- Transportation (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
- The present application is a nonprovisional application of, and claims the benefit of, U.S. Provisional Application Ser. No. 63/248,833 filed on Sep. 27, 2021, and also is a nonprovisional application of, and claims the benefit of, U.S. Provisional Application Ser. No. 63/240,515 filed on Sep. 3, 2021, and is also a nonprovisional application of, and claims the benefit of, U.S. Provisional Application Ser. No. 63/209,154 filed on Jun. 10, 2021, the contents of all of which are incorporated by reference herein in their entirety.
- The subject matter disclosed herein relates to processing of telemetry and data from one or more autonomous systems or devices, and in particular to unmanned, autonomous, or remotely operated systems and methods for adding telemetry acquisition, processing, and distribution capabilities to additional devices to at least one remote system to enhance or increase system functionality.
- A remote system includes a remote system/vehicle and either remote system control (computer, micro-controller, mobile smartphone or tablet, base or ground station system) for autonomous operation, or semi-autonomous control through a remote agent, for managing the remote system operations and activities. An example of a remote system is an autonomous system (AS), which is any system or device that can operate with minimal, limited, or no human intervention. An autonomous system can be a single instance or can be deployed as part of a distributed system architecture. In some cases, an autonomous system can be capable of moving (e.g. flying, crawling, roving, etc.) autonomously or semi-autonomously under the control of an operator or intelligent agent. In other cases, an autonomous system can be substantially stationary (e.g., a nuclear magnetic resonance (NMR) device, a magnetic resonance imaging (MRI) device), a portable medical device, or industrial control or sensor device. In either case, the autonomous system may include or be associated with one or more devices for collecting data (e.g., camera, temperature sensor, pressure sensor, gas sensor, NMR imaging sensor, MRI imaging sensor, and/or the like, including combinations and/or multiples thereof). These devices can acquire telemetry data for operation or analysis in order to provide for a complete set of functions required to achieve some goal or objective.
- In one exemplary embodiment, a system includes a plurality of processor modules. Each of the plurality of processor modules is communicatively couplable to an autonomous system of a plurality of autonomous systems. Each of the processor modules includes an autonomous software defined network (A-SDN) data-plane communications controller. The system further includes a portable network controller including an A-SDN control-plane communications controller.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include that the A-SDN control-plane communications controller operates in one of a global mode or a local mode.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include that the A-SDN control-plane communications controller operates in one of the global mode or the local mode based at least in part on a network topology.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include that the A-SDN control-plane communications controller manages and orchestrates communications between and among the plurality of processor modules.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include that the A-SDN data-plane communications controller implements, executes, and provisions network rules and policies established by the A-SDN control-plane communications controller.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include that the portable network controller further includes: a communication module; a network interface card; a topology manager; a routing manager; a metrics manager; a policy manager; a portable network controller processor; a platform interface module; a communications system; a memory system; and a configuration manager.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include that the communication module is selected from a group consisting of: a radio frequency module, a satellite module, a WiFi module, a Bluetooth module, and a cellular module.
- In another exemplary embodiment a method for establishing an autonomous software defined network (A-SDN) among a plurality of autonomous systems is provided. The method includes establishing network rules and policies by an A-SDN control-plane communications controller associated with a portable network controller. The method further includes distributing the network rules and polices from the A-SDN control-plane communications controller to a plurality of processor modules, each of the plurality of processor modules communicatively couplable to an autonomous system of the plurality of autonomous systems. The method further includes establishing a communication link between a first autonomous system of the plurality of autonomous systems and a second autonomous system of the plurality of autonomous systems. The first autonomous system includes a first processor module and the second autonomous system includes a second processor module. The method further includes transmitting data, based on the content of the data and the network rules and policies, from the first autonomous system to the second autonomous system using the communication link.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the method may include that the A-SDN control-plane communications controller is external to each of the plurality of autonomous systems.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the method may include that each of the plurality of processor modules includes an A-SDN data-plane communications controller of a plurality of A-SDN data-plane communications controllers.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the method may include that the plurality of A-SDN data-plane communications controllers implements, executes, and provisions network rules and policies established by the A-SDN control-plane communications controller.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the method may include that transmitting the data is further based on local metrics of the first autonomous system.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the method may include that a first subset of the plurality of processor modules are grouped into a first domain, and wherein a second subset of the plurality of processor modules are grouped into a second domain.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the method may include that the first domain and the second domain are grouped into a global domain.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the method may include that the first domain includes the portable network controller, and wherein the second domain includes another portable network controller.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the method may include that the plurality of processor modules transmit data to and receive data from a cloud computing environment via the portable network controller.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the method may include that the plurality of processor modules and the portable network controller form a mesh network.
- In yet another exemplary embodiment a system includes a first processor module communicatively couplable to a first autonomous system and associated with a first device to collect first data. The first processor module facilitates communication between the first device and the first processor module via a first communication link between the first processor module and the first device. The first processor module includes a first autonomous software defined network (A-SDN) data-plane communications controller. The system further includes a second processor module communicatively couplable to a second autonomous system and associated with a second device to collect second data. The second processor module facilitates communication between the second device and the second processor module via a second communication link between the second processor module and the second device. The second processor module includes a second A-SDN data-plane communications controller. The system further includes a portable network controller including an A-SDN control-plane communications controller. The portable network controller, the first processor module, and the second processor module form an A-S DN.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may includes that the portable network controller controls data being transmitted by the first processor module and the second processor module across the A-SDN based at least in part on the first data, the second data, metrics associated with the first autonomous system, and metrics associated with the second autonomous system.
- In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may includes that the metrics associated with the first autonomous system include a bandwidth measurement, a latency measurement, a signal strength measurement, and device data.
- Other embodiments described herein implement features of the above-described method in computer systems and computer program products.
- The above features and advantages, and other features and advantages, of the disclosure are readily apparent from the following detailed description when taken in connection with the accompanying drawings.
- The subject matter, which is regarded as the disclosure, is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features, and advantages of the disclosure are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
-
FIGS. 1A-1C are schematic illustrations of example implementations of an ATP processor module according to one or more embodiments described herein; -
FIG. 2 is a schematic illustration of an example implementation of an ATP processor module according to one or more embodiments described herein; -
FIGS. 3A and 3B are schematic illustrations of communication schemes for incoming (inbound) command/data and outgoing (outbound) command/data that utilize dynamically controlled synchronous and/or asynchronous communication processing according to one or more embodiments described herein; -
FIG. 3C is a block diagram of a an autonomous system network controller according to one or more embodiments described herein; -
FIG. 3D is a block diagram of an autonomous system network controller according to one or more embodiments described herein; -
FIG. 3E is a block diagram of a real-time transport and telemetry metrics processor of the autonomous system network controller ofFIGS. 3C and 3D according to one or more embodiments described herein; -
FIGS. 3F and 3G are block diagrams of a communications controller of the autonomous system network controller ofFIGS. 3C and 3E ; -
FIG. 3H is a block diagram of an ATP interface controller of the ATP processor module ofFIG. 2 according to one or more embodiments described herein; -
FIGS. 4A-4F are schematic illustrations of examples of implementations of an autonomous telemetry platform (ATP) according to embodiments described herein; -
FIG. 5A is a schematic illustration of the ATP ofFIG. 4A according to one or more embodiments described herein; -
FIG. 5B is a schematic illustration of the ATP ofFIG. 4B according to one or more embodiments described herein; -
FIGS. 6A and 6B are schematic illustrations of example implementations of a host platform and an ATP according to one or more embodiments described herein; -
FIGS. 7A-7D are schematic illustrations of communication paths between multiple ATPs and/or remote computing systems according to one or more embodiments described herein; -
FIGS. 7E and 7F are schematic illustrations of example implementations of an ATP within an autonomous system and an autonomous system platform controller according to one or more embodiments described herein; -
FIGS. 7G and 7H are schematic illustrations of example implementations of an ATP within an autonomous system, an autonomous system platform controller, and an ATP platform controller and ATP applications according to one or more embodiments described herein; -
FIG. 7I is a schematic illustration of an example implementation of an ATP portable network controller according to one or more embodiments described herein; -
FIG. 7J is a schematic illustration of an example implementation of the ATP portable network controller ofFIG. 7I according to one or more embodiments described herein; -
FIG. 7K is a schematic illustration of an example of multiple ATPs deployed in local domains, which together form a global domain according to one or more embodiments described herein; -
FIGS. 7L, 7M, 7N, and 70 are schematic illustrations of examples of use cases for the ATP portable network controller ofFIGS. 7J and 7K according to one or more embodiments described herein; -
FIG. 7P is a schematic illustration of multiple autonomous systems, each having an ATP with an autonomous SDN data-plane controller according to one or more embodiments described herein; -
FIG. 8A is a schematic illustration of an example of multiple unmanned aerial vehicles (UAV) each equipped with an ATP according to one or more embodiments described herein; -
FIG. 8B is a schematic illustration of an example of multiple UAVs each equipped with an ATP and together forming a partial mesh network according to one or more embodiments described herein; -
FIG. 9 is a flow diagram of a method according to one or more embodiments described herein; -
FIGS. 10A-10C are schematic illustrations of an autonomous telemetry platform including an autonomous system (AS) network controller according to one or more embodiments described herein; and -
FIG. 11 is a schematic illustration of ATP groups deployed across a geographic area according to one or more embodiments described herein. - The detailed description explains embodiments of the disclosure, together with advantages and features, by way of example with reference to the drawings.
- With the increasing number of remotely operated and fully autonomous systems, products, and applications, there is also a corresponding increasing need to support complex telemetry processing from the one or more semi-autonomously or autonomously operating systems, embedded components, payloads and devices beyond cameras, imaging/ranging solutions, sensors, detectors, measurement, or monitoring devices. These remote systems can take several forms, such as but not limited to autonomous guided vehicles (AGV), unmanned aerial vehicles (UAV), autonomous underwater vehicles (AUV), portable devices, industrial control and sensor systems, Internet of Things (IoT) devices, and the like. As used herein, the term “remote system” may refer to any of the foregoing or other remotely operated (either autonomous, semi-autonomous, or operator controlled) device or system, or autonomous system (AS). While embodiments herein may refer to specific remote systems, such as the aforementioned AGV, UAV, AUV, portable devices, industrial control and sensor systems, IoT devices, and/or the like including combination or multiples thereof, this is for example purposes and the claims should not be so limited.
- One or more embodiments described herein provide an autonomous telemetry platform (ATP) for collecting, processing and managing data for one or more aspects of an autonomous system. For example, an ATP is used to process data and manage data flows and communications within an autonomous system and/or between/among multiple autonomous systems. Additionally, an ATP is used to process data and manage data-flows and communications within an ATP and/or between and among multiple ATP systems, or combinations of ATP and autonomous systems thereof. An autonomous system (AS) is any system or device that can operate with minimal, limited, or no human intervention. An AS can be a single instance or can be deployed as part of a distributed system architecture. In examples, the AS can be a portable medical device or an industrial component (e.g., an intelligent flow measurement or detection device at a plant facility) that is stationary and part of a distributed network of such devices.
-
FIGS. 1A-1C are schematic illustrations of example implementations of anATP processor module 102 according to one or more embodiments described herein. According to an example, theATP processor module 102 can be coupled to or integrated with anATP 100. In another example, theATP processor module 102 can be implemented in an autonomous system 404 (see, e.g.,FIG. 4A ). Other implementations are also possible as described herein, see, e.g.,FIGS. 4A-4F, 5A, 5B, 6A, 6B , and/or the like, including combinations and/or multiples thereof. - The ATP platform is a distributed network system of components, which could include an
ATP processor module 102, a network ofATP processor modules 102, a device (e.g., the device 110) integrated therein, a communication bus and/or communication resources, and/or the like, including combinations and/or multiples thereof. - The
ATP 100 provides “edge artificial intelligence” processing as part of an end-to-end analytics platform. TheATP 100 can deliver processed telemetry data locally and/or to one or more remote systems. In examples, theATP 100 manages data flows as part of an intelligent ATP network (e.g., an autonomous software defined network can manage data flows specifically), which is further described herein. To do this, theATP 100 uses theATP processor module 102, which can take one of several forms. For example, inFIG. 1A , theATP processor module 102 is implemented using a system on module (SOM) architecture. InFIG. 1B , theATP processor module 102 supplements the SOM architecture with an intelligent ATP processor (iATP) system-on-a chip (SoC) (iATP SoC) architecture. InFIG. 1C , theATP processor module 102 implements the features of the SOM architecture and iATP SoC architecture as an integrated iATP SoC architecture. - The
ATP processor module 102 facilitates and manages communication between the one ormore devices 110 as part of an autonomous system. It should be appreciated that one or more of thedevices 110 can be included in theATP 100 and/or can be external to theATP 100, such as included in the autonomous system 400, for example, as shown inFIGS. 1A-1C . This can include receiving data from one or more of thedevices 110, sending data and/or commands to one or more of thedevices 110, and the like. For example, one or more of thedevices 110 can include one or more sensors (e.g., a camera, a gas sensor, a chemical sensor, a nuclear magnetic resonance (NMR) device, a magnetic resonance imaging (MRI) device, a biological measurement and monitoring device, a temperature sensor, a pressure sensor, etc.) which can be used to collect data. TheATP 100 can command one or more of thedevices 110 to collect data (or the data can be collected responsive to some other trigger event) and, in response, the sensor(s) of the one ormore devices 110 collects the data and transmits it to theATP 100. In examples, theATP 100 is integral to, coupled to, or otherwise associated with a remote system. TheATP 100 can determine one or more communication schemes to utilize, such as an asynchronous scheme or a synchronous scheme, as described further herein. - In each of the examples of
FIGS. 1A-1C , theATP processor module 102 facilitates and manages communication between the one ormore devices 110 and theATP 100. In the example ofFIG. 1A , theATP processor module 102 facilitates and manages communication using an SOM architecture. In particular, theATP processor module 102 includes asystem processor SoM 104 that collects and processes data from thedevices 110 and facilitates communication (using communication devices 106) between, for example, an autonomous system (see, e.g.,FIGS. 4A, 4B, 4F ) and thedevices 110. This can be done by processing telemetry data and providing message and transport services, which manages the scheduling, transport, and delivery characteristics for incoming and outbound message data consumed or generated by the ATP processor module. - The
ATP processor module 102 includes anATP interface controller 112, an ATP telemetry data/model processor 114, an ATP processor module system software/operating system (OS), a message andtransport services module 118, andtransport handlers 122. Data flows from thedevices 110, through theATP processor module 102 and its components, to thecommunication devices 106 as shown. Similarly, data flows from thecommunication devices 106, through theATP processor module 102 and its components, to thedevices 110 as shown. Thecommunication devices 106 can include one or more modules for transmitting and/or receiving data. Such modules can include a Bluetooth module, a WiFi (e.g., IEEE 802.11) module, a universal serial bus (USB) module (e.g., USB type C), a cellular module (e.g., 4G, 5G), a satellite module, a radio frequency (RF) module, and/or the like, including combinations and/or multiples thereof. The components of theATP processor module 102 are now described in more detail. - The
ATP interface controller 112 provides a software interface abstraction, module control, feature implementation, and integration for each of the one ormore devices 110. TheATP interface controller 112 manages these functions for each of thedevices 110 while acting as an interface between the system, application, and communications processes executing concurrently in support of the overall platform operation of theATP 100. TheATP interface controller 112 is described in more detail herein with reference toFIG. 2 . - The ATP telemetry data/
model processor 114 receives data from thedevices 110 via theATP interface controller 112 and interprets telemetry information from thedevices 110. For example, the ATP telemetry data/model processor 114 takes multiple data formats from one or more sensors associated with one or more of thedevices 110 and unifies the data into a common data model format. For example, the ATP telemetry data/model processor 114 receives data in multiple formats and performs a translation into the common data model format by extracting information from the data, transforming the information into the common data model format, and then storing the information. The common data model format enables the various components of thesystem processor SoM 104 to utilize the data (e.g., read the data, process the data, modify the data, etc.). This enables sensors of different types, makes, models, manufacturers, etc. to be used together such that theATP 100 can read and utilize the data from the different sensors and/ordifferent devices 110. - The ATP processor module system software/
OS 116 executes the SOM operating system software including a supervisory control program as well as system and/or application-level software components. An example of system software is the software code module execution whose function is to integrate the message and transport services to one or more autonomous system controllers through one of the available communications resources. - The message and
transport services module 118 manages the scheduling, transport, and delivery characteristics for incoming and outbound message data consumed or generated by theATP processor module 102. As is further described herein, incoming and outbound message data, and therefore related sets of message data, are associated or grouped together as an instance of a message flow or pattern of communications for the given software or hardware process or device. For example, one or more of thedevices 110 generates a continuous stream of telemetry data that may be pre-processed by theATP processor module 102 and subsequently delivered to a remote system (e.g., another autonomous system), or other ATP. - For inbound command/data (see, e.g.,
FIG. 3A ), the AS network controller 124 (see, e.g.,FIGS. 1B and 1C ) routes a given message, and consequently its associated message flow, for processing synchronously or asynchronously. For outbound command/data (see, e.g.,FIG. 3B ), the determination of whether a given message, and consequently its associated message flow, is processed synchronously or asynchronously depends on the configuration of theATP processor module 102. For example, for the embodiment of theATP processor module 102 inFIG. 1A , a connection manager 311 (see, e.g.,FIGS. 3B and 3H ) may determine whether a given message, and consequently its associated message flow, is processed synchronously or asynchronously, by interfacing with the ATP processor module system software/OS 116. As another example, for the embodiment of theATP processor module 102 inFIGS. 1B and 1C , theconnection manager 311 directly determines whether a given message, and consequently its associated message flow, is processed synchronously or asynchronously and causes a suitable message path to be implemented. Synchronous and asynchronous data handling is described in more detail herein with reference to at leastFIGS. 3A and 3B . - In accordance with another aspect of the disclosure, AS
network controller 124 adaptively manages message delivery across both asynchronous and synchronous message delivery processing methods in accordance with the optimal delivery method given network communications bandwidth, latency, and channel/transport characteristics that are monitored by theAS network controller 124 as well as configuration of the given device instance. For example, a particular device (e.g., one of the devices 110) may utilize a minimum data access time or frequency, such as for a sensor reading, in which case theAS network controller 124 can consider which delivery method (synchronous or asynchronous) is suitable based on the available communications capabilities and user-preferences (e.g., where a user-preference is to set the frequency of sensor measurement updates). In this approach, and in cases where a synchronous communication scheme is not realizable due to degraded communications, theAS network controller 124 may dynamically move respective messages to a message queue for asynchronous message delivery (see, e.g.,FIG. 3A ). As a further embodiment, in cases where the communications channel is sufficiently degraded, or in a fault-condition, theAS network controller 124 may cause the messages to be persisted or stored automatically through persistent message queuing (message data stored in local non-volatile memory). Once the communications channel is no longer in a degraded or fault-condition, any messages that have been persisted can be automatically delivered over the communications channel as originally intended. - In another embodiment, the collective communication activities orchestrated by the
AS network controller 124, in conjunction with respective communications device functions, form an integrated autonomous system network implementation for an individual autonomous system or a swarm or fleet of multiple autonomous systems in a point-to-point or mesh configuration. In such cases, network communications in terms of one or more of message delivery performance, latency-minimization, path and message routing as well as QoS are optimized across one or more communications resources available to each ATP and corresponding autonomous system host device. For example, theAS network controller 124 can implement an autonomous system network instance to improve message delivery from one ATP to a remote computing system. In the example ofFIG. 1A , the 116 ATP processor module system software/OS can support these features in software. The message andtransport services module 118 orchestrates signaling to theATP interface controller 112 for upstream synchronous or asynchronous communications at the connection level. Thus, in the embodiment ofFIG. 1A , the ATP processor module system software/OS decides, based on metrics from thetransport handlers 122, on which connection type to use as described above. In the embodiments ofFIGS. 1B and 1C , theAS network controller 124 provides this functionality. The foregoing applies outbound communication flows (see, e.g.,FIG. 3B ). Inbound communication flows (see, e.g.,FIG. 3A ) are processed in parallel and independent of one another. In another example, multiple ASnetwork controllers 124 can coordinate to improve multiple performance metrics such as bandwidth, latency, and reliability by routing one or more messages/data across communications devices and resources across multiple expansion platforms, remote systems (e.g., UAVs), and/or remote computing systems. - The
transport handlers 122 include one or more transport handlers that communicate with thecommunication devices 106. For example, thetransport handlers 122 can include a separate transport handler for each type of module present in thecommunication devices 106. As an example, if thecommunication devices 106 includes a USB module, thetransport handlers 122 can include a corresponding USB transport handler for interfacing with the USB module of thecommunication devices 106. - In
FIG. 1B , in addition to thesystem processor SoM 104, the ATP processor module includes aniATP SoC 108. The iATP SoC and the system processor SoM communicate via a shared memory/internal system bus 109, each of which are hardware resources enabling the integration of thesystem processor SoM 104 andiATP SoC 108. TheiATP SoC 108 provides theATP processor module 102 with autonomous system (AS)network services 120 using thetransport handlers 122 and an AS network controller 124 (see, e.g.,FIGS. 3C and 3D ). In this example, thetransport handlers 122 are implement in theAS network services 120 rather than in thesystem processor SoM 104. TheAS network services 120 establishes and manages communications across one or more ATPs and/or autonomous systems and/or devices as part of theATP processor module 102 functionality. - The
AS network services 120 attempts to optimize communications performance metrics based on the available communications links. For example, a higher bandwidth communication link (e.g., 5G) may be used where available instead of a lower bandwidth communication link (e.g., Bluetooth). It should be appreciated that theAS network services 120 can change what communication links are used over time as conditions/environments change (e.g., a communication link becomes available that was previously unavailable). It should also be appreciated that theAS network services 120 can make communication decisions based on the content of the data collected, such as by one or more of thedevices 110. For example, if a gas sensor detects a gas leak, theAS network services 120 may select a fastest communication link. In a second example, if bandwidth decreases or latency increases across one or more communication resources, theAS network services 120 can indicate to theATP 100 that theATP 100 should modify its trajectory or behavior to avoid a loss of communications. In another example, theAS network services 120 can route communications to an ATP, autonomous system or remote system, or combination thereof, to act as a communications proxy in order to maintain an operational (e.g., to within a desired quality of service) end-to-end communications path to a remote system controller even in the presence of degraded performance or loss of communications. - In examples, the
AS network services 120 can support a software defined network. TheAS network services 120 includes an autonomous software defined network (A-SDN) data-plane communications controller 370 (see, e.g.,FIG. 3D ), which implements packet forwarding and routing based on an A-SDN control-plane communications controller 755 (see, e.g.,FIG. 7J ), which manages the complete network topology of the A-SDN. The A-SDN control-plane communications controller 755 is external to theATP 100, residing on a remote host, an ATP portable network controller 744 (see, e.g.,FIG. 7J ), an ATP platform controller withapplications 736, and/or the like, including combinations and/or multiples thereof. For example, theAS network services 120 coordinates a software defined network for theATP processor module 102 in conjunction with the A-SDN control-plane. TheAS network services 120 can implement a network instance to manage communications between theATP processor module 102 and the one or more of the devices 110 (and/or any other suitable devices). TheAS network services 120 can analyze the content of data collected by the one ormore devices 110 to make decisions on how to handle the data (e.g., route the data synchronously, route the data asynchronously, log/store the data for later routing, etc.). For example, the environment, conditions, etc. detected by the sensors of the one ormore devices 110 can change how theAS network services 120 routes data. - The
iATP SoC 108 also provides additional processing-cores for performing other tasks related to edge analytic data processing and machine learning, requiring the use of processing cores implementing AI, DSP, etc. For example, theiATP SoC 108 includesAI processor cores 126, digital signal processor (DSP)processor cores 128,scalar processor cores 130, real-time processor cores 132, and an inference andevent engine 134. - The AI (artificial intelligence)
processor cores 126 analyze data collected by sensor(s) associated with the one ormore devices 110 as described herein. For example, theAI processor cores 126 can implement one or more machine supervised learning engines trained to perform a task. In a second embodiment, theAI processor cores 126 can implement one or more unsupervised algorithms that do not rely on training in order to perform a task. As one such supervised machine learning example, an AI processor core of theAI processor cores 126 can include a machine learning model trained to identify a certain feature within images, such as using a convolutional neural network. Other types of AI/machine learning can also be implemented. TheDSP processor cores 128 include one or more digital signal processors that perform digital signal processing and complex mathematically operation (e.g., encoding/decoding, compressing, encryption, speech/image recognition/synthesis, noise cancelation, matrix mathematics, floating point calculations, and the like), on the data received by the one ormore devices 110. Thescalar processor cores 130 include one or more scalar processors that perform scalar processing (e.g., general computation operations, integer operations, etc.) on the data received by the one ormore devices 110. The real-time processor cores 132 include one or more real-time processors for processing the data received by the one ormore devices 110 in real-time (or near-real-time) within specific timing constraints or “deadlines” which may be adjustable, user-definable, and/or preset. The real-time processor cores 132 can also be utilized to generate complex pulse sequences used by NMR or MRI devices, for example. The inference andevent engine 134 provides the ability to ask questions of the iATP SoC 108 (e.g., query theiATP SoC 108 to determine when a particular event occurs). For example a remote system application can register to receive an event that is generated when a particular inference result has occurred, such as the detection of a given property within a processed image or inference derived from some combination or pattern of sensor results. As another example, the resulting analysis of an NMR measurement device can be utilized by the inference andevent engine 134 to generate an event when a particular property of the sample is detected or measured and classified accordingly. - In some examples, such as shown in
FIG. 1B , theiATP SoC 108 is a separate hardware device from thesystem processor SOM 104. However, in other examples some or all of the features and functionality of thesystem processor SOM 104 and theiATP SoC 108 can be integrated into a single hardware device, such as shown inFIG. 1C . In particular, the example ofFIG. 1C integrates the features and functionality of thesystem processor SoM 104 and theiATP SoC 108 as a single unit (e.g., integratediATP SoC 108 a). That is, the integratediATP SoC 108 a includes some or all of the features and functionality of the system processor SoM and theiATP SoC 108. -
FIG. 2 is a schematic illustration of an example implementation of theATP processor module 102 in acontrol system 200 according to one or more embodiments described herein. This example shows the basic structure of theATP processor module 102 including anATP interface controller 112. This example further shows that theATP processor module 102 is in communication with “dumb” (non-intelligent) and “smart” (intelligent) 110 a, 110 b respectively via andevices external system bus 209. - The
control system 200 manages the operation, command and control, data exchanges, and orchestration of functions between theATP processor module 102 and one or 110 a, 110 b. In this example, themore devices ATP processor module 102 includes theATP interface controller 112. TheATP processor module 102 manages interactions between ore or more ATPs coupled to an autonomous system (see, e.g.,FIGS. 4A, 4B, 4F ) through one or more communications methods. - The
ATP interface controller 112 provides a software interface abstraction, module control, feature implementation, and integration for each of the devices 110 (e.g., the 110 a, 110 b). Thedevices ATP interface controller 112 manages these functions for each device 110 (e.g., the 110 a, 110 b) while acting as an interface between the system, application, and communications processes executing concurrently in support of the overall platform operation. Thedevices ATP interface controller 112 is implemented a layered architecture, for example, having multiple layers. The upmost layer of the layered architecture handles message data communications for delivery or consumption outside the unit. The middle layer of the layered architecture includes one or more device feature implementations for managing the operation of a given device without requiring knowledge of the underlying hardware for that device. The lowest layer of the layered architecture includes the hardware interface layer, where feature operations from the layer above (i.e., the middle layer) are translated into direct hardware signaling and control operations. For example, theATP interface controller 112 manages each device's hardware instance (e.g., one or more of thedevices 110 b, 1210 b) in terms of low-level hardware level command and control methods over device busses that include UART, SPI, I2C, USB, programmable I/O, parallel and serial communications, and other real-time device interfaces. In an example, each of the 110 a, 110 b has a specific feature implementation that includes software code for managing and operating the givendevices device 110 and its associated functionality. For example, a temperature sensor device utilizes a device feature implementation that can read the specific temperature sensor device (registers) hardware, potentially transforming the accessed data, before handing the data to either of the synchronous or asynchronous message data delivery subsystems for processing further within the message andtransport services module 118. TheATP interface controller 112 supports multiple device feature implementations in a fully dynamic manner, whereby new feature implementations can be added, updated, and/or removed asdevices 110 are also added, updated, and/or removed. - The
ATP processor module 102 communicates with the 110 a, 110 b via andevices external system bus 209 that implements hardware control/data signals as previously described. Theexternal system bus 209 transfers information (e.g., data, messages, commands, etc.) between theATP processor module 102 and one or more of the 110 a, 110 b, which can be performed synchronously and/or asynchronously based on the hardware implementation. For example, serial peripheral interface (SPI) is a synchronous communications bus. In contrast, a universal asynchronous receiver/transmitter (UART) interface provides for asynchronous data delivery. In embodiments, thedevices external system bus 209 transfers command and control messages and/or data messages between theATP processor module 102 and one or more of the 110 a, 110 b. The command and control messages can command, for example, one of thedevices 110 a, 110 b to perform a function. The data messages can include data, for example, collected by a sensor associated with one of thedevices 110 a, 110 b. As an example, thedevices ATP processor module 102 uses theexternal system bus 209 to transfer a command and control message to thedevice 110 b to command thedevice 110 b to perform a task. In response, thedevice 110 b can send a data message (e.g., an acknowledgment, data collected by a sensor, etc.) back to theATP processor module 102 via theexternal system bus 209. - According to another aspect of the disclosure, command and data communications is provided over a synchronous delivery method based on request/response communication method that occur in near-or-real-time. In this embodiment, there is no message queuing wherein the message delivery occurs in accordance with the minimal latency of any computing device or communications channel. In this embodiment, near or real-time streaming of data is possible as messages are delivered within a bounded time-period.
- With continued reference to
FIG. 2 , theATP interface controller 112 includes anATP interface services 202,device feature libraries 204 a-204 n, . . . 204 n for the devices (e.g., the 110 a, 110 b), and device hardware interfaces 240. For example, thedevices device feature library 204 a is associated with thedevice 110 a, and thedevice feature library 204 b is associated with thedevice 110 b. Additional device feature libraries (e.g., thedevice feature library 204 n) are associated withadditional devices 110. - The
ATP interface services 202 includes the one or more device feature libraries implementations (e.g., thedevice feature libraries 204 a-204 n) having instruction codes on how to manage, operate and communicate (at the device electronics interface level via the device hardware interfaces 240) with the hardware specific devices in order to utilize the device capabilities and resources. Each of thedevice feature libraries 204 a-204 n define the features of its respective device. For example, if thedevice 110 a is a non-intelligent device (as described herein), thedevice feature library 204 a might define the type of sensor(s) disposed on thedevice 110 a, and other information about thedevice 110 a. If thedevice 110 a is an intelligent device (as described herein), thedevice feature library 204 b might define the intelligent communications stack offloading message delivery protocol that thedevice 110 b uses, and other information about thedevice 110 b. The device hardware interfaces 240 provide the hardware (e.g., electronic signals, protocols, devices, and/or the like, including combinations and/or multiples thereof) and driver-level interfaces to enable communication between theATP processor module 102 and the 110 a, 110 b.devices - In an embodiment, devices (such as the
110 a, 110 b) fall into one of two categories: non-intelligent (e.g., thedevices device 110 a) and intelligent (e.g., thedevice 110 b). As used herein, an “intelligent” device is a fully programmable element that is not fixed at design time and typically runs an operating system, which in turn can implement various program instructions. For example, an intelligent device could support intelligent communications stack offloading message delivery from the ATP processor module 102 (e.g., via a satellite module or the like), perform machine learning on data captured from sensors on board the device, execute device-specific feature processing and/or device driver functions to offload theATP processor module 102, and/or the like, including combinations and/or multiples thereof. In some examples, an intelligent device is able to perform message publishing to theexternal system bus 209 or even generate HTTP operations towards theATP processor module 102. - In contrast, a “non-intelligent” device does not have a fully reprogrammable processor running an OS or some stack and instead relies on the
ATP processor module 102 to perform tasks that an intelligent device would do. A non-intelligent device in one embodiment is a sensor module where theATP processor module 102 is interfacing at the hardware level to pull data from the sensor. In this embodiment, theATP processor module 102 publishes or generates a synchronous data push on behalf of the non-intelligent device (e.g., thedevice 110 a). This notwithstanding, the non-intelligent device could still include a complex state-machine, FPGA, etc. to process fixed instructions and/or algorithms encoded in the state-machine. Examples include reading the sensor, averaging data or performing other data processing, real-time hardware management or processing, compressing/encrypting, and packetizing data so theATP processor module 102 device driver does not have to perform or deal with these operations, and the like. - In the example of
FIG. 2 , thedevice 110 a includes adevice hardware interface 210 to interface with theATP processor module 102 via theexternal system bus 209. Thedevice 110 a also includesdevice feature hardware 212, such as a sensor, an analog-to-digital converter, an image scanner, and/or the like, including combinations and/or multiples thereof. Thedevice 110 a is a non-intelligent device in that software is executed outside of thedevice feature hardware 212 or within theATP processor module 102. In such cases, the data is communicated to theATP processor module 102 via theexternal system bus 209 using synchronous and/or asynchronous communication as described inFIGS. 3A, 3B . For example, synchronous and/or asynchronous delivery schemes can be message-based and/or restful-based services over multiple connection types. Connection types can include TCP/IP, UDP/IP, HTTP over TCP/IP, Reliable UDP/IP (for example QUIC protocol over UDP), HTTP over QUIC/UDP/IP, as well as support for each of unicast, multicast, and broadcast domains over standard or proprietary transport and physical layer mediums. As shown inFIG. 3B , for example, theconnection manager 311 provides information to theATP interface controller 112 so theATP interface controller 112 knows, for outbound communications, which connection type (e.g., synchronous or asynchronous) is ideal for a given window of messages. The window size (definable in terms of number of time-duration, packets, messages, orATP interface controller 112 function calls) can be configured through either ofuser configuration 321 and/orsystem configuration 323, and/or dynamically by metrics processed by the AS network controller. - The
device 110 b includes adevice hardware interface 210 to interface with theATP processor module 102 via theexternal system bus 209. Thedevice 110 b also includes device feature hardware 216 (e.g., a sensor, an analog-to-digital converter, an image scanner, and/or the like, including combinations and/or multiples thereof), adevice operating system 218, and device processor and program code 220. Thedevice 110 b is an intelligent device in that software can reside on thedevice 110 b as shown by thedevice operating system 218 and the device processor and program code 220. Thedevice operating system 218 executes the program code residing on the device processor and program code 220, which together provide for thedevice 110 b (an intelligent device) to execute software code or instructions independent from theATP processor module 102. - For either of the
110 a, 110 b, the device hardware interfaces 1240 provides low-level hardware control and data signals between thedevices 110 a, 110 b and thedevices ATP processor module 102. In some embodiments, the intelligent device (e.g., thedevice 110 b) can offload processing from theATP processor module 102 and/or perform other computational and analysis tasks such as preprocessing or transforming data, performing data analysis and analytics, managing the operation of a more complex device hardware either in parallel or in coordination with theATP processor module 102 operation, and/or the like, including combinations and/or multiples thereof. In some embodiments, the intelligent device (e.g., thedevice 110 b) and/or theATP processor module 102 can provide communications and processing of data for orchestrating and coordination the operation and functionality of one or more other autonomous systems or devices. -
FIGS. 3A and 3B are schematic illustrations of communication schemes for incoming (inbound) command/data and outgoing (outbound) command/data that utilize dynamically controlled synchronous and/or asynchronous communication processing according to one or more embodiments described herein. - Particularly,
FIG. 3A shows acommunication scheme 300A for incoming (inbound) command/data. Thecommunication scheme 300A sends data from an external source (e.g., an autonomous system, an ATP, an ATP portable network controller, or remote host) through theATP processor module 102 to one ormore devices 110. Thecommunication scheme 300A can use asynchronous communication path 310 and/or anasynchronous communication path 312, which are now described in more detail. - The
communication scheme 300A sendsdata 304 from an external source (e.g., an autonomous system) through theATP processor module 102 and to one ormore devices 110. The ATP processor module system software/OS 116 performs relevant portions of thescheme 300A. It should be appreciated that, in one or more embodiments, there could be a device (e.g., one of the devices 110) that implements a communication function that sends its data to, or receives data from, theATP processor module 102 in a manner that is consistent with the architecture ofFIGS. 3A, 3B . In the example ofFIG. 3A ,data 304 is received as described herein, such as from an autonomous system, a platform controller, an ATP portable network controller (see, e.g.,FIG. 7J ), and/or an external device, by the AS network services 120 (see, e.g.,FIGS. 1B, 1C ), which includestransport handlers 122 and theAS network controller 124. As described with reference toFIGS. 3A and 3B , thedata 304 can be data in any form, including raw data, a command, a formatted message, etc. Thedata 304 can be received via any suitable communications protocol, such as USB, radio frequency, WiFi, Bluetooth (BT), satellite, cellular, ethernet, etc. The data are received by thetransport handlers 122 depending on the type of communications protocol used (e.g., a USB transport hander handles data received by USB, etc.). Thedata 304 is then passed from the appropriate one of thetransport handlers 122 to theAS network controller 124. TheAS network controller 124 then routes the data to the devices via the message andtransport services module 118 using asynchronous communication path 310 and/or anasynchronous communication path 312. - The
synchronous communication path 310 begins at block 314, where thedata 304 is decoded and processed as a synchronous message. Thedata 304 is then passed to block 316 where the synchronous message is delivered to theATP interface controller 112. The data can then be processed and passed to one or more of thedevices 110 as appropriate. - The
asynchronous communication path 312 begins atblock 318, where thedata 304 is decoded and processed as an asynchronous message. Thedata 304 is then passed to block 320 where the asynchronous message is queued and published to a command/data queue. Amessage broker 322 then delivers the queued message to the appropriate one or more of thedevices 110. -
FIG. 3B shows acommunication scheme 300B for outgoing (outbound) command/data. This communication scheme sends data from one ormore devices 110 through theATP processor module 102 to an external device (e.g., an autonomous system). Thecommunication scheme 300B can use thesynchronous communication path 310 and/or theasynchronous communication path 312 based on the decisioning logic of theconnection manager 311 in conjunction with theATP interface controller 112. As described above, as shown inFIG. 3B , for example, theconnection manager 311 provides information to theATP interface controller 112 so theATP interface controller 112 knows, for outbound communications, which connection type (e.g., synchronous or asynchronous) is ideal for a given window of messages. With reference toFIG. 1A , theconnection manager 311 queries the ATP processor module system software/OS 116 (as shown inFIG. 3B ), which gathers metrics from thetransport handlers 122 to provide theconnection manager 311 with intelligence. With reference toFIGS. 1B and 1C , theconnection manager 311 receives its “intelligence” from theAS network controller 124. Intelligence in this context means the results of AI or rules-based processing of the communications systems data as described herein (e.g., QoS, bandwidth, latency, etc.) and what the ideal connection types are for some window of time. In each of these cases, theconnection manager 311 provides control signaling data to theATP interface controller 112 so theATP interface controller 112 knows whether the data to be sent outbound (seeFIG. 3B ) should be sent via thesynchronous communication path 310 or theasynchronous communication path 312 or theasynchronous communication path 312. Thecommunication scheme 300B generally flows opposite thecommunication scheme 300A, in that thedata 304 is transferred by one or more of thedevices 110 through the ATP processor module 102 (using thesynchronous communication path 310 and/or the asynchronous communication path 312) and outbound to an external device, such as an autonomous system. - Particularly, one or more of the
devices 110 transfers thedata 304 to theATP interface controller 112, which then transfers thedata 304 using thesynchronous communication path 310 and/or theasynchronous communication path 312 as shown. As described herein, theconnection manager 311 decides whether to use thesynchronous communication path 310 and/or theasynchronous communication path 312. According to one or more embodiments described herein, thedata 304 is transferred inbound and outbound using the same communication scheme. For example, if theconnection manager 311 decides what to do as thedata 304 heads outbound (e.g., reroute over message bus, stay on HTTP, persist to local flash memory storage, schedule for later delivery, etc.), thedata 304 is processed the same way when heading inbound. However, in some embodiments, different communication schemes can be used for the inbound and outbound data. Using thesynchronous communication path 310, thedata 304 is passed to block 316 where the synchronous message is delivered to theAS network controller 124, which performs scheduling, transport selection, and delivery management. Using theasynchronous communication path 312, thedata 304 is passed to themessage broker 322, which then transfers thedata 304 to theAS network controller 124. As examples, theAS network controller 124 can perform its functions by the assembly of SDN control, transport rule engine management, quality of service (QoS)/rate processing units, and/or the like, including combinations and/or multiples thereof. - The
AS network services 120 uses thetransport handlers 122 to transmit the data from theAS network controller 124 to an external device (e.g., an autonomous system). TheAS network controller 124 can utilizeuser configuration 321 and/orsystem configuration 323 to determine how to transfer the data. For example, theuser configuration 321 and/or thesystem configuration 323 can specify which of thetransport handlers 122 to use in various situations, what policies require implementation and/or enforcement, when to transfer thedata 304, when to store thedata 304 locally, etc. - According to one or more embodiments described herein, the
AS network services 120 performs tag processing. In such examples, theAS network controller 124 functions as a tagging module (see e.g.,VAN tagging engine 372 of FIG. 3E). In such cases, telemetry streams can be assigned and associated to a “virtual autonomous network” identifier (VAN ID #) to support virtual or logical networks each with a QoS that is tied to the telemetry modules, devices, and/or the data entity characteristics across one or more autonomous systems or devices whose networks are either flat or complex topologies, and/or heterogeneous in nature (e.g., 5G, WiFi, satellite, etc.). This provides for prioritizing the traffic in an end-to-end manner and across multiple autonomous systems or devices for a given telemetry stream. In one or more embodiments, the tagging module can be incorporated theAS network controller 124 to provide for realization of device or mesh networks that are more intelligent. -
FIG. 3C is a block diagram of theAS network controller 124 of the autonomoussystem network services 120 according to one or more embodiments described herein. TheAS network controller 124 is able to react to what is occurring within a network layer and external devices (e.g., the devices 110). For example, where radiation or energy field levels are detected to be rising, a communication path becomes noisier. In this case, theAS network controller 124 can cause the autonomous system 404 (see, e.g.,FIGS. 4A, 4B, 4F ) to take an action such as stop/back out because of increasing radiation or energy levels or switch from WiFi to radio frequency, for example, because the autonomous system is about to lose WiFi connectivity due to being out of range. - In this example,
data 304 is transferred from and received by a real-time networkpacket processing engine 350 whose message streams operate either synchronously and/or asynchronously, as described with reference toFIGS. 3A, 3B . For example, thedata 304 is sent to and/or received fromtransport handlers 122. Similarly, thedata 304 is sent to and/or received from theATP interface controller 112. - The real-time network
packet processing engine 350 is communicatively coupled to a real-time transport andtelemetry metrics processor 352 and acommunications controller 354. The real-time transport andtelemetry metrics processor 352 analyzes real-time telemetryparametric data 366 associated with thedata 304. The real-time telemetryparametric data 366 includes telemetry data/information collected by one or more of thedevices 110. Telemetry data/information can include quality-of-service information, signal level information, etc. For example, the real-time telemetryparametric data 366 can be hardware driven, for example, a frequency of measurements from a sensor that is fixed as part of the device configuration profile or a fixed set of image data sizes from a camera. The real-time telemetryparametric data 366 can be statically defined as part of defining the resources for a given device or dynamically defined and change in real-time over time. For example, camera resolution can change or the frequency of measurements can increase or decrease based on environment conditions. As another example, size of data samples can change over time depending on the configuration of devices utilized and/or their respective configurations. In the case where theATP processor module 102 and/ordevices 110 are part of a mesh network, the real-time transport andtelemetry metrics processor 352 may see data from other processor modules and/or platforms in cases where it is potentially routing messages. In this case, the real-time telemetryparametric data 366 are a stream of data messages that may have dynamic characteristics and behavior. - The real-time transport and
telemetry metrics processor 352 and thecommunications controller 354 make decisions based on various inputs, such as the real-time telemetryparametric data 366, rules/policies generated by a configuration and transport rules/policy generator 356,data 304 received by anATP system interface 364, and information received from the autonomous system via an inference andevent engine 360 and the ATP processor module system software/OS 116. According to one or more embodiments described herein, the inference and event engine 336, based on real-time metrics, generates events to theautonomous system 404, other ATPs, a remote host, portable network controller subsystems as described herein, and/or the like, including combinations and/or multiples thereof. - The configuration and transport rules/
policy generator 356 establishes rules and/or policies that define how thecommunications controller 354 is to orchestrate the processing of data messages by the real-time networkpacket processing engine 350 depending on different conditions. For example, where quality of service metrics indicate a reduction in one communication protocol (e.g., WiFi), the rules may dictate that the real-time networkpacket processing engine 350 should change to a different communication protocol (e.g., radio frequency). The configuration and transport rules/policy generator 356 establishes the rules and/or policies based onuser configuration 321 and/orsystem configuration 323. Using theuser configuration 321 information and/orsystem configuration 323 information as well as transport rules defined by the configuration and transport rules/policy generator 356 as well as the real-time telemetryparametric data 366, the real-time transport andtelemetry metrics processor 352, in conjunction with thecommunications controller 354, orchestrates low-level communications processing by the real-time networkpacket processing engine 350 accordingly. That is, in examples, thecommunications controller 354 can provide scheduling and selection of transports to optimize delivery and satisfaction of user-defined communication metrics provided by theuser configuration 321 information. In an embodiment, input configurations are processed and a static/deterministic set of rule processing is utilized by thecommunications controller 354 to decide how to utilize communication resources. This scheme shown inFIG. 3C is dynamic in that different actions can happen at different times, but the actions are predefined based on a if-then-else set of transport rules generated by the configuration and transport rules/policy generator 356. In an embodiment, thecommunications controller 354 in conjunction with the real-time transport andtelemetry metrics processor 352 provide control signaling to theconnection manager 311 in order to orchestrate the optimal connection protocols (such as synchronous or asynchronous message delivery) during outbound communications (see, e.g.,FIG. 3B ). For example, theconnection manager 311 of the message andtransport services module 118 provides steering logic to theATP interface controller 112 so theATP interface controller 112 can control how to send messages (e.g., synchronously over HTTP, asynchronously (message based (utilizing MQTT as example also known as MQ Telemetry Transport a light-weight messaging protocol based on the publish/subscribe machine-to-machine communications pattern)), and/or the like, including combinations and/or multiples thereof). - The configuration and transport rules/
policy generator 356 can develop an intelligent strategy (for managing the communications resources and network tasks) that adapts over time based on the real-time transport andtelemetry metrics processor 352 and thecommunications controller 354 constantly making decisions (based on rules or learning algorithms) on how to manage the message delivery needs versus available and state of the communications resources. For example, it can generate and deliver the optimal connection protocol behavior to the message andtransport services module 118 defining when to use asynchronous or synchronous communication as described herein. For example, when there are multiple communications and parametrics, such as bandwidth, latency, QoS, constraints, and other cost functions imposed by the system and telemetry sources, etc., thecommunications controller 354 considers each of these conditions when determining how to configure or reconfigure in real-time the real-time networkpacket processing engine 350 for best use of available communication resources. The decision can be made separately for each packet, destination, for a particular device, for a particular session/connection, and/or the like. Thecommunications controller 354 directs the real-time networkpacket processing engine 350 accordingly. This approach is particularly useful when dealing with a distributed architecture (e.g., mesh networks, swarms of remote systems such as UAVs, etc.). -
FIG. 3D is a block diagram of the autonomoussystem network controller 124 according to one or more embodiments described herein. In this example, theAS network controller 124 includes the components of theAS network controller 124 but also supports an autonomous software defined network (A-SDN) using an A-SDN data-plane communications controller 370. Thebox 368 is used to show that each of theATP system interface 364 and the configuration and transport rules/policy generator 356 are in communication with the real-time transport andtelemetry metrics processor 352, thecommunications controller 354, and the A-SDN data-plane communications controller 370. The A-SDN data-plane communications controller 370 manages, at a data-plane level, communications within an A-SDN as described further herein. - The A-SDN data-
plate communications controller 370 reacts to command/control messages received from an A-SDN control-plane communications controller 755 (see, e.g.,FIG. 7J ) and to inject these into thecommunications controller 354. Based thereon, thecommunications controller 354 can arbitrate these command/control messages (e.g., instructions) against local policies/rules defined by the configuration and transport rules/policy generator 356 and metrics from the real-time transport andtelemetry metrics processor 352. In some examples, some of the optimization processing performed by thecommunications controller 354 can be handled by machine learning and/or other statistical learning techniques as described herein. In conjunction with the instructions received by the A-SDN data-plane communications controller 370 and sent to thecommunications controller 354, thecommunications controller 354 can control and orchestrate the operation of the real-time networkpacket processing engine 350. For example, thecommunications controller 354 can select the optimal communications transport based on a combination of local metrics from the real-time transport andtelemetry metrics processor 352, and operations from the A-SDN data-plane communications controller 370 as a function of the global topological or environmental conditions processed and delivered by the A-SDN control-plane communications controller 755 (see, e.g.,FIG. 7J ). -
FIG. 3E is a block diagram of the real-time transport andtelemetry metrics processor 352 of the autonomoussystem network controller 124 ofFIGS. 3C and 3D according to one or more embodiments described herein. In this example, the real-time transport andtelemetry metrics processor 352 communicatively couples to thecommunications controller 354 and the real-time networkpacket processing engine 350 as shown (see alsoFIG. 3D ). The real-time transport andtelemetry metrics processor 352 also receives data/information from the configuration and transport rules/policy generator 356 as shown. - The real-time transport and
telemetry metrics processor 352 includes various analyzers, engines, and optimizers to generate metrics about communications. For example, the real-time transport andtelemetry metrics processor 352 includes a rate/bandwidth (BW)analyzer 371, atransport rule engine 373, a quality of service (QoS)analyzer 374, and aconstraint optimizer 375. The rate/BW analyzer 371 generates rate/bandwidth information indicative of the rate/bandwidth of various communications channels/protocols/schemes. Thetransport rule engine 373 defines transport rules (e.g., if-then-else statements) that are implemented to facilitate data transport. TheQoS analyzer 374 generates QoS information indicative of the quality of service of various communications channels/protocols/schemes. Theconstraint optimizer 375 determines how to best schedule message streams delivery requirements across available communications resources to optimize resource utilization to maximize bandwidth and/or minimize latency given a set of constraints (e.g., bit-rate errors, latency measurements, signal quality, and/or the like, including combinations and/or multiples thereof). The decision can be made separately for each packet, message stream, ATP, for a particular device, for a particular session/connection, and/or the like. - The real-time transport and
telemetry metrics processor 352 also includes ametrics processor 376 to process the metrics generated by the rate/BW analyzer 371, thetransport rule engine 373, theQoS analyzer 374, and theconstraint optimizer 375. The time transport andtelemetry metrics processor 352 also includes ametrics cache memory 377 to store the metrics generated by the rate/BW analyzer 371, thetransport rule engine 373, theQoS analyzer 374, and theconstraint optimizer 375. - Communication resource status includes multiple metrics (that may be computed, measured, and/or otherwise learned utilizing machine learning algorithms) by communications method, such as communications link status, average bandwidth, response time, latency, congestion, reliability, signal strength, and other cost/metrics-based functions or other quality-of-service (QoS) parameters associated to a given communications service. The transport rule engine, as described herein, also establishes scheduling events and delivery prioritization associated to a message flow. For example, high-priority messages are routed to a synchronous delivery method; however, if this resource is unavailable, the transport rule engine determines whether the message flow should be queued for asynchronous delivery. In one further example embodiment, the transport rule engine determines whether message-data should be persisted locally in order to prevent loss of data in the case of communications systems unavailability. The data transmission/reception performed by the message and
transport services module 118 can be synchronous or asynchronous communications as described herein (see, e.g.,FIGS. 3A, 3B ). The processing algorithms executed by the message andtransport services module 118 are driven by user and/or system level configuration information (see, for example,FIGS. 3B, 3D ). User configuration information (e.g., user configuration 321) includes labeling each device telemetry flow to a desired set of attributes that define the communications pattern, transport, and scheduling configuration. The system configuration information (e.g., system configuration 323) defines global parameters as well as default processing rules in the event the user configurations are unrealizable or non-optimal given the current state of the ATP communication resources. -
FIGS. 3F and 3G are block diagrams of thecommunications controller 354 of the autonomoussystem network controller 124 ofFIGS. 3C and 3D . In these examples, thecommunications controller 354 communicatively couples to the real-time networkpacket processing engine 350 and the real-time transport andtelemetry metrics processor 352 as shown (see alsoFIG. 3D ). - In these examples, the real-time transport and
telemetry metrics processor 352 includes local metrics/data processing 1902 and remote metrics/data processing 1904 for processing local metrics 786 (seeFIG. 7P ) and remote metrics 788 (seeFIG. 7P ) respectively. - In each of the examples of
FIGS. 3F and 3G , thecommunications controller 354 includes a network packet processingengine control module 380, acommunications processor 381, aconfiguration manager 382, a machine learning basedprocessing engine 1912, and a rule basedprocessing engine 1910. The network packet processingengine control module 380 examines/evaluates/manipulates network packets and executes the forwarding oflayer 0 and/orlayer 1 network frames among communication interfaces based on control signaling operations from thecommunications controller 354. Concurrently, the real-time networkpacket processing engine 350 maintains a set of metric counters for measuring communication network metrics as described herein. According to one or more embodiments described herein, the real-time networkpacket processing engine 350 provides for port forwarding and routing, policy/rules implementation/enforcement, VAN tagging by packet manipulation, downstream routing/caching for synchronous versus asynchronous data, and deep packet inspection (DPI)/extraction/computation of metrics used by the real-time transporttelemetric metrics processor 352. - The
configuration manager 382 receives configuration/policy rules 1906 (e.g., theuser configuration 321, thesystem configuration 323, etc.). The 1910, 1912 process data and determine how to manage communications. For example, theengines 1910, 1912 can use the local metrics/engines data processing 1902, the remote metrics/data processing 1904, and/or the configuration/policy rules 1906 to determine how to route data for given measurements (e.g., bandwidth measurements, latency measurements, signal strength measurements, device measurements, and/or the like, including combinations and/or multiples thereof as described inFIGS. 10A-10C ). That is, the 1910, 1912 provide a framework to make intelligent decisions on next-state behavior for local and/or remote communication resources targets. Theengines communications processor 381 evaluates information provided by the 1910, 1912 on how to manage network resources within the network packet processingengines engine control module 380. - As shown in the example of
FIG. 3F , the real-time networkpacket processing engine 350 can include aVAN tagging engine 372. However, in other examples, theVAN tagging engine 372 can instead be implemented by thecommunications controller 354. TheVAN tagging engine 372 assigns a “virtual autonomous network” (VAN) identifier (VAN ID #) to support virtual or logical networks, each with a QoS that is tied to the telemetry modules, devices, and/or the data entry characteristics across one or more autonomous systems or devices whose networks are either flat or have complex topologies, and/or heterogeneous in nature (e.g., 5G, WiFi, satellite, and/or the like, including combinations and/or multiples thereof). This provides for prioritizing the traffic in an end-to-end manner and across multiple autonomous devices and/or ATPs for a given telemetry stream. The rules/policies defined by the configuration and transport rules/policy generator 356 tells thecommunication controller 354 how to coordinate the tagging of network packets within the real-time networkpacket processor engine 350. - In the example of
FIG. 3G , thecommunications controller 354 supports A-SDN implementations. For example, thecommunications controller 354 can also include an OpenFlowA-SDN processing module 383 communicatively coupled to the A-SDN data-plane communications controller 370. According to one or more embodiments described herein, thecommunications controller 354 can act alone and/or in parallel to processing A-SDN data-plane instructions by the OpenFlowA-SDN processing module 383. This is described further herein regarding how to operate with or without A-SDN functionality. -
FIG. 3H is a block diagram of theATP interface controller 112 of theATP processor module 102 ofFIG. 2 according to one or more embodiments described herein. This example shows the handling of incoming (inbound) command/data and outgoing (outbound) command/data according to one or more embodiments described herein. - For synchronous inbound command/data (which may be request/response-based or streaming-based), the command/data is received at a request/
response interface 386 of a device feature library instance 204 (e.g., an instance of one or more of thedevice feature libraries 204 a-204 n) of theATP interface controller 112. For asynchronous inbound command/data (which may be message-based), the command/data is received at a command/data message subscriber 387. Once the command/data is received at blocks 1340 or 1342 depending on whether the communication is synchronous or asynchronous, a devicefeature implementation unit 388 implements the command/data using information about thedevice 110 stored in the devicefeature library instance 204. The processormodule hardware interface 389 provides the hardware and driver-level interfaces to enable communication between theATP processor module 102 and one or more of thedevices 110. - Outbound communication is similar as shown. However, in the case of the outbound communication, the
connection manager 311 is implemented. For outbound communication, the adevice 110 sends command/data through the processormodule hardware interface 389, which uses the devicefeature library instance 204 to transmit the command/data out as shown. Theconnection manager 311 informs the devicefeature library instance 204 of theATP interface controller 112 whether to use synchronous or asynchronous messaging as described herein (see, e.g.,FIG. 3B ). For synchronous outbound command/data, a request/responsesynchronous callback interface 390 is used. For asynchronous outbound command/data, the command/data are queued and published to a command/data queue atblock 391. In either case, the data is then output through theATP interface controller 112 as shown. - To summarize, inbound communications and associated connection type is based on the source of network messages. Outbound messages begin from the
ATP interface controller 112, where connection type is determined by theconnection manager 311 based on metrics gathered (as described herein), and messages first flow to the message andtransport services module 118, then out towards the network modules depending on the implementation of theATP processor module 102 used (see, e.g.,FIGS. 1A-1C ) -
FIGS. 4A-4F are schematic illustrations of examples of implementations of the autonomous telemetry platform (ATP) 100 according to embodiments described herein. As described herein, theATP 100 collects, processes, and manages data for one or more aspects of an autonomous system. For example, an ATP is used to acquire, process data, and manage data flows and communications within an autonomous system and/or between/among multiple autonomous systems, and/or between/among multiple ATPs. - The example of
FIG. 4A shows an internal implementation of theATP 100 being integrated or embedded into anautonomous system 404 or other similarly suitable device. The example ofFIG. 4B shows an external implementation of theATP 100 being integrated into ahost platform 405, which is in communication with theautonomous system 404 or other similarly suitable device. Thehost platform 405 can be any platform in which an ATP is embedded separate from the autonomous system or device. The example ofFIG. 4C shows an implementation of theATP 100 being coupled to avehicle 406. The example ofFIG. 4D shows an implementation of theATP 100 being coupled to anaircraft 408. The example ofFIG. 4E shows an implementation of theATP 100 being coupled to aUAV 409. The example ofFIG. 4F shows an implementation of theATP 100 being integrated into anexpansion platform 410 where one or more sensors are controlled and data is processed by an instance ofATP 100 prior to delivery to the autonomous system 400 or other similarly suitable device. It should be appreciated that the examples ofFIGS. 4A-4F are provided for illustrative purposes and are not intended to limit the claims. Other examples are also possible. -
FIG. 5A is a schematic illustration of theATP 100 ofFIG. 4A according to one or more embodiments described herein. In this example, theATP 100 is integrated or embedded in an autonomous system 404 (see, e.g.,FIG. 4A ). TheATP 100 includes theATP processor module 102, which can be configured in accordance with one or more embodiments described herein (see, e.g.,FIGS. 1A-1C ) and can use the communications subsystem implementation shown inFIGS. 3C and 3D . Theautonomous system 404 also includesdevices 110, which may be equipped with one or more sensors for collecting data. As an example, thedevices 110 can include intelligent devices and/or non-intelligent devices as described herein. Although fivedevices 110 are shown, other numbers (e.g., more or less) ofdevices 110 can be implemented in other examples. -
FIG. 5B is a schematic illustration of theATP 100 ofFIG. 4B according to one or more embodiments described herein. In this example, theATP 100 is integrated or embedded in a host platform 405 (see, e.g.,FIG. 4B ). TheATP 100 includes theATP processor module 102, which can be configured in accordance with one or more embodiments described herein (see, e.g.,FIGS. 1A-1C ) and can use the communications subsystem implementation shown inFIGS. 3C and 3D . Thehost platform 405 is in communication (e.g., USB, cellular, Bluetooth, radio frequency, satellite, etc.) as described with theautonomous system 404 as shown. Theautonomous system 404 includesdevices 110, which may be equipped with one or more sensors for collecting data. As an example, thedevices 110 can include intelligent devices and/or non-intelligent devices as described herein. Although fivedevices 110 are shown, other numbers (e.g., more or less) ofdevices 110 can be implemented in other examples. -
FIGS. 6A and 6B are schematic illustrations of example implementations of thehost platform 405 and theATP 100 according to one or more embodiments described herein. In the example ofFIG. 6A , theATP 100 is separate from but in communication with both thehost platform 405 and theautonomous system 404. As an example, thehost platform 405 can be an expansion platform. As another example, the host platform can be other portable embedded computing devices provided they operate semi-autonomously and/or autonomously. TheATP 100 includes theATP processor module 102, which can be configured in accordance with one or more embodiments described herein (see, e.g.,FIGS. 1A-1C ) and can use the communications subsystem implementation shown inFIGS. 3C and 3D . TheATP 100 facilitates and manages communication between theATP 100 and one or more devices 110 (e.g., sensors), which are disposed in or otherwise associated with thehost platform 405. - In
FIG. 6A , thehost platform 405 is coupled to or otherwise accessible via a network to theATP 100 while inFIG. 6B , theATP 100 is embedded in thehost platform 405. As an example, thehost platform 405 can be an expansion platform. As another example, the host platform can be other portable embedded computing devices provided they operate semi-autonomously and/or autonomously. TheATP 100 includes theATP processor module 102, which can be configured in accordance with one or more embodiments described herein (see, e.g.,FIGS. 1A-1C ) and can use the communications subsystem implementation shown inFIGS. 3C and 3D . TheATP 100 facilitates and manages communication between theATP 100 and one or more devices 110 (e.g., sensors), which in communication with thehost platform 405. - According to an embodiment, the
ATP 100 can be utilized within a portable or autonomous or semi-autonomous NMR detector, monitor, or analysis device. For example the NMR device can be a module and theATP 100 is coupled to the NMR device. TheATP 100 can be embedded within the NMR device to provide the ATP functionality to the NMR device. For example, such anATP 100 can interface with anautonomous system 404 that is a NMR system or device as depicted in the examples ofFIGS. 5A, 5B, 6A, 6B . The NMR application for visualization and user activity can be remote from the data acquisition. This results in a distributed NMR system for portable data acquisition where theATP 100 provides for data acquisition, pre-processing, and/or transmission to another device that provides for remote display/visualization of the data. -
FIGS. 7A-7D are schematic illustrations of different communication paths between and amongmultiple ATPs 100 and/or aremote computing system 720 according to one or more embodiments described herein. The communication paths shown inFIGS. 7A-7D can be any combination of unicast, multicast, or broadcast; synchronous or asynchronous; and over multiple transport types concurrently; organized in a different topologies, such as mesh; and/or the like, including combinations and/or multiples thereof. In examples, communications can be point-to-point between the ATPs 100 (e.g.,FIG. 7A ), point-to-point betweenATPs 100 and the remote computing system 720 (e.g.,FIG. 7B ), and/or can be relayed (e.g.,FIG. 7C ). In examples, a mesh network among the ATPs and remote computing system can be formed (e.g.,FIG. 7D ). - In
FIG. 7A , threeautonomous systems 404 are shown, each having anATP 100 embedded in or otherwise associated therewith. The ATPs are in point-to-point communication with each other as shown bylinks 710. - In
FIG. 7B , threeautonomous systems 404 are shown, each having anATP 100 embedded in or otherwise associated therewith. In this example, theATPs 100 are in point-to-point communication with theremote computing system 720 as shown by thelinks 712. Theremote computing system 720 can be any suitable computing device or system, such as a laptop computer, a tablet computer, a smartphone, a server, a node of acloud computing environment 722, an embedded processor or controller, and/or the like, including combinations and/or multiples thereof. - In
FIG. 7C , threeautonomous systems 404 are shown, each having anATP 100 embedded in or otherwise associated therewith. In this example, theATPs 100 can utilize one another's communication resources to transfer data among each other and to theremote computing system 720 as shown by thelinks 714. This configuration provides for relaying data/messages from oneATP 100 to theremote computing system 720 viaother ATPs 100 as shown. - In
FIG. 7D , threeautonomous systems 404 are shown, each having anATP 100 embedded in or otherwise associated therewith. In this example, theATPs 100 andremote computing system 720 together form a mesh network as shown by thelinks 716. -
FIGS. 7E and 7F are schematic illustrations of example implementations of theATP 100 within theautonomous system 404 and an autonomoussystem platform controller 734 according to one or more embodiments described herein. In these examples, theATP 100 includescommunication resources 730, which include the hardware, interfaces, and/or protocols capable of transmitting data from and/or receiving by theATP 100 while utilizing the AS communications transport 732 implemented by theAS 404 to simultaneously carry data to/from theATP 100 and a remote system. As an example, thecommunication resources 730 transmits data to and/or receives data from theAS platform controller 734 via anAS communications transport 732 as shown. TheAS platform controller 734 includes an ATP platform controller withapplications 736, which is integrated/embedded into theAS platform controller 734. TheAS platform controller 734 manages communications between theautonomous system 404 and external devices, such as other autonomous systems, remote computing systems, cloud computing environments, and/or the like, including combinations and/or multiples thereof. The ATP platform controller withapplications 736 leverages communications support/infrastructure within the AS platform controller. In the example ofFIG. 7F , theAS platform controller 734 communicates with a cloud environment referred to as ATP cloud platform withapplications 740, such as via a network connection (e.g., the Internet 738). -
FIGS. 7G and 7H are schematic illustrations of example implementations of theATP 100 within theautonomous system 404, theAS platform controller 734, and the ATP platform controller withapplications 736 according to one or more embodiments described herein. In these examples, the ATP platform controller withapplications 736 resides on a separate remote host/computer (e.g., a tablet computing device, a smartphone, a laptop, and/or the like, including combinations and/or multiples thereof), which leverages autonomous system communications support/infrastructure. TheAS platform controller 734 and the ATP platform controller withapplications 736 communicate via an AS-ATPcommunications transport link 742 as shown. Access to the ATP cloud platform withapplications 740 is also supported as shown inFIG. 7H via theInternet 738 or another suitable communication link. - In the examples of 7E-7H (among others), the ATP platform controller with
applications 736 can analyze and act on data that is received, such as from theATP 100. For example, adevice 110 associated with theATP 100 can collect data as described herein (e.g., sensor data or NMR device), and the ATP platform controller withapplications 736 can analyze/process the data and perform operations depending on what applications are available on the ATP platform controller withapplications 736. As an example, the ATP platform controller withapplications 736 can receive data frommultiple ATPs 100, can analyze the data to determine where the ATPs are located geographically and where to move or change the behavior of theautonomous system 404 to depending on an event occurring within an environment of the ATPs 100 (e.g., detected weather event, such as a storm may indicate that theautonomous system 404 should be moved where the ATPs are embedded in or otherwise associated with theautonomous system 404, which can be an unmanned aerial vehicle). In some examples, the ATP cloud platform withapplications 740 can provide similar functionality to the ATP platform controller withapplications 736. -
FIG. 7I is a schematic illustration of an example implementation of an ATPportable network controller 744 according to one or more embodiments described herein. In this example, the ATP platform controller (see, e.g.,FIGS. 7E-7H ) leverages and accesses the ATPportable network controller 744, which manages one or more ATP communications and provides access point capabilities and connectivity across multiple communication resources, dynamically/intelligently. The ATPportable network controller 744 can support various communication schemes/protocols, such as radio frequency, satellite, WiFi, Bluetooth, cellular, and/or the like, including combinations and/or multiples thereof. In an example, the A-SDN control-plane communications controller 755 is implemented (see, e.g.,FIG. 3D, 3G ) in the ATPportable network controller 744. Access to the ATP cloud platform withapplications 740 is also provided. - The
communication resources 730 of theATP 100 can be in communication with asatellite 746 or other suitable device for relaying data between theATP 100 and the ATP cloud platform withapplications 740. Thecommunication resources 730 of theATP 100 can also be in communication with the ATPportable network controller 744 via a first communication protocol (e.g., radio frequency, WiFi, cellular, etc.) which is provided by theATP 100 and/orautonomous system 404. Thecommunication resources 730 of theATP 100 can also be in communication with the ATP platform controller withapplications 736 via a second communication protocol (which may be the same or different than the first communication protocol) (e.g., WiFi, cellular, and/or the like, including combinations and/or multiples thereof). -
FIG. 7J is a schematic illustration of an example implementation of the ATPportable network controller 744 ofFIG. 7I according to one or more embodiments described herein. The ATPportable network controller 744 can operate in a local mode or a global mode. In the local mode, the ATPportable network controller 744 manages communication between one or more local ATPs 100 (see, e.g.,FIG. 7L, 7N, 7O ) directly. In the global mode, the ATP portable network controller manages communication betweenATPs 100 via other intermediate ATP portable network controllers (see, e.g.,FIGS. 7M, 7N, 7O ) and remote resources (e.g., ATP platform controller withapplications 736, ATP cloud platform withapplications 740, and/or the like, including combinations and/or multiples thereof). In global mode, each ATPportable network controller 744, in a multi-portable ATP network controller implementation, intelligently manages, orchestrates, and optimizes the communication resources and activities across the complete network topology (global domain) of the AS-ATP system (see, e.g.,FIG. 7N ). Whereas in local mode, each ATPportable network controller 744 intelligently manages, orchestrates, and optimizes the communication resources and activities within the network topology (local domain) comprising AS-ATP systems visible to the given instance of the ATP portable network controller (see, e.g.,FIG. 7N ). - As shown, the ATP
portable network controller 744 is in communication withATPs 100 using one or more suitable communications modules, such as anRF radio module 750, asatellite module 751, a WiFi/BT module 752, acellular module 753, and/or the like, including combinations and/or multiples thereof. The modules 750-753 interface with a network interface card that provides network services to the ATPportable network controller 744. - The ATP
portable network controller 744 also includes an instance of an A-SDN control-plane communications controller 755 which supports A-SDN features and functions as described herein. Particularly, the A-SDN control-plane communications controller 755 manages and orchestrates communications for the network of ATPs and autonomous systems. The ATPportable network controller 744 also includes atopology manager 756 to manage the topology (i.e., structure or network graph of ATPs 100), arouting manager 757 to route data/commands/messages, ametrics manager 758 to evaluate metrics of data passing through such as quality of service metrics, and apolicy manager 759 to apply policies for routing, topology decision making, and/or the like, including combinations and/or multiples thereof. Functional blocks 756-759 ofFIG. 7J are implemented through a rule-based approach and/or methods of machine learning to compute optimal topology, routing, and policy decisions provided to the A-SDN control-plane communications controller 755. Additionally, the A-SDN control-plane communications controller 755 operates based on policy configurations and real-time metrics collection from both themetrics manager 758 and telemetry data received from the network of ATPs. In this manner, the A-SDN overall operation is based on a distributed processing and analysis of metrics data for optimal orchestration of the ATP network and indirectly (throughATP 100 interaction with the autonomous system 404) the collection of autonomous systems. Further, the A-SDN control-plane communications controller 755, thetopology manager 756, therouting manager 757, and/or thepolicy manager 759 can operate in a local mode or a global mode consistent with the operating mode of the ATPportable network controller 744. - Operations of the ATP
portable network controller 744 are performed by an ATP portablenetwork controller processor 760, which may be any suitable device for processing data or implementing instructions as described herein. Data can be stored in a memory/storage 748, which may be accessible by one or more of the components of the ATPportable network controller 744 described herein. A communications/message system 747 is responsible for internal communications/messaging within the ATPportable network controller 744. Aconfiguration manager 762 is responsible for providing configurations for the ATPportable network controller 744, such as configurations for the local and global modes. The ATPportable network controller 744 is in communication with the ATP platform controller withapplications 736 via an ATPplatform interface module 761. -
FIG. 7K is a schematic illustration of an example ofmultiple ATPs 100 deployed in 764 a, 764 b, 765 c, which together form alocal domains global domain 763 according to one or more embodiments described herein. - A
local domain 764 a includes threeATPs 100, and each of the 764 b, 764 c includes fourlocal domains ATPs 100, as shown. TheATPs 100 are in communication as shown by the solid lines connecting the various ATPs. TheATPs 100 can be connected in accordance with one or more embodiments described herein (see, e.g.,FIGS. 7A-7D ). -
FIGS. 7L, 7M, 7N, and 70 are schematic illustrations of examples of use cases for the ATPportable network controller 744 ofFIGS. 71 and 7J according to one or more embodiments described herein. - In the example of
FIG. 7L , the ATPportable network controller 744 is in communication withATPs 100, which in this example are unmanned aerial vehicles 409 (see, e.g.,FIG. 4E ) but are not so limited. TheATPs 100 are in direct communication with the ATPportable network controller 744 using any suitable communication protocol(s) as described herein. The ATPportable network controller 744 is also in communication with the ATP platform controller withapplications 736 and the ATP cloud platform withapplications 740 as shown, again using any suitable communication protocol(s) as described herein. - In the examples of
FIG. 7M-70 , multiple ATPportable network controllers 744 are implemented and are responsible for managing groups ofATPs 100 shown as local domains 764 a-764 c. However, each of these examples implements different configurations of local and global control using various instances of: the ATPportable network controller 744, ATP platform controller withapplications 736, and ATP cloud platform withapplications 740. - In the example of
FIG. 7M , the ATP cloud platform withapplications 740 can communicate directly with the ATPportable network controller 744 and/or indirectly via the ATP platform controller withapplications 736. The instances of the ATPportable network controller 744 can communicate with one another and/or with the ATP platform controller withapplications 736 and/or the ATP cloud platform withapplications 740. In this example, the instances of the ATP portable network controller are operating in the global mode each having visibility and awareness for intelligent orchestration across the network topology encompassing 764 a, 764 b, and 764 c. - The example of
FIG. 7N provides a hybrid model with a hierarchy on top of the architecture shown inFIG. 7M where a number of elements (where each of theATPs 100, ATPportable network controllers 744, ATP platform controller withapplications 736, and ATP cloud platform withapplications 740 represent an element) is greater than a first threshold and/or a network diameter or span is greater than a second threshold. For example, a transition may occur to a federated or hierarchical model (which could occur dynamically) as the number of ATPs increases such that the ability to manage the network topology becomes difficult by single layer of controllers. The threshold can be set/adjusted based on, for example, management capabilities/limitations for the network topology, and/or performance metrics collected during network and system operation. In this example, the ATP cloud platform withapplications 740 is in direct communication with the instances of the ATP platform controller withapplications 736. In examples, one or more instances of the ATP platform controller withapplications 736 can be implemented. The instances of the ATP platform controller withapplications 736 are in direct communication with one or more instances of the ATPportable network controller 744, which are operating in the global mode, as shown. In turn, the global instances of the ATPportable network controller 744 are in communication with one another and each is in communication with a respective instance of the ATPportable network controller 744 operating in the local mode as shown. The local instances of the ATPportable network controller 744 are responsible for managing the groups ofATPs 100 shown as local domains 764 a-764 c. - In the example of
FIG. 7O (like the example ofFIG. 7N ), provides a hybrid model with a hierarchy on top of the architecture shown inFIG. 7M where a number of elements is greater than a first threshold and/or a network diameter or span is greater than a second threshold as described herein. In this example, an instance of the ATP platform controller withapplications 736 is moved to the cloud where it interfaces with a global instance of the ATPportable network controller 744 as shown. - In accordance with the examples of
FIGS. 7L-70 , it should be appreciated that there are many other example implementations in accordance with embodiments described herein. For example, one or more ATPportable network controllers 744 can be implemented in various configurations. In an example, the ATP cloud platform withapplications 740 integrates with a ATPportable network controller 744 directly, where the ATP platform controller is impeded in the ATP cloud platform withapplications 740. Again, other configurations are also possible. - The
ATPs 100 inFIGS. 7L-70 are shown as unmanned aerial vehicles but could be any suitable device, system, vehicle, embedded controller, and/or the like, including combinations and/or multiples thereof. -
FIG. 7P is a schematic illustration of multipleautonomous systems 404, each having anATP 100 with an autonomous SDN data-plane communications controller 370 according to one or more embodiments described herein. Particularly,FIG. 7 depicts asystem 700P having multipleautonomous systems 404, each with anATP 100 having an A-SDN data-plane communications controller 370. Together, theATPs 100 form a mesh network such that the ATPs are in mesh communication with one another and with a higher-level controller 782, which can be the ATP platform controller withapplications 736 or the ATPportable network controller 744. The higher-level controller 782 can include an A-SDN control-plane communications controller 755, which defines network rules and policies that are then implemented, executed, or provisioned, within each A-SDN data-plane communications controller 370 (seeFIG. 3D ) of theATP 100 instance as shown. In this manner an autonomous software defined network is established, whereby a control-plane manages, orchestrates and controls the network topology comprising one or more ATPs 100 coupled to respective autonomous systems using the A-SDN control-plane communications controller 755 (seeFIG. 7J ), for example. - The ATP coupled to each
autonomous system 404 can receive local metrics from the respective ATP processor modules (e.g., the ATP processor module 102) of theATPs 100 and/or remote metrics from other ATPs. For example, the A-SDN data-plane communications controller 370 receiveslocal metrics 786 from its ownautonomous system 404 and receives commands from the A-SDN control-plane based on remote metrics received by the A-SDN control-plane from the one or more ATPs. When theATP processor module 102 is not operating in A-SDN mode (seeFIG. 3C ), both local and remote metrics are used at the ATP level since theconnection manager 311 is acting as the decision maker. When in an A-SDN enhancement mode (seeFIG. 3D ), both local and remote metrics for theconnection manager 311 are used as described herein. However, in this case, the ATP local metrics are conveyed (received as remote-metrics from A-SDN control-plane perspective) to the A-SDN control-plane communications controller 755 as the decision maker, which means local metrics for each ATP is sent to the A-SDN control-plane system (e.g. the ATP platform controller withapplications 736, the ATPportable network controller 744, etc. Thus, the A-SDN control-plane communications controller 755 manages the network unless there is an override rule, policy, or situation (environmental) where the local communications controller will control versus the A-SDN control-plane system. That is, based on the rules and policy configuration, there is an arbitration scenario that is to be supported in eachATP 100 whereby either the A-SDN framework (control plane plus data-planes) or theconnection manager 311 is the leader or slave. As an example, if the A-SDN functionality goes down for some reason, the network of ATPs still operates under some controlling entity, which would default to theconnection manager 311. In an embodiment, the arbitration logic for master or slave operation can dynamically change based on rules, policies, inference from machine learning, or events based on configuration or real-time metrics (computed or learned through machine-learning methods) as described herein. - This example provides for mesh communications (utilizing any suitable combination of communication protocols, types, or resources) between/among the
ATPs 100 by establishing an autonomous software definednetwork 799. The autonomous software definednetwork 799 is based on one or more A-SDN data-plane communications controllers 370 (seeFIG. 3D ) that collect metrics, which are transported to the A-SDN control-plane communications controller 755 (seeFIG. 7J ). Additionally, the autonomous SDN data-plane communications controllers 370 in conjunction with thecommunications controller 354, the real-time transport andtelemetry metrics processor 352, and the inference andevent engine 360 generate events consumed by one or more of theautonomous systems 404 to influence their operations and behavior - The A-SDN control-
plane communications controller 755 manages and orchestrates communications for thenetwork 799 ofATPs 100 andautonomous systems 404 as described herein. The A-SDN control-plane communications controller 755 generates global rules, policies, and network packet processing configurations (e.g., forwarding rules on a communication resource or port-by-port basis for each network packet, and dynamic configuration of the network based on metrics, events, etc.), for each A-SDN data-plane communications controller 370 in the network formed by theautonomous systems 404 and theirrespective ATPs 100. The A-SDN control-plane communications controller 755 receives metrics from one or more of theATPs 100 as described herein from the metrics processing within theAS network controller 124. -
FIG. 8A is a schematic illustration of an example of multiple unmanned aerial vehicles (UAV) each equipped with an ATP according to one or more embodiments described herein.FIG. 8B is a schematic illustration of an example of multiple unmanned aerial vehicles (UAV) each equipped with an ATP and together forming a partial mesh network according to one or more embodiments described herein. In these examples, multiple UAVs are shown, which each include an ATP. This implementation supports multi-sensor acquisition and analysis based on distributed ATPs, which support multiple possible communication paths/network transports and remote system coordination. - An example in which autonomous systems (e.g., autonomous system 404) are unmanned aerial vehicle (UAV) systems is now described. This is only one possible example of an implementation of an autonomous system as described herein. Referring now to
FIGS. 8A and 8B , 801 and 811, respectively, are shown that provide for multiple (N)systems UAV systems 800A-800N. TheUAV systems 800A-800N includeUAVs 804A-804N and correspondingUAV Base Controllers 808A-808N communicatively coupled byUAV radio links 806A-806N. Each of theUAV systems 800A-800N includes at least oneATP 802A-802N (e.g., ATP 100) (see, e.g.,FIG. 4E ), where eachATP 802A-802N includes an ATP processor module (not shown) (e.g., the ATP processor module 102) as described herein. - Each
UAV systems 800A-800N further includes a sensor (not shown) (e.g., gas/liquid chemical sensor) for sensing an environmental property and being operably coupled to a device (e.g., the device 110). The device can communicate directly to a cloud computing environment 814 (e.g., hosting a distributed sensor analysis and prediction application, such as a cloud/distributed computing environment for example) and/or indirectly via the multiple network transports 818 to the platform controller remotecomputing system scenarios 810 which includes one or more platform controllers, cloud-basedplatform controller 812 andstandalone platform controller 816 as described herein, such as through an application or software being executed on thecloud computing environment 814, or alternatively by directly (not shown) as a direct unicast connection. - In an embodiment, the communications channel is configured as a unicast from the UAV 802 to cloud computing environment 814 (using TCP/IP or QUIC/UDP/IP for message delivery, for example). In an embodiment, there can be data and command/control message queues within the
cloud computing environment 814 to enable asynchronous communication as described herein and an ATP processor module associated to each sensor (e.g., gas/liquid sensor module). For asynchronous communications (see, e.g.,FIGS. 3A, 3B ), sensor readings are published to the data queues on theATP processor module 102 instance and transmitted to a corresponding data message queue in thecloud computing environment 814, where it can be aggregated with other data message queue data, processed, and/or analyzed based on the global set of datasets across all or a portion of UAV expansion platform sensors modules. - In response to collectively analyzed data, the
cloud computing environment 814 communicates with one or more of the cloud-basedplatform controller 812 and/or the standalone platform controller 816 (collective “the 812, 816”) with updated telemetry that actuates the operation of theplatform controllers ATPs 802A-802N. In an embodiment, one or more of the 812, 816 sends updated command and control data so all or at least a portion of theplatform controllers ATPs 802A-802N are able to execute the appropriate actions in response to the collective environmental analysis in parallel, since all or at least a portion of theATPs 802A-802N receive any operational command and control messages in real-time (or near-real-time) and within the same multicast group reception time period. In an embodiment, this is essentially concurrently. Operations on theATPs 802A-802N can include increasing the resolution of gas/liquid sampling, activating other sensors in response to the cloud/distributed computing based data analysis, or even making telemetry available such as updated location or position coordinates that can be communicated to theUAV systems 804A-804N to modify target trajectory patterns (as would be the case in a swarm-based optimization scenario) so the cluster of N UAVs can converge towards an operational goal. - As shown in
FIG. 8A , one or more of theUAV systems 800A-800N is linked to the platform controller remote computing system scenarios 1610 via the links 1630 and/or 1631. As shown inFIG. 8B , one or more of theUAV systems 800A-800N is linked to the platform controller remote computing system scenarios 1610 via the links 1630 and/or 1631 and/or are linked together to form a meshed network shown by the links 1632. -
FIG. 9 is a flow diagram of amethod 900 according to one or more embodiments described herein. Themethod 900 can be implemented, for example, using theATP processor module 102 and/or another suitable device and/or system. - The
method 900 details one example procedure for initiating and configuring an ATP processor module (e.g., the ATP processor module 102), which includes, for example, starting communication services and message and transport services, loading system configuration information, and the like. - At
block 902, thecontrol system 200 performs a power on or reset of theATP processor module 102. This can include booting a processor module operating system and/or initializing any associated services. - At
block 904, an ATP processor module system software/OS 116 is initialized. Atblock 906, a platform configuration is loaded from a memory, such as a flash memory, an electrically erasable programmable read-only memory (EEPROM), or another suitable memory. Atblock 908, communications services (e.g., the AS network services 120) are started. Atblock 910, message/transport services (e.g., message and transport services module 118) are started, and a message broker and queues are initialized, including synchronous handlers (see, e.g.,FIGS. 3A and 3B ). Atblock 912, theATP interface controller 112 is started, which can include loading/updating a module registry, initializing/configuring device feature libraries, etc. This initialization process can be restarted, as shown by thearrow 913, as needed, on demand, periodically, responsive to a trigger event, etc. - At
block 914, it is determined whether the platform controller communications (e.g., the communications controller 354) are available. If platform controller communications are not available, themethod 900 proceeds to block 916, where a default system configuration is implemented, which can be stored, for example, inlocal storage 917. Atblock 918, theATP processor module 102 utilizes the default configuration fromblock 916, including static command and control software instructions, which are command and control instructions that do not change based on the particular system configuration (e.g., default vs. custom) and can be stored in thelocal storage 919, for example. Also atblock 918, theATP processor module 102 performs device configuration, initialization, and calibration functions of the one or more of thedevices 110. TheATP processor module 102 and one or more of thedevices 110 then execute their respective tasks/instructions, and collected data is stored locally, such as in thelocal storage 919. Subsequent to completion atblock 918, theATP processor module 102 powers off atblock 920. - If platform controller communications are available as determined at
block 914, themethod 900 proceeds to block 922 where it is determined whether to update configuration/code. If so, atblock 924, a configuration/code update process is executed using data received fromlocal storage 925 and/or other devices via communication protocol(s) 926, which can include USB/USB-C, Bluetooth, satellite, or any other suitable communication protocol and/or the like, including combinations and/or multiples thereof. - Once the configuration/code update process is completed at
block 924 or if it determined atblock 922 that no configuration/code update is to be performed, themethod 900 proceeds to block 928. Atblock 928, theATP processor module 102 executes the updated configuration (e.g., from block 924) and performs device configuration, initialization, and calibration of one or more of thedevices 110. Atblock 930, theATP processor module 102 utilizes static and/or dynamic/interactive command and control instructions, which can be received, for example, by communication protocol(s) 932, which can include USB/USB-C, Bluetooth, satellite, or any other suitable communication protocol and/or the like, including combinations and/or multiples thereof. Atblock 934, theATP processor module 102 and one or more of thedevices 110 then execute their respective tasks/instructions, and collected data is stored locally, such as in thelocal storage 935 and/or remotely in another device which receives the data via communication protocol(s) 936, which can include USB/USB-C, Bluetooth, satellite, or any other suitable communication protocol and/or the like, including combinations and/or multiples thereof. Subsequent to completion atblock 934, theATP processor module 102 powers off atblock 920. - It should be appreciated that the
917, 919, 925, 935 can be the same physical or logical storage device or can be multiple physical and/or logical storage devices. Thelocal storage 917, 919, 925 and/or 935 can store data locally and/or remotely relative to thelocal storage control system 200. - Additional processes also may be included, and it should be understood that the process depicted in
FIG. 9 represents an illustration, and that other processes may be added or existing processes may be removed, modified, or rearranged without departing from the scope of the present disclosure. -
FIGS. 10A-10C are schematic illustrations of anautonomous telemetry platform 100 an autonomous system (AS)network controller 124 providing data to the inference andevent engine 360 for event generation to multiple targets according to one or more embodiments described herein. InFIGS. 10A-10C , aprocessing block 1002 represents features and functions of theAS network controller 124 and the inference andevent engine 360. - In the examples of
FIG. 10A-10C , theprocessing block 1002 receives data sources such as metrics, device data, etc., generates events of interest based on performing an inference from the data sources, and delivers those events to one or more devices/systems as appropriate. For example, inFIG. 10A , theprocessing block 1002 uses abandwidth measurement X 1004, and/or alatency measurement Y 1006, and a signalstrength measurement Z 1008 to generate an event and then delivers the event to one or more of theautonomous system 404, the ATPportable network controller 744, the ATP platform controller withapplications 736, aremote ATP 1010, and/or the like, including combinations and/or multiples thereof. As another example, inFIG. 10B , theprocessing block 1002 usesdevice data X 1014,device data Y 1016, and/ordevice data Z 1018 to generate an event and then delivers the event to one or more of theautonomous system 404, the ATPportable network controller 744, the ATP platform controller withapplications 736, aremote ATP 1010, and/or the like, including combinations and/or multiples thereof.FIG. 10C represents a combination ofFIGS. 10A and 10B , where theprocessing block 1002 generates and delivers an event based on one or more of thebandwidth measurement X 1004, thelatency measurement Y 1006, the signalstrength measurement Z 1008, thedevice data X 1014, thedevice data Y 1016, and/or thedevice data Z 1018. - According to one or more embodiments described herein, the
ATP 100 ofFIGS. 10A-10C may have support for an autonomous SDN (A-SDN), for example, if theAS network controller 124 has an A-SDN capability enabled (see, e.g.,FIG. 3D ). - In these examples, the
processing block 1002 receives information associated with the data (as described) and can use this information (e.g., one or more of thebandwidth measurement X 1004, thelatency measurement Y 1006, the signalstrength measurement Z 1008, thedevice data X 1014, thedevice data Y 1016, and/or the device data Z 1018) to generate an event. - Examples of events the
processing block 1002 can generate and deliver are as follows: update as network controller information; updateremote ATP 100 as a network controller with communications information; updating remotely A-SDN control-plane communications controller 755 where this functional block exists; send event (e.g., where the event is asynchronous message containing data) to theautonomous system 404; stop/start/changeautonomous system 404 ordevice 110 operation; moveautonomous system 404 ordevice 110 forward or backward, up or down, etc.; moveautonomous system 404 ordevice 110 to a new position; sendATP 100 processed module data toautonomous system 404; configure/reprogram as an ASnetwork controller 124 and/or an A-SDN control-plane communications controller 755; configure/modify theautonomous system 404 ordevice 110 operation or behavior; and/or the like, including combinations and/or multiples thereof. It should be appreciated that these examples of events are merely examples and there can be many other event types/messages, which can be sent to any number of different targets. -
FIG. 11 is a schematic illustration of 1101, 1102, 1103 deployed across aATP groups geographic area 1100 according to one or more embodiments described herein. The 1101, 1102, 1103 are examples of thegroups 764 a, 764 b, 764 c respectively oflocal domains FIG. 7K . The 1101, 1102, 1103 each include one or more ATPs (see, e.g.,ATP groups FIGS. 1A-1C ) and can be controlled, for example, using one or more of the topologies illustrated inFIGS. 7L-70 . - As an example, ATPs within the ATP groups collect data using sensors. Based on the collected sensor data collected at the ATPs, the ATPs in conjunction with the
autonomous system 404 determines a new location 1110 (“Loc X”). The ATPs also evaluate network performance (e.g., reliability, error-rates, QoS) and share metrics with each communications controller (see, e.g.,FIGS. 3F, 3G ) (depending on particular topology configuration) to select communication resources (based on topology, communication metrics, etc.) for the given current location to optimize the communication performance across ATPs. Based on sensor data and/or network data, a trajectory can be determined and provided to the autonomous systems where one or more autonomous systems can move towards thenew location 1110 as illustrated. - Embodiments of the present disclosure provide technical solutions to processing of telemetry and data from one or more autonomous systems or devices. For example, a sensor associated with an autonomous system can collect data. An autonomous telemetry platform processor module can analyze the sensor data and properties related to the data to make decisions, such as how to transmit the data, how to control the autonomous system and/or other autonomous systems, how to implement network topologies to provide for optimal data transmission, and/or the like, including combinations and/or multiples thereof. It should be appreciated that while one or more embodiments described herein may refer to an unmanned aerial vehicle, this is for example purposes and the claims should not be so limited. In other embodiments, the teachings described herein may be used with other types of autonomous systems and/or other types of unmanned, semiautonomous, or autonomous vehicles, such as but not limited to land-based vehicles (e.g. wheeled or tracked vehicles), water-based vehicles (e.g. boats or submersible vehicles), as well as other portable or mobile devices, including industrial control or sensor systems, IoT devices, medical devices, NMR devices, MRI devices, and/or the like, including combinations and/or multiples thereof, for example, without deviating from the teachings provided herein. Further, the remote systems may be autonomous, semi-autonomous, or remotely operator controlled.
- It should be appreciated that one or more of the various components, modules, engines, etc. described can be implemented as instructions stored on a computer-readable storage medium, as hardware modules, as special-purpose hardware (e.g., application specific hardware, application specific integrated circuits (ASICs), application specific special processors (ASSPs), field programmable gate arrays (FPGAs), as embedded controllers, hardwired circuitry, etc.), or as some combination or combinations of these. According to aspects of the present disclosure, the engine(s) described herein can be a combination of hardware and programming. The programming can be processor executable instructions stored on a tangible memory, and the hardware can include a processing device (e.g., a processor, processing circuitry, and/or the like, including combinations and/or multiples thereof) for executing those instructions. Thus a system memory (e.g., a random access memory, a read-only memory, and/or the like, including combinations and/or multiples thereof) can store program instructions that when executed by the processing device implement the components, modules, engines, etc. described herein. Other components, modules, engines, etc. can also be utilized to include other features and functionality described in other examples herein.
- The term “about” is intended to include the degree of error associated with measurement of the particular quantity based upon the equipment available at the time of filing the application. For example, “about” can include a range of ±8% or 5%, or 2% of a given value.
- 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 “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, element components, and/or groups thereof. It should also be noted that the terms “first”, “second”, “third”, “upper”, “lower”, and the like may be used herein to modify various elements. These modifiers do not imply a spatial, sequential, or hierarchical order to the modified elements unless specifically stated.
- While the disclosure is provided in detail in connection with only a limited number of embodiments, it should be readily understood that the disclosure is not limited to such disclosed embodiments. Rather, the disclosure can be modified to incorporate any number of variations, alterations, substitutions or equivalent arrangements not heretofore described, but which are commensurate with the spirit and scope of the disclosure. Additionally, while various embodiments of the disclosure have been described, it is to be understood that the exemplary embodiment(s) may include only some of the described exemplary aspects. Accordingly, the disclosure is not to be seen as limited by the foregoing description, but is only limited by the scope of the appended claims.
Claims (20)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/836,655 US20220400061A1 (en) | 2021-06-10 | 2022-06-09 | Methods and systems for autonomous software defined network |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202163209154P | 2021-06-10 | 2021-06-10 | |
| US202163240515P | 2021-09-03 | 2021-09-03 | |
| US202163248833P | 2021-09-27 | 2021-09-27 | |
| US17/836,655 US20220400061A1 (en) | 2021-06-10 | 2022-06-09 | Methods and systems for autonomous software defined network |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20220400061A1 true US20220400061A1 (en) | 2022-12-15 |
Family
ID=84390242
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/836,645 Abandoned US20220396347A1 (en) | 2021-06-10 | 2022-06-09 | Methods and system for a reconfigurable vehicle modular expansion platform |
| US17/836,653 Active 2043-08-29 US12449802B2 (en) | 2021-06-10 | 2022-06-09 | Methods and systems for a reconfigurable autonomous telemetry platform |
| US17/836,655 Abandoned US20220400061A1 (en) | 2021-06-10 | 2022-06-09 | Methods and systems for autonomous software defined network |
Family Applications Before (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/836,645 Abandoned US20220396347A1 (en) | 2021-06-10 | 2022-06-09 | Methods and system for a reconfigurable vehicle modular expansion platform |
| US17/836,653 Active 2043-08-29 US12449802B2 (en) | 2021-06-10 | 2022-06-09 | Methods and systems for a reconfigurable autonomous telemetry platform |
Country Status (1)
| Country | Link |
|---|---|
| US (3) | US20220396347A1 (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20220014418A1 (en) * | 2019-03-29 | 2022-01-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Multi-Domain Orchestration |
| US20230269305A1 (en) * | 2022-02-24 | 2023-08-24 | Cisco Technology, Inc. | Dynamic proxy placement for policy-based routing |
| US20260032057A1 (en) * | 2024-07-29 | 2026-01-29 | Cisco Technology, Inc. | Generating new user feedback in cognitive networks |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20220219402A1 (en) | 2021-01-14 | 2022-07-14 | Rn Technologies, Llc | Methods and apparatus for additive manufacturing based on multi-dimensional build platforms |
| US12358660B2 (en) * | 2021-06-30 | 2025-07-15 | Flir Unmanned Aerial Systems Ulc | Accessory port systems and methods for unmanned aerial vehicles |
| CN118473504B (en) * | 2024-06-03 | 2024-12-06 | 浙江蔚星空间科技有限公司 | Satellite simulated flight remote control telemetry method based on WI-FI |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150109986A1 (en) * | 2012-03-16 | 2015-04-23 | Telefonaktiebolaget L M Ericsson (Publ) | Systems and methods for configuring feedback transmissions in a wireless network |
| US20170244628A1 (en) * | 2016-02-19 | 2017-08-24 | Futurewei Technologies, Inc. | Path Computation Element Hierarchical Software Defined Network Control |
| US20170244633A1 (en) * | 2016-02-23 | 2017-08-24 | Avaya Inc. | Mobile endpoint network interface selection using merged policies |
| US20180013630A1 (en) * | 2016-07-11 | 2018-01-11 | Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. | Method for a switch-initiated sdn controller discovery and establishment of an in-band control network |
| US10104548B1 (en) * | 2017-12-18 | 2018-10-16 | At&T Intellectual Property I, L.P. | Method and apparatus for dynamic instantiation of virtual service slices for autonomous machines |
| US10511490B2 (en) * | 2015-06-19 | 2019-12-17 | International Business Machines Corporation | Automated configuration of software defined network controller |
| US20200366563A1 (en) * | 2019-05-14 | 2020-11-19 | At&T Mobility Ii Llc | Integration of a device platform with a core network or a multi-access edge computing environment |
| US20220189320A1 (en) * | 2019-04-12 | 2022-06-16 | Northeastern University | Software Defined Drone Network Control System |
| US11640764B1 (en) * | 2020-06-01 | 2023-05-02 | Amazon Technologies, Inc. | Optimal occupancy distribution for route or path planning |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9479341B2 (en) * | 2006-08-22 | 2016-10-25 | Centurylink Intellectual Property Llc | System and method for initiating diagnostics on a packet network node |
| US7626982B2 (en) * | 2006-12-01 | 2009-12-01 | Time Warner Cable, Inc. | System and method for communication over an adaptive service bus |
| JP5405501B2 (en) * | 2010-02-25 | 2014-02-05 | パナソニック株式会社 | Communication apparatus and communication method |
| US8774982B2 (en) * | 2010-08-26 | 2014-07-08 | Leptron Industrial Robotic Helicopters, Inc. | Helicopter with multi-rotors and wireless capability |
| EA201691157A1 (en) * | 2013-12-04 | 2016-09-30 | Эксонмобил Апстрим Рисерч Компани | METHOD AND SYSTEM FOR DETECTION OF EARTH MATERIAL |
| US9756511B1 (en) * | 2014-05-13 | 2017-09-05 | Senseware, Inc. | System, method and apparatus for wireless sensor network configuration |
| US10434712B1 (en) * | 2015-07-26 | 2019-10-08 | Andy Thien Tran | Modular automated additive manufacturing system |
| US11977395B2 (en) * | 2016-03-24 | 2024-05-07 | Teledyne Flir Defense, Inc. | Persistent aerial communication and control system |
| GB2573228B (en) * | 2016-09-09 | 2020-04-29 | Walmart Apollo Llc | Systems and methods to interchangeably couple tool systems with unmanned vehicles |
| US10649469B2 (en) * | 2017-01-19 | 2020-05-12 | Vtrus Inc. | Indoor mapping and modular control for UAVs and other autonomous vehicles, and associated systems and methods |
| US11294397B2 (en) * | 2017-02-24 | 2022-04-05 | Teledyne Fur Detection, Inc. | Control systems for unmanned aerial vehicles |
| US10892843B2 (en) * | 2017-03-16 | 2021-01-12 | British Telecommunications Public Limited Company | Broadcasting in a communications network |
| US12051206B2 (en) * | 2019-07-25 | 2024-07-30 | Nvidia Corporation | Deep neural network for segmentation of road scenes and animate object instances for autonomous driving applications |
| US12003894B1 (en) * | 2020-12-29 | 2024-06-04 | Waymo Llc | Systems, methods, and apparatus for event detection |
-
2022
- 2022-06-09 US US17/836,645 patent/US20220396347A1/en not_active Abandoned
- 2022-06-09 US US17/836,653 patent/US12449802B2/en active Active
- 2022-06-09 US US17/836,655 patent/US20220400061A1/en not_active Abandoned
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150109986A1 (en) * | 2012-03-16 | 2015-04-23 | Telefonaktiebolaget L M Ericsson (Publ) | Systems and methods for configuring feedback transmissions in a wireless network |
| US10511490B2 (en) * | 2015-06-19 | 2019-12-17 | International Business Machines Corporation | Automated configuration of software defined network controller |
| US20170244628A1 (en) * | 2016-02-19 | 2017-08-24 | Futurewei Technologies, Inc. | Path Computation Element Hierarchical Software Defined Network Control |
| US20170244633A1 (en) * | 2016-02-23 | 2017-08-24 | Avaya Inc. | Mobile endpoint network interface selection using merged policies |
| US20180013630A1 (en) * | 2016-07-11 | 2018-01-11 | Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. | Method for a switch-initiated sdn controller discovery and establishment of an in-band control network |
| US10104548B1 (en) * | 2017-12-18 | 2018-10-16 | At&T Intellectual Property I, L.P. | Method and apparatus for dynamic instantiation of virtual service slices for autonomous machines |
| US20220189320A1 (en) * | 2019-04-12 | 2022-06-16 | Northeastern University | Software Defined Drone Network Control System |
| US20200366563A1 (en) * | 2019-05-14 | 2020-11-19 | At&T Mobility Ii Llc | Integration of a device platform with a core network or a multi-access edge computing environment |
| US11640764B1 (en) * | 2020-06-01 | 2023-05-02 | Amazon Technologies, Inc. | Optimal occupancy distribution for route or path planning |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20220014418A1 (en) * | 2019-03-29 | 2022-01-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Multi-Domain Orchestration |
| US12009964B2 (en) * | 2019-03-29 | 2024-06-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Multi-domain orchestration |
| US20230269305A1 (en) * | 2022-02-24 | 2023-08-24 | Cisco Technology, Inc. | Dynamic proxy placement for policy-based routing |
| US12107937B2 (en) * | 2022-02-24 | 2024-10-01 | Cisco Technology, Inc. | Dynamic proxy placement for policy-based routing |
| US20260032057A1 (en) * | 2024-07-29 | 2026-01-29 | Cisco Technology, Inc. | Generating new user feedback in cognitive networks |
Also Published As
| Publication number | Publication date |
|---|---|
| US12449802B2 (en) | 2025-10-21 |
| US20220397902A1 (en) | 2022-12-15 |
| US20220396347A1 (en) | 2022-12-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12449802B2 (en) | Methods and systems for a reconfigurable autonomous telemetry platform | |
| US11799936B2 (en) | Low latency wireless communication system for teleoperated vehicle environments | |
| Callegaro et al. | Optimal edge computing for infrastructure-assisted UAV systems | |
| US20190164087A1 (en) | Decomposing tasks through artificial intelligence chaining | |
| EP3375201B1 (en) | Server, wireless device, methods and computer programs | |
| US10951711B2 (en) | Methods and systems for acquiring and processing data at intelligent edge devices via software kernels | |
| US11334069B1 (en) | Systems, methods and computer program products for collaborative agent control | |
| CN111552279B (en) | Method and apparatus for transferring instruction data items to a controlled device | |
| US11881993B2 (en) | Method and deep reinforcement neural network (DRNN) management system for an intelligent plug-and-play point-to-multipoint internet of things (IoT) platform | |
| CN117519163A (en) | A surface unmanned boat cluster control system | |
| Ramos et al. | ARCog-NET: An aerial robot cognitive network architecture for swarm applications development | |
| US20240275697A1 (en) | Industrial 5g service quality assurance via markov decision process mapping | |
| CN116600361B (en) | Unmanned aerial vehicle networking configuration method, unmanned aerial vehicle networking configuration equipment and readable storage medium | |
| US20220413915A1 (en) | Flexible cluster formation and workload scheduling | |
| Grote et al. | Flypaw: Optimized route planning for scientific uavmissions | |
| Charalambous et al. | Toward goal-oriented communication in multi-agent systems: An overview | |
| Zhang et al. | Data Acquisition and Monitoring Scheme for Satellite Network with Time-Varying Topology | |
| Morel et al. | Task Offloading Strategies for Agricultural UAV Systems in Dynamic Network Environments | |
| CN120434701B (en) | Data processing method, device, equipment, system and storage medium | |
| US20250287286A1 (en) | Communication device and method for switching radio schemes based on user preference | |
| Teng et al. | An Efficient and Stable Knowledge Service Framework for Satellite-Ground Collaboration | |
| US12507044B2 (en) | On-location telemetry subscriptions | |
| Lakas et al. | Mobile edge computing enabled Internet of Unmanned Things | |
| Kaur | SNAP: A Software-Defined & Named-Data Oriented Publish-Subscribe Framework for Emerging Wireless Application Systems | |
| Freitas et al. | Supporting platform for heterogeneous sensor network operation based on unmanned vehicles systems and wireless sensor nodes |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: RN TECHNOLOGIES, LLC, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NEILL, RICHARD;REEL/FRAME:060153/0476 Effective date: 20220609 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |