Systems and methods for redundant network communications in robots

A redundant network communication system with dual channels for robotic systems addresses communication failures by ensuring continuous operation and safety through signal integrity comparison and switching, preventing unsafe conditions.

JP2025539804APending Publication Date: 2025-12-09SARCOS CORP
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2025528805
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-11-17
Filing Date
2023-11-17
Publication Date
2025-12-09

AI Technical Summary

Technical Problem

Robotic systems face communication failures due to network interruptions, which can lead to unsafe operating conditions, especially in robots interacting with humans, necessitating robust network redundancy solutions.

Method used

Implementing a redundant network communication system with two or more network channels between a main robot controller and robotic components, where local controllers compare signal integrity and switch to a secondary channel if degradation is detected, ensuring continuous operation.

Benefits of technology

The redundant network communication system ensures uninterrupted operation by detecting and switching to a secondary channel, preventing hazardous conditions and system failures.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025539804000001_ABST
    Figure 2025539804000001_ABST
Patent Text Reader

Abstract

A technique for redundant network communication in a robot is described. One example of the technique includes a main robot controller, a local controller in network communication with the main robot controller, and instructions that, when executed by a processor, transfer first and second data signals between the main robot controller and the local controller over first and second network channels. The first data signal is transmitted on the first network channel and the second data signal is transmitted on the second network channel. The instructions compare the first data signal to the second data signal to determine signal integrity of the data signals, determine degradation of the first data signal if the signal integrity is lower than the signal integrity of the second data signal, and select the second data signal for processing if degradation of the first data signal is determined.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to systems and methods for redundant network communication in robots. [Background technology]

[0002] Network redundancy is the process of adding additional instances of network devices and communication lines to help ensure network availability and reduce the risk of failure along critical data paths. The basic premise of network redundancy is having a backup system in case a point of failure in the network interrupts or stops the entire system. Redundancy in communication networks helps to mitigate single points of failure and ensure better network stability and sufficient uptime in the face of events that would otherwise take the system offline.

[0003] Network stability and redundancy in communication networks can also be important in the field of robotics. Many robots and robotic systems are equipped with complex and sophisticated on-board electronics and other hardware components (actuators, motors, sensors, switches, wiring, power-related components, controllers, computers, communication-related components, and others), many of which are configured to interface with each other and control the operation of the robot or robotic system through a computerized on-board network. Interruptions or failures in this network can incur costs and, in some cases, cause unsafe operating conditions. For example, in a robot or robotic system (e.g., a wearable robotic exoskeleton worn by a human, a humanoid robot, a teleoperated robot, an unmanned ground robot, and others), a network failure in transmitting operation signals to the robot's controller, motors, and actuators can cause the robot to become immobile or operate beyond its range of motion. This is particularly problematic for robots that interact with humans or have a human interface (e.g., a human user wearing an exoskeleton), where network failures can result in uncomfortable robot operation, or worse, dangerous or unsafe for human-robot interfacing. To avoid unnecessary operational downtime, untimely and costly repairs, and even potentially unsafe operating conditions for human interfacing with certain types of robots or robotic systems, safety measures centered around network redundancy can help ensure the continued functionality, maintainability, and integrity of the on-board robot network while the robot or robotic system is in operation. Summary of the Invention [Means for solving the problem]

[0004] An embodiment of the present disclosure provides a system for redundant network communication in a robot, the system comprising: a main robot controller in network communication with one or more robotic components; a local controller in network communication with a main robot controller and with controlled components of one or more robotic components controlled by the local controller to perform robotic functions; and one or more processors and a memory in network communication with one or more of the main robot controller and the local controllers, the memory, when executed by the processor, causing one or more of the local controllers and the main robot controller to: transferring first and second data signals between the main robot controller and the local controller via first and second network channels, the commands being encoded within the first and second data signals, the first data signal being transmitted on the first network channel and the second data signal being transmitted on the second network channel; comparing the first data signal with the second data signal to determine signal integrity of the first and second data signals; determining degradation of the first data signal when the signal integrity of the first data signal is lower than the signal integrity of the second data signal; and instructions that cause selecting a second data signal received on a second network channel for processing if the first data signal is determined to be degraded.

[0005] Another embodiment of the present disclosure provides a computer-implemented method for redundant network communication, the method comprising: transferring commands between a main robot controller, a local controller in network communication with the main robot controller, and controlled components of robotic components controlled by the local controller to perform robotic functions, the commands being encoded in first and second data signals at the main robot controller or the local controller, the first data signal being transmitted over a first network channel and the second data signal being transmitted over a second network channel; comparing the first data signal to the second data signal to determine signal integrity associated with the first and second network channels; determining whether the signal integrity of the first data signal is degraded compared to the signal integrity of the second data signal; processing a second data signal received on a second network channel to obtain a command encoded within the second data signal; and performing an action based on the command obtained from the second data signal. [Brief explanation of the drawings]

[0006] [Figure 1] FIG. 1 illustrates an isometric view of a robotic exoskeleton according to an example of the present disclosure. [Figure 2] FIG. 1 illustrates a high-level example of a system for redundant network communication in a robot according to an example of the present disclosure. [Figure 3] FIG. 1 illustrates a system for redundant network communication in a robot according to an example of the present disclosure. [Figure 4] FIG. 1 illustrates a diagram illustrating robot components communicating with a primary robot controller for a redundant network communication system in a robot according to an example of the present disclosure. [Figure 5A] 1A-1C illustrate various examples of network configurations of an exemplary redundant network communication system that may be used to implement redundant network communication in a robot according to examples of the present disclosure. [Figure 5B] 1A-1C illustrate various examples of network configurations of an exemplary redundant network communication system that may be used to implement redundant network communication in a robot according to examples of the present disclosure. [Figure 6] 1A-1C illustrate various examples of network configurations of an exemplary redundant network communication system that may be used to implement redundant network communication in a robot according to examples of the present disclosure. [Figure 7A] 1A-1C illustrate various examples of network configurations of an exemplary redundant network communication system that may be used to implement redundant network communication in a robot according to examples of the present disclosure. [Figure 7B] 1A-1C illustrate various examples of network configurations of an exemplary redundant network communication system that may be used to implement redundant network communication in a robot according to examples of the present disclosure. [Figure 8] 1 is a flow chart illustrating an example method for detecting communication failures using network channel redundancy. [Figure 9] 1 is a flow chart illustrating an example method for detecting communication failures using network channel redundancy. [Figure 10] 1 is a flow diagram illustrating an exemplary method for performing an action in response to detecting a communication failure in a robot. [Figure 11] FIG. 1 is a block diagram illustrating an example of a computing device that may be used to implement the techniques disclosed herein. DETAILED DESCRIPTION OF THE INVENTION

[0007] Below, an overview of these technologies is first presented, and then specific technology implementations are described in more detail later. This initial summary is intended to help the reader understand the technology more quickly, but is not intended to identify key or essential features of these technologies, nor is it intended to limit the scope of the claimed subject matter.

[0008] Described herein are techniques for redundant network communication in a robot or robotic system (generically referred to herein as a robot). The robot may include a machine capable of performing a complex series of actions using commands or instructions transmitted over a communication network from a central or main controller to one or more local controllers associated with one or more robotic components, the main controller, local controllers, and robotic components being part of the communication network. A robotic control system may be used to control the movement of the robot and other functioning devices of the robot. This is done through commands or instructions from mechanical robotic components and program systems that enable control of the robot. The robotic components may be controlled in various ways using commands transmitted over the robot's communication network, including wireless control (e.g., radio control), semi-autonomous control (which may be a hybrid of fully automatic and wireless control), and fully autonomous control (which may use artificial intelligence). Each robotic component may include or be otherwise associated with a respective local robotic controller (e.g., a component controller) for controlling a portion of the robot (e.g., a robotic component may include, but is not limited to, actuators, motors, manipulators, end effectors, and the like). For example, a robotic joint may include a local controller for controlling robotic components in the form of motors to achieve rotational movement of the robotic joint.

[0009] There are a wide variety of robots or robot systems, including but not limited to humanoid robots, exoskeleton robots, robotic arms, and other robots and robotic systems, and one of the fundamental technical problems in robotics is system communication failure caused by a communication channel interruption, such as damage to a network cable or a failure of a network device. In fact, the stability of network communication remains an unavoidable challenge in the world of robotics. The technology described herein solves the technical problem of system communication failure in robotics by providing a redundant communication channel between a main robot controller and a robot component.

[0010] In one exemplary configuration, a robotic control system can include a redundant network communication system comprising two or more network channels used for communication between a main robot controller and robotic components (e.g., actuators, motors, manipulators, end effectors, and the like) having or otherwise associated with individual or local controllers operable to facilitate control of the robotic components. One of the network channels can be designated as a primary network channel, and the other network channel can be a redundant secondary network channel. The main robot controller can be configured to replicate original or source data signals (e.g., control signals) and transmit the replicated data signals in parallel on the primary and secondary network channels to one or more of the robotic components in network communication with the main robot controller.

[0011] The first or primary network channel may be configured to facilitate network communication between the main robot controller and the local controllers of the robotic components and to facilitate transmitting first data signals from the main robot controller to the local controllers to operate the local controllers. The second or secondary network channel may be configured to facilitate network communication between the main robot controller and the local controllers and to facilitate transmitting second data signals from the main robot controller to the local controllers to operate the local controllers. The first and second data signals may be configured to be redundant data signals transmitted on the first or primary network channel and the second or secondary network channel, respectively.

[0012] A local controller associated with a robotic component may be configured to compare data signals received on the primary and secondary network channels to determine signal integrity of the data signals. For example, the local controller may receive a first data signal transmitted on the primary network channel and a second data signal transmitted on the secondary network channel. In response to receiving the first and second data signals, the local controller of the robotic component may compare the signal integrity of the first data signal with the signal integrity of the second data signal to determine whether degradation of the first data signal has occurred. If degradation of the first data signal has not occurred, the local controller may be configured to process the data signal to obtain commands encoded therein and cause the associated robotic component to execute the commands obtained from the second data signal. However, if degradation of the first data signal is detected, the local controller of the robotic component may be configured to select the second data signal for processing and execute the commands encoded therein.

[0013] In one example, the present disclosure describes a system for redundant network communication within a robot. The system can include a master robot controller in network communication with one or more robotic components. The system can further include local controllers in network communication with the master robot controller and controlled components of one or more robotic components controlled by the local controllers to perform functions of the robot. The system can further include one or more processors and memories in network communication with the master robot controller and one or more of the local controllers. The memory can include instructions that, when executed by the processor, cause one or more of the local controller and the primary robot controller to: (1) transfer first and second data signals between the primary robot controller and the local controller over first and second network channels, where a command is encoded within the first and second data signals, the first data signal being transmitted on the first network channel and the second data signal being transmitted on the second network channel; (2) compare the first data signal with the second data signal to determine signal integrity of the first and second data signals; (3) determine degradation of the first data signal when the signal integrity of the first data signal is lower than the signal integrity of the second data signal; and (4) select the second data signal received on the second network channel for processing if degradation of the first data signal is determined.

[0014] In some examples, the memory may further include instructions that, when executed by the processor, cause the local controller or the main robot controller to: (1) process the second data signal to obtain a command encoded in the second data signal; and (2) cause the robotic component to perform an action based on the command obtained from the second data signal.

[0015] In some examples, the instructions, when executed by the processor, may further cause the local controller or the main robot controller to: (1) compare the signal integrity of the first and second data signals; and (2) determine whether the signal integrity of the first data signal is lower than the signal integrity of the second data signal.

[0016] In some examples, the instructions, when executed by the processor, may further cause the local controller or the main robot controller to: (1) compare the number of data packets included in each of the first and second data signals; and (2) determine that the number of data packets included in the first data signal is less than the number of data packets included in the second data signal, or determine that a data packet is missing if the main robot controller or the local controller does not receive a data packet within a specified time.

[0017] In some examples, the instructions, when executed by the processor, may further cause the local controller or the main robot controller to log signal integrity metrics for the first and second data signals to enable diagnosing degradation of the first data signal.

[0018] In some examples, the instructions, when executed by the processor, may further cause the local controller or the main robot controller to generate a system notification indicating that there is a problem with the first network channel associated with the degradation of the first data signal.

[0019] In some examples, the main robot controller or the local controller may transmit first and second data signals in parallel over the first and second network channels.

