Data transmission assembly for robotic device

By using electromagnetic wave transmission system and switching equipment at the robot joints, the power and data transmission difficulties of remote sensors are solved, efficient and flexible data routing and transmission are achieved, and data richness and usability of the robot system are improved.

CN120457002APending Publication Date: 2025-08-08BOSTON DYNAMICS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380091312.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-12-02
Filing Date
2023-11-27
Publication Date
2025-08-08

AI Technical Summary

Technical Problem

The difficulty in transmitting power and data of remote sensors in existing robot systems leads to limited transmission rates, limiting the richness and practicality of data, and high mechanical constraints and physical wear sensitivity.

Method used

The electromagnetic wave transmission system is adopted to transmit data at the robot joints through free air or waveguides. Combined with PCIe, USB or Ethernet configurations, it supports multiple host processors and sensors using switching devices to achieve flexible data routing.

Benefits of technology

Eliminates rotary mechanical constraints, increases available workspace for joints, supports flexible expansion of more sensors and processors, and improves data transfer rates and availability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120457002A_ABST
    Figure CN120457002A_ABST
Patent Text Reader

Abstract

The present invention includes systems and methods for routing data packets in a robot. The method includes routing data packets between a first host processor and a first electronic device of the robot using a first switching device, and routing data packets between a second host processor and a second electronic device of the robot using the first switching device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates generally to robotics and, more particularly, to systems, methods, and apparatus, including computer programs, for transmitting data associated with robotic devices. Background Art

[0002] A robot is generally defined as a reprogrammable and multifunctional manipulator designed to move materials, parts, tools, and / or specialized equipment (e.g., via variable programmed motion) to perform a task. A robot can include a physically anchored manipulator (e.g., an industrial robot arm), a mobile device that moves through an environment (e.g., using legs, wheels, or a traction-based mechanism), or some combination of one or more manipulators and one or more mobile devices. Robots are currently used in a variety of industries, including, for example, manufacturing, warehouse logistics, transportation, hazardous environments, exploration, and healthcare. Summary of the Invention

[0003] In some scenarios, it may be helpful to have one or more sensors (e.g., depth and / or vision sensors) at one or more remote locations on the robot (e.g., downstream of one or more robot joints, such as in the “palm” of the robot’s gripping hand). Such sensors can provide an additional vantage point that enables the robot (and / or robot operator) to better understand its environment and / or prescribe desired robotic manipulation operations. Previously, supporting these types of remote sensors has been difficult. First, providing power and / or data transmission capabilities to these sensors requires a custom cabling scheme for each specific hardware configuration. Second, such cabling schemes can impose additional constraints (such as limiting the available rotation range of the robot joints and / or increasing the configuration’s susceptibility to physical wear over time (e.g., due to wear and tear of the custom cables)).