[0020] In some examples, the instructions, when executed by the processor, may further cause the local controller or the main robot controller to: (1) forward a third data signal including the command transmitted on a third network channel in parallel with the transmission of the first and second data signals; and (2) compare the third data signal with the first and second data signals to determine degradation in signal integrity of any of the first, second, or third data signals.

[0021] In some examples, the first, second, and third network channels each include a cable communication channel, a power line communication channel, or a wireless communication channel.

[0022] In another example of the present disclosure, a computer-implemented method for redundant network communication may include transferring commands between a main robot controller, a local controller in network communication with the main robot controller, and controlled components of robotic components controlled by the local controller to perform robotic functions, the commands being encoded in first and second data signals at the main robot controller or the local controller, the first data signal being transmitted over a first network channel, and the second data signal being transmitted over a second network channel. The method may further include comparing the first data signal to the second data signal to determine signal integrity associated with the first and second network channels. The method may further include determining whether signal integrity of the first data signal is degraded compared to signal integrity of the second data signal. The method may further include processing the second data signal received over the second network channel to obtain the command encoded in the second data signal. The method may further include performing an action based on the command obtained from the second data signal.

[0023] In some examples of the method, comparing the first and second data signals further includes comparing a number of received data packets in each of the first and second data signals.

[0024] In some examples of the methods, comparing the first and second data signals further includes comparing a signal-to-noise ratio of the first data signal to a signal-to-noise ratio of the second data signal.

[0025] In some examples, the method further includes writing signal integrity metrics for the first and second data signals to a system log to enable diagnosing degradation of the first data signal.

[0026] In some examples, the method further includes generating a system notification indicating that a first network channel associated with the degradation of the first data signal is experiencing a problem, and displaying the system notification on a display device to alert a user that a first network channel associated with the degradation of the first data signal is experiencing a problem.

[0027] In some examples of this method, performing an action based on the command includes executing an instruction to actuate a controlled component of the robotic component.

[0028] In some examples, the method can further include transferring a third data signal including the transmitted command over a third network channel between the main robot controller and the local controller in parallel with transmitting the first and second data signals over the first and second network channels. The method can further include comparing the third data signal with the first and second data signals to determine degradation in signal integrity of any of the first, second, or third data signals, where the first, second, and third network channels each include a cable communication channel, a power line communication channel, or a wireless communication channel.

[0029] Another example of the present disclosure may be a non-transitory machine-readable storage medium including instructions embodied thereon that, when executed by at least one processor, cause a redundant network communication system of a robot to: (1) transfer first and second data signals transmitted on primary and secondary network channels, respectively, between a main robot controller and a local controller associated with a controlled component of a robot component and in network communication with the main robot controller, where the original data signals are replicated at the main robot controller or the local controller to generate first and second data signals; (2) compare the first and second data signals to determine signal integrity of the first and second data signals, where the first data signal is compared to the second data signal; (3) determine whether signal integrity of the first data signal is degraded compared to signal integrity of the second data signal; and (4) process the second data signal received on the secondary network channel.

[0030] In some examples of the non-transitory machine-readable storage medium, the second data signal is processed to obtain a command encoded in the second data signal and to cause the robotic component to perform an action based on the command obtained from the second data signal.

[0031] In some examples, the non-transitory machine-readable storage medium may further include instructions that, when executed by at least one processor, cause the redundant network communication system to (1) compare signal integrity of the first and second data signals; and (3) determine whether the signal integrity of the first data signal is lower than the signal integrity of the second data signal.

[0032] In some examples, the non-transitory machine-readable storage medium may further include instructions that, when executed by the at least one processor, cause the redundant network communication system to (1) compare the number of data packets included in each of the first and second data signals, and (2) determine whether the number of data packets included in the first data signal is less than the number of data packets included in the second data signal, or determine whether a data packet is missing if the data packet is not received within a specified time.

[0033] In some examples, the non-transitory machine-readable storage medium may further include instructions that, when executed by the at least one processor, cause the redundant network communication system to write signal integrity metrics for the first and second data signals to a system log to enable diagnosing degradation of the first data signal.

[0034] In some examples, the non-transitory machine-readable storage medium may further include instructions that, when executed by the at least one processor, cause the redundant network communication system to generate a system notification indicating that a primary network channel associated with the degradation of the first data signal is experiencing a problem.

[0035] In some examples, the non-transitory machine-readable storage medium may further include instructions that, when executed by at least one processor, cause the redundant network communication system to (1) transfer, between the main robot controller and the local controller, a third data signal generated from the original data signal and transmitted on a tertiary network channel in parallel with transmitting the first and second data signals on the primary and secondary network channels; and (2) compare the third data signal with the first and second data signals to determine a degradation in signal integrity of any of the first, second, or third data signal, wherein the primary, secondary, and tertiary network channels each include a cable communication channel, a power line communication channel, or a wireless communication channel.

[0036] To further explain the present technology, examples are presented with reference to the figures. Figure 1 illustrates a wearable robotic exoskeleton 100 in which the present technology may be implemented, according to one example of the present disclosure. Although a wearable robotic exoskeleton 100 is shown, the principles of the present disclosure and technology may be applied to any type of robot or robotic system, including, but not limited to, humanoid robots, exoskeletons, robotic arms, robotic machines, human-controlled robots, and other robots and robotic systems, or combinations thereof.

[0037] As shown, the robotic exoskeleton 100 can include multiple robotic components, systems, and the like (e.g., local controllers and controlled components, such as joints or mechanisms that actuate to cause movement or operate functions of the robotic exoskeleton 100) that facilitate movement of the robotic exoskeleton 100 in multiple degrees of freedom. For example, as shown, the robotic exoskeleton 100 can include one or more of a shoulder joint 102, an elbow joint 104, a wrist joint 106, a hip joint 108, and a knee joint 110, each of which facilitates movement of the robotic exoskeleton 100 in a corresponding degree of freedom. However, the present technology is not limited by the joints, robotic components, systems, or the like illustrated in FIG. 1 . Indeed, a robot can include one or more joints, robotic components, or systems, and one or more degrees of freedom that may or may not be similar or kinematically equivalent to human joints. As such, the present disclosure is not intended to limit in any way the number, arrangement, or configuration of robotic components or systems, or the degrees of freedom of movement. The robotic exoskeleton 100 can include a computerized network and a system for redundant network communication as described in this disclosure.

[0038] 2 is a block diagram illustrating a high-level example of a system for redundant network communication (i.e., a redundant network communication system) in a robot or robotic system 100 (see, for example, the wearable exoskeleton robot 100 in FIG. 1 ). The redundant network communication system is part of a robotic control system and can include a main robot controller 202 and one or more robotic components 204, each having or otherwise associated with a controller 206 (i.e., a local controller). Each local controller 206 can include one or more processors and one or more associated memories or memory devices operable with the one or more processors. Each controller 206 can further be in network communication with the main robot controller 202 via a primary network channel 208 and a redundant secondary network channel 210 of the redundant network communication system. The local controller 206, and also the main robot controller 202 (and any local controllers and main robot controllers described herein), can have two-way communication in that they can both send and receive data (e.g., a local controller can send / receive data to / from the main robot controller, and the main robot controller can send / receive data to / from a local controller). At some points in this disclosure, it may be disclosed that the main robot controller is sending data while the local controller is receiving data, but it should be understood that in this disclosure the main robot controller can also receive data sent by a local controller.

[0039] Each robotic component 204 may further have or be otherwise associated with a controlled component 214. The controlled component 214 may be for driving the movement and / or other functions of the robotic component 204. The controlled component 214 may be any component used to perform or actuate a function or movement of the robot and is not intended to be limited in any way by this disclosure. Indeed, the controlled component (e.g., 214) of any robotic component in the robot 100 may be any functioning device of the robot 100, including, but not limited to, a motor, gas or fluid or other actuator, clutch, transmission, sensor, imaging device, audio recording or playback device, light emitting device, electrical filter circuit, sensor, or any other function or device of any kind within the robot that is driven or controlled by a controller. The controlled component 214 may be in network communication with the local controller 206 and the main robot controller 202. The controlled components 214 can be in network communication with the main robot controller 202 through a tertiary network channel 212 .

[0040] The main robot controller 202 manages commands and data for directing or regulating the movements and functions of the robotic components 204 included in the robot 100. The main robot controller 202 sends commands and data to and receives commands and data from one or more local controllers 206 associated with one or more robotic components 204 using a primary network channel 208 and a redundant secondary network channel 210 for the purpose and function of facilitating the control and operation of the robotic components 204, as well as for other purposes. In other words, the commands and data from and to the main robot controller 202 cause the robot to perform its various intended functions with its robotic components 204. More specifically, the main robot controller 202 and the local controllers 206 (i.e., distributed controllers) can each be configured to send and / or receive data (including commands, sensor data, control parameters, and other important information) used to operate the robotic system, including controlling the robotic system and its various components, monitoring the health of the robotic system and the health of any subsystems, configuring the robotic system and its subsystems, etc. In fact, commanding the movements of the robot is only one of many functions that may be performed by the main controller 202 and the local or distributed controllers 206. The uncorrupted exchange of data between these signal conditioning, processing, and control modules ensures proper and safe operation of the robot and its various systems or subsystems.

[0041] A network channel is a communications channel. A communications channel refers to a physical transmission medium, such as an electrical wire, and a logical connection over a multiplexed medium, such as a software-implemented communications protocol or wireless channel in telecommunications and computer networking. A communications channel is used to convey an information signal (data signal), e.g., a digital bit stream, from a sender (or transmitter) to one or more receivers. A communications channel has a particular capacity for transmitting information, often measured in terms of the communications channel's bandwidth in Hertz (Hz) or its data rate in bits per second.

[0042] The primary network channel 208 and the secondary network channel 210 each include a communication medium that provides a pathway for data transmission between the main robotic controller 202 and a local controller 206, such as one associated with a robotic component 204. The phrase "associated with" is intended to cover all configurations or arrangements in which the local controller 206 may be operable to receive / send commands and data from / to the main robotic component 102, for purposes described herein and as understood by one of ordinary skill in the art, such as for controlling one or more robotic components, initiating or executing a robotic function or operation, and / or any other purpose related to robotic monitoring and / or operation. In one embodiment, the local controller 206 being associated with a robotic component may mean that the local controller is part of (i.e., an integral part of) the robotic component 204. In another embodiment, a local controller associated with a robotic component can mean that the local controller is not necessarily a part of the robotic component 204, but communicates with the robotic component 204 for the intended purpose of receiving, sending, and processing commands and data, such as controlling the robotic component 204 or performing another function or operation.

[0043] The medium for primary network channel 208 and secondary network channel 210 may include network cables (e.g., multiple twisted-pair cables, coaxial cables, fiber optic cables, patch cables, power line cables), wireless network components, free-space optical network components, or another suitable medium, or any combination thereof. A network channel may support information transfer in one direction, alternating in either direction, or both directions simultaneously. These two modes of communication (alternating in either direction or both directions simultaneously) may be referred to as half-duplex and full-duplex, respectively.

[0044] 2 , the redundant network communication system of the robot 100 includes at least two network channels, such as a primary network channel 208 and a secondary network channel 210. In some cases, the redundant network communication system may include additional network channels, such as a tertiary network channel 212. The primary network channel 208 may be designated as the primary transmission channel for sending and receiving communications between the main robot controller 202 and a local controller 206, such as one associated with a robotic component 204. The secondary network channel 210 may be a redundant communication channel used to send and receive communications between the main robot controller 202 and a local controller 206 associated with a robotic component 204.

[0045] In the event that a self-diagnosed communication failure (e.g., a data packet loss) is detected by the local controller or the primary robot controller on a network channel (e.g., the primary network channel 208), the primary robot controller and / or local controller may then, as a default action, send / receive messages on a redundant network channel (e.g., the secondary network channel 210) to ensure continued network communication and proper operation of the robot. Alternatively, communications may be transmitted in parallel on both the primary network channel 208 and the secondary network channel 210 to ensure that communications can be transmitted / received by the local controller 206 and / or the primary robot controller 202 via the secondary network channel 210 in the event of a communication failure on the primary network channel 208.

[0046] Additionally, the main robot controller 202 or the local controller 206 can transmit the same data signal containing a command intended for the robotic component 204 on the primary network channel 208 and the secondary network channel 210 in parallel. As an example, the main robot controller 202 or the local controller 206 can duplicate a data signal (e.g., an original data signal) containing a command or instruction intended for the robotic component 204 or the main robot controller 202 to form first and second data signals that both contain the command or instruction. The main robot controller 202 can then transmit / receive the first data signal on the primary network channel 208 and the second data signal on the secondary network channel 210 to / from the local controller 206 associated with the robotic component 204 in parallel. Thus, the same command or instruction can be transmitted / received on both the primary network channel 208 and the secondary network channel 210 by the main robot controller 202 or the local controller 206 associated with the robotic component 204 at substantially the same time.

[0047] In one exemplary configuration, an external source (e.g., a remote control or remote computer) can send commands to the main robot controller 202, which can forward the commands to one or more intended local controllers associated with one or more robotic components 204 over both the first network channel 208 and the second network channel 210. In another exemplary configuration, the main robot controller 202 can be an autonomous system within the robot 100, and the main robot controller 202 can generate commands directed to one or more robotic components 204 and send those commands to one or more local controllers over both the first network channel 208 and the second network channel 210. In addition, the local controller 206 can also send commands to the main robot controller 202 based on user input. For example, an external source (e.g., a remote control or remote computer) can send commands to the local controller 206, which can forward the commands to the main robot controller 202 over both the first network channel 208 and the second network channel 210. In another exemplary configuration, the local controller 206 may be an autonomous system within the robot 100 that generates commands directed to the main robot controller 202 and transmits those commands to the main robot controller 202 over both the first network channel 208 and the second network channel 210.

[0048] The tertiary network channel 212 may be provided to facilitate additional redundant network communications between the main robot controller 202 and local controllers associated with the robotic components 204. In particular, the tertiary network channel 212 may be provided to facilitate additional redundant network communications between the main robot controller 202 and the controlled components 214. The tertiary network channel 212 may be a power line that provides power to the controlled components 214. Additionally or alternatively, the tertiary network channel 212 may provide data communications between the main robot controller 202 and the controlled components 214, thereby achieving redundant communication and actuation of the controlled components 214 in the event that the local controller 206 is unable to provide control and data signals to the controlled components 214 for any reason, such as if the primary network channel 208 and the secondary network channel 210 fail.

[0049] Using redundant network channels for communication within a robot can have the advantageous effect of avoiding hazardous conditions and system failures. For example, if a self-diagnosed communication failure (e.g., a data packet loss) is detected by a local controller or a main robot controller on a network channel (e.g., primary network channel 208), the main robot controller or local controller can then, as a default action, send a message on the redundant network channel (e.g., secondary network channel 210) to ensure continued network communication and proper operation of the robot even in the presence of a communication failure over one of the network channels. The local controller's self-diagnosis or self-verification function used to independently diagnose signal integrity on the first and second network channels can be performed using error detection algorithms and processes, such as using checksums, parity checks, and cyclic redundancy checks.

[0050] Alternatively, or in addition to the self-diagnostics described above, the local controller 206 or the main robot controller 202 can receive the first and second data signals transmitted on the primary network channel 208 and the secondary network channel 210, compare the first data signal with the second data signal (i.e., the signal integrity of the first data signal can be compared to the signal integrity of the second data signal), and determine the signal integrity of the first data signal, which can be a health indicator of the primary network channel 208. For example, the signal integrity of the first data signal can be used to determine whether there is a degradation in the first data signal, which indicates a problem with the primary network channel 208.

[0051] Data signal degradation is a reduction or loss in the quality, level, or performance standard of a data signal. In other words, data signal degradation is a decrease or loss of "signal integrity" as used herein. Loss of signal integrity or signal degradation can be caused by disruptions to the communication channel, such as damaged network cables, network congestion, or other physical connectivity issues. Loss or reduction in signal integrity can be due to weak or noisy RF signals, the presence of RF interference, data packet loss, packet collisions, or network device failure. Data signal degradation can be identified when the signal integrity of one data signal is lower than the signal integrity of another data signal.

[0052] A loss of signal integrity may indicate that a first data signal transmitted on the primary network channel 208 has degraded during transmission between the main robot controller 202 and the local controller 206 of the robotic component 204. Similarly, a degradation of a second data signal associated with the secondary network channel 210 may be detected through a comparison of the first and second data signals in addition to using self-diagnostics, which may indicate that there may be a problem with the secondary network channel 210.

[0053] Thus, in response to receiving the first and second data signals, the local controller 206 of the robotic component 204 or the main robot controller 202 can compare the data signals to determine signal integrity, data corruption, errors, or a lower-than-desired signal-to-noise ratio for the data signals, as described in further detail below. If the signal integrity of the first data signal associated with the primary network channel 208 is lower than the signal integrity of the second data signal associated with the secondary network channel 210, the local controller 206 or the main robot controller 202 can determine that the first data signal is degraded. Degradation typically refers to a decrease in the quality of a digital signal and may be caused by noise, interference, damaged network cables, faulty network devices, or other problems that may occur within the communication network of the robot 100.

[0054] In response to determining that a first data signal received on the primary network channel 208 is degraded, the local controller 206, or main robot controller 202, such as associated with the robotic component 204, can ignore or discard the first data signal and select a second data signal received on the secondary network channel 210. The local controller 206 can process the second data signal to obtain a command or instruction intended for the robotic component 204 (e.g., the controlled component 214 of the robotic component 204), execute the command or instruction, and cause the robotic component 204 (e.g., via the controlled component 214) to perform an action based on the command or instruction. That is, the local controller 206 of the robotic component 204 can fail over to receive commands and data on the secondary network channel 210 to prevent a shutdown of the robot 100 due to network degradation or failure on the primary network channel 208, resulting in a communication failure. Thus, network redundancy may be achieved by monitoring the primary network channel 208 for communication failures and failing over to the secondary network channel 208 when signal degradation in the primary network channel 208 is detected, which may indicate a network failure in the primary network channel 208.

[0055] 3 is a block diagram illustrating a high-level example of a redundant network communication system 300 within a robot, such as, for example, robotic exoskeleton 100. System 300 may comprise a main robot controller 301 in network communication with one or more local controllers, at least some of which may be associated with robotic components (see, e.g., robotic components 306A-N and 308A-N, similar to robotic component 204 of FIG. 2), or some of which may be operable to perform intended functions or operations other than controlling robotic devices or systems.

[0056] Although robotic components 306A-N and 308A-N do not specifically depict local controllers and controlled components as shown in FIG. 2, each of robotic components 306A-N and 308A-N may have or be associated with local controllers and controlled components that are in network communication with main robot controller 301 (e.g., via network channels 310, 312, and 314) in a manner similar to the way local controller 206 and controlled components 214 are in network communication with main robot controller 202 of FIG. 2 (via network channels 208, 210, and 212). Additionally, where elsewhere in this disclosure it is described that main robot controller 301 (including power distribution module 302 and / or data distribution module 304) provides data, power, and / or signals to each of robotic components 306A-N and 308A-N, it should be understood that such data, power, and / or signals are provided to one or more of the local controllers and controlled components of the associated robotic components.

[0057] The main robot controller 301 can provide power and data to the robotic components 306A-N and 308A-N (e.g., local controllers and / or controlled components of robotic components 306A-N and 308A-N) that operate various motions (e.g., degrees of freedom) and / or functions within the robot. The main robot controller 301 can include a power distribution module 302 in electrical communication with the robotic components to facilitate providing power to the robotic components (e.g., local controllers and / or controlled components of robotic components 306A-N and 308A-N). The main robot controller 301 can further include a data distribution module 304 to facilitate transferring control signals and other data between the robotic components (e.g., local controllers and / or controlled components of robotic components 306A-N and 308A-N). Any number of robotic components can be used in the robot, including right robotic components 308A-N and left robotic components 306A-N. The right and left side robotic components 306A-308N may correspond to robotic components that increase the degrees of freedom of movement (e.g., provided by joints) of the right and left sides of the robot, although one skilled in the art will appreciate that they may also correspond to torso robotic components or any robotic components regardless of placement, correspondence, function, and / or orientation.

[0058] As illustrated in FIG. 3 , the system 300 may include a primary network channel 310 (e.g., a first network channel) configured to facilitate network communication between the main robot controller 301 and the robotic components 306A-308N. The primary network channel 310 may facilitate the transfer of first data signals between the main robot controller 301 and local controllers of the robotic components 306A-308N for operating the robotic components. As shown, the primary network channel 310 may deliver data signals from the data distribution module 304 to the robotic components 306A-308N. If wired, the primary network channel may include a single channel branching from the main robot controller 301 to each robotic component, or may include one separate channel from the main robot controller 301 to each robotic component. The medium for the network channel 310 may include a network cable (e.g., twisted pair cable, coaxial cable, fiber optic cable, patch cable, power line cable, Ethernet cable), a wireless network component, or other suitable medium. Network channel 310 may support wired and / or wireless transfer of information in one direction, alternately in either direction, or both directions simultaneously.

[0059] The system 300 may include a secondary network channel 312 (e.g., a second network channel) configured to facilitate network communication between the main robot controller 301 and the local controllers of the robotic components 306A-308N. The secondary network channel 312 may facilitate the transfer of second data signals between the main robot controller 301 and the local controllers of the robotic components 306A-308N for operating the robotic components. As shown, the secondary network channel 312 may deliver power from the power distribution module 302 to the robotic components 306A-308N. The secondary network channel 312 may include a single channel branching from the main robot controller 301 to each robotic component, or may include one separate channel from the main robot controller 301 to each robotic component. The medium of the network channel 312 may include a network cable (e.g., twisted pair cable, coaxial cable, fiber optic cable, patch cable, power line cable, Ethernet cable).

[0060] The secondary network channel 312 may be used to deliver both power and data between the main robot controller 301 and the robotic components 306A-308N. Because power must be delivered to the local controllers and / or controlled components of the robotic components 306A-308N, the power line between the main robot controller 301 and the robotic components 306A-308N may also be utilized for data transfer between the main robot controller 301 and the robotic components 306A-308N. For example, the power distribution module 302 may be electrically connected to the data distribution module 304 via connection 316A to facilitate the transfer of power from the power distribution module 302 to the data distribution module 304. Similarly, the data distribution module 304 may be electrically connected to the power distribution module 302 via connection 316B to facilitate the transfer of data signals from the data distribution module 304 to the power distribution module 302. Those skilled in the art will appreciate that connections 316A and 316B may be combined into a single bidirectional power and communication path for conducting power and transferring data signals.

[0061] From the power distribution module 302, the data signal may be tuned to a frequency, configured, and / or encoded to transmit on the secondary network channel 312 in conjunction with the transmission of power without interfering with the data signal or power transmission. The secondary network channel 312 may include one or more of the connections 316A and 316B (e.g., first connections) connecting the power distribution module 302 to the data distribution module 304 and may be used to deliver the data signal from the data distribution module 304 to the power distribution module 302. The secondary network channel 312 further includes connections (e.g., second connections) of the secondary network channel 312 that may connect the power distribution module 302 and the robotic components 306A-308N. Thus, the secondary network channel 312 may be utilized as a power line communication channel to deliver power and data to one or more elements (e.g., local controllers and / or controlled components) of the robotic components 306A-308N.

[0062] Similarly, system 300 may include a tertiary network channel 314 that provides power from power distribution module 302 to one or more additional elements (e.g., motors, actuators, imaging devices, audio devices, sensors, recording devices, or other devices) of robotic components 306A-308N and data between one or more local controllers and / or controlled components of the robotic components and main robot controller 301. Similar to secondary network channel 312, tertiary network channel 314 may deliver power from power distribution module 302 and data from data distribution module 304 over tertiary network channel 314 via connection 316B to power distribution module 302 to robotic components 306A-308N. From power distribution module 302, data signals may be tuned to a frequency, configured, and / or encoded to transmit over tertiary network channel 314 in conjunction with the transmission of power without interfering with the data signal or power transmission. Thus, the tertiary network channel 314 may be utilized as a power line communication channel to deliver power and data to one or more elements (eg, controlled components) of the robotic components 306A-308N.

[0063] Additionally, each robotic component 306A-308N may include a wireless network component (e.g., a wireless transmitter, receiver, or transceiver) for facilitating wireless network communication. The data distribution module 304 may also include a wireless network component (e.g., a wireless transmitter, receiver, or transceiver) for facilitating wireless network communication between the robotic components 306A-308N and the data distribution module. The wireless network components of the robotic components and the data distribution module 304 may constitute a wireless network channel for transmitting data signals between the robotic components and the data distribution module 304. Thus, the wireless network channel may include a fourth redundant communication channel for providing data signals from the data distribution module 304 to the robotic components. The wireless network channel may include any wireless communication medium, including electromagnetic waves, light beams through mirrors and / or optical fibers, optical transmission, Bluetooth, Wi-Fi, or other methods of wireless data transmission.