[0004] Another issue is that each joint in a robot typically requires a data connection to the robot's central processing unit (CPU), which is typically located in the robot's body or base. Some robots have used controller area networks (CAN) to transmit data to and / or from various controllers in the robot (e.g., motor controllers in the robot's joints). However, such systems have limitations on the available data rates (e.g., they have been below 100 Mbps), which in turn limits the richness and / or usefulness of the data that can be transmitted, particularly to and / or from remote locations on the robot.

[0005] The present invention includes systems, methods, and apparatus, including computer programs, for transmitting data from a robotic device via electromagnetic waves (e.g., visible light and / or radio waves) traveling through a medium (e.g., free air and / or a waveguide). In one exemplary embodiment, an optical transceiver system is embedded in an actuator of a robot. The optical transceiver system is used to transmit data signals across joints (e.g., joints located near and / or coupled to the actuator) using electromagnetic radiation (e.g., instead of wires running through the joints and / or equivalent locations in the actuator). This configuration can offer advantages over existing setups. One advantage is that by removing mechanical constraints on rotation, joints can rotate continuously (e.g., 360 degrees or more), significantly increasing the available workspace for attached components (e.g., robotic limbs or manipulators). For example, a freely rotating manipulator arm can function as a drill or a continuous valve turner. As another example, an industrial arm with freely rotating links can plan trajectories within an expanded space of possible movements, ultimately creating more efficient trajectories. As a third example, a humanoid robot with a head that can rotate in any direction can easily collect sensor data from a wider field of view without having to reorient its body. Such examples are non-limiting, and many other examples will be apparent to those of ordinary skill in the art.

[0006] In some embodiments, such as those described above, a data transfer path (e.g., a single lane of PCI Express ("PCIe")) may be routed across one or more joints of a robot (e.g., all the way down an articulated limb of the robot). However, in some embodiments, there are many other data transfer constraints—for example, each PCIe lane originates from a host processor, which makes it difficult or impossible to support different sensors with different processors. For optimal performance, it may be desirable to support a first sensor (e.g., a depth camera) with a first host processor and a second sensor (e.g., an RGB camera) with a second host processor (and so on for additional sensors and processors if needed). In some embodiments, it may be desirable to support each device with its own dedicated host processor, rather than fundamentally limiting the number of processors that can be included in the robot.

[0007] Furthermore, in some embodiments, such as those described above, one or more switch architectures can be implemented, allowing dedicated processors to support unique sensor devices communicating with them. For example, one processor may support one or more actuator controllers, while another processor may support one or more devices responsible for perception, navigation, and / or object classification (with direct access to image data). Such an architecture can enable the use of substantially more kinematic and / or sensor data, regardless of where the sensors are physically located on the robot, and allows for flexible expansion in the future. In some embodiments, PCIe (e.g., Gen 3 or Gen 2) can be routed through the robot's limbs and / or joints. In some embodiments, multiple robot joints can be mechanically connected (e.g., in series) and / or can support cameras or other data-rich sensors anywhere along the signal chain. In some embodiments, USB (e.g., USB 3.0 or USB 2.0) or Ethernet configurations can be used in place of and / or in addition to PCIe.

[0008] In one aspect, the invention features an electronic circuit for a robot. The electronic circuit includes a switching device and a set of two or more host processors. The switching device is configured to (i) route data packets between a first host processor and a first electronic device of the robot, and (ii) route data packets between a second host processor and a second electronic device of the robot.

[0009] In some embodiments, the switching device comprises a PCIe switching device. In some embodiments, the electronic circuit further comprises a first host processor and a second host processor. In some embodiments, the electronic circuit further comprises a first electronic device of the robot and a second electronic device of the robot. In some embodiments, the first electronic device of the robot further comprises a sensor, and the second electronic device of the robot comprises a robot actuator. In some embodiments, the switching device comprises a plurality of ports. In some embodiments, the electronic circuit further comprises an electromagnetic wave transmitter and an electromagnetic wave receiver, wherein the switching device is coupled to at least one of the receiver or the transmitter. In some embodiments, the electronic circuit further comprises a first sensor and a second sensor, and the first sensor and the second sensor are electronically coupled to the switching device, and the switching device is coupled to at least one of the transmitter or the receiver. In some embodiments, the switching device is located within or adjacent to the first robot joint. In some embodiments, the electronic circuit further comprises a robot processor in electronic communication with the switching device, wherein data traffic routed through the switching device is controlled by a configuration file executed on the robot processor.

[0010] In one aspect, the invention features a method of routing data packets in a robot. The method includes routing the data packets between a first host processor and a first electronic device of the robot using a first switching device, and routing the data packets between a second host processor and a second electronic device of the robot using the first switching device.

[0011] In some embodiments, the first switching device comprises a PCIe switching device. In some embodiments, the first electronic device of the robot comprises a perception sensor, and the second electronic device of the robot comprises a robot actuator. In some embodiments, the first switching device comprises a plurality of ports. In some embodiments, the first switching device is coupled to at least one of an electromagnetic wave receiver or an electromagnetic wave transmitter. In some embodiments, the first switching device is located within or adjacent to the first robot joint. In some embodiments, the method further comprises controlling the routing of data traffic through the first switching device via a configuration file executed on the robot processor. In some embodiments, the method further comprises routing data packets between the first host processor and the robot's third electronic device using the second switching device, and routing data packets between the second host processor and the robot's fourth electronic device using the third switching device. In some embodiments, the second switching device comprises a PCIe switching device. In some embodiments, the method further comprises controlling the routing of data traffic through the second switching device via a configuration file executed on the robot processor.

[0012] In one aspect, the invention features an assembly for a robot. The assembly includes a first component and a second component, the first component including an electromagnetic wave transmitter configured to transmit a data signal, and the second component coupled to the first component at a first robot joint, the second component including an electromagnetic wave receiver configured to receive the data signal. The transmitter and receiver are configured to operate at a data rate of at least 100 Mbps.

[0013] In some embodiments, the first member comprises at least one of a robot body or a robot limb. In some embodiments, the second member comprises at least one of a robot end effector or a robot limb. In some embodiments, the assembly further comprises a third member coupled to the second member at a second robot joint, wherein the second member comprises a robot limb and the third member comprises at least one of the robot end effector or another robot limb.

[0014] In some embodiments, the transmitter is enclosed by a first member, and the receiver is enclosed by a second member. In some embodiments, the transmitter is coaxial or parallel to the first member, and the receiver is coaxial or parallel to the second member. In some embodiments, the transmitter is configured to transmit a signal to the receiver across a robot joint. In some embodiments, the transmitter is configured to transmit the signal to the receiver over the air. In some embodiments, the transmitter is configured to transmit the signal to the receiver via a waveguide. In some embodiments, the transmitter and receiver are optical devices. In some embodiments, the transmitter includes a first optical transceiver, and the receiver includes a second optical transceiver. In some embodiments, the transmitter and receiver are radio devices. In some embodiments, the transmitter includes a first radio transceiver, and the receiver includes a second radio transceiver. In some embodiments, the transmitter and receiver are configured to support PCI Express (PCIe) devices.

[0015] In some embodiments, the assembly further comprises a switch electronically coupled to the transmitter, the switch comprising a plurality of ports. In some embodiments, the transmitter and receiver are configured to support Ethernet devices. In some embodiments, the transmitter and receiver are configured to support Universal Serial Bus (USB) devices. In some embodiments, the transmitter and receiver are configured to support Controller Area Network (CAN) devices. In some embodiments, at least one of the first member or the second member is rotatable about a robot joint. In some embodiments, the transmitter is enclosed in a first actuator of the first member, and the receiver is enclosed in a second actuator of the second member. In some embodiments, the data signal is configured to travel within an interior region of the first actuator and an interior region of the second actuator. In some embodiments, the assembly further comprises a first processor electronically coupled to the transmitter. In some embodiments, the assembly further comprises a first sensor electronically coupled to the receiver.

[0016] In some embodiments, the assembly further comprises a first processor and a second processor, wherein the first processor and the second processor are electronically coupled to a data network switch, and the data network switch is coupled to at least one of the receiver or the transmitter. In some embodiments, the assembly further comprises a first sensor and a second sensor, wherein the first sensor and the second sensor are electronically coupled to the data network switch, and the data network switch is coupled to at least one of the transmitter or the receiver. In some embodiments, the data network switch is configured to route first data traffic between the first sensor and the first processor, and to route second data traffic between the second sensor and the second processor, through a single node. In some embodiments, the data network switch is located within or adjacent to the first robot joint. In some embodiments, data traffic routed through the data network switch is controlled by a configuration file executed on a robot processor in electronic communication with the data network switch.

[0017] In some embodiments, at least one of the first member or the second member is configured to continuously rotate about a first robot joint. In some embodiments, the transmitter is configured to transmit data via at least one of (i) a free air medium, an optical fiber, an optical waveguide, or a radio frequency waveguide. In some embodiments, at least one of the following applies: (i) a PCIe interface connected to a USB host controller; (ii) a PCIe interface connected to an Ethernet adapter; (iii) a PCIe interface connected to an FPGA; (iv) an Ethernet connection to a microprocessor; (v) a PCIe interface connected to a microprocessor; (vi) an Ethernet interface to a CPU; (vii) a PCIe interface connected to a MIPI bridge device; (viii) the robot joint includes PCIe to enable multiple attached devices to connect to a single PCIe upstream channel; (ix) the robot joint includes an Ethernet switch to enable multiple attached devices to connect to a single upstream Ethernet interface. In some embodiments, the transmitter and receiver are configured to operate at a data rate of at least 250 Mbps. In some embodiments, the transmitter and receiver are configured to operate at a data rate of at least 500 Mbps. In some embodiments, the transmitter and receiver are configured to operate at a data rate of at least 1 Gbps.

[0018] In one aspect, the invention features a robot that includes components of any of the aforementioned component concepts. In some embodiments, the robot is at least one of a humanoid robot, a bipedal robot, a quadruped robot, a wheeled robot, a tracked robot, or a mobile manipulator robot.

[0019] In one aspect, the invention features a method. The method includes transmitting a data signal from an electromagnetic wave transmitter disposed in a first member of a robot to an electromagnetic wave receiver configured to receive the data signal. The receiver is disposed in a second member of the robot and coupled to the first member at a first robot joint, and the transmitter and receiver are configured to operate at a data rate of at least 100 Mbps.

[0020] In some embodiments, the first component comprises at least one of a robot body or a robot limb. In some embodiments, the second component comprises at least one of a robot end effector or a robot limb. In some embodiments, the robot further comprises a third component coupled to the second component at a second robot joint, wherein the second component comprises the robot limb, and the third component comprises at least one of the robot end effector or another robot limb. In some embodiments, transmitting the data signal comprises transmitting the data signal across the first robot joint to the receiver. In some embodiments, transmitting the data signal comprises transmitting the data signal over the air to the receiver. In some embodiments, transmitting the data signal comprises transmitting the data signal to the receiver via a waveguide.

[0021] In some embodiments, the transmitter is enclosed in a first actuator of the first member and the receiver is enclosed in a second actuator of the second member, and transmitting the data signal includes transmitting the data signal within an interior region of the first actuator and an interior region of the second actuator. In some embodiments, the robot includes a first processor and a second processor, the first processor and the second processor being electronically coupled to a data network switch, the data network switch being coupled to at least one of the receiver or the transmitter, and the method further includes routing first data traffic between the first sensor and the first processor and routing second data traffic between the second sensor and the second processor using the data network switch. In some embodiments, the method further includes controlling the data traffic routed through the data network switch via a configuration file executed on a robot processor in electronic communication with the data network switch.

[0022] In some embodiments, transmitting the data signal comprises transmitting the data signal through at least one of (i) a free air medium, an optical fiber, an optical waveguide, or a radio frequency waveguide. In some embodiments, the transmitter and receiver are configured to operate at a data rate of at least 250 Mbps. In some embodiments, the transmitter and receiver are configured to operate at a data rate of at least 500 Mbps. In some embodiments, the transmitter and receiver are configured to operate at a data rate of at least 1 Gbps.

[0023] In one aspect, the invention features a computing device for a robot. The computing device includes at least one computer processor and at least one non-transitory computer-readable medium encoded with instructions that, when executed by the at least one computer processor, perform any of the methods described herein.

[0024] In one aspect, the invention features a robotic component. The robotic component includes a first robotic joint and a second robotic joint. At the first robotic joint, a first member including a first electromagnetic wave transmitter configured to transmit a data signal and a first electromagnetic wave receiver configured to receive the data signal are coupled. At the second robotic joint, a second member including a second electromagnetic wave transmitter configured to transmit a data signal and a third member including a second electromagnetic wave receiver configured to receive the data signal are coupled. Each of the first transmitter, the second transmitter, the first receiver, and the second receiver is configured to operate at a data rate of at least 100 Mbps.

[0025] In some embodiments, the first component comprises at least one of a robot body or a robot limb. In some embodiments, the second component comprises at least one of a robot end effector or a robot limb. In some embodiments, the second component comprises a robot limb, and the third component comprises at least one of a robot end effector or another robot limb. In some embodiments, the first component comprises the robot body, the second component comprises the robot limb, and the third component comprises the robot end effector. In some embodiments, the robot component comprises one of a robot arm, a robot wrist, a robot leg, or a robot neck. In some embodiments, the first transmitter is coaxial with or parallel to the first component, and the first receiver is coaxial with or parallel to the second component. In some embodiments, the first transmitter is configured to transmit a data signal across a first robot joint to the first receiver, and the second transmitter is configured to transmit a data signal across a second robot joint to the second receiver. In some embodiments, the first transmitter is configured to transmit the data signal to the first receiver over the air, and the second transmitter is configured to transmit the data signal to the second receiver over the air. In some embodiments, the first transmitter is configured to transmit the data signal to the first receiver via a first waveguide, and the second transmitter is configured to transmit the data signal to the second receiver via a second waveguide. In some embodiments, the first transmitter, the second transmitter, the first receiver, and the second receiver are optical devices. In some embodiments, the first transmitter includes a first optical transceiver, the second transmitter includes a second optical transceiver, the first receiver includes a third optical transceiver, and the second receiver includes a fourth optical transceiver.

[0026] In some embodiments, the first transmitter, the second transmitter, the first receiver, and the second receiver are radio devices. In some embodiments, the first transmitter includes a first radio transceiver, the second transmitter includes a second radio transceiver, the first receiver includes a third radio transceiver, and the second receiver includes a fourth radio transceiver. In some embodiments, the first transmitter, the second transmitter, the first receiver, and the second receiver are configured to support PCI Express (PCIe) devices. In some embodiments, the first robotic joint further includes a switch electronically coupled to the first transmitter, the switch comprising a plurality of ports. In some embodiments, the first transmitter, the second transmitter, the first receiver, and the second receiver are configured to support Ethernet devices. In some embodiments, the first transmitter, the second transmitter, the first receiver, and the second receiver are configured to support Universal Serial Bus (USB) devices. In some embodiments, the first transmitter, the second transmitter, the first receiver, and the second receiver are configured to support Controller Area Network (CAN) devices. In some embodiments, at least one of the first member or the second member is rotatable about the first robotic joint, and at least one of the second member or the third member is rotatable about the second robotic joint.

[0027] In some embodiments, a first transmitter is enclosed in a first actuator of a first member, a first receiver is enclosed in a second actuator of a second member, a second transmitter is enclosed in a third actuator of the second member, and a second receiver is enclosed in a fourth actuator of the third member. In some embodiments, a data signal is configured to travel within an interior region of the first actuator and an interior region of the second actuator at a first robotic joint, and a data signal is configured to travel within an interior region of the third actuator and an interior region of the fourth actuator at a second robotic joint. In some embodiments, the robotic component further comprises a first processor electronically coupled to the first transmitter. In some embodiments, the robotic component further comprises a first sensor electronically coupled to the first receiver.

[0028] In some embodiments, the robot component further includes a first processor and a second processor, wherein the first processor and the second processor are electronically coupled to a data network switch, and the data network switch is coupled to at least one of the first receiver, the second receiver, the first transmitter, or the second transmitter. In some embodiments, the robot component further includes a first sensor and a second sensor, wherein the first sensor and the second sensor are electronically coupled to the data network switch. In some embodiments, the data network switch is configured to route first data traffic between the first sensor and the first processor, and second data traffic between the second sensor and the second processor, through a single node. In some embodiments, the data network switch is located within or adjacent to the first robot joint or the second robot joint. In some embodiments, the data traffic routed through the data network switch is controlled by a configuration file executed on the robot processor in electronic communication with the data network switch. In some embodiments, at least one of the first member or the second member is configured to continuously rotate about the first robot joint, and at least one of the second member or the third member is configured to continuously rotate about the second robot joint. In some embodiments, the first transmitter, the second transmitter, the first receiver, and the second receiver are configured to operate at a data rate of at least 250 Mbps. In some embodiments, the first transmitter, the second transmitter, the first receiver, and the second receiver are configured to operate at a data rate of at least 500 Mbps. In some embodiments, the first transmitter, the second transmitter, the first receiver, and the second receiver are configured to operate at a data rate of at least 1 Gbps. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] A better understanding of the advantages and further advantages of the present invention may be obtained by reference to the following description taken in conjunction with the accompanying drawings, which are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention.