[0064] Each of the robotic components 306A through 308N in FIG. 3 can be configured to include a controlled component and a local controller. FIG. 4 illustrates a block diagram showing the interfaces between the main robot controller 301, power distribution module 302, and data distribution module 304 and the elements of one robotic component, robotic component 306A. As shown, robotic component 306A can include a controlled component 307A for driving the motion and / or function of robotic component 306A. It should be understood that controlled component 307A may be any component used to actuate the function or motion of the robot and is not intended to be limited in any way by this disclosure. Indeed, the controlled component of any robotic component in robot 100 can be any functioning device of robot 100, including, but not limited to, a motor, gas or fluid or other actuator, clutch, transmission, sensor, imaging device, audio recording or playback device, light-emitting device, or any other function or device of any kind within the robot that is driven or controlled by a controller. The controlled component 307A can receive signals, including commands for movement and actuation, from the local controller 307B of the robotic component 306A.

[0065] 4, the primary network channel 310 may be configured to facilitate network communication between the main robot controller 301 and the local controller 307B and to facilitate the transfer of first data signals between the main robot controller 301 and the local controller 307B for controlling or communicating with the main robot controller 301. As described above, the primary network channel 310 may be any configuration of any wired and / or wireless data transfer network channel. The local controller 307B may include a first network interface 320 that connects, pairs, and / or interfaces with the primary network channel 310 to facilitate network communication between the local controller 307B and the main robot controller 301 and to facilitate the local controller 307B receiving first data signals from the data distribution module 304 of the main robot controller 301. The first network interface 320 may be any one or more of a port for receiving an electrical connection, a connector, a plug, an electrical wire, a wireless transmitter and / or receiver, or any element facilitating any type of network and / or electrical communication described herein. This disclosure is not intended to limit the interface in any way.

[0066] The secondary network channel 312 may be configured to facilitate network communications between the main robot controller 301 and the local controller 307B and to facilitate transmission of second data signals between the main robot controller 301 and the local controller 307B to operate the local controller 307B or communicate with the main robot controller 301. The local controller 307B may include a second network interface 322 that connects, pairs, and / or interfaces the secondary network channel 312 to facilitate network communications between the main robot controller 301 and the local controller 307B and to facilitate reception of second data signals by the local controller 307B in conjunction with power for the local controller 307B from the power distribution module 302 of the main robot controller 301. The second network interface 322 may be any one or more of a port, connector, plug, electrical wire for receiving an electrical connection, a wireless transmitter and / or receiver, or any element facilitating any type of network and / or electrical communication described herein. This disclosure is not intended to limit the interface in any way.

[0067] The power distribution module 302 can provide power to the local controller 307B of the robotic component 306A. Additionally, as shown, the data distribution module 304 can be electrically connected to the power distribution module 302, thereby providing power to the data distribution module 304. Additionally, the secondary network channel 312 can be configured to provide electrical communication from the power distribution module 302 to the local controller 307B and facilitate the provision of power from the power distribution module 302 to the local controller 307B.

[0068] The secondary network channel 312 is in network communication with both the main robot controller 301 and the local controller 307B through the power distribution module 302 and can facilitate the transfer of a second data signal transmitted on the secondary network channel 312 from the main robot controller 301, along with power provided from the power distribution module 302 to the local controller 307B on the secondary network channel 312. The secondary network channel 312 can include one or more of connections 316A and 316B (e.g., a first connection) connecting the power distribution module to the data distribution module. The secondary network channel 312 further includes a connection on the secondary network channel 312 (e.g., a second connection), which can connect the power distribution module 302 and the robot component 307B.

[0069] The connection 316A (e.g., a first connection) between the data distribution module 304 and the power distribution module 302 may be used to provide a second data signal from the data distribution module 304 to the power distribution module 302. The secondary network channel 312 (e.g., a second connection) may be configured to provide electrical communication from the power distribution module 302 to the local controller 307B and to facilitate the supply of power from the power distribution module 302 to the local controller 307B. The second data signal may be configured, tuned, and / or encoded by the local controller, the main robot controller 301, the data distribution module 304, or the power distribution module 302 to travel along the secondary network channel 312 in conjunction with power to transfer redundant data signals between the local controller 307B and the main robot controller 301 without interfering with either the power or the data signals. The local controller 307B may include a decoder for decoding the encoded second data signal transmitted to the local controller 307B on the secondary network channel 312. Similarly, the main robot controller 301 may include a decoder for decoding an encoded second data signal transmitted to the main robot controller 301 on the secondary network channel 312. The first and second data signals are configured to be redundant data signals transmitted on the primary network channel 310 and the secondary network channel 312, respectively. Thus, the secondary network channel 312 may be utilized as a power line communication channel to deliver power and data to one or more elements of the robot components (e.g., local controllers) or the main robot controller 301. From the power distribution module 302, the data signal may be tuned to a frequency, configured, and / or encoded to transmit on the secondary network channel 312 in conjunction with the transmission of power without interfering with the data signal or power transmission.

[0070] As shown, the tertiary network channel 314 can provide power from the power distribution module 302 to the controlled component 307A. The tertiary network channel 314 (e.g., a main power line) can be further configured to facilitate network communication between the main robot controller 301 and the local controller 307B and to facilitate the transfer of third data signals between the main robot controller 301 and the local controller 307B for operating the local controller 307B or the main robot controller 301. The local controller 307B can include a third network interface 324 that connects, pairs, and / or interfaces with the third network channel 314 to facilitate network communication between the local controller 307B and the main robot controller 301 and to facilitate receiving power by the local controller 307B and the transfer of third data signals between the local controller 307B and the main robot controller 301. Power may be received by the third network interface 324 from the power distribution module 302 of the main robot controller 301 through connection 318 and controlled components 307A, thus providing a redundant power channel in addition to a redundant network communication channel for delivering redundant data signals. Additionally, a third data signal may be received by the third network interface 324 from the data distribution module 304 of the main robot controller 301 through the power distribution module 302, the controlled components 307A, and connection 318. The third network interface 324 may be any one or more of a port, connector, plug, wire, wireless transmitter and / or receiver for receiving an electrical connection, or any element facilitating any type of network and / or electrical communication described herein for transferring data and / or delivering power. This disclosure is not intended to limit the interfaces in any way.

[0071] The power distribution module 302 can provide power to the controlled component 307A of the robotic component 306A. The controlled component 307A can be in network communication with the local controller 307B through connection 318. Thus, a third data signal can be provided to / from the data distribution module 304 via the power distribution module 302, the controlled component 307A, and the connection 318 to / from the local controller 307B to facilitate transfer of the third data signal over the third network channel 314 between the main robot controller 301 and the local controller 307B, along with power provided by the power distribution module 304 to the controlled component 307A over the third network channel.

[0072] Similar to the second data signal, the third data signal transmitted on the tertiary network channel 314 may be configured, tuned, and / or encoded by the primary robot controller 301, the data distribution module 304, or the power distribution module 302 to travel along the tertiary network channel 314 in conjunction with power to deliver the redundant data signal to the local controller 307B without interfering with either the power or the data signal. The local controller 307B may include a decoder for decoding the encoded second data signal transmitted to the local controller 307B on the secondary network channel 312. Similarly, the primary robot controller 301 may include a decoder for decoding the encoded second data signal transmitted to the primary robot controller 301 on the secondary network channel 312. The first, second, and third data signals may be configured to be redundant data signals transmitted on the first network channel, the second network channel, and the third network channel, respectively.

[0073] As disclosed, in addition to the primary, secondary, and tertiary network channels, the robot may further include additional wireless network channels to facilitate network communications between the main robot controller 301 and the local controller 307B and to facilitate the transfer of wireless data signals between the data distribution module 302 of the main robot controller 301 and the local controller 307B. The local controller 307B may include a wireless network interface 324 that connects, pairs, and / or interfaces wireless network channels to facilitate network communications between the main robot controller 301 and the local controller 307B and to facilitate the local controller 307B receiving / transmitting wireless data signals from / to the data distribution module 304 of the main robot controller 301. The first network interface 320 may be any known wireless transmitter and / or receiver, or any element facilitating any type of wireless network and / or electrical communication described herein, including wireless communication media, electromagnetic waves, optical beams through fiber optics or mirrors, optical transmission, Bluetooth, Wi-Fi, or other methods of wireless data transmission. This disclosure is not intended to limit the interfaces in any way. The first, second, third, and wireless data signals may be configured to be redundant data signals to a local controller or main robot controller transmitted separately on primary, secondary, and tertiary network channels and wireless network channels, respectively.

[0074] While Figure 4 depicts a single robotic component including a local controller and a controlled component, it should be understood that the system can include multiple robotic components, each including a local controller in network communication with a main robotic controller and each including controlled components driven by the local controller. A first network channel can be provided for each local controller of the multiple robotic components to facilitate network communication between the main robotic controller and each local controller and to facilitate transfer of first data signals between the main robotic controller and each local controller for operating each local controller or the main robotic controller. A second network channel can be provided for each local controller of the multiple robotic components to facilitate network communication between the main robotic controller and each local controller and to facilitate transfer of second data signals between the main robotic controller and each local controller for operating each local controller or the main robotic controller. The first data signal and the second data signal can be configured to be redundant data signals for the local controllers transmitted to each local controller of the multiple robotic components on each first network channel and each second network channel, respectively. Each of the robot components 306A-306N and 308A-308N of the robot 100, and any number of other robot components, may be configured as the robot component 306A shown in FIG.

[0075] The network system within a robot as described above can have many different configurations and can be implemented in a variety of ways and examples. FIGS. 5-7 present various examples of network channel configurations of an exemplary redundant network communication system that can be used for redundant network communication in a robot (e.g., the robot 100 of FIGS. 1-4 , or any other robot or robotic system). The various exemplary network channel configurations shown in FIGS. 5-7 are based on the general network channel configuration of the redundant network communication system of the robot 100 shown in FIGS. 1-4 and described above. In other words, any of the more specific exemplary network channel configurations shown in FIGS. 5-7 and described below can function in a manner similar to the general network channel configuration described above and can be incorporated into a robot, such as the robot 100 of FIGS. 1-4 . Therefore, the above description related to FIGS. 1-4 may be referenced as needed to understand the various exemplary network channel configurations of FIGS. 5-7 . 5-7, it is understood that the main robot controller 502 is operable to exchange communications with the robotic components 508A-N through one or more local controllers associated with the one or more robotic components 508A-N. As such, even if not explicitly stated, any reference herein to communication between the main robot controller 502 and any of the robotic components 508A-N should be understood to mean that the communication is via the local controller and / or controlled component associated with the robotic component 508A-N, as described above.

[0076] Additionally, although the robotic components 508A-N do not specifically depict local controllers and controlled components as shown in FIG. 2, it should be understood that each of the robotic components 508A-N may have or be associated with local controllers and controlled components that are in network communication with the main robotic controller 502, the power distribution module 504, and / or the data distribution module 506 (e.g., via power line communication channel 512 and / or cable communication channel 514A) in a manner similar to how the local controller 206 and the controlled components 214 are in network communication (e.g., via network channels 208, 210, and 212) with the main robotic controller 202 (including the power distribution module and / or the data distribution module) of FIG. 2. Additionally, where elsewhere in this disclosure power distribution module 504 and / or data distribution module 506 are described as providing data, power, and / or signals to each of robotic components 508A-N, it should be understood that such data, power, and / or signals are provided to one or more of the local controllers and controlled components of the associated robotic component.

[0077] 5 is a block diagram illustrating an exemplary network configuration for a robot 510A. The network configuration may include primary and secondary network channels in the form of a cable communication channel 514A and a powerline communication channel 512 (collectively referred to as network channels 512, 514A). The powerline communication channel 512 and the cable communication channel 514A may be part of a local area network (LAN) used for communication between the main robot controller 502 and local controllers and / or controlled components, such as those associated with robot components 508A-N included within the robot 510A. The LAN may be configured to use one or more Ethernet communication protocols or other suitable communication protocols.

[0078] As shown, robot 510A can include a main robot controller 502, a data distribution module 506, a power distribution module 504, and multiple robotic components 508A-N (e.g., actuators, motors, manipulators, end effectors, and the like). Each robotic component 508A-N can be associated with a local controller and / or controlled components (e.g., in the same or similar manner as local controller 206 and controlled components 214 described above in connection with FIG. 2). In another example, there can be several local controllers in a series of local controllers that are not associated with one of robotic components 508A-N, but rather are configured to perform other operations associated with the robot. Each robotic component 508A-N, local controller, and / or controlled component is assigned a network address that uniquely identifies it as a node in a LAN.

[0079] In one example, the cable communication channel 514A may be used as a primary network channel for the robot 510A, and the powerline communication channel 512 may be used as a redundant or backup (i.e., secondary) network channel for the robot 510A. However, it will be understood that in some examples, the powerline communication channel 512 may be used as a primary network channel and the cable communication channel 514A may be used as a secondary network channel. The physical transmission medium used for the cable communication channel 514A may include, but is not limited to, a multi-twisted pair cable (e.g., an Ethernet cable), a fiber optic cable, and / or a coaxial cable. The physical transmission medium used for the powerline communication channel 512 may include one or more alternating current (AC) or direct current (DC) power lines that provide power to the robot components 508A-N, including the local controller contained within the robot 510A. The powerline communication channel 512 may facilitate powerline communications (also known as powerline carrier or PLC), which may carry data over conductors that are also used to transmit or distribute AC or DC power to the electrical components of the robot 510A. The power line communication channel 512 can operate by applying a modulated carrier signal to the wiring system of the robot 510A.

[0080] As illustrated, the main robot controller 502 for the robot 510A can be in network communication with a data distribution module 506 configured to facilitate network communications between the main robot controller 502 and the robot components 508A-N (via the local controllers and / or controlled components associated with the robot components 508A-N), as well as between the main robot controller 502 and other local controllers. In response to receiving a communication from the main robot controller 502, the data distribution module 506 can encode the communication into overlapping data signals and transmit one of the data signals over a cable communication channel 514A and the other data signal over a power line communication channel 512 to a power distribution module 504 configured to transmit the data signal. In one example, the data distribution module 506 can encrypt the overlapping data signals before distributing the data signals to the robot components 508A-N. Thus, the same communication is transferred in parallel between at least one of the local controllers, such as those associated with the robot components 508A-N, and the main robot controller 502 over both the cable communication channel 514A and the power line communication channel 512.

[0081] In response to receiving the data signals transmitted on network channels 512 and 514A, a local controller (e.g., local controller 307B), such as one associated with one of robotic components 508A-N, compares the data signals to determine the signal integrity of the data signals. In a similar manner, main robot controller 202 can receive data transmitted on network channels 212 and 214 from local controllers associated with robotic components 208A-N and compare the data signals to determine the signal integrity of the data signals. As described above in connection with FIG. 2, in one example, a local controller or main robot controller can determine the signal integrity by comparing the signal strength and signal-to-noise ratio of the data signals to determine whether the signal strength and signal-to-noise ratio of the data signals transmitted on cable communication channel 514A are less than the signal strength and signal-to-noise ratio of the data signals transmitted on powerline communication channel 512. In another example, a local controller, or main robot controller, such as one associated with one of the robot components 508A-N, can determine signal integrity by comparing the number of data packets included in each of the data signals to determine whether the number of data packets included in the data signal transmitted over the cable communication channel 514A is less than the number of data packets included in the data signal transmitted over the power line communication channel 512. If the local controller or main robot controller can determine that the signal integrity of the data signal transmitted over the cable communication channel 514A is degraded, the local controller or main robot controller can ignore or discard the data signal and instead process the data signal received over the power line communication channel 512. For example, the local controller or main robot controller can process the data signal transmitted over the power line communication channel 512 to obtain commands encoded within the data signal and execute the commands obtained from the data signal.

[0082] Instead of, or in addition to, comparing the data signals transmitted on network channels 212 and 214, the local controllers of robot components 508A-N and / or the main robot controller 502 may independently monitor and self-diagnose the communication status of network channels 212 and 214 without comparing redundant data signals transmitted on network channels 212 and 214.

[0083] FIG. 5B illustrates an alternative configuration that modifies that shown in FIG. 5A. FIG. 5B is a block diagram illustrating an exemplary network configuration for a robot 510B. As shown in FIG. 5B, robot components 508A-508N can be connected in a ring topology (instead of the line topology shown in FIG. 5A) via cable communication channel 514B with respect to the main robot controller 502 and / or data distribution module 506. In the ring topology shown in FIG. 5B, the main robot controller 502 or data distribution module 506 can communicate with the local controllers of robot components 508A-508N serially, such that cable communication channel 514B travels from the data distribution module 506 to the local controller of robot component 508A, then to robot component 508B, and then sequentially through the robot components to robot component 508N. In the ring topology, cable communication channel 514B then returns to the data distribution module 506. In this ring topology, the data distribution module 506 or the main robot controller 502 may also send and / or receive data through the robot components in reverse order (i.e., to robot component 608N, then to the robot component before 608N, then in reverse order to robot component 608B, then 608A, and then back to the data distribution module 506 and / or the main robot controller 502).

[0084] 5B , if a communication failure is detected while data is flowing in a first direction (e.g., robotic component 608N does not receive / transmit data due to damage or other impairment of cable communication channel 514B), cable communication channel 514B can be used in the reverse direction (e.g., from data distribution module 506 to robotic component 608N to 608A) to transfer data in the reverse direction between data distribution module 506 or main robot controller 502 and robotic component 608N. FIG. 6 is a block diagram illustrating another example network configuration for robot 610 with wireless communication channel 614 and powerline communication channel 612 (collectively referred to as network channels 612, 614). Wireless communication channel 614 is part of a computer network using wireless data connections between network nodes, which may include data distribution module 606 networked with main robot controller 602 and multiple local controllers, some or all of which may be associated with robotic components 608A-N. The network channels 612, 614 may be part of a local area network (LAN) used for communication between the main robot controller 602 and local controllers, such as those associated with the robotic components 608A-N.

[0085] In one example, wireless communication channel 614 may be used as a primary network channel for robot 610, and powerline communication channel 612 may be used as a redundant or backup (i.e., secondary) network channel for robot 610. However, in other examples, powerline communication channel 612 may be designated as the primary network channel, and wireless communication channel 614 may be designated as the secondary network channel.

[0086] As in the previous example, the data distribution module 606 can distribute communications between the main robot controller 602 and local controllers, such as those associated with the robotic components 608A-N. In the example illustrated in Figure 6, the data distribution module 606 can encode communications received from the main robot controller 602 into overlapping data signals and transmit one of the data signals over a wireless communication channel 614 and the other data signal over a power line communication channel 612 to a power distribution module 604 configured to transmit the data signal over the wireless communication channel 614 and the other data signal over a power line communication channel 612. Similarly, the local controller can encode the overlapping data signals and transmit one of the data signals over a wireless communication channel 614 and the other data signal over a power line channel 612 to a power distribution module 604 configured to transmit the data signal over the power line channel 612.

[0087] At least one of the local controllers or main robot controllers, such as one or more associated with each one of the robotic components 608A-N, can receive the duplicate data signals on the network channels 612 / 614 and compare them to determine the signal integrity of the data signals. If one or more local controllers, such as one associated with the robotic components 608A-N, determine that the signal integrity of the data signal transmitted on the wireless communication channel 614 is degraded, the local controller or main robot controller can ignore or discard that data signal and select the data signal received on the powerline communication channel 612 for processing.

[0088] While the robotic components 608A-N do not specifically depict local controllers and controlled components as shown in FIG. 2, it should be understood that each of the robotic components 608A-N may have or be associated with local controllers and controlled components that are in network communication with the main robotic controller 602, power distribution module 604, and / or data distribution module 606 (e.g., via power line communication channel 612 and / or wireless communication channel 614) in a manner similar to how the local controller 206 and controlled components 214 are in network communication (via network channels 208, 210, and 212) with the main robotic controller 202 (including the power distribution module and / or data distribution module) as shown in FIG. 2. Additionally, where elsewhere in this disclosure the power distribution module 604 and / or the data distribution module 606 are described as transferring data, power, and / or signals between each of the robotic components 608A-N, it should be understood that such data, power, and / or signals are transferred via one or more of the local controllers and controlled components of the associated robotic components 608A-N.

[0089] 7A is a block diagram illustrating yet another example network configuration for a robot 710A, including a primary network channel, a secondary network channel, and a tertiary network channel. As illustrated, any of the network channels described herein can include a cable communication channel 714, a wireless communication channel 716, and / or a powerline communication channel 712 (collectively referred to as network channels 712, 714, 716). For example, the cable communication channel 714 can function as the primary network channel, the wireless communication channel 716 can function as the secondary network channel, and the powerline communication channel 712 can function as the tertiary network channel. Of course, as with other examples, different network hierarchies are possible and contemplated, and as such, the particular hierarchy described herein and illustrated in FIG. 7A is not intended to be limiting in any way.

[0090] Similar to the previous example, the data distribution module 706 can distribute duplicate data signals in parallel between the main robot controller 402 and local controllers, such as those associated with each of the plurality of robot components 708A-N, using network channels 712, 714, 716. That is, the data distribution module 706 can duplicate the data signals to create first, second, and third data signals, and the data distribution module 706 can transmit the first data signal on a primary communication channel (e.g., cable communication channel 716), the second data signal on a secondary communication channel (e.g., wireless communication channel 716), and the third data signal on a tertiary communication channel (e.g., powerline communication channel 712).

[0091] At least one of the local controllers, such as one or more associated with each one of the robotic components 708A-N, or even the main robot controller 702, can receive the duplicate data signals on network channels 712, 714, 716 and compare the three data signals to determine the signal integrity of the data signal associated with the primary network channel. If the signal integrity of the data signal transmitted on the primary network channel is degraded, one or more local controllers, such as one or more associated with each one of the robotic components 708A-N, or the main robot controller 702 can select the data signal received on the secondary network channel for processing. If the signal integrity of both the data signals transmitted on the primary and secondary network channels indicates a degraded data signal, the data signal transmitted on the tertiary network channel can be processed and used.

[0092] It should be understood that the powerline communication channel 712 may be omitted from the robot 710A of FIG. 7A and still be a functional redundant communication network configuration. In other words, the robot components 708A-708N may be powered by the power distribution module 704B through the powerline channel 712B. As shown in FIG. 7B, the power distribution module 704B is not connected to the data distribution module 706 and does not receive data signals for control of the robot components 708A-708N, such that only the primary and secondary network channels exist to facilitate communication between the main robot controller 702, the data distribution module 706, and the robot components 708A-708N. For example, FIG. 7B is a block diagram illustrating yet another exemplary network configuration for a robot 710B including a primary network channel and secondary network channels that are a cable communication channel 714 and a wireless communication channel 716.

[0093] Similar to the previous example, overlapping data signals may be transmitted in parallel between the main robot controller 402 and local controllers, such as those associated with each of the plurality of robot components 708A-N, using network channels 714 and 716. That is, overlapping data signals may be generated by the local controllers or the main robot controller 702, thereby generating first and second data signals, with the first data signal transmitted over a primary communication channel (e.g., cable communication channel 716) and the second data signal transmitted over a secondary network channel (e.g., wireless communication channel 716).

[0094] At least one of the local controllers, such as one or more associated with each one of the robotic components 708A-N, or the main robot controller 702, can receive the duplicate data signals on the network channels 714, 716 and compare them to determine the signal integrity of the data signal associated with the primary network channel. If the signal integrity of the data signal transmitted on the primary network channel is degraded, one or more local controllers, such as one or more associated with each one of the robotic components 708A-N, or the main robot controller 702 can select the data signal received on the secondary network channel for processing.

[0095] While the robotic components 708A-N do not specifically depict local controllers and controlled components as shown in FIG. 2, it should be understood that each of the robotic components 708A-N may have or be associated with local controllers and controlled components that are in network communication with the main robot controller 702, power distribution module 704, and / or data distribution module 706 (e.g., via power line communication channel 712, cable communication channel 714, and / or wireless communication channel 716) in a manner similar to how the local controller 206 and controlled components 214 are in network communication (via network channels 208, 210, and 212) with the main robotic controller 202 (including the power distribution module and / or data distribution module) of FIG. 2. Additionally, where elsewhere in this disclosure power distribution module 704 and / or data distribution module 706 are described as providing data, power, and / or signals to each of robotic components 708A-N, it should be understood that such data, power, and / or signals are provided to one or more of the local controllers and controlled components of the associated robotic components 708A-N.