[0030] Figure 1 An example configuration of a robot apparatus according to an exemplary embodiment of the present invention is illustrated.

[0031] Figure 2 An example of a quadruped robot according to an exemplary embodiment of the present invention is illustrated.

[0032] Figure 3 An example of a biped robot according to an exemplary embodiment of the present invention is illustrated.

[0033] Figure 4A An example cross section of a robotic actuator including a set of electromagnetic wave transmitters and / or receivers configured to transmit electromagnetic wave signals through free air within the actuator is illustrated according to an example embodiment of the present invention.

[0034] Figure 4B An example perspective half-section view of a robotic actuator including a set of electromagnetic wave transmitters and / or receivers configured to transmit electromagnetic wave signals through free air within the actuator is shown according to an example embodiment of the present invention.

[0035] Figure 5 is a schematic illustration of a circuit including a switching device configured to operate with an electromagnetic signal transmitter and / or receiver according to an exemplary embodiment of the present invention.

[0036] Figure 6 is a schematic illustration of a configuration including a set of optical connection circuits according to an exemplary embodiment of the present invention.

[0037] Figure 7A is a schematic illustration of an architecture for mapping host processors to the devices they support via a switch device according to an illustrative embodiment of the present invention.

[0038] Figure 7B is another schematic illustration of an architecture for mapping a host processor to supported devices through a switch device according to an exemplary embodiment of the present invention.

[0039] Figure 8A is a schematic illustration of a hybrid node design architecture including a switching device according to an exemplary embodiment of the present invention.

[0040] Figure 8B is a schematic illustration of another hybrid node design architecture including a switching device according to an exemplary embodiment of the present invention.

[0041] Figure 9 is a schematic illustration of a configuration including a host processor connected to a switching device through a robot joint according to an exemplary embodiment of the present invention.

[0042] Figure 10 is a flowchart of an exemplary computer-implemented method according to an exemplary embodiment of the present invention. DETAILED DESCRIPTION