[0096] Signal data for the primary, secondary, tertiary, and any number of other network channels (e.g., wireless communication channels 614, 716) can be processed according to a method for determining signal integrity of the data signal for each network channel. For example, with reference to the system 200 shown in FIG. 2 , the local controller 206 or main robot controller 202 associated with the robotic component 204 can determine the signal integrity of the first and second data signals for the respective first and second network channels by comparing the number of data packets contained in each of the first and second data signals, and the local controller 206 or main robot controller 202 can determine that the first data signal is degraded when the number of data packets contained in the first data signal is less than the number of data packets contained in the second data signal. A data packet refers to a single packaged unit of data traveling along a given network path. In computer networking, a data packet is a formatted unit of data carried by a packet-switched network. The data packets may contain user data or payloads including control information for delivering the network packets to a network destination, such as the main robot controller 202, and / or commands or instructions directed to the robotic component 204 (e.g., the local controller 206 of the robotic component 204).

[0097] In another exemplary configuration, the local controller 206 can determine the signal integrity of the first and second data signals by comparing the signal strength and signal-to-noise ratio of the first and second data signals. Signal strength may refer to, for example, the power output of the transmitter as received by the receiver in milliwatts (mW), a received signal strength indicator (RSSI), or decibels related to milliwatts (dBm). When the signal strength and signal-to-noise ratio of the first data signal are lower than the signal strength and signal-to-noise ratio of the second data signal, the local controller 206 or the main robot controller 202 can determine that the first data signal is degraded.

[0098] As indicated above, in response to determining that a first data signal received on the primary network channel 208 is degraded, the local controller 206 or the main robot controller 202 can ignore or discard the first data signal and select a second data signal received on the secondary network channel 210. The local controller 206 can process the second data signal to obtain a command or instruction intended for the local controller 204 of the robotic component 204 and execute the command or instruction to cause the local controller 206 of the robotic component 204 to control the controlled component 214 to perform an action based on the command or instruction. If the main robot controller 202 is receiving the data, the main robot controller 202 can process the second data signal to obtain a command or instruction intended for the main robot controller 202 of the robotic component 204 and execute the command or instruction to cause the main robot controller 202 of the robotic component 204 to perform an action based on the command or instruction. That is, the local controllers 206 of the main robot controller 202 can each fail over to receive / send commands to the secondary network channel 210 to prevent the robot 100 from shutting down due to network degradation or failure on the primary network channel 208, resulting in a communication failure. Thus, network redundancy is achieved by monitoring the primary network channel 208 for communication failures and failing over to the secondary network channel 208 when a signal degradation in the primary network channel 208 is detected, which may indicate a network failure in the primary network channel 208.

[0099] If a communication failure is detected, operation of the robot 100 may continue and corrective action may be taken (e.g., the robot may be placed into a safe operating mode and / or the operator of the robot 100 may be notified, or otherwise). For example, basic operation of the robot 100 (e.g., drive control, motion control, balance control, etc.) may be maintained via redundancy over the secondary network channel 210, allowing the robot 100 to be placed in a safe position or operating state (e.g., a non-standing or freestanding position) or safely returned to a service dock or station. In another example, if a communication failure related to the primary network channel 208 is detected by a local controller 206, such as a local controller associated with a robotic component 204, the local controller 206 may notify the primary robot controller 202 of the communication failure, and the primary robot controller 202 may switch to a service mode that allows the robot 100 to perform minimal functions and, if necessary, to reach a service station. Similarly, if a communication failure is detected by the primary controller 202, the primary controller 202 can switch to a service mode that allows the robot 100 to perform minimal functions and allows the robot 100 to reach a service station if necessary.

[0100] In one exemplary configuration, communications transmitted over the redundant network communication system may be limited to communications related to basic operations of the robot 100. For example, to prevent the robot 100 from entering an abnormal or unsafe state, the secondary network channel 210 is reserved for commands and data associated with basic operations of the robot 100 (e.g., drive control, motion control, balance control, etc.). Non-basic or non-essential commands may be transmitted over the primary network channel 208. As an example, the main robot controller 202 may duplicate a data signal containing a basic or essential command for a basic operation of the robot 100 and transmit the data signal to the local controller 206 in parallel over the primary and secondary network channels 208, 210. When received over the primary network channel 208, the local controller 206 may identify the data signal as containing a basic or essential command, for example, by inspecting the data packet for an indicator of a basic or essential command, and compare the data signal to the data signal received over the secondary network channel 210 to determine signal integrity of the primary network channel 208. If the controller 206 detects a communication failure associated with the primary network channel 208, the controller 206 can fail over to data signals received on the secondary network channel 210 to receive basic or essential commands, thereby enabling the robot 100 to maintain basic operation and avoid uncontrolled failure of the robot 100.

[0101] 9 , the local controller 206 associated with the robotic component 204 can log signal integrity metrics for the first and second data signals to enable diagnosis of degradation of the first data signal. For example, as part of comparing the first and second data signals, the local controller 206 can write the data signal metrics (e.g., signal strength and noise level, mW, RSSI, dBm, etc.) to a log (e.g., a network system log). The log can be stored in a memory device (not shown) located on the robot 100 or in an external data store, such as a remote data store, a data center, a service provider environment (e.g., a cloud environment), or the like.

[0102] Additionally, if a communication failure is detected, the local controller 106 can generate a system notification indicating that a problem has been detected with one or both of the primary network channel 208 and the secondary network channel 210. The system notification can provide the user with information that enables the user to return the robot 100 to a service location or take some other corrective action to avoid damage to the robot 100 and / or injury to the user and / or personnel within the robot's immediate area. For example, the system notification can specify the type of failure, the robot component 204 affected by the failure, instructions for correcting and / or bypassing the failure, etc. The system notification can be displayed on a display device of the robot 100 and / or a user device, played on an audio output device of the robot 100 and / or a user device, sent to the user device (e.g., application notification, SMS message, email, etc.), and similar methods.

[0103] In one example, after detecting a communication failure on the primary network channel 208 and switching to the secondary network channel 210 to transfer communications between the main robot controller 202 and the local controller 206, the local controller 206 or the main robot controller 202 can continue to monitor the primary network channel 208 to determine whether the primary network channel 208 recovers from the degradation or failure. For example, the local controller 206 and / or the main robot controller 202 can continue to self-monitor the primary network channel 208 and independently self-diagnose communication failures on the primary network channel 208 using a checksum algorithm or other self-diagnosis or self-verification techniques described herein. If the primary network channel 208 recovers from the degradation, the local controller 206 and / or the main robot controller 202 can return to transmitting data signals on the primary network channel 208 to communicate between the local controller 206 and the main robot controller 202. In one example, before returning to the primary network channel 208, the local controller 206 and / or the main robot controller 202 may continue to monitor the signal integrity of the primary network channel 208 for a certain period of time (e.g., 20 seconds, 60 seconds, 120 seconds, etc.), and then return to the primary network channel 208 if the signal integrity of the primary network channel 208 is maintained for that certain period of time.

[0104] Alternatively, or in addition to self-diagnostics, if the problem with the primary network channel 208 is temporary (e.g., temporary signal interference), the local controller 206 and / or the main robot controller 202 can continue to compare data signals received on both network channels 208, 210 to detect whether the primary network channel 208 has returned to full performance. If the local controller 206 and / or the main robot controller 202 detects that the primary network channel 208 has returned, the local controller 206 and / or the main robot controller 202 can return to the primary network channel 208 to transfer communications between the main robot controller 202 and the local controller 206. In one example, before returning to the primary network channel 208, the local controller 206 and / or the main robot controller 202 may continue to monitor the signal integrity of the primary network channel 208 for a certain period of time (e.g., 20 seconds, 60 seconds, 120 seconds, etc.), and then return to the primary network channel 208 if the signal integrity of the primary network channel 208 is maintained for that certain period of time.

[0105] FIG. 8 is a flow diagram illustrating an example method 800 for redundant network communication in a robot using any of the example redundant network communication system configurations described herein. Similar to block 810, a primary robot controller can generate duplicate data signals having encoded commands or instructions for directing or regulating the robot's movements and functions. The primary robot controller can then transmit a first data signal over a first network channel and a second data signal over a second network channel, the first and second network channels communicatively connecting the primary robot controller to local controller portions of robotic components or local controller portions associated with the robotic components in some other way. Of course, it is also contemplated that method 800 may include the generation of additional data signals that may be transmitted over additional network channels, as described above and illustrated in FIG. 7A.

[0106] Similar to block 820, the local controller may receive a first data signal transmitted on a first network channel and a second data signal transmitted on a second network channel (or any other data signal transmitted on an additional network channel) associated with the robotic component in one example. In response to receiving the first and second data signals, the local controller may compare the first data signal with the second data signal to determine signal integrity associated with the first and second network channels, similar to block 830. In one example, comparing the first and second data signals may include comparing the number of received data packets in each of the first and second data signals. In another example, comparing the first and second data signals may include comparing the signal strength and signal-to-noise ratio of the first data signal with the signal strength and signal-to-noise ratio of the second data signal.

[0107] Similar to block 840, if no degradation of the data signal received on the first network channel is detected, the first data signal may be processed to obtain a command encoded within the first data signal, and the local controller may cause the controlled component of the robotic component to execute the command, similar to block 850. However, if degradation of the data signal received on the first network channel is detected, the local controller may process the second data signal received on the second network channel to obtain a command encoded within the second data signal, and the local controller may cause the controlled component of the robotic component to execute the command, similar to block 860. That is, in either case, executing a command includes the local controller executing instructions obtained from one of the data signals that cause the controlled component of the robotic component to actuate in some way (or cause the local controller to initiate another function or action).

[0108] Although method 800 is described in the frame of reference of data created at a master robot controller and transmitted to a local controller, it should be understood that the master robot controller and the local controllers support bidirectional communication, and thus method 800 may be utilized in a similar manner in situations where data is transmitted from a local controller to a master robot controller.

[0109] In one exemplary configuration of a redundant network communication system for a robot, a third network channel may be used to provide additional network channel redundancy. For example, a main robot controller may generate three duplicate data signals and transmit the third data signal on the third network channel in parallel with transmitting the first and second data signals on the first and second network channels. When received at the local controller, the third data signal may be compared to the first and second data signals to determine degradation in signal integrity of any of the first, second, or third data signals. In one example, the first, second, and third network channels may be any combination of cable communication channels, power line communication channels, and / or wireless communication channels.

[0110] Other methods of diagnosing communication failures may be implemented instead of or in addition to method 800. FIG. 9 is a flow chart illustrating such an example method 900 for redundant network communication in a robot using any of the example redundant network communication system configurations described herein. Method 900 illustrates a process for independently diagnosing communication failures on independent network channels without having to duplicate and compare data signals transmitted on multiple network channels. Similar to block 910, a main robot controller (as an example of a first controller) can generate original data signals having encoded commands or instructions for directing or regulating the robot's movements and functions. The main robot controller can then transmit the first data signal on a primary network channel of the first network channel or the second network channel, which communicatively connect the main robot controller to local controllers (an example of a second controller) of robotic components or local controllers (an example of a second controller) associated with the robotic components in some other way. Of course, it is contemplated that method 900 may include generating additional data signals that may be transmitted over additional network channels, as described above and illustrated in FIG. 7A.

[0111] Similar to block 920, a local controller (e.g., a second controller) associated with a robotic component may receive a data signal transmitted on a primary network channel in one example. Similar to block 930, in response to receiving the data signal, the local controller determines signal integrity associated with the primary network channel and ascertains whether data signal degradation has occurred. In one example, the self-diagnostic function used to independently diagnose signal integrity on the primary network channel may be performed using checksum algorithms and processes as error detection mechanisms to determine signal degradation. In other examples, the controller may use various mechanisms, such as using error correction codes, parity checks, missing data packet detection, timeout mechanisms and algorithms, cyclic redundancy checks, etc. For example, the controller may detect missing data packets on a network channel by observing that the controller does not receive a packet within a specified time. These and any other methods known by those skilled in the art for detecting network channel problems and signal degradation may be used to self-diagnose the health of network channels and signals in a robotic network.

[0112] Similar to block 940, if no degradation of the data signal received on the primary network channel is detected, the local controller may continue with the default operation of receiving network data signals on the primary network channel and may move to block 810 of method 800 illustrated in FIG. 8 to further check the integrity of the data signal through a comparison of duplicate data signals transmitted on multiple network channels (e.g., primary, secondary, and tertiary network channels).

[0113] If degradation of the data signals received on the primary network channel is detected in block 950, the local controller may cease receiving and / or considering the data signals received on the primary network channel. To obtain and execute commands encoded in the data signals for operation of controlled components of the robotic component, the local controller may instead transition to receiving data signals transmitted on a redundant or secondary network channel to ensure continued reception of the data signals by the local controller and proper operation of the robot. That is, in either case, executing a command involves the local controller executing instructions obtained from one of the data signals that actuate a controlled component of the robotic component in some way (or cause the local controller to initiate another function or action).