[0043] Example embodiments relate to a robotic device configured with at least one robotic limb, one or more sensors, and a processing system. The robotic limb may be an articulated robotic appendage, comprising multiple components connected by joints. The robotic limb may also include multiple actuators (e.g., 2-5 actuators) coupled to the components of the limb to facilitate movement of the robotic limb within the range of motion limited by the joints connecting the components. The sensors may be configured to measure properties of the robotic device at a given point in time (such as joint angles, pressure within the actuators, joint torque, and / or position, velocity, and / or acceleration of the components of one or more robotic limbs). The sensors may also be configured to measure the orientation of the main body of the robotic device (which may also be referred to herein as the "base" of the robotic device) (e.g., a main body orientation measurement). Other example properties include the mass of various components of the robotic device, as well as other properties. The processing system of the robotic device may determine the angles of the joints of the robotic limb directly from the angle sensor information or indirectly from other sensor information from which the joint angles can be calculated. The processing system may then estimate the orientation of the robotic device based on the sensed orientation of the base of the robotic device and the joint angles.

[0044] As used herein, orientation may refer to the angular position of an object. In some cases, orientation may refer to the amount of rotation about three axes (e.g., in degrees or radians). In some cases, the orientation of a robotic device may refer to the orientation of the robotic device relative to a particular reference frame (such as the ground or the surface on which it stands). Orientation may be described using Euler angles, Tate-Bryan angles (also known as yaw, pitch, and roll), and / or quaternions. In some instances (such as on a computer-readable medium), orientation may be represented by an orientation matrix and / or an orientation quaternion, among other representations.

[0045] In some scenarios, measurements from sensors on the base of a robotic device may indicate that the robotic device is oriented in such a manner and / or has a linear and / or angular velocity that requires control of one or more of its articulated appendages in order to maintain the robotic device's balance. However, in these scenarios, the robotic device's limbs may be oriented and / or moved such that balance control is not required. For example, the robotic device's body may be tilted to the left, and sensors measuring the body's orientation may therefore indicate that movement of the limbs is required to balance the robotic device; however, despite sensors on the robotic device's base indicating otherwise, one or more of the robotic device's limbs may extend to the right, causing the robotic device to balance. The robotic device's limbs may exert torque on the robotic device's body and may also affect the robotic device's center of mass. Therefore, measurements of the orientation and angular velocity of a portion of the robotic device may be an inaccurate representation of the combined orientation and angular velocity of the robotic device's body and limbs (which may be referred to herein as the "aggregate" orientation and angular velocity).

[0046] In some embodiments, the processing system can be configured to estimate the aggregate orientation and / or angular velocity of the entire robotic device based on the sensed orientation of the base of the robotic device and the measured joint angles. The processing system has stored thereon the relationship between the joint angles of the robotic device and the extent to which the joint angles of the robotic device affect the orientation and / or angular velocity of the base of the robotic device. The relationship between the joint angles of the robotic device and the motion of the base of the robotic device can be determined based on the kinematics and mass properties of the limbs of the robotic device. In other words, the relationship can specify the effect that the joint angles have on the aggregate orientation and / or angular velocity of the robotic device. Furthermore, the processing system can be configured to determine the components of the orientation and / or angular velocity of the robotic device that are caused by internal motion and the components of the orientation and / or angular velocity of the robotic device that are caused by external motion. Furthermore, the processing system can distinguish between the components of the aggregate orientation in order to determine the aggregate yaw rate, pitch rate, and roll rate (which can be collectively referred to as the "aggregate angular velocity") of the robotic device.

[0047] In some embodiments, the robotic device may further include a control system configured to control the robotic device based on a simplified model of the robotic device. The control system may be configured to receive an estimated aggregate orientation and / or angular velocity of the robotic device and subsequently control one or more jointed limbs of the robotic device to behave in a certain manner (e.g., to maintain the balance of the robotic device). For example, the control system may determine where to place a foot of the robotic device and / or a force applied by the foot of the robotic device on a surface based on the aggregate orientation.