[0114] It should be understood that the individual diagnosis of network channels (e.g., method 900) and the comparative diagnosis of network channels (e.g., method 800) are performed in conjunction with one another, with each network channel (e.g., primary, secondary, tertiary, etc.) being individually diagnosed and then comparatively diagnosed for network communication faults. The comparative diagnosis of method 800 can catch network communication faults that may be missed by the individual diagnosis of method 900. It will further be understood that each of method 800 and method 900 can be performed separately from one another. In other words, a user can choose to only individually diagnose network channels as in method 900 without using the method for comparative data signal analysis. In such a case, method 900 does not proceed to method 800 after block 940, but instead terminates or returns to block 910 to continue diagnosing the network channels. Alternatively, a user can choose to only use the comparative method of network channel diagnosis (e.g., method 800) without individually diagnosing the status of the network channels.

[0115] Although method 900 is described in the frame of reference of data created at a master robot controller and transmitted to a local controller, it should be understood that the master robot controller and the local controllers support bidirectional communication. Thus, method 900 may be utilized in a similar manner in situations where data is transmitted from a local controller to a master robot controller.

[0116] In one exemplary configuration of a redundant network communication system for a robot, a third network channel may be used to provide additional network channel redundancy. For example, the main robot controller may independently diagnose the third network channel (and additional network channels) in parallel with the first and second network channels. In one example, the first, second, and third network channels may be any combination of cable communication channels, power line communication channels, and / or wireless communication channels.

[0117] FIG. 10 is a flow diagram illustrating an example method 1000 for performing one or more corrective actions in response to detecting a communication failure in a robot. As shown in blocks 1010 and 1020, method 1000 may include the method steps of previously described method 800 for receiving data signals transmitted on primary and secondary network channels at a local controller, such as those associated with a robotic component, and comparing the data signals to determine signal integrity of the primary network channel. As part of performing the data signal comparison, the local controller, or another processor, may generate signal integrity metrics. For example, the signal integrity metrics may include measurements of signal strength and signal-to-noise ratio, mW, RSSI, dBm, single-bit and multi-bit errors, burst errors, missing packets, and other metrics. Similarly to block 1030, the local controller or other processor may write the signal integrity metrics to a system log, allowing the signal integrity metrics to be used to diagnose communication failures on the primary and secondary network channels. The system log may be stored in a memory device located on the robot or in a storage device located in an external data store, such as a remote data store, data center, service provider environment (e.g., a cloud environment), or the like.

[0118] If the data signal comparison indicates signal degradation on the primary network channel, as in block 1040, a system notification may be generated to the user indicating that there is a problem with the primary network channel, as in block 1050. The system notification may provide the user with information that enables the user to return the robot to a service location or take some other action to avoid damage to the robot and / or injury to the user. For example, the system notification may specify the type of fault, the robot component affected by the fault, and / or instructions for correcting and / or bypassing the fault, etc. The system notification may be displayed on a display device of the robot and / or user device, played on an audio output device of the robot and / or user device, sent to the user device (e.g., application notification, SMS message, email, etc.), and similar methods.

[0119] Although method 1000 is described in terms of the frame of reference of data received at the local controller, it should be understood that the primary robot controller and the local controllers support bidirectional communication, and thus method 900 may be utilized in a similar manner in situations where data is received at the primary robot controller.

[0120] 11 illustrates a computing device 1110 on which modules of the technology may execute. The computing device 1110 is illustrated at a high level and may be used as a main robot controller and / or local controllers associated with robotic components. The computing device 1110 may include one or more processors 1112 in communication with a memory device 1120. The computing device 1110 may include a local communication interface 1118 to components within the computing device. For example, the local communication interface 1118 may be a local data bus and / or any associated address or control bus as needed.

[0121] The memory 1120 may include modules 1124 and data for modules 1124 that are executable by the processor 1112. In one example, the memory 1120 may include a main robot controller module, a robotic component controller module, a data distribution module, a power distribution module, and other modules. The modules 1124 may perform the functions previously described. A data store 1122 may also be disposed within the memory 1120 for storing data related to the modules 1124 and other applications, along with operating systems executable by the processor 1112 and / or the processors of the modules 1124, including local controllers, such as those associated with the robotic components.

[0122] Other applications may also be stored in memory 1120 and executable by processor 1112. The components or modules described in this description may be implemented in software using a high-level programming language that is executed in a compiled, interpreted, or hybrid manner.

[0123] The computing device 1110 may also have access to I / O (input / output) devices 1114 that are usable by the computing device 1110. In one example, the computing device 1110 may have access to a display 1130 that allows for the output of system notifications. Networking devices 1116 and similar communication devices may be included in the computing device. The networking devices 1116 may be wired or wireless networking devices that connect to the Internet, a LAN, a WAN, or other computing networks.

[0124] Components or modules illustrated as stored in memory device 1120 may be executed by processor 1112. The term “executable” may refer to program files in a format that can be executed by processor 1112. For example, a program in a high-level language may be loaded into a random-access portion of memory device 1120 and compiled into machine code in a format that can be executed by processor 1112, or source code may be loaded by another executable program and interpreted to generate instructions in a random-access portion of memory to be executed by the processor. The executable program may be stored in any portion or component of memory device 1120. For example, memory device 1120 may be random-access memory (RAM), read-only memory (ROM), flash memory, solid-state drive, memory card, hard drive, optical disk, floppy disk, magnetic tape, or any other memory component.

[0125] The processor 1112 may represent multiple processors, and the memory device 1120 may represent multiple memory units operating in parallel with the processing circuitry. This can provide parallel processing channels for processes and data within the system. The local communication interface 1118 can be used as a network to facilitate communication between any of the multiple processors and any of the multiple memories. The local communication interface 1118 can use additional systems designed to coordinate communication, such as load balancing, bulk data transfer, and similar systems.

[0126] Although the flowcharts presented for this technology may imply a particular order of execution, the order of execution may differ from that illustrated. For example, the order of two or more blocks may be swapped with respect to the order shown. Furthermore, two or more blocks shown in succession may be executed in parallel or with partial parallelism. In some configurations, one or more blocks shown in a flowchart may be omitted or skipped. Any number of counters, state variables, alert semaphores, or messages may be added to the logic flow for improved usability, accounting, performance, measurement, troubleshooting, or similar reasons.

[0127] Some of the functional units described herein are labeled as modules to more fully emphasize their implementation independence. For example, a module may be implemented as a hardware circuit comprising custom VLSI circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may also be implemented with programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, or the like.

[0128] Modules may also be implemented as software for execution by various types of processors. An identified module of executable code may comprise one or more blocks of computer instructions, which may be organized, for example, as an object, a procedure, or a function. Nevertheless, the executable code for an identified module need not be physically located together, but may comprise disparate instructions stored in different locations that, when logically combined to comprise the module, accomplish a specified purpose for the module.

[0129] Indeed, a module of executable code may be a single instruction, or many instructions, or even distributed across several different code segments, among different programs, and across several memory devices. Similarly, operational data may be identified and illustrated herein within modules and may be embodied in any suitable form and organized within any suitable type of data structure. Operational data may be collected as a single data set or distributed across different locations, including across different storage devices. Modules may be passive or active and comprise agents operable to perform desired functions.

[0130] The techniques described herein may also be stored on computer-readable storage media, including volatile and non-volatile, removable and non-removable media implemented in any technology for storing information such as computer-readable instructions, data structures, program modules, or other data. Computer-readable storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other computer storage medium that can be used to store desired information and the techniques described.

[0131] Devices described herein may also include communications connections or networking equipment and connections that allow these devices to communicate with other devices. Communications connections are one example of communications media. Communications media typically embodied computer-readable instructions, data structures, program modules, and other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. A "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communications media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency, infrared, and other wireless media. As used herein, the term computer-readable media also includes the term communications media.

[0132] The following examples further illustrate some embodiments of the present invention. 1. A system for redundant network communication within a robot, comprising: a main robot controller in network communication with one or more robotic components; a local controller in network communication with a main robot controller and with controlled components of one or more robotic components controlled by the local controller to perform robotic functions; and one or more processors and a memory in network communication with one or more of the main robot controller and the local controllers, the memory, when executed by the processor, causing one or more of the local controllers and the main robot controller to: transferring first and second data signals between the main robot controller and the local controller via first and second network channels, the commands being encoded within the first and second data signals, the first data signal being transmitted on the first network channel and the second data signal being transmitted on the second network channel; comparing the first data signal with the second data signal to determine signal integrity of the first and second data signals; determining degradation of the first data signal when the signal integrity of the first data signal is lower than the signal integrity of the second data signal; A system for redundant network communication within a robot, including instructions that cause selecting a second data signal received on a second network channel for processing if degradation of the first data signal is determined. 2. The memory, when executed by the processor, enables the local controller or the main robot controller to: processing the second data signal to obtain a command encoded within the second data signal; The system of Example 1, further comprising instructions that cause the robotic component to perform an action based on a command obtained from the second data signal. 3. The instructions, when executed by the processor, cause the local controller or the main robot controller to: comparing the signal integrity of the first and second data signals; 3. The system of any one of Examples 1 to 2, further causing: determining whether a signal integrity of the first data signal is lower than a signal integrity of the second data signal. 4. The instructions, when executed by the processor, cause the local controller or the main robot controller to: comparing the number of data packets contained in each of the first and second data signals; The system of any one of Examples 1 to 3, further causing: determining that the number of data packets included in the first data signal is less than the number of data packets included in the second data signal; or determining that a data packet is missing if the main robot controller or a local controller does not receive a data packet within a specified time. 5. The system of any one of Examples 1 to 4, wherein the memory further includes instructions that, when executed by the at least one processor, further cause the local controller or the main robot controller to log signal integrity metrics for the first and second data signals to enable diagnosing degradation of the first data signal. 6. The system of any one of Examples 1 to 5, wherein the memory further includes instructions that, when executed by the at least one processor, cause the local controller or the main robot controller to generate a system notification indicating that there is a problem with the first network channel associated with the degradation of the first data signal. 7. The system of any one of Examples 1 to 6, wherein the main robot controller or the local controller transmits the first and second data signals in parallel on the first and second network channels. 8. The memory, when executed by the at least one processor, causes a local controller or a main robot controller to: forwarding a third data signal including the transmitted command over a third network channel concurrently with the transmission of the first and second data signals; 8. The system of any one of Examples 1 to 7, further comprising instructions to cause: comparing the third data signal to the first and second data signals to determine degradation of signal integrity of any of the first, second, or third data signals. 9. The system of any one of Examples 1 to 8, wherein the first, second, and third network channels each include a cable communication channel, a power line communication channel, or a wireless communication channel. 10. A computer-implemented method for redundant network communications, comprising: transferring commands between a main robot controller, a local controller in network communication with the main robot controller, and controlled components of robotic components controlled by the local controller to perform robotic functions, the commands being encoded in first and second data signals at the main robot controller or the local controller, the first data signal being transmitted over a first network channel and the second data signal being transmitted over a second network channel; comparing the first data signal to the second data signal to determine signal integrity associated with the first and second network channels; determining whether the signal integrity of the first data signal is degraded compared to the signal integrity of the second data signal; processing a second data signal received on a second network channel to obtain a command encoded within the second data signal; and performing an action based on a command obtained from the second data signal. 11. The method of Example 10, wherein comparing the first and second data signals further includes comparing a number of received data packets in each of the first and second data signals. 12. The method of any one of Examples 10 to 11, wherein comparing the first and second data signals further comprises comparing a signal-to-noise ratio of the first data signal to a signal-to-noise ratio of the second data signal. 13. The method of any one of Examples 10 to 12, further comprising writing signal integrity metrics for the first and second data signals to a system log to enable diagnosing degradation of the first data signal. 14. generating a system notification indicating a problem with the first network channel associated with the degradation of the first data signal; and displaying the system notification on a display device to alert a user to a problem with the first network channel associated with the degradation of the first data signal. 15. The method of any one of Examples 10 to 14, wherein performing an action based on the command includes executing an instruction to actuate a controlled component of the robotic component. 16. transferring a third data signal including the command sent on a third network channel in parallel with sending the first and second data signals on the first and second network channels between the main robot controller and the local controller; comparing the third data signal to the first and second data signals to determine degradation of signal integrity of any of the first, second, or third data signals; 16. The method of any one of Examples 10 to 15, wherein the first, second, and third network channels each comprise a cable communication channel, a power line communication channel, or a wireless communication channel. 17. A non-transitory machine-readable storage medium having instructions embodied thereon, the instructions, when executed by at least one processor, causing a redundant network communication system of a robot to: transferring first and second data signals transmitted on the primary and secondary network channels, respectively, between a main robot controller and a local controller associated with a controlled component of the robotic component and in network communication with the main robot controller, the original data signals being replicated in the main robot controller or the local controller to generate the first data signal and the second data signal; comparing the first and second data signals to determine signal integrity of the first and second data signals, the first data signal being compared with the second data signal; determining whether the signal integrity of the first data signal is degraded compared to the signal integrity of the second data signal; A non-transitory machine-readable storage medium that causes processing of a second data signal received on a secondary network channel. 18. The non-transitory machine-readable storage medium of Example 17, wherein the second data signal is processed to obtain a command encoded in the second data signal and cause the robotic component to perform an action based on the command obtained from the second data signal. 19. A redundant network communication system, when executed by at least one processor, comparing the signal integrity of the first and second data signals; 19. The non-transitory machine-readable storage medium of any one of Examples 17 to 18, further comprising instructions that cause determining whether a signal integrity of the first data signal is lower than a signal integrity of the second data signal. 20. A redundant network communication system, when executed by at least one processor, comparing the number of data packets contained in each of the first and second data signals; 20. The non-transitory machine-readable storage medium of any one of Examples 17 to 19, further comprising instructions to cause: determining whether a number of data packets included in the first data signal is less than a number of data packets included in the second data signal; or determining whether a data packet is missing if the data packet is not received within a specified time. 21. The non-transitory machine-readable storage medium of any one of Examples 17 to 20, further comprising instructions that, when executed by at least one processor, cause the redundant network communication system to write signal integrity metrics for the first and second data signals to a system log to enable diagnosing degradation of the first data signal. 22. The non-transitory machine-readable storage medium of any one of Examples 17 to 21, further comprising instructions that, when executed by at least one processor, cause the redundant network communication system to generate a system notification indicating that a primary network channel associated with the degradation of the first data signal is experiencing a problem. 23. A redundant network communication system, when executed by at least one processor, transferring, between the main robot controller and the local controller, in parallel with transmitting the first and second data signals on the primary and secondary network channels, a third data signal generated from the original data signals and transmitted on a tertiary network channel; further comprising instructions to cause comparing the third data signal to the first and second data signals to determine degradation of signal integrity of any of the first, second, or third data signals; 23. The non-transitory machine-readable storage medium of any one of Examples 17 to 22, wherein the primary, secondary, and tertiary network channels each include a cable communication channel, a power line communication channel, or a wireless communication channel.

[0133] Reference has been made to examples illustrated in the drawings, and specific language has been used herein to describe the same. It will nevertheless be understood that no limitation of the scope of the technology is thereby intended. Alterations and further modifications of the features illustrated herein, as well as additional applications of the examples as illustrated herein, should be considered within the scope of the description.

[0134] Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more examples. In the previous description, numerous specific details, such as example configurations, are given to provide a thorough understanding of examples of the described technology. However, it will be understood that the technology may be practiced without one or more of the specific details, or using other methods, components, devices, etc. In other instances, well-known structures or operations have not been shown or described in detail to avoid obscuring aspects of the invention.

[0135] Although the inventive subject matter has been described in language specific to structural functions and / or operations, it will be understood that the inventive subject matter defined in the appended claims is not necessarily limited to the specific functions or operations described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. Numerous modifications and alternative arrangements may be devised without departing from the spirit and scope of the described technology. [Explanation of symbols]

[0136] 100 Robotic Exoskeletons 200 systems 202 Main Robot Controller 204 Robot Components 206 Local Controller 208 Primary Network Channel 210 Redundant Secondary Network Channels 212 Ternary Network Channel 214 Controlled Components 300 Redundant Network Communication System 301 Main Robot Controller 302 Power Distribution Module 304 Data Distribution Module 306A~306N, 308A~308N Robot Components 307A Controlled Components 310, 312, 314 network channels 316A Connection 316B Connection 318 Connection 320 First Network Interface 322 Secondary Network Interface 324 Third Network Interface 502 Main Robot Controller 504 Power Distribution Module 506 Data Distribution Module 508A~508N Robot Components 510A Robot 510B Robot 512 Power Line Communication Channel 514A Cable Communications Channel 602 Main Robot Controller 606 Data Distribution Module 608A~608N Robot Components 610 Robot 612 Power Line Communication Channel 614 Wireless Communication Channels 702 Main Robot Controller 704B Power Distribution Module 706 Data Distribution Module 708A~708N Robot Components 710A Robot 712 Power Line Communication Channel 712B Power Line Channel 714 cable communication channels 716 wireless communication channels 800 ways 900 ways 1000 ways 1110 Computing Devices 1112 processor 1114 I / O (input / output) devices 1116 Networking Devices 1118 Local Communication Interface 1120 Memory Device 1122 Datastore 1124 Module 1130 Display

Claims

1. 1. A system for redundant network communication within a robot, comprising: a main robot controller in network communication with one or more robotic components; a local controller in network communication with the main robot controller and controlled components of the one or more robotic components controlled by the local controller to perform functions of the robot; and one or more processors and memory in network communication with the main robot controller and one or more of the local controllers, the memory, when executed by the processor, causing one or more of the local controllers and the main robot controller to: transferring first and second data signals between the main robot controller and the local controller over first and second network channels, commands being encoded within the first and second data signals, the first data signal being transmitted over the first network channel and the second data signal being transmitted over the second network channel; comparing the first data signal with the second data signal to determine signal integrity of the first and second data signals; determining degradation of the first data signal when the signal integrity of the first data signal is lower than the signal integrity of the second data signal; A system for redundant network communication in a robot, comprising instructions that cause selecting the second data signal received on the second network channel for processing when degradation of the first data signal is determined.

2. The memory, when executed by the processor, causes the local controller or the main robot controller to: processing the second data signal to obtain the command encoded within the second data signal; The system of claim 1 , further comprising instructions that cause the robotic component to perform an action based on the command obtained from the second data signal.

3. The instructions, when executed by the processor, cause the local controller or the main robot controller to: comparing the signal integrity of the first and second data signals; The system of claim 1 , further causing: determining whether the signal integrity of the first data signal is lower than the signal integrity of the second data signal.

4. The instructions, when executed by the processor, cause the local controller or the main robot controller to: comparing the number of data packets included in each of the first and second data signals; 2. The system of claim 1, further causing: determining that a number of data packets included in the first data signal is less than a number of data packets included in the second data signal; or determining that a data packet is missing if the main robot controller or the local controller does not receive the data packet within a specified time.

5. 10. The system of claim 1, wherein the memory further comprises instructions that, when executed by the at least one processor, further cause the local controller or the main robot controller to log signal integrity metrics for the first and second data signals to enable diagnosing the degradation of the first data signal.

6. 10. The system of claim 1, wherein the memory further comprises instructions that, when executed by the at least one processor, cause the local controller or the main robot controller to generate a system notification indicating that there is a problem with the first network channel associated with the degradation of the first data signal.

7. The system of claim 1 , wherein the main robot controller or the local controller transmits the first and second data signals in parallel over the first and second network channels.

8. The memory, when executed by the at least one processor, causes the local controller or the main robot controller to: transmitting a third data signal including the transmitted command over a third network channel concurrently with the transmission of the first and second data signals; 10. The system of claim 1, further comprising instructions that cause: comparing the third data signal to the first and second data signals to determine degradation of signal integrity of any of the first, second, or third data signals.

9. 9. The system of claim 8, wherein the first, second, and third network channels each include a cable communication channel, a power line communication channel, or a wireless communication channel.

10. 1. A computer-implemented method for redundant network communications, comprising: transferring commands between a main robot controller, a local controller in network communication with the main robot controller, and controlled components of robot components controlled by the local controller to perform functions of the robot, wherein commands are encoded in first and second data signals at the main robot controller or the local controller, the first data signal being transmitted over a first network channel and the second data signal being transmitted over a second network channel; comparing the first data signal with the second data signal to determine signal integrity associated with the first and second network channels; determining whether the signal integrity of the first data signal is degraded compared to the signal integrity of the second data signal; processing the second data signal received on the second network channel to obtain the command encoded within the second data signal; and performing an action based on the command obtained from the second data signal.

11. 11. The method of claim 10, wherein comparing the first and second data signals further comprises comparing a number of received data packets in each of the first and second data signals.

12. 11. The method of claim 10, wherein comparing the first and second data signals further comprises comparing a signal-to-noise ratio of the first data signal to a signal-to-noise ratio of the second data signal.

13. 11. The method of claim 10, further comprising writing signal integrity metrics for the first and second data signals to a system log to enable diagnosing the degradation of the first data signal.

14. generating a system notification indicating a problem with the first network channel associated with the degradation of the first data signal; and displaying the system notification on a display device to alert a user that there is a problem with the first network channel associated with the degradation of the first data signal.

15. The method of claim 10 , wherein performing the action based on the command comprises executing an instruction to operate the controlled component of the robotic component.

16. transferring a third data signal including the command sent over a third network channel in parallel with sending the first and second data signals over the first and second network channels between the main robot controller and the local controller; comparing the third data signal with the first and second data signals to determine degradation of signal integrity of any of the first, second, or third data signals; 11. The method of claim 10, wherein the first, second, and third network channels each include a cable communication channel, a power line communication channel, or a wireless communication channel.

17. 1. A non-transitory machine-readable storage medium having instructions embodied thereon, the instructions, when executed by at least one processor, causing a redundant network communication system of a robot to: transferring first and second data signals transmitted on primary and secondary network channels, respectively, between a main robot controller and a local controller associated with a controlled component of a robotic component and in network communication with the main robot controller, the original data signals being replicated at the main robot controller or the local controller to generate the first data signal and the second data signal; comparing the first and second data signals to determine signal integrity of the first and second data signals, the first data signal being compared to the second data signal; determining whether the signal integrity of the first data signal is degraded compared to the signal integrity of the second data signal; a non-transitory machine-readable storage medium that causes processing of the second data signal received on the secondary network channel;

18. 18. The non-transitory machine-readable storage medium of claim 17, wherein the second data signal is processed to obtain a command encoded in the second data signal and to cause the robotic component to perform an action based on the command obtained from the second data signal.

19. When executed by the at least one processor, the redundant network communication system comprises: comparing the signal integrity of the first and second data signals; 20. The non-transitory machine-readable storage medium of claim 18, further comprising instructions that cause: determining whether the signal integrity of the first data signal is lower than the signal integrity of the second data signal.

20. When executed by the at least one processor, the redundant network communication system comprises: comparing the number of data packets included in each of the first and second data signals; 20. The non-transitory machine-readable storage medium of claim 18, further comprising instructions that cause: determining whether a number of data packets included in the first data signal is less than a number of data packets included in the second data signal; or determining whether a data packet is missing if the data packet is not received within a specified time.

21. 20. The non-transitory machine-readable storage medium of claim 18, further comprising instructions that, when executed by the at least one processor, cause the redundant network communication system to write signal integrity metrics for the first and second data signals to a system log to enable diagnosing the degradation of the first data signal.

22. 20. The non-transitory machine-readable storage medium of claim 18, further comprising instructions that, when executed by the at least one processor, cause the redundant network communication system to generate a system notification indicating that the primary network channel associated with the degradation of the first data signal is experiencing a problem.

23. When executed by the at least one processor, the redundant network communication system comprises: transferring a third data signal generated from the original data signal and transmitted on a tertiary network channel in parallel with transmitting the first and second data signals on the primary and secondary network channels between the main robot controller and the local controller; further comprising instructions to cause comparing the third data signal with the first and second data signals to determine degradation of signal integrity of any of the first, second, or third data signals; 20. The non-transitory machine-readable storage medium of claim 18, wherein the primary, secondary, and tertiary network channels each comprise a cable communication channel, a power line communication channel, or a wireless communication channel.

Citation Information

Patent Citations

  • Safety circuit assembly

    JP2014516433A

  • Powerline-controlled electric drive inverters

    JP2018207770A

  • A robot arm safety system with run-time adaptable safety limits

    JP2022526788A

  • Communication Device for a Redundantly Operable Industrial Communication Network and Method for Operating the Communication Device

    US20130223204A1

  • Partitioned wireless communication system with redundant data links and power lines

    US20200067570A1