[0048] In some embodiments, the robotic device may include force sensors that measure or estimate external forces (e.g., forces exerted by the robotic device's legs against the ground) and kinematic sensors that measure the orientation of the robotic device's limbs. The processing system may be configured to determine the robotic device's angular momentum based on the information measured by the sensors. The control system may be configured with a feedback-based state observer that receives the measured angular momentum and the aggregate angular velocity and provides a noise-reduced estimate of the robotic device's angular momentum. The state observer may also receive measurements and / or estimates of torques or forces acting on the robotic device and use these, along with other information, as a basis for determining a noise-reduced estimate of the robotic device's angular momentum.

[0049] The control system can be configured to actuate one or more actuators connected across the components of the robotic leg. The actuators can be controlled to raise or lower the robotic leg. In some cases, the robotic leg can include actuators to control the three-dimensional movement of the robotic leg. Depending on the specific implementation, the control system can be configured to use the aggregate orientation and other sensor measurements as a basis for controlling the robot in a certain manner (e.g., static balance, walking, running, galloping, etc.).

[0050] In some embodiments, multiple relationships between joint angles and their effects on the orientation and / or angular velocity of the base of the robotic device can be stored on the processing system. The processing system can select a specific relationship for determining the aggregate orientation and / or angular velocity based on the joint angles. For example, one relationship can be associated with a specific joint between 0 and 90 degrees, and another relationship can be associated with a specific joint between 91 and 180 degrees. The selected relationship can more accurately estimate the aggregate orientation of the robotic device than the other relationships.

[0051] In some embodiments, the processing system may store thereon more than one relationship between the joint angles of the robotic device and the extent to which the joint angles of the robotic device affect the orientation and / or angular velocity of the base of the robotic device. Each relationship may correspond to one or more ranges of joint angle values (e.g., operating ranges). In some embodiments, the robotic device may operate in one or more modes. A mode of operation may correspond to one or more joint angles within a corresponding set of operating ranges. In these embodiments, each mode of operation may correspond to a particular relationship.

[0052] The angular velocity of the robotic device may have multiple components that describe the orientation (e.g., rotation angle) of the robotic device along multiple planes. From the perspective of the robotic device, the rotation angle of the robotic device turning left or right may be referred to herein as "yaw." The rotation angle of the robotic device turning up or down may be referred to herein as "pitch." The rotation angle of the robotic device tilting left or right may be referred to herein as "roll." Furthermore, the rates of change of yaw, pitch, and roll may be referred to herein as "yaw rate," "pitch rate," and "roll rate," respectively.

[0053] Figure 1 1 shows an example configuration of a robotic system that can be used in conjunction with the embodiments described herein. The robotic system 100 can be configured to operate autonomously, semi-autonomously, and / or using instructions provided by (one or more) users. The robotic system 100 can be implemented in various forms, such as a bipedal robot, a quadrupedal robot, or some other arrangement. Furthermore, the robotic system 100 can also be referred to as a robot, a robotic device, or a mobile robot, among other names, and can be part of an exoskeleton or human-assistive device.

[0054] like Figure 1 As shown, the robotic system 100 may include a processor 102, a data storage device 104, and controller(s) 108, which together may be part of a control system 118. The robotic system 100 may also include sensor(s) 112, power source(s) 114, mechanical components 110, and electrical components 116. Nevertheless, the robotic system 100 is shown for illustrative purposes and may include more or fewer components. The various components of the robotic system 100 may be connected in any manner, including wired or wireless connections. Furthermore, in some examples, the components of the robotic system 100 may be distributed across multiple physical entities rather than a single physical entity. Other example embodiments of the robotic system 100 may also exist.

[0055] The processor(s) 102 may operate as one or more general-purpose hardware processors or specialized hardware processors (e.g., digital signal processors, application-specific integrated circuits, etc.). The processor(s) 102 may be configured to execute computer-readable program instructions 106 and manipulate data 107, both of which are stored in a data memory 104. The processor(s) 102 may also interact, directly or indirectly, with other components of the robotic system 100, such as sensor(s) 112, power source(s) 114, mechanical components 110, and / or electrical components 116.

[0056] Data storage 104 may be one or more types of hardware memory. For example, data storage 104 may include or take the form of one or more computer-readable storage media that can be read or accessed by processor(s) 102. The one or more computer-readable storage media may include volatile and / or non-volatile storage components (such as optical, magnetic, organic, or another type of memory or storage device), which may be fully or partially integrated with processor(s) 102. In some embodiments, data storage 104 may be a single physical device. In other embodiments, data storage 104 may be implemented using two or more physical devices that can communicate with each other via wired or wireless communications. As previously described, data storage 104 may include computer-readable program instructions 106 and data 107. Data 107 may be any type of data (such as configuration data, sensor data, and / or diagnostic data).

[0057] The controller 108 may include one or more circuits, digital logic units, computer chips, and / or microprocessors configured to (perhaps among other tasks) interface between any combination of the mechanical components 110, the sensor(s) 112, the power source(s) 114, the electrical components 116, the control system 118, and / or a user of the robotic system 100. In some implementations, the controller 108 may be a dedicated embedded device configured to perform specific operations with one or more subsystems of the robotic system 100.

[0058] The control system 118 may monitor and physically change the operating conditions of the robotic system 100. In doing so, the control system 118 may serve as a link between portions of the robotic system 100 (such as between the mechanical components 110 and / or the electrical components 116). In some instances, the control system 118 may serve as an interface between the robotic system 100 and another computing device.

[0059] Furthermore, the control system 118 can serve as an interface between the robotic system 100 and a user. For example, the control system 118 can include various components for communicating with the robotic system 100, including joysticks, buttons, and / or ports. The example interfaces and communications mentioned above can be implemented via wired or wireless connections, or both. The control system 118 can also perform other operations of the robotic system 100.

[0060] During operation, the control system 118 can communicate with other systems of the robotic system 100 via wired or wireless connections, and can also be configured to communicate with one or more users of the robot. As one possible example, the control system 118 can receive input (e.g., from a user or from another robot) indicating an instruction to perform a particular gait in a particular direction and at a particular speed. A gait is a pattern of movement of a limb of an animal, robot, or other mechanical structure.

[0061] Based on this input, the control system 118 can perform operations to cause the robotic system 100 to move according to the requested gait. As another example, the control system can receive input indicating an instruction to move to a specific geographic location. In response, the control system 118 (possibly with the assistance of other components or systems) can determine the direction, speed, and / or gait of the robotic system 100 based on the environment through which it moves en route to the geographic location.

[0062] The operations of the control system 118 may be performed by the processor(s) 102. Alternatively, the operations may be performed by the controller 108 or a combination of the processor(s) 102 and the controller 108. In some implementations, the control system 118 may reside partially or entirely on a device other than the robotic system 100 and, thus, may at least partially remotely control the robotic system 100.

[0063] The mechanical components 110 represent the hardware of the robotic system 100 that enable the robotic system 100 to perform physical operations. As a few examples, the robotic system 100 may include physical members (such as leg(s), arm(s), and / or wheel(s). The physical members or other portions of the robotic system 100 may also include actuators arranged to move the physical members relative to each other. The robotic system 100 may also include one or more structural bodies for housing a control system 118 and / or other components, and may also include other types of mechanical components. The specific mechanical components 110 used in a given robot may vary based on the design of the robot, and may also vary based on the operations and / or tasks that the robot may be configured to perform.

[0064] In some examples, the mechanical component 110 may include one or more removable components. The robotic system 100 may be configured to add and / or remove such removable components, which may involve assistance from a user and / or another robot. For example, the robotic system 100 may be configured with removable arms, hands, feet, and / or legs so that these appendages can be replaced or changed as needed or desired. In some embodiments, the robotic system 100 may include one or more removable and / or replaceable battery cells or sensors. Other types of removable components may be included in some embodiments.

[0065] The robotic system 100 may include sensor(s) 112 arranged to sense various aspects of the robotic system 100. The sensor(s) 112 may include one or more force sensors, torque sensors, velocity sensors, acceleration sensors, position sensors, proximity sensors, motion sensors, location sensors, load sensors, temperature sensors, touch sensors, depth sensors, ultrasonic range sensors, infrared sensors, object sensors, and / or cameras, etc. In some examples, the robotic system 100 may be configured to receive sensor data from sensors that are physically separate from the robot (e.g., sensors located on other robots or within the environment in which the robot is operating).

[0066] The sensor(s) 112 may provide sensor data to the processor(s) 102 (possibly via data 107 ) to enable the robotic system 100 to interact with its environment and monitor the operation of the robotic system 100. The sensor data may be used to evaluate various factors used by the control system 118 to activate, move, and deactivate the mechanical components 110 and electrical components 116. For example, the sensor(s) 112 may capture data corresponding to the topography of the environment or the location of nearby objects, which may assist in environmental recognition and navigation. In an example configuration, the sensor(s) 112 may include radar (e.g., for long-range object detection, distance determination, and / or velocity determination), lidar (e.g., for short-range object detection, distance determination, and / or velocity determination), sonar (e.g., for underwater object detection, distance determination, and / or velocity determination), VICON® (e.g., for motion capture), one or more cameras (e.g., stereo cameras for 3D vision), a Global Positioning System (GPS) transceiver, and / or other sensors for capturing information about the environment in which the robotic system 100 is operating. The sensor(s) 112 may monitor the environment in real time and detect obstacles, elements of the terrain, weather conditions, temperature, and / or other aspects of the environment.

[0067] Furthermore, the robotic system 100 may include sensor(s) 112 configured to receive information indicative of a state of the robotic system 100, including sensor(s) 112 that may monitor the state of various components of the robotic system 100. The sensor(s) 112 may measure system activity of the robotic system 100 and receive information based on the operation of various features of the robotic system 100, such as the operation of extendable legs, arms, or other mechanical and / or electrical features of the robotic system 100. The data provided by the sensor(s) 112 may enable the control system 118 to determine operational errors and monitor the overall operation of the components of the robotic system 100.

[0068] As an example, the robotic system 100 can use force sensors to measure the loads on various components of the robotic system 100. In some embodiments, the robotic system 100 can include one or more force sensors on an arm or leg to measure the loads on an actuator that moves one or more components of the arm or leg. As another example, the robotic system 100 can use one or more position sensors to sense the position of the robotic system's actuators. For example, such a position sensor can sense the extension, retraction, or rotation of an actuator on an arm or leg.

[0069] As another example, the sensor(s) 112 may include one or more velocity and / or acceleration sensors. For example, the sensor(s) 112 may include an inertial measurement unit (IMU). The IMU may sense velocity and acceleration in a world frame relative to a gravity vector. The velocity and acceleration sensed by the IMU may then be converted to velocity and acceleration of the robotic system 100 based on the position of the IMU in the robotic system 100 and the kinematics of the robotic system 100. The robotic system 100 may include other types of sensors not discussed herein. Additionally or alternatively, the robotic system may use specific sensors for purposes not listed herein.

[0070] The robotic system 100 may also include one or more power sources 114 configured to provide power to the various components of the robotic system 100. Among other possible power systems, the robotic system 100 may include a hydraulic system, an electrical system, a battery, and / or other types of power systems. By way of example, the robotic system 100 may include one or more batteries configured to provide an electrical charge to the components of the robotic system 100. Some of the mechanical components 110 and / or electrical components 116 may each be connected to a different power source, may be powered by the same power source, or may be powered by multiple power sources. Any type of power source may be used to power the robotic system 100, such as electricity or a gasoline engine. Additionally or alternatively, the robotic system 100 may include a hydraulic system configured to use fluid power to power the mechanical components 110. The power source(s) 114 may be charged using various types of charging, such as a wired connection to an external power source, wireless charging, combustion, or other examples.

[0071] The electrical components 116 may include various mechanisms capable of processing, transmitting, and / or providing electrical charge or electrical signals. In possible examples, the electrical components 116 may include wiring, circuitry, and / or wireless communication transmitters and receivers to enable the operation of the robotic system 100. The electrical components 116 may interact with the mechanical components 110 to enable the robotic system 100 to perform various operations. For example, the electrical components 116 may be configured to provide power from the power source(s) 114 to the various mechanical components 110. Furthermore, the robotic system 100 may include electric motors. Other examples of electrical components 116 are also possible.

[0072] Although not in Figure 1 Although not shown in FIG, the robotic system 100 may include a main body that may be connected to or house the appendages and components of the robotic system. Thus, the structure of the main body may vary within examples and may further depend on the specific operation a given robot may be designed to perform. For example, a robot developed to carry heavy loads may have a wide body capable of positioning the load. Similarly, a robot designed to achieve high speeds may have a narrow, compact body that does not possess substantial weight. Furthermore, the main body and / or other components may be developed using various types of materials, such as metal or plastic. In other examples, the robot may have a main body with a different structure or made from various types of materials. The main body and / or other components may include or carry one or more sensors 112. These sensors may be located in various locations on the robotic system 100, such as on the main body and / or on one or more appendages, among other examples.

[0073] The robotic system 100 can carry a load on its body, such as the type of cargo to be transported. The load can also represent an external battery or other type of power source (e.g., a solar panel) that the robotic system 100 can utilize. Carrying a load represents one example use for which the robotic system 100 can be configured, but the robotic system 100 can also be configured to perform other operations.

[0074] As described above, the robotic system 100 can include various types of legs, arms, wheels, etc. In general, the robotic system 100 can be configured with zero or more legs. Embodiments of a robotic system with zero legs may include wheels, pedals, or some other form of locomotion. Embodiments of a robotic system with two legs may be referred to as bipedal robots, and embodiments with four legs may be referred to as quadrupedal robots. Embodiments with six or eight legs are also possible. For illustrative purposes, bipedal and quadrupedal embodiments of the robotic system 100 are described below.

[0075] Figure 2 A quadruped robot 200 is shown according to an example embodiment. Among other possible features, the robot 200 can be configured to perform some of the operations described herein. The robot 200 includes a control system and legs 204A, 204B, 204C, 204D connected to a body 208. Each leg can include a respective foot 206A, 206B, 206C, 206D that can contact a surface (e.g., the ground). Additionally, the robot 200 is illustrated as having sensor(s) 210 and can be capable of carrying a load on the body 208. In other examples, the robot 200 can include more or fewer components, and thus can include Figure 2 Components not shown.

[0076] The robot 200 may be Figure 1The physical representation of the robot system 100 is shown, but other configurations may be used. Thus, the robot 200 may include one or more of the mechanical components 110, sensor(s) 112, power source(s) 114, electrical components 116, and / or a control system 118, as well as other possible components or systems. The configuration, location, and / or structure of the legs 204A-204D may vary in the exemplary embodiment. The legs 204A-204D enable the robot 200 to move relative to its environment and may be configured to operate with multiple degrees of freedom to implement different locomotion techniques. In particular, the legs 204A-204D enable the robot 200 to move at various speeds based on the mechanics described within different gaits. The robot 200 may use one or more gaits to navigate within its environment, which may involve selecting a gait based on speed, terrain, maneuvering requirements, and / or energy efficiency. Furthermore, different types of robots may use different gaits due to design variations. While some gaits may have specific names (e.g., walk, trot, canter, bound, gallop, etc.), the distinctions between gaits may overlap. Gaits can be classified based on footstep patterns (the location on the surface where the feet 206A-206D are placed).Similarly, gaits can also be classified based on dynamic mechanics.

[0077] The body 208 of the robot 200 is connected to the legs 204A-204D and can house various components of the robot 200. For example, the body 208 can include or carry (one or more) sensors 210. These sensors can be any of the sensors discussed in the context of (one or more) sensors 112 (such as cameras, LIDAR, or infrared sensors). In addition, the location of the sensor 210 is not limited to Figure 2 Thus, the sensor(s) 210 may be positioned in various locations on the robot 200 (such as on the body 208 and / or on one or more of the legs 204A-204D, among other examples).

[0078] Figure 3 FIG. 3 shows a bipedal robot 300 according to another exemplary embodiment. Similar to the robot 200, the robot 300 may correspond to Figure 1The robot system 100 is shown and can be configured to implement some of the embodiments described herein. Thus, similar to robot 200, robot 300 may include one or more of mechanical components 110, sensor(s) 112, power source(s) 114, electrical components 116, and / or control system 118. For example, robot 300 may include legs 304 and 306 connected to a body 308. Each leg may be composed of one or more members connected by joints and configured to operate with various degrees of freedom relative to each other. Each leg may also include a respective foot 310 and 312, which may contact a surface (e.g., the ground). Similar to robot 200, legs 304 and 306 may enable robot 300 to travel at various speeds according to the mechanics described within a gait. However, due, at least in part, to the differences between bipedal and quadrupedal capabilities, robot 300 may utilize a different gait than robot 200.

[0079] The robot 300 may also include arms 318 and 320. These arms may facilitate object manipulation, load carrying, and / or balance of the robot 300. Similar to the legs 304 and 306, each arm may be composed of one or more members connected by joints and configured to operate with various degrees of freedom relative to each other. Each arm may also include a corresponding hand 322 and 324. The robot 300 may use the hands 322 and 324 (or end effectors) to grasp, turn, pull, and / or push objects. The hands 322 and 324 may include various types of appendages or attachments (such as fingers, grippers, welding tools, cutting tools, etc.). The robot 300 may also include sensor(s) 314, which correspond to the sensor(s) 112 and are configured to provide sensor data to its control system. In some cases, the locations of these sensors may be selected so as to suggest an anthropomorphic structure for the robot 300. Thus, as Figure 3 As shown, the robot 300 may include a vision sensor (eg, a camera, an infrared sensor, an object sensor, a range sensor, etc.) within its head 316 .

[0080] Figure 4AAn example cross-section of a robotic actuator 400 is shown, according to an exemplary embodiment of the present invention, comprising a set of electromagnetic wave transmitters and / or receivers (e.g., optical transceivers) 404A, 404B configured to transmit electromagnetic wave signals through free air (and / or waveguides) within the actuator 400 (e.g., along a path 412 within the actuator 400). Electromagnetic waves having any suitable spectrum or spectrums may be used for the signals, including, but not limited to, visible light, infrared light, radio waves, or electromagnetic waves having other spectral characteristics. In embodiments including waveguides, the waveguides may comprise optical fiber, glass, and / or plastic. The robotic actuator 400 may include one or more circuits 408 configured to operate in conjunction with the electromagnetic wave transmitters and / or receivers 404A, 404B (although other electromagnetic signal transmitters and / or receivers are also possible). Figure 4B An example perspective half-section view of a robotic actuator 450 according to an example embodiment of the present invention is illustrated, the robotic actuator 450 including a set of electromagnetic wave transmitters and / or receivers (e.g., transceivers) 454A, 454B configured to transmit electromagnetic wave signals through free air within the actuator 450 (e.g., along a path 462 within the actuator 450). The robotic actuator 450 may include one or more circuits 458 configured to operate in conjunction with the electromagnetic signal transmitters and / or receivers 454A, 454B.

[0081] Figure 5 is a schematic diagram of a circuit 500 including a switching device 508 configured to communicate with an electromagnetic signal transmitter and / or receiver (e.g., as described above in Figure 4A A set of electromagnetic signal transmitters and / or receivers 404A, 404B shown and described in and / or above Figure 4B The circuit 500 may include an actuator (e.g., as shown and described above in FIG. 4 ) and a set of electromagnetic signal transmitters and / or receivers 454A, 454B) operating together. Figure 4A The actuator 400 shown and described in and / or above in Figure 4B ) and / or robotic joints (e.g., as described above in Figure 2-Figure 3 ).

[0082] Circuit 500 includes a first connector 504 (e.g., a USB 3.0 connector, although various other connectors may be used, such as a connector supporting Ethernet). First connector 504 may receive incoming signals (e.g., PCIe signals originating from a downstream location in the robot). First connector 504 is connected to a switch device 508. Switch device 508 may be configured to provide a hardware and / or software framework that scales the number of data channels available from a host device (or other component), enabling a host to support multiple devices and / or enabling multiple hosts to support multiple devices. For example, switch device 508 may be used to map a first sensor device to a first processor and a second sensor device to a second processor (and so on for additional processors and sensor devices, if desired). For example, switch device 508 may be configured with a configuration file (e.g., an XML configuration file) that may be loaded at boot time and / or may be used to intelligently route device packets through switch device 508 (e.g., by a processor executing a real-time operating system).

[0083] The switch device 508 is connected to a switch configuration device 512. The switch configuration device 512 may be implemented as a microcontroller integrated circuit (e.g., a 32-bit microcontroller). The switch device 508 may also be connected to a signal booster 516. The signal booster 516 may be a PCIe redriver, although a variety of other signal boosters may be used. The signal booster 516 is connected to a transceiver 520 (e.g., as described above in Figure 4A-4B , although a variety of other signal transmitters and / or receivers may also be suitable). Transceiver 520 may be implemented as an optical transceiver that supports high-speed data transmission over a medium (e.g., optical fiber, waveguide, through air), although a variety of transmitters and / or receivers may be used. Switching device 508 is also connected to controller 524. Controller 524 may be a USB controller, although a variety of other controllers may be used (e.g., a controller that supports Ethernet). Controller 524 is also connected to second connector 528. Similar to first connector 504, second connector 528 may also be a USB 3.0 connector, although a variety of other connectors may be used (e.g., a connector that supports Ethernet). Circuit 500 may be expandable via controller 524 and may be configured to connect to one or more additional devices operating on the robot.

[0084] Figure 6 FIG is a diagram of a configuration 600 including a set of optical connection circuits 604A, 604B according to an exemplary embodiment of the present invention. The circuits 604A, 604B may each include the same components as described above. Figure 5Similar components to those shown in circuit 500. Figure 6 In FIG, circuits 604A, 604B each include an optical transmitter and / or receiver 608A, 608B, respectively (e.g., as described above in Figure 5 ) and together form an optical link 612 that can be implemented by a robotic joint and / or otherwise used to transmit information between the circuits 604A, 604B. The circuits 604A, 604B also include signal drivers 616A, 616B (e.g., as described above in Figure 5 ) and connectors 620A, 620B (e.g., as described above in Figure 5 As shown, circuit 604A also includes a switch device 624A, a switch configuration device 628A, a controller 632A, and another connector 620C (e.g., similar to the above Figure 5 ). In some embodiments, circuit 604B may also include similar components. Figure 6 , connector 620A may be connected to one or more components "downstream," such as another similar circuit or processor (e.g., a host processor, a graphics processing unit (GPU), a payload processor, an actuator controller, a perception processor, a navigation processor, an object classification processor, or another specialized processor). Figure 6 , connector 620B can be connected to one or more components “upstream,” such as another similar circuit or sensor (e.g., a camera, a vision sensor, a depth sensor, a scalar sensor (such as radiation level or vibration level), an analog sensor, a digital sensor, or another sensor).

[0085] Figure 7A is a diagram of an architecture 700 for mapping host processors 704 (e.g., 704A, 704B, as shown, although a different number may be used) to the devices they support (e.g., 712D, 724D, as shown, although a different number may be used) via a switch device 708 (e.g., a PCIe switch device) according to an exemplary embodiment of the present invention. Figure 7A In FIG, host processor 704 includes a first processor 704A (e.g., a first robot processor), a second processor 704B (e.g., a second robot processor), a third processor 704C (e.g., a GPU), and a fourth processor 704D (e.g., a processor of a payload attached to the robot). Each of these processors can be connected to a switching device 708 via one or more electronic connections. One or more chains of nodes (or "node chains") 712, 716, 720, 724 can also be connected to the switching device 708. In FIG, Figure 7A7, node chain 712 includes nodes 712A-712C, where node 712A is connected to switch device 708, node 712B is connected to node 712A, and node 712C is connected to node 712B. A similar structure is shown for node chains 716, 720, and 724. In node chains 712 and 724, there is also a first sensor 712D (e.g., an RGB camera, although a variety of sensors are possible) connected via node 712B in node chain 712 and a second sensor 724D (e.g., another RGB camera, although a variety of sensors are possible) connected via node 724B in node chain 724. One of ordinary skill in the art will recognize that there can be a different number of node chains and / or processors connected to switch device 708, and each node chain can have a different number of nodes, depending on various factors related to the particular system.

[0086] In some embodiments, such as those described above, a single communication link (e.g., a single lane of PCIe Gen 2) can be routed down the robot's articulated limbs. Using PCIe as an example, a limitation of some traditional data transfer architectures in robots is that because each PCIe lane originates from a host processor, there is generally no way to map multiple devices located at remote locations around the robot's body to more than one host processor. Some aspects of the present invention enable certain devices to be supported by one processor while other devices can be supported by another processor. Such a feature can greatly expand the computing power available to the robot's various devices. For example, in Figure 7A , the architecture shown allows sensing devices (e.g., sensors 712D, 724D) to be "mapped" to processor 704B, while actuators (e.g., as described above in Figure 4A-4B ) is "mapped" to processor 704A. In some embodiments, switch device 708 is configured with software and / or firmware to enable this functionality. For example, a PCIe switch can be configured with an XML configuration file that is loaded at boot time, and device data packets can be routed (e.g., by a processor executing a custom real-time operating system in the switch itself). This configuration can be transparent to the robot software after boot, so that each host processor does not need to run specialized software beyond its local PCIe root complex support.

[0087] Figure 7A 7. A configuration is shown in which a switch device 708 connects processor 704A to each of node chains 712, 716, 720, 724 and also connects processor 704B to each of node chains 712 and 724. By comparison, Figure 7BAnother schematic diagram shows a similar hardware configuration 750 and a similar connection scheme between processor 704A and node chains 712, 716, 720, 724, except that processor 704D is connected to node chains 712, 724 instead of processor 704B. In this way, the hardware and / or software architecture shown allows the host processor and / or device to be reconfigured as needed. For example, new sensing devices and / or custom payload computers for specialized sensor support can be added in the future, so that the computing payload can be matched to a specific sensor type.

[0088] Figure 8A is a schematic diagram of a hybrid node design architecture 800 including a switch device (eg, PCIe switch device 808 as shown) according to an exemplary embodiment of the present invention. Figure 8A Shown is one of many flexible ways to implement other data interfaces with PCIe routing along a robotic appendage. Figure 8A , a PCIe optical link 804 (e.g., extending across the robot joints, as described above) is connected to a PCIe switch 808, which in turn is connected to three different communication branches. In a first branch of the PCIe switch 808, a PCIe Ethernet controller 812 is connected to the PCIe switch 808 via a PCIe connection (e.g., PCIe Gen 2). The PCIe Ethernet controller 812 can be used to instantiate an Ethernet port in a desired location on the robot, for example, via an Ethernet to Ethernet physical layer 816, which is connected to the PCIe Ethernet controller 812 via an Ethernet connection. Such a configuration can allow the use of Ethernet-enabled motor controllers and / or can help actuators communicate at high data rates. For example, in Figure 8A In the example, Ethernet physical layer 816 is connected to a motor drive microcontroller 820 (e.g., via a Reduced Media Independent Interface (RMII)), which in turn is connected to a motor drive power stage 824. In the second branch of PCIe switch 808, downstream connection devices 828 can be directly connected to PCIe switch 808 (e.g., via PCIe Gen 2). Downstream connection devices 828 can include multiple devices, such as additional implementations of architecture 800 (e.g., chained or serially connected so that multiple robot joints in series can be controlled). In the third branch of PCIe switch 808, a USB 3.0 host controller 832 can be directly connected to PCIe switch 808 (e.g., via PCIe Gen 2) and implemented to interface to a USB 3.0 system (e.g., a sensor 836, such as a USB-configured depth camera or any other suitable USB camera system).

[0089] Figure 8B is a schematic diagram of another hybrid node design architecture 850 including a switch device (eg, PCIe switch device switch 858 is shown) according to an exemplary embodiment of the present invention. Figure 8B Similar to Figure 8A , except that it includes one component 854 (e.g., a microcontroller or FPGA) instead of the three components shown above (PCIe Ethernet controller 812, Ethernet physical layer 816, and motor drive microcontroller 820). In the case where certain components (e.g., one or more microcontrollers) natively include a PCIe interface, the Ethernet device may not need to be able to adapt to PCIe in order to be able to communicate with those components.

[0090] Figure 9 is a schematic diagram of a configuration 900 according to an exemplary embodiment of the present invention, the configuration 900 including a host processor 904 connected to a switch device 912 (e.g., a PCIe switch device) through a robot joint 908. The host processor 904 sends signals through the robot joint 908 using optical devices 916A, 916B that support PCIe lanes. The signals are received at the switch device 912, which is connected to both an Ethernet controller 920 and a USB host controller 924. In this embodiment, the Ethernet controller 920 is connected to a motor controller 928, and the USB host controller 924 is connected to a depth sensor 932, although many other configurations are possible. In general, with PCIe being routed to various locations in the robot, a data network can be provided that allows for great flexibility in what peripheral technologies can be integrated into the robot, and Figure 9 An example is illustrated.

[0091] Figure 10 1 is a flow chart of an exemplary computer-implemented method 1100 according to an exemplary embodiment of the present invention. At operation 1002, an electromagnetic wave transmitter of a first component of a robot assembly transmits a data signal via electromagnetic waves. At operation 1004, an electromagnetic wave receiver of a second component of the robot assembly receives the data signal, wherein the second component is coupled to the first component at a robot joint. The transmitter and receiver are configured to operate at a data rate of at least 100 Mbps. In some embodiments, the data rate includes an effective data rate or a resultant data rate, taking into account a clock rate. In some embodiments, the data rate is at least 250 Mbps, 500 Mbps, 1 Gbps, 2 Gbps, or 5 Gbps.

[0092] A number of embodiments have been described, however, it will be understood that various modifications can be made without departing from the spirit and scope of the disclosure.

Claims

1. An electronic circuit for a robot, the electronic circuit comprising: Switching equipment; as well as A set of two or more host processors, The switching device is configured as follows: (i) routing data packets between a first host processor and a first electronic device of said robot, and (ii) routing data packets between a second host processor and a second electronic device of the robot.

2. The electronic circuit according to claim 1, wherein The switching device includes a PCIe switching device.

3. The electronic circuit of claim 1, further comprising the first host processor and the second host processor.

4. The electronic circuit of claim 1, further comprising the first electronic device of the robot and the second electronic device of the robot.

5. The electronic circuit according to claim 1, wherein The first electronic device of the robot includes a perception sensor, and the second electronic device of the robot includes a robot actuator.

6. The electronic circuit according to claim 1, wherein The switching device includes a plurality of ports.

7. The electronic circuit according to claim 1, further comprising an electromagnetic wave transmitter and an electromagnetic wave receiver, wherein The switching device is coupled to at least one of the receiver or the transmitter.

8. The electronic circuit of claim 7, further comprising a first sensor and a second sensor, wherein the first sensor and the second sensor are electronically coupled to the switching device, and the switching device is coupled to at least one of the transmitter or the receiver.

9. The electronic circuit according to claim 1, wherein The exchange device is located in the first robot joint or adjacent to the first robot joint.

10. The electronic circuit of claim 1, further comprising a robotics processor in electronic communication with the switching device, wherein: Data traffic routed through the switching device is controlled by a configuration file executed on the robot processor.

11. A method for routing data packets in a robot, the method comprising: routing data packets between the first host processor and the first electronic device of the robot using a first switching device; as well as Data packets are routed between a second host processor and a second electronic device of the robot using the first switching device.

12. The method according to claim 11, wherein The first switching device includes a PCIe switching device.

13. The method according to claim 11, wherein The first electronic device of the robot includes a perception sensor, and the second electronic device of the robot includes a robot actuator.

14. The method according to claim 11, wherein The first switching device includes a plurality of ports.

15. The method according to claim 11, wherein The first switching device is coupled to at least one of an electromagnetic wave receiver or an electromagnetic wave transmitter.

16. The method according to claim 11, wherein The first exchange device is located in the first robot joint or adjacent to the first robot joint.

17. The method according to claim 11, further comprising: The routing of data traffic through the first switching device is controlled by a configuration file executed on the robot processor.

18. The method according to claim 11, further comprising: routing data packets between the first host processor and a third electronic device of the robot using a second switching device; as well as Data packets are routed between the second host processor and a fourth electronic device of the robot using a third switching device.

19. The method according to claim 18, wherein The second switching device includes a PCIe switching device.

20. The method of claim 18, further comprising: Routing of data traffic through the second switching device is controlled by a configuration file executed on the robot processor.