Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CALCULATIONS IN A ROBOT
Document Type and Number:
WIPO Patent Application WO/2023/143810
Kind Code:
A1
Abstract:
The present disclosure relates to a robot comprising a plurality of joint assemblies including a first joint assembly and a second joint assembly. The robot further comprises a plurality of motors adapted to cause relative movements between the plurality of joint assemblies, wherein the plurality of motors includes a first motor and a second motor. The robot further comprises a plurality of processing units including a first processing unit adapted to control operation of the first motor and a second processing unit adapted to control operation of the second motor. The first processing unit receives one or more first input signals and calculates one or more primary motion characteristics for one or more primary motors of the plurality of motors at least based on the one or more first input signals.

Inventors:
KASSOW KRISTIAN (DK)
MADSEN PETER NADOLNY (DK)
Application Number:
PCT/EP2022/086566
Publication Date:
August 03, 2023
Filing Date:
December 19, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
KASSOW ROBOTS APS (DK)
International Classes:
B25J13/08; B25J9/16; B25J17/00; B25J17/02; B25J19/06; G05B19/414
Foreign References:
EP1837131A12007-09-26
EP0142712A11985-05-29
EP0128355A21984-12-19
US20080249640A12008-10-09
EP0400624A21990-12-05
JPH0424803A1992-01-28
Attorney, Agent or Firm:
COPA COPENHAGEN PATENTS (DK)
Download PDF:
Claims:
CLAIMS

1. A robot comprising a plurality of joint assemblies including a first joint assembly and a second joint assembly, the robot further comprises a plurality of motors adapted to cause relative movements between the plurality of joint assemblies, wherein the plurality of motors includes a first motor and a second motor, the robot further comprises a plurality of processing units including a first processing unit adapted to control operation of the first motor and a second processing unit adapted to control operation of the second motor, wherein the first processing unit receives one or more first input signals and calculates one or more primary motion characteristics for one or more primary motors of the plurality of motors at least based on the one or more first input signals.

2. Robot according to claim 1, wherein the one or more primary motion characteristics includes at least one or more first motion characteristics for the first motor, and wherein the first processing unit controls operation of the first motor in accordance with the one or more first motion characteristics.

3. Robot according to any of the preceding claims, wherein the one or more primary motion characteristics includes at least one or more second motion characteristics for the second motor, and wherein the second processing unit receives a signal indicative of the one or more second motion characteristics, and wherein the second processing unit controls operation of the second motor in accordance with the one or more second motion characteristics.

4. Robot according to any of the preceding claims, wherein the second processing unit receives one or more second input signals and calculates one or more secondary motion characteristics for the one or more primary motors of the plurality of motors at least based on the one or more second input signals, and wherein one of the plurality of processing units receives a first signal indicative of the one or more primary motion characteristics and/or receives a second signal indicative of the one or more secondary motion characteristics for the one or more primary motors, and wherein the one of the plurality of processing units control operation of at least one of the one or more primary motors in accordance with the one or more primary motion characteristics and/or the one or more secondary motion characteristics for the one or more primary motors.

5. Robot according to any of claims 1-3, wherein the second processing unit receives one or more second input signals and calculates one or more secondary motion characteristics for one or more secondary motors of the plurality of motors at least based on the one or more second input signals, wherein the one or more secondary motors does not form part of the one or more primary motors of the plurality of motors.

6. Robot according to claim 5, wherein the one or more secondary motion characteristics for the one or more secondary motors includes at least one or more second motion characteristics for the second motor, and wherein the second processing unit controls operation of the second motor in accordance with the one or more second motion characteristics.

7. Robot according to any of the preceding claims, wherein the one or more primary motion characteristics for the one or more primary motors includes at least one or more third motion characteristics for a third motor of the plurality of motors, and wherein a third processing unit of the plurality of processing units receives a signal indicative of the one or more third motion characteristics, and wherein the third processing unit controls operation of the third motor in accordance with the one or more third motion characteristics.

8. Robot according to any of the preceding claims, wherein the second processing unit receives a signal indicative of the one or more primary motion characteristics for the one or more primary motors of the plurality of motors and calculates one or more secondary motion characteristics for one or more secondary motors of the plurality of motors at least based on the received signal indicative of the one or more primary motion characteristics.

9. Robot according to claim 8, wherein a third processing unit receives a signal indicative of the one or more secondary motion characteristics for the one or more secondary motors of the plurality of motors and calculates one or more tertiary motion characteristics for one or more tertiary motors of the plurality of motors at least based on the received signal indicative of the one or more secondary motion characteristics for the one or more secondary motors.

10. Robot according to claim 9, wherein the one or more tertiary motion characteristics includes at least one or more third motion characteristics for a third motor of the plurality of motors, and wherein the third processing unit controls operation of the third motor in accordance with the one or more third motion characteristics.

11. Robot according to any of the preceding claims wherein the first processing unit receives one or more first sensor signals indicative of one or more actual motion characteristics of the one or more primary motors and compares the one or more primary motion characteristics for the one or more primary motors with the one or more actual motion characteristics of the one or more primary motors based on the one or more first sensor signals.

12. Robot according to claim 11, wherein the one or more first sensor signals are received from one or more sensors, e.g. including one or more accelerometers, one or more rotational position encoders, one or more torque sensors, and/or one or more current sensors.

13. Robot according to any of claims 11-12, wherein the second processing unit receives one or more second sensor signals indicative of one or more actual motion characteristics of one or more secondary motors of the plurality of motors, wherein the one or more secondary motors does not form part of the one or more primary motors of the plurality of motors, the second processing unit further compares one or more secondary motion characteristics for the one or more secondary motors with the one or more actual motion characteristics of the one or more secondary motors based on the one or more second sensor signals.

14. Robot according to claim 13, wherein the second processing unit receives a signal indicative of the one or more primary motion characteristics for the one or more primary motors and/or indicative of the one or more actual motion characteristics of the one or more primary motors, and wherein the second processing unit compares the one or more secondary motion characteristics for the one or more secondary motors with the one or more actual motion characteristics of the one or more secondary motors based additionally on the received signal indicative of the one or more primary motion characteristics and/or indicative of the one or more actual motion characteristics of the one or more primary motors.

15. Robot according to any of the preceding claims, wherein the first processing unit receives a signal indicative of one or more secondary motion characteristics for one or more secondary motors of the plurality of motors and wherein the first processing unit calculates the one or more primary motion characteristics for the one or more primary motors of the plurality of motors additionally based on the received signal indicative of the one or more secondary motion characteristics.

16. Robot according to any of the preceding claims, wherein the first joint assembly comprises the first motor and the first processing unit, and/or wherein the second joint assembly comprises the second motor and the second processing unit.

17. Robot according to any of the preceding claims, wherein the first joint assembly and the second joint assembly are connected by a link extending between the first joint assembly and the second joint assembly.

18. Robot according to any one of the preceding claims, wherein the plurality of motors causes relative rotation around a plurality of respective axes, and optionally wherein the plurality of motors are at least 6 motors and the plurality of respective axes are at least 6 axes.

19. A robot comprising a plurality of joint assemblies including a first joint assembly and a second joint assembly, the robot further comprises a plurality of motors adapted to cause relative movements between the plurality of joint assemblies, wherein the plurality of motors includes a first motor and a second motor, the robot further comprises a plurality of processing units including a first processing unit adapted to control operation of the first motor and a second processing unit adapted to control operation of the second motor, wherein the first processing unit receives one or more first sensor signals indicative of one or more primary actual motion characteristics of one or more primary motors of the plurality of motors and calculates one or more primary overall motion characteristics of the one or more primary motors at least based on the one or more first sensor signals, and wherein the first processing unit transmits a first result signal indicative of the one or more primary overall motion characteristics of the one or more primary motors to the second processing unit, wherein the second processing unit receives the first result signal and one or more second sensor signals indicative of one or more secondary actual motion characteristics of one or more secondary motors of the plurality of motors, and wherein the second processing unit calculates one or more secondary overall motion characteristics of the one or more secondary motors at least based on the one or more second sensor signals and the first result signal.

20. Robot according to claim 19, wherein the one or more first overall motion characteristics of the one or more primary motors and the one or more secondary overall motion characteristics of the one or more secondary motors are in a common reference frame for the robot.

21. Robot according to any one of claims 19-20, wherein the plurality of motors includes a third motor and the plurality of processing units includes a third processing unit adapted to control operation of the third motor.

22. Robot according to claim 21, wherein the second processing unit transmits a second result signal indicative of the one or more secondary overall motion characteristics of the one or more secondary motors to the third processing unit, wherein the third processing unit receives the second result signal and one or more third sensor signals indicative of one or more tertiary actual motion characteristics of one or more tertiary motors of the plurality of motors, and wherein the third processing unit calculates one or more tertiary overall motion characteristics of the one or more tertiary motors at least based on the one or more third sensor signals and the second result signal.

23. Robot according to any one of claims 19-22, wherein the second processing unit receives one or more further second sensor signals indicative of one or more further secondary actual motion characteristics of the one or more secondary motors and calculates one or more further secondary overall motion characteristics of the one or more secondary motors at least based on the one or more further second sensor signals, and wherein the second processing unit transmits a further second result signal indicative of the one or more further secondary overall motion characteristics of the one or more secondary motors to the first processing unit.

24. Robot according to claim 23, wherein the one or more secondary overall motion characteristics is one or more of position, velocity and acceleration, and the one or more further secondary overall motion characteristics is one or more of force and torque, or wherein the one or more secondary overall motion characteristics is one or more of force and torque, and the one or more further secondary overall motion characteristics is one or more of position, velocity and acceleration.

25. Robot according to any one of claims 23-24, wherein the first processing unit receives the further second result signal and one or more further first sensor signals indicative of one or more further primary actual motion characteristics of the one or more primary motors, and wherein the first processing unit calculates one or more further primary overall motion characteristics of the one or more primary motors at least based on the one or more further first sensor signals and the further second result signal.

Description:
CALCULATIONS IN A ROBOT

The present disclosure relates to a robot, more particular to a robotic arm and/or a method for control of such robot or robotic arm.

BACKGROUND

Robots and in particular robotic arms are widely used to perform a wide variety of automated tasks. Recently lightweight robots have increased in popularity for assisting human activities, e.g. in production facilities. These robots are commonly known as collaborative robots or cobots.

For robots, such as robotic arms, it is important to know the position of movable parts, as well as to ensure that the robot behaves, e.g. moves, as intended. Furthermore, it is of great importance, especially when automated and/or autonomous robots are used for assisting human activities and working alongside humans, that the robots comprise certain safety features to ensure the safety of the humans around.

Furthermore, there is a desire towards making robotic arms as compact as possible, as well as enhancing efficiency and speed of the robot's movements.

To control the operation of the robot, to make sure actual movement of the robot and/or of parts of the robot corresponds to intended movements, and to ensure safety around the operating robot, it is necessary to continuously compute the position and operation of each part of the robot. Furthermore, to achieve desired tasks, it is also necessary to be able to derive and provide needed motor outputs. Thus, it should be clear that during movement of a robot, continuous and substantial amount of information processing is needed to monitor, evaluate and effect movement of the parts of the robot.

SUMMARY

It is an object of the present disclosure to at least provide improvements of the prior art and/or to solve or reduce problems known from the prior art. It is a further object of the present disclosure to provide an advantageous or at least alternative solutions for a robot and/or a robotic arm.

More particularly, the present disclosure provides a solution which provides enhanced flexibility and optimisation of processing resources, thereby facilitating a reduced number of components and/or possibility to use less expensive components. Thereby, facilitating simpler and less expensive robots.

Thus, the present disclosure relates to a robot comprising a plurality of joint assemblies, such as a robot as specified by the appended claims. GENERAL DESCRIPTION

The robot comprises a plurality of joint assemblies, e.g. including a first joint assembly, a second joint assembly and/or a third joint assembly.

The robot further comprises a plurality of motors. The plurality of motors may include a first motor, a second motor, a third motor, a fourth motor, a fifth motor, a sixth motor and/or a seventh motor. In some examples, some or all of the plurality of motors may be labelled differently, i.e. the plurality of motors may include a first primary motor, a first secondary motor, a second primary motor, a second secondary motor, a third primary motor, a third secondary motor, and/or a fourth primary motor. The plurality of motors may cause relative rotation around a plurality of respective axes. The plurality of motors may be at least five motors, such as at least six motors, such as seven motors or at least seven motors. The plurality of axes may correspondingly be at least five axes, such as at least six axes, such as seven axes or at least seven axes. The robot may be configured such that in at least some configurations the plurality of axes are non-parallel. Accordingly, the first motor may cause relative rotation around a first axis. The second motor may cause relative rotation around a second axis. In at least some configurations, the first axis and the second axis may be non-parallel. Each of the plurality of motors may be a permanent magnet AC motor. However, other motors known in the art, may equally be used.

The motor(s), such as any of the plurality of motors mentioned above, may comprise a gear assembly, e.g. an integral gear, such as a strain wave gear. Hence, a motor in the present disclosure may be a gear motor.

The motor(s) may be considered "joints" of the robot. Between each joint, i.e. between each motor, the robot may comprise "links". The links are the rigid members connecting the joints. Hence a link may be considered the part of the robot connecting the output of one motor to an input of another motor.

Each or some of the plurality of joint assemblies may comprise a joint housing and a motor, such as a primary motor, connecting the joint housing with a primary link. The joint housing may itself be considered a link. The primary motor may be adapted to rotate the primary link relative to the joint housing around a primary axis. A joint assembly, such as some or each of the plurality joint assemblies, may further comprise another motor, such as a secondary motor, connecting the joint housing with a secondary link. The secondary motor may be adapted to rotate the secondary link relative to the joint housing and/or the primary link around a secondary axis. The secondary axis may be non-parallel with the primary axis. The first joint assembly may comprise the first motor, such as the first primary motor. The first joint assembly may comprise a first joint housing. The first primary motor may connect the first joint housing with a first primary link. The first primary motor may be adapted to rotate the first primary link relative to the first joint housing around a first primary axis. The first joint assembly may comprise a first secondary motor. The first secondary motor may connect the first joint housing with a first secondary link. The first secondary motor may be adapted to rotate the first secondary link relative to the first joint housing and/or the first primary link around a first secondary axis. The first secondary axis may be non-parallel with the first primary axis.

The second joint assembly may comprise the second motor, such as the second primary motor. The second joint assembly may comprise a second joint housing. The second primary motor may connect the second joint housing with a second primary link. The second primary motor may be adapted to rotate the second primary link relative to the second joint housing around a second primary axis. The second joint assembly may comprise the second secondary motor. The second secondary motor may connect the second joint housing with a second secondary link. The second secondary motor may be adapted to rotate the second secondary link relative to the second joint housing and/or the second primary link around a second secondary axis. The second secondary axis may be non-parallel with the second primary axis.

The third joint assembly may comprise the third motor, such as the third primary motor. The third joint assembly may comprise a third joint housing. The third primary motor may connect the third joint housing with a third primary link. The third primary motor may be adapted to rotate the third primary link relative to the third joint housing around a third primary axis. The third joint assembly may comprise the third secondary motor. The third secondary motor may connect the third joint housing with a third secondary link. The third secondary motor may be adapted to rotate the third secondary link relative to the third joint housing and/or the third primary link around a third secondary axis. The third secondary axis may be non-parallel with the third primary axis.

The joint assemblies and/or motors thereof, may be connected by links extending therebetween. For example the first joint assembly and the second joint assembly may be connected by a link extending between the first joint assembly and the second joint assembly. The first motor and the second motor may be connected by a link extending between the first motor and the second motor. The second joint assembly and the third joint assembly may be connected by a link extending between the second joint assembly and the third joint assembly. The second motor and the third motor may be connected by a link extending between the second motor and the third motor. A primary link in relation to one joint assembly may be a secondary link in relation to another joint assembly. For example, the second primary link and the first secondary link may be the same link.

The first primary link may extend between a base of the robot and the first joint assembly. The second primary link and/or the first secondary link may extend between the first joint assembly and the second joint assembly. The third primary link and/or the second secondary link may extend between the second joint assembly and the third joint assembly.

The robot may comprise a power supply. The power supply may supply power to the plurality of motors and/or other components of the robot, such as processing units of the joint assemblies. The power supply may be AC powered or DC powered. The power supply may be powered by a battery, e.g. an internal battery of the robot. In some examples, the power supply may comprise the battery. In some examples the battery may be an external battery.

The power supply may comprise a power supply connector for coupling the power supply to an external power source, such as an external battery and/or an external power plug, such as a wall socket. The external power source may be a DC power source, e.g. at 24 volts, 48 volts or 72 volts. Alternatively the external power source may be an AC power source, e.g. at 120 volts, 220 volts.

The robot may comprise a plurality of processing units, e.g. including a first processing unit, a second processing unit and/or a third processing unit. The plurality of processing units may comprise more than three processing units. The processing units may be adapted to control operation of the plurality of motors, to effectuate a desired movement of the robot. For example, the first processing unit may be adapted to control operation of the first motor, the second processing unit may be adapted to control operation of the second motor, and/or the third processing unit may be adapted to control operation of the third motor. In some examples, a plurality of processing units, may be provided as part of one circuitry, e.g. a PCB, to form one common controller adapted to control operation of a plurality of motors.

The first joint assembly may comprise the first processing unit. The second joint assembly may comprise the second processing unit. The third joint assembly may comprise the third processing unit. The first joint assembly may comprise a first secondary processing unit, e.g. in addition to the first processing unit, which then may be denoted a first primary processing unit. The second joint assembly may comprise a second secondary processing unit, e.g. in addition to the second processing unit, which may then be denoted a second primary processing unit. The third joint assembly may comprise a third secondary processing unit, e.g. in addition to the third processing unit, which may then be denoted a third primary processing unit. Any or all of the joint assemblies may comprise circuitry, such as a PCB and/or one or more PCBs. The circuitry may comprise one or more processing units of the plurality of processing units previously described. For example, the first joint assembly may comprise a first circuitry, such as a first PCB and/or one or more first PCBs. The first circuitry may comprise the first processing unit and optionally the first secondary processing unit. The second joint assembly may comprise a second circuitry, such as a second PCB and/or one or more second PCBs. The second circuitry may comprise the second processing unit and optionally the second secondary processing unit. The third joint assembly may comprise a third circuitry, such as a third PCB and/or one or more third PCBs. The third circuitry may comprise the third processing unit and optionally the third secondary processing unit.

The plurality of processing units and/or one or more of the plurality of processing units may calculate one or more motion characteristics for the robot and/or the motors of the robot. In the present disclosure, "motion characteristics" may include position (e.g. angular position), velocity (such as linear and/or angular velocity), acceleration (e.g. linear and/or angular velocity), torque and/or force. Motion characteristics may be motion characteristics of intended movements, i.e. designating how one or more of the plurality of motors should act (e.g. how fast should they turn, how much torque should they exhibit, etc.). Motion characteristics may alternatively or additionally be motion characteristics of actual movements, i.e. designating, e.g. based on sensor inputs, how one or more of the plurality of motors are actually performing (e.g. how fast does the motor turn, how much torque is the motor outputting, etc.). Motion characteristics may be motion characteristics of local movement, e.g. how is the motor performing in its own reference frame. However, motion characteristics may alternatively or additionally be motion characteristics of overall movement, i.e. how is the motor performing in relation to a common reference point, e.g. the base of the robot, or the end effector of the robot.

According to the present disclosure, the processing units adapted to control operation of the individual motors, are used to calculate motion characteristics for the motors of the robot. Thereby, the need for a centralised control unit for calculating the motion characteristics may be reduced, and possibly dispensed with, e.g. leading to reduction of components, consequentially reducing complexity and cost of the robot.

The first processing unit may receive one or more first input signals. The one or more first input signals may, for example, comprise high level instructions of a movement, such as "move end effector to position X," or similar. The one or more first input signals may be received from a teach pendant or may be received from a control unit, which may be external to the robot and/or which may be controlling a plurality of robots. The first processing unit may calculate one or more primary motion characteristics for one or more primary motors of the plurality of motors at least based on the one or more first input signals.

The one or more primary motors may be any subset of the plurality of motors. For example, the one or more primary motors may include the first motor or consist exclusively of the first motor. In another example, the one or more primary motors may include the first motor and the second motor or the third motor. In yet another example, the one or more primary motors may include the first motor, the second motor, the third motor.

The one or more primary motion characteristics for the one or more primary motors may include at least one or more first motion characteristics for the first motor. The one or more primary motion characteristics for the one or more primary motors may include at least one or more second motion characteristics for the second motor. The one or more primary motion characteristics for the one or more primary motors may include at least one or more third motion characteristics for the third motor.

The first processing unit may control operation of the first motor in accordance with the one or more first motion characteristics.

The second processing unit may control operation of the second motor in accordance with the one or more second motion characteristics. In some examples, e.g. wherein the one or more primary motion characteristics includes the one or more second motion characteristics for the second motor, the second processing unit may receive a signal indicative of the one or more second motion characteristics. The signal indicative of the one or more second motion characteristics may be received from the first processing unit. Hence, the first processing unit may transmit the signal indicative of the one or more second motion characteristics to the second processing unit.

The third processing unit may control operation of the third motor in accordance with the one or more third motion characteristics. In some examples, e.g. wherein the one or more primary motion characteristics includes the one or more third motion characteristics for the third motor, the third processing unit may receive a signal indicative of the one or more third motion characteristics. The signal indicative of the one or more third motion characteristics may be received from the first processing unit. Hence, the first processing unit may transmit the signal indicative of the one or more third motion characteristics to the third processing unit.

The second processing unit may receive one or more second input signals and/or the third processing unit may receive one or more third input signals. The one or more second input signals and/or the one or more third input signals may be indicative of the same or nearly the same as the one or more first input signals received by the first processing unit. For example, the one or more second input signals and/or the one or more third input signals may comprise high level instructions of a movement, which like the one or more first input signal may be received from a teach pendant or may be received from a control unit. In some examples, the one or more second input signals and/or the one or more third input signals may be the one or more first input signals.

In some examples, the second processing unit may calculate one or more secondary motion characteristics for the one or more primary motors of the plurality of motors at least based on the one or more second input signals. Alternatively or additionally, the third processing unit may calculate one or more tertiary motion characteristics for the one or more primary motors of the plurality of motors at least based on the one or more third input signals.

By providing the same or nearly the same problem to a plurality of processing units, more processing units may be used to simultaneously search for a (best) solution of motor movements to achieve the desired movement, as indicated by the received input signals. Thereby, a more optimal result, i.e. more optimised motion characteristics may be achieved faster.

One of the plurality of processing units, e.g. the first processing unit, the second processing unit or the third processing unit, may receive a first signal, e.g. from the first processing unit, indicative of the one or more primary motion characteristics for the one or more primary motors, and/or may receive a second signal, e.g. from the second processing unit, indicative of the one or more secondary motion characteristics for the one or more primary motors, and/or may receive a third signal, e.g. from the third processing unit, indicative of the one or more tertiary motion characteristics for the one or more primary motors. The one of the plurality of processing units may control operation of at least one of the one or more primary motors in accordance with the one or more primary motion characteristics and/or the one or more secondary motion characteristics and/or the one or more tertiary motion characteristics for the one or more primary motors. For example, the first processing unit may control operation of the first motor in accordance with the one or more primary motion characteristics and/or the one or more secondary motion characteristics and/or the one or more tertiary motion characteristics for the one or more primary motors. The one of the plurality of processing units may, e.g. before controlling operation of at least one of the one or more primary motors in accordance with the one or more primary/secondary/tertiary motion characteristics, evaluate which of the primary, secondary, or tertiary motion characteristics, to control operation of at least one of the one or more primary motors in accordance with.

In some examples, the second processing unit may calculate one or more secondary motion characteristics for one or more secondary motors of the plurality of motors at least based on the one or more second input signals. Alternatively or additionally, the third processing unit may calculate one or more tertiary motion characteristics for one or more tertiary motors of the plurality of motors at least based on the one or more third input signals.

The one or more secondary motors may be a subset of the plurality of motors, which may be different from the one or more primary motors, e.g. the one or more secondary motors may not form part of the one or more primary motors. For example, the one or more primary motors may comprise or be the first motor and optionally the third motor, and the one or more secondary motors may comprise or be the second motor. The one or more tertiary motors may be a subset of the plurality of motors, which may be different from the one or more primary motors and the one or more secondary motors, e.g. the one or more tertiary motors may not form part of the one or more primary motors and may not form part of the one or more secondary motors. For example, the one or more primary motors may comprise or be the first motor, and the one or more secondary motors may comprise or be the second motor, and the one or more tertiary motors may comprise or be the tertiary motor.

In some examples, the second processing unit may receive a signal, e.g. from the first processing unit, indicative of the one or more primary motion characteristics for the one or more primary motors. In such example, the second processing unit may calculate the one or more secondary motion characteristics for the one or more secondary motors based on the received signal indicative of the one or more primary motion characteristics for the one or more primary motors. Calculation of the one or more secondary motion characteristics for the one or more secondary motors may additionally be based on the one or more second input signals, as described above. However, alternatively, calculation of the one or more secondary motion characteristics for the one or more secondary motors may be not based on the one or more second input signals, as described above.

The third processing unit may receive a signal, e.g. from the second processing unit, indicative of the one or more secondary motion characteristics for the one or more secondary motors. In such example, the third processing unit may calculate the one or more tertiary motion characteristics for the one or more tertiary motors based on the received signal indicative of the one or more secondary motion characteristics for the one or more secondary motors. Calculation of the one or more tertiary motion characteristics for the one or more tertiary motors may additionally be based on the one or more third input signals, as described above. However, alternatively, calculation of the one or more tertiary motion characteristics for the one or more tertiary motors may be not based on the one or more third input signals, as described above.

The one or more secondary motion characteristics for the one or more secondary motors may include one or more second motion characteristics for the second motor. The second processing unit may control operation of the second motor in accordance with the one or more second motion characteristics of the one or more secondary motion characteristics for the one or more secondary motors.

The one or more tertiary motion characteristics for the one or more tertiary motors may include one or more third motion characteristics for the third motor. The third processing unit may control operation of the third motor in accordance with the one or more third motion characteristics of the one or more tertiary motion characteristics for the one or more tertiary motors.

The processing units may exchange information and base their calculations/derivations on information received from other processing units. For example, the first processing unit may transmit a signal, such as a first result signal, indicative of the one or more primary motion characteristics for the one or more primary motors to one or more other processing units, such as the second processing unit and/or the third processing unit. Similarly, the second processing unit may transmit a signal, such as a second result signal, indicative of the one or more secondary motion characteristics for the one or more secondary motors to one or more other processing units, such as the first processing unit and/or the third processing unit. Similarly, the third processing unit may transmit a signal, such as a third result signal, indicative of the one or more tertiary motion characteristics for the one or more tertiary motors to one or more other processing units, such as the first processing unit and/or the second processing.

Accordingly, the calculations of the one or more motion characteristics may be based (e.g. additionally) on signals received from other processing units. For example, the first processing unit may receive and calculate the one or more primary motion characteristics for the one or more primary motors (additionally) based on a received signal, such as the second result signal indicative of the one or more secondary motion characteristics for the one or more secondary motors and/or the third result signal indicative of the one or more tertiary motion characteristics for the one or more tertiary motors. Alternatively or additionally, the second processing unit may receive and calculate the one or more secondary motion characteristics for the one or more secondary motors (additionally) based on a received signal, such as the first result signal indicative of the one or more primary motion characteristics for the one or more primary motors and/or the third result signal indicative of the one or more tertiary motion characteristics for the one or more tertiary motors. Alternatively or additionally, the third processing unit may receive and calculate the one or more tertiary motion characteristics for the one or more tertiary motors (additionally) based on a received signal, such as the first result signal indicative of the one or more primary motion characteristics for the one or more primary motors and/or the second result signal indicative of the one or more secondary motion characteristics for the one or more secondary motors. The robot may comprise a plurality of sensors, e.g. including a first sensor (or a plurality of first sensors), a second sensor (or a plurality of second sensors), and/or a third sensor (or a plurality of third sensors). The plurality of sensors may provide sensor signals, e.g. including a first sensor signal, a second sensor signal, and/or a third sensor signal. The sensor signals may be indicative of one or more actual motion characteristics of the robot, such as of a motor of the robot and/or of a link of the robot. The plurality of sensors may be sensing one or more parameters indicative of one or more actual motion characteristics of a motor and/or a link.

The plurality of sensors may comprise one or more rotational position encoders, such as output position sensor(s) and/or rotor position sensor(s). The output position sensor(s) may obtain angular position, such as between two links, such as of a link relative to a joint housing, and/or of an output part of a motor relative to its housing. The rotor position sensor(s) may obtain angular position of a rotor of a motor. The plurality of sensors may comprise one or more current sensors measuring current drawn by a motor. The plurality of sensors may comprise one or more torque sensors obtaining torque provided by a motor. The plurality of sensors may comprise one or more accelerometers. One or more of the sensors may comprise a plurality of sub-sensors, e.g. a plurality of current sensors, such as a plurality of current sensors respectively sensing current in a plurality of phases.

In some examples, one or more of the sensors may form part of the respective circuitry of the joint assembly. For example, the circuitry of the joint assembly may comprise one or more of the sensors. For example, the one more sensors may be provided as components on a PCB, which may be the same PCB also comprising one or more of the plurality of processing units. For example, the first circuitry may comprise the first sensor. The second circuitry may comprise the second sensor. The third circuitry may comprise the third sensor. Providing sensors as part of the circuitry, such as a PCB, may be particularly practical for sensors sensing electrical parameters, such as current sensors. However, other sensors, e.g. accelerometers, may also benefit from forming part of the circuitry.

Some of the above-mentioned sensors, e.g. the output position sensor, the rotor position sensor, the torque sensor, and/or the current sensor(s) may form part of the respective motor.

The sensors may provide respective sensor signals. The first processing unit may receive one or more first sensor signals, e.g. from one or more sensors, such as from one or more first sensors, such as the first sensor or the plurality of first sensors as described above. The second processing unit may receive one or more second sensor signals, e.g. from one or more second sensors, such as the second sensor or the plurality of second sensors as described above. The third processing unit may receive one or more third sensor signals, e.g. from one or more third sensors, such as the third sensor or the plurality of third sensors as described above.

The one or more first sensor signals may be indicative of one or more actual motion characteristics of one or more motors of the robot, e.g. of the one or more primary motors, such as the first motor. The one or more second sensor signals may be indicative of one or more actual motion characteristics of one or more motors of the robot, e.g. of the one or more secondary motors, such as the second motor. The one or more third sensor signals may be indicative of one or more actual motion characteristics of one or more motors of the robot, e.g. of the one or more tertiary motors of the robot, such as the third motor. The actual motion characteristics may be one or more of angular position, angular velocity, angular acceleration and torque.

The first processing unit may calculate/derive one or more primary actual motion characteristics of the one or more primary motors, at least based on the one or more first sensor signals. The calculation/derivation of the one or more primary actual motion characteristics of the one or more primary motors may be based (e.g. additionally) on other signals, such as from other processing units and/or from other sensors.

The first processing unit may compare the one or more primary motion characteristics for the one or more primary motors with the one or more actual motion characteristics of the one or more primary motors based on the one or more first sensor signals. The first processing unit may control operation of the one or more primary motors, such as the first motor (and/or modify control of the one or more primary motors, such as the first motor) in accordance with a deviation between the one or more primary motion characteristics for the one or more primary motors with the one or more actual motion characteristics of the one or more primary motors.

Alternatively or additionally, the first processing unit may calculate/derive one or more primary overall motion characteristics of the one or more primary motors at least based on the one or more first sensor signals. The calculation/derivation of the one or more primary overall motion characteristics may be based (e.g. additionally) on other signals, such as from other processing units and/or from other sensors.

The first processing unit may transmit a signal, such as a first result signal, indicative of the one or more primary actual motion characteristics and/or of the one or more primary overall motion characteristics to another processing unit, such as the second processing unit. Alternatively or additionally, the first result signal may be indicative of the one or more primary motion characteristics for the one or more primary motors. The second processing unit may calculate/derive one or more secondary actual motion characteristics of the one or more secondary motors, at least based on the one or more second sensor signals. The calculation/derivation of the one or more secondary actual motion characteristics of the one or more secondary motors may be based (e.g. additionally) on other signals, such as from other processing units and/or from other sensors. For example, the second processing unit may receive a signal, such as the first result signal, indicative of the one or more primary motion characteristics and/or of the one or more primary actual motion characteristics and/or of the one or more primary overall motion characteristics. Accordingly, the second processing unit may calculate the one or more secondary actual motion characteristics based (additionally) on the received signal, such as the first result signal.

The second processing unit may compare the one or more secondary motion characteristics for the one or more secondary motors with the one or more actual motion characteristics of the one or more secondary motors based on the one or more second sensor signals. The second processing unit may control operation of the one or more secondary motors, such as the second motor (and/or modify control of the one or more secondary motors, such as the second motor) in accordance with a deviation between the one or more secondary motion characteristics for the one or more secondary motors with the one or more actual motion characteristics of the one or more secondary motors.

Alternatively or additionally, the second processing unit may calculate/derive one or more secondary overall motion characteristics of the one or more secondary motors at least based on the one or more second sensor signals. The calculation/derivation of the one or more secondary overall motion characteristics may be based (e.g. additionally) on other signals, such as from other processing units and/or from other sensors. For example, the second processing unit may receive a signal, such as the first result signal, indicative of the one or more primary motion characteristics and/or of the one or more primary actual motion characteristics and/or of the one or more primary overall motion characteristics. Accordingly, the second processing unit may calculate the one or more secondary overall motion characteristics based (additionally) on the received signal, such as the first result signal.

The second processing unit may transmit a signal, such as a second result signal, indicative of the one or more secondary actual motion characteristics and/or of the one or more secondary overall motion characteristics to another processing unit, such as the third processing unit. Alternatively or additionally, the second result signal may be indicative of the one or more secondary motion characteristics for the one or more secondary motors. The third processing unit may calculate/derive the one or more tertiary actual motion characteristics of the one or more tertiary motors, at least based on the one or more third sensor signals. The calculation/derivation of the one or more tertiary actual motion characteristics of the one or more tertiary motors may be based (e.g. additionally) on other signals, such as from other processing units and/or from other sensors. For example, the third processing unit may receive a signal, such as the second result signal, indicative of the one or more secondary motion characteristics and/or of the one or more secondary actual motion characteristics and/or of the one or more secondary overall motion characteristics. Accordingly, the third processing unit may calculate the one or more tertiary actual motion characteristics based (additionally) on the received signal, such as the second result signal.

The third processing unit may compare the one or more tertiary motion characteristics for the one or more tertiary motors with the one or more actual motion characteristics of the one or more tertiary motors based on the one or more third sensor signals. The third processing unit may control operation of the one or more tertiary motors, such as the third motor (and/or modify control of the one or more tertiary motors, such as the third motor) in accordance with a deviation between the one or more tertiary motion characteristics for the one or more tertiary motors with the one or more actual motion characteristics of the one or more tertiary motors.

Alternatively or additionally, the third processing unit may calculate/derive one or more tertiary overall motion characteristics of the one or more tertiary motors at least based on the one or more third sensor signals. The calculation/derivation of the one or more tertiary overall motion characteristics may be based (e.g. additionally) on other signals, such as from other processing units and/or from other sensors. For example, the third processing unit may receive a signal, such as the second result signal, indicative of the one or more secondary motion characteristics and/or of the one or more secondary actual motion characteristics and/or of the one or more secondary overall motion characteristics. Accordingly, the third processing unit may calculate the one or more tertiary overall motion characteristics based (additionally) on the received signal, such as the second result signal.

The one or more overall motion characteristics may be in a common reference frame for the robot, such as a reference frame of the base or the end effector of the robot. For example, the one or more primary overall motion characteristics of the one or more primary motors and the one or more secondary overall motion characteristics of the one or more secondary motors may be in the common reference frame. The one or more tertiary overall motion characteristics of the one or more tertiary motors may also be in the common reference frame. The one or more overall motion characteristics, such as the one or more primary overall motion characteristics, the one or more secondary overall motion characteristics and/or the one or more tertiary overall motion characteristics may be one or more of position, velocity, acceleration, force and torque.

The processing units may temporarily store information, such as information received from sensors and/or other processing units, in a memory. For example, the first processing unit may temporarily store in a first memory the one or more first sensor signals and/or information derived therefrom. The second processing unit may temporarily store in a second memory the one or more second sensor signals and/or the first result signal and/or information derived therefrom. The third processing unit may temporarily store in a third memory the one or more third sensor signals and/or the second result signal and/or information derived therefrom. Temporarily storing the sensor signals and/or the result signals have the advantage that temporally corresponding measurements and/or calculations may be used for subsequent calculations. For example, the one or more second sensor signals (used in calculating the one or more secondary overall motion characteristics) may be one or more second sensor signals received by the second processing unit at substantially the same time as the one or more first sensor signals (used in calculating the one or more primary overall motion characteristics and/or the one or more primary actual motion characteristics) is received by the first processing unit. The one or more third sensor signals (used in calculating the one or more tertiary overall motion characteristic) may be one or more third sensor signals received by the third processing unit at substantially the same time as the one or more first sensor signals (used in calculating the one or more primary overall motion characteristics and/or the one or more primary actual motion characteristics) is received by the first processing unit and/or at substantially the same time as the one or more second sensor signals (used in calculating the one or more secondary overall motion characteristics and/or the one or more secondary actual motion characteristics) is received by the second processing unit.

Alternatively or additionally, calculation of the one or more actual motion characteristics and/or the one or more overall motion characteristics may include extrapolating received information, such as information received from sensors and/or other processing units, such as to obtain predicted information. For example, calculation of the one or more primary actual motion characteristics and/or the one or more primary overall motion characteristics may include extrapolating the one or more first sensor signals to obtain predicted one or more first sensor signals. Calculation of the one or more primary actual motion characteristics may be based on the predicted one or more first sensor signals. Calculation of the one or more secondary actual motion characteristics and/or the one or more secondary overall motion characteristics may include extrapolating the one or more second sensor signals to obtain predicted one or more second sensor signals. Calculation of the one or more secondary actual motion characteristics and/or the one or more secondary overall motion characteristics may be based on the predicted one or more second sensor signals. Extrapolating the sensor signals have the advantage that temporally corresponding sensor measurements may be used for the calculations.

The first processing unit may receive one or more further first sensor signals, e.g. from one or more further first sensors, such as the first sensor or the plurality of first sensors as described above. The one or more further first sensor signals may be indicative of one or more further primary actual motion characteristics of the one or more primary motors. The second processing unit may receive one or more further second sensor signals, e.g. from one or more further second sensors, such as the second sensor or the plurality of second sensors as described above. The one or more further second sensor signals may be indicative of one or more further secondary actual motion characteristics of the one or more secondary motors. The third processing unit may receive one or more further third sensor signals, e.g. from one or more further third sensors, such as the third sensor or the plurality of third sensors as described above. The one or more further third sensor signals may be indicative of one or more further tertiary actual motion characteristics of the one or more tertiary motors.

The third processing unit may calculate one or more further tertiary actual motion characteristics and/or one or more further tertiary overall motion characteristics of the one or more tertiary motors at least based on the one or more further third sensor signals. The calculation of the one or more further tertiary actual motion characteristics and/or the one or more further tertiary overall motion characteristics may be based (e.g. additionally) on other signals, such as from other processing units and/or from other sensors. The third processing unit may transmit a further third result signal indicative of the one or more further tertiary actual motion characteristics and/or the one or more further tertiary overall motion characteristics to the second processing unit.

The second processing unit may calculate one or more further secondary actual motion characteristics and/or one or more further secondary overall motion characteristics of the one or more secondary motors at least based on the one or more further second sensor signals. The calculation of the one or more further secondary actual motion characteristics and/or the one or more further secondary overall motion characteristics may be based (e.g. additionally) on other signals, such as from other processing units and/or from other sensors. For example, the second processing unit may receive the further third result signal, e.g. from the third processing unit, and calculate the one or more further secondary overall motion characteristics of the one or more secondary motors at least based on the one or more further second sensor signals and the further third result signal. The second processing unit may transmit a further second result signal indicative of the one or more further secondary actual motion characteristics and/or the one or more further secondary overall motion characteristics to the first processing unit. The first processing unit may calculate one or more further primary actual motion characteristics and/or one or more further primary overall motion characteristics of the one or more primary motors at least based on the one or more further first sensor signals. The calculation of the one or more further primary actual motion characteristics and/or the one or more further primary overall motion characteristics may be based (e.g. additionally) on other signals, such as from other processing units and/or from other sensors. For example, the first processing unit may receive the further second result signal, e.g. from the second processing unit, and calculate the one or more further primary overall motion characteristics of the one or more primary motors at least based on the one or more further first sensor signals and the further second result signal.

The one or more further actual motion characteristics, such as the one or more further primary actual motion characteristic, the one or more further secondary actual motion characteristic and/or the one or more further tertiary actual motion characteristic, may be different motion characteristics than one or more actual motion characteristics mentioned previously, such as the one or more primary actual motion characteristic, the one or more secondary actual motion characteristic, and the one or more tertiary actual motion characteristic. For example, the one or more primary actual motion characteristic, the one or more secondary actual motion characteristic, and/or the one or more tertiary actual motion characteristics may be one or more of position, velocity and acceleration, and the one or more further primary actual motion characteristic, the one or more further secondary actual motion characteristic, and/or the one or more further tertiary actual motion characteristics may be one or more of force and torque. Alternatively, the one or more primary actual motion characteristic, the one or more secondary actual motion characteristic, and/or the one or more tertiary actual motion characteristics may be one or more of force and torque, and the one or more further primary actual motion characteristic, the one or more further secondary actual motion characteristic, and/or the one or more further tertiary actual motion characteristics may be one or more of position, velocity and acceleration.

The one or more further overall motion characteristics, such as the one or more further primary overall motion characteristic, the one or more further secondary overall motion characteristics and/or the one or more further tertiary overall motion characteristic, may be different motion characteristics than one or more overall motion characteristics mentioned previously, such as the one or more primary overall motion characteristic, the one or more secondary overall motion characteristic, and the one or more tertiary overall motion characteristic. For example, the one or more primary overall motion characteristic, the one or more secondary overall motion characteristic, and/or the one or more tertiary overall motion characteristics may be one or more of position, velocity and acceleration, and the one or more further primary overall motion characteristic, the one or more further secondary overall motion characteristic, and/or the one or more further tertiary overall motion characteristics may be one or more of force and torque. Alternatively, the one or more primary overall motion characteristic, the one or more secondary overall motion characteristic, and/or the one or more tertiary overall motion characteristics may be one or more of force and torque, and the one or more further primary overall motion characteristic, the one or more further secondary overall motion characteristic, and/or the one or more further tertiary overall motion characteristics may be one or more of position, velocity and acceleration.

BRIEF DESCRIPTION OF THE FIGURES

Embodiments of the disclosure will be described in more detail in the following with regard to the accompanying figures. The figures show one way of implementing the present disclosure and are not to be construed as being limiting to other possible embodiments falling within the scope of the attached claim set.

Fig. 1 is a schematic diagram illustrating an exemplary robot,

Fig. 2 is a schematic diagram illustrating an exemplary joint assembly,

Fig. 3 is a schematic block diagram illustrating an exemplary circuitry,

Fig. 4 is a schematic diagram showing a simplified diagram of a robot, and

Figs. 5a-5d are exemplary block diagrams of an exemplary robot.

DETAILED DESCRIPTION

Various exemplary embodiments and details are described hereinafter, with reference to the figures when relevant. It should be noted that the figures may or may not be drawn to scale and that elements of similar structures or functions are represented by like reference numerals throughout the figures. It should also be noted that the figures are only intended to facilitate the description of the embodiments. They are not intended as an exhaustive description of the invention or as a limitation on the scope of the invention. In addition, an illustrated embodiment needs not have all the aspects or advantages shown. An aspect or an advantage described in conjunction with a particular embodiment is not necessarily limited to that embodiment and can be practiced in any other embodiments even if not so illustrated, or if not so explicitly described.

Fig. 1 is a schematic diagram illustrating an exemplary robot 2, which in the present example is a robotic arm, more particularly, a seven-axis robotic arm. In the present example, the robot 2 is fastened to a structure 1, which may be a factory floor or another structure from which the robot 2 is meant to work from. In some examples, the structure 1 may be part of a movable unit, such as a mobile robot or a vehicle, which would allow the robot 2 to be moved between different positions. The robot 2 may be fastened to the structure 1 by fastening bolts 22. The robot 2 comprises a plurality of joint assemblies, including a first joint assembly 8, a second joint assembly 12, a third joint assembly 16, and a fourth joint assembly 20. In other examples, the robot may comprise fewer or more joint assemblies. For example, the robot 2 may, in another configuration, comprise only one joint assembly, such as the first joint assembly 8.

The robot 2 comprises a plurality of links, including a first link 6, a second link 10, a third link 14, and a fourth link 18. The denoted links extends between the joint assemblies 8, 12, 16, 20. For example, the first link 6 extends between a base 4 of the robot 2 and the first joint assembly 8. The second link 10 extends between the first joint assembly 8 and the second joint assembly 12. The third link 14 extends between the second joint assembly 12 and the third joint assembly 16. The fourth link 18 extends between the third joint assembly 16 and the fourth joint assembly 20. As mentioned previously, the joint assemblies may themselves form additional links of the robot, which extends between motors of the joint assemblies.

Each of the joint assemblies 8, 12, 16, 20 are adapted to rotate one or more respective links. For example, the first joint assembly 8 is adapted to rotate the first link 6 relative to the first joint assembly 8 around a first axis Axl. The first joint assembly 8 is adapted to rotate the second link 10 relative to the first joint assembly 8 around a second axis Ax2. The second axis Ax2 is non-parallel with the first axis Axl. The second joint assembly 12 is adapted to rotate the second link 10 relative to the second joint assembly 12 around a third axis Ax3. The second joint assembly 12 is adapted to rotate the third link 14 relative to the second joint assembly 12 around a fourth axis Ax4. The fourth axis Ax4 is non-parallel with the third axis Ax3. The third joint assembly 16 is adapted to rotate the third link 14 relative to the third joint assembly 16 around a fifth axis Ax5. The third joint assembly 16 is adapted to rotate the fourth link 18 relative to the third joint assembly 16 around a sixth axis Ax6. The sixth axis Ax6 is non-parallel with the fifth axis Ax5. The fourth joint assembly 20 is adapted to rotate the fourth link 18 relative to the fourth joint assembly 20 around a seventh axis Ax7. The robot 2 may be put in some configurations where none of the seven axes Axl-Ax7 are parallel. However, in some other configurations two or more of the seven axes may be parallel. An end effector of the robot 2 may be provided at the distal end of the robot 2, such as at the fourth joint assembly 20.

Although being described in relation to a robot 2 being operable relative to seven axes, the present disclosure may alternatively be applied to a robot having more or fewer axis, such as eight axes, six axes, or five axes. For example, with respect to the example illustrated in Fig. 1, movement around the third axis Ax3, may be omitted, to obtain a robot operable relative to six axes. In such situation, the first joint assembly 8 may be adapted to rotate the first link 6 relative to the first joint assembly 8 around the first axis Axl and to rotate the second link 10 relative to the first joint assembly 8 around the second axis Ax2. The second joint assembly 12 may be adapted to rotate the third link 14 relative to the second joint assembly 12 around the fourth axis Ax4 and to rotate the third link 14 relative to the second joint assembly 12 around the fifth axis Ax5. The third joint assembly 16 may be adapted to rotate the third link 14 relative to the third joint assembly 16 around the sixth axis Ax6 and to rotate the fourth link 18 relative to the third joint assembly 16 around the seventh axis Ax7. The fourth joint assembly 20 may be omitted. Hence, a robot operable relative to six axes may be realised with only three joint assemblies as described.

The robot may comprise a first electrical base connector 24 arranged at the base 4 of the robot 2. In some examples, the first electrical base connector 24 may be a power supply connector adapted to receive power for powering the robot 2. The power supply connector may form part of a power supply of the robot 2. The robot may comprise a second electrical base connector 26 arranged at the base 4 of the robot 2. In some examples, the second electrical base connector 26 may be an I/O port, and/or may be adapted to couple with a teach pendant connector of a teach pendant for controlling and/or programming the robot.

Fig. 2 is a schematic diagram illustrating an exemplary joint assembly 90, which may be any of the first, second, or third joint assemblies 8, 12, 16 as shown in Fig. 1.

The joint assembly 90 comprises a joint housing 100. The joint assembly 90 comprises a primary motor 102 connecting the joint housing 100 with a primary link 92 (e.g. the first link 6, the second link 10, or the third link 14 of Fig. 1). The primary motor 102 is adapted to rotate the primary link 92 relative to the joint housing 100 (which itself may be considered a link) around a primary axis (e.g. the first axis Axl, the third axis Ax3, the fifth axis Ax5, or the seventh axis Ax7 of Fig. 1). The illustrated joint assembly 90 comprises an optional secondary motor 104 connecting the joint housing 100 with a secondary link 94 (e.g. the second link 10, the third link 14, or the fourth link 18 of Fig. 1). The secondary motor 104 is adapted to rotate the secondary link 94 relative to the joint housing 100 and/or relative to the primary link around a secondary axis (e.g. the second axis Ax2, the fourth axis Ax4, or the sixth axis Ax6 of Fig. 1). The joint assembly 90 comprises circuitry 106, e.g. a PCB, accommodated in the joint housing 100. The circuitry 106 is adapted to control the primary motor 102 and the secondary motor 104. The circuitry 106 may form a controller of the robot. The primary motor 102 and/or the secondary motor 104 may be a permanent magnet AC motor. Furthermore, the primary motor 102 and/or the secondary motor 104 may comprise a gear assembly, e.g. an integral gear, such as a strain wave gear. Hence, the primary motor 102 and/or the secondary motor 104 may be a gear motor. Fig. 3 is a schematic block diagram illustrating an exemplary circuitry 106 of a corresponding joint assembly 90 as shown in Fig. 2. The circuitry 106 comprises a primary processing unit 108 and a secondary processing unit 110. The primary processing unit 108 is adapted to control the primary motor 102 (see Fig. 2). The secondary processing unit 110 is adapted to control the secondary motor 104 (see Fig. 2). In an exemplary joint assembly only comprising a single motor, e.g. the primary motor 102, the secondary processing unit 110 might be omitted.

The processing units 108, 110 may further be adapted to receive sensor signals from various sensors, which may provide sensor signals indicative of actual motion characteristics of the robot, such as of a motor of the robot and/or of a link of the robot.

The processing units 108, 110 may receive redundant sensor signals from different sensors, but indicative of the same parameter(s). Thereby, the processing units 108, 110 may independently calculate the actual motion characteristics and compare if the results are matching each other. Thereby, a safety mechanism may be achieved by redundantly calculating the actual motion characteristics, and the risk of potential erroneous calculations or erroneous sensor outputs not being detected, is reduced.

For example, as illustrated, the primary processing unit 108 may receive, from a primary first sensor 112, a primary first sensor signal 124, which may be indicative of a primary motion characteristic, e.g. of the primary motor. Thereby, the primary processing unit 108 may calculate the primary motion characteristic, at least based on the primary first sensor signal 124. The secondary processing unit 110 may receive from a primary second sensor 114, a primary second sensor signal 126, which may also be indicative of the primary motion characteristic. For example, the primary first sensor 112 and the primary second sensor 114 may both be sensors individually sensing an output position of the primary motor. Thereby, the secondary processing unit 110 may calculate the primary motion characteristic, at least based on the primary second sensor signal 126. Thereby, the primary motion characteristic may be sensed and calculated redundantly resulting in a more fail-safe system.

Similarly, as also illustrated, the primary processing unit 108 may receive, from a secondary first sensor 116, a secondary first sensor signal 128, which may be indicative of a secondary motion characteristic, e.g. of the secondary motor, and the secondary processing unit 110 may receive, from a secondary second sensor 118, a secondary second sensor signal 130, which may also be indicative of the secondary motion characteristic. Thereby, the primary processing unit 108 and the secondary processing unit 110 may calculate the secondary motion characteristic based on the secondary first sensor signal 128 and the secondary second sensor signal 130, respectively. Thus, similarly as for the primary motion characteristic, the secondary motion characteristic may be redundantly calculated.

The sensors 112, 114, 116, 118 may comprise output position sensors obtaining angular position of links relative to joint housings and/or of an output part of a motor relative to its housing, rotor position sensors obtaining angular position of a rotor of a motor, current sensors measuring current drawn by a motor, torque sensors obtaining torque provided by a motor, and/or accelerometers. The sensors 112, 114, 116, 118 may, additionally or alternatively, comprise other sensors known in the art.

Although, in the present example, the sensors 112, 114, 116, 118 are illustrated as being external to the circuitry 106 some sensors may be provided on the circuitry 106, e.g. on the same PCB as the processing units 108, 110. For example, one or more of the sensors 112, 114, 116, 118 may include one or more current sensors and/or accelerometers, which may conveniently be provided on the same PCB as the processing unit(s) controlling the motor(s).

Fig. 4 is a schematic diagram showing a simplified diagram of a robot 2, such as the robot 2 of Fig. 1. The robot 2 conceptually comprises a chain of motors 311, 312, 313, 314, 315, 316, 317 (alternatively called joints) connected to each other. In the present diagram, the motors 311, 312, 313, 314, 315, 316, 317, are for illustrative purposes shown with a significant distance between. However, as illustrated in relation to Figs. 1 and 2, some of the motors may be positioned quite close, e.g. as forming part of a single joint assembly. The motors 311, 312, 313, 314, 315, 316, 317 cause rotation about respective axes of the robot. The robot 2 may have fewer or more motors/axes than illustrated.

The exemplary robot 2 comprises a first motor 311 connecting a first link and a base 320 of the robot, i.e. the first motor 311 cause relative rotation between the base 320 and the first link 301. The robot 2 comprises a second motor 312 connecting a second link 302 and the first link 301, i.e. the second motor 312 causes relative rotation between first link 301 and the second link 302. The robot 2 comprises a third motor 313 connecting a third link 303 and the second link 302, i.e. the third motor 313 causes relative rotation between second link 302 and the third link 303. The robot 2 comprises a fourth motor 314 connecting a fourth link 304 and the third link 303, i.e. the fourth motor 314 causes relative rotation between third link 303 and the fourth link 304. The robot 2 comprises a fifth motor 315 connecting a fifth link 305 and the fourth link 304, i.e. the fifth motor 315 causes relative rotation between fourth link 304 and the fifth link 3O5.The robot 2 comprises a sixth motor 316 connecting a sixth link 306 and the fifth link 305, i.e. the sixth motor 316 causes relative rotation between fifth link 305 and the sixth link 306. The robot 2 comprises a seventh motor 317 connecting a seventh link 307 and the sixth link 306, i.e. the seventh motor 317 causes relative rotation between sixth link 306 and the seventh link 307. Accordingly, rotation of a motor causes relative rotation between two neighbouring links. However, rotation of a motor between two links will also cause movement of the more distal links attached thereto. Thus, for example, rotation by the first motor 311 will affect all of the links 301, 302, 303, 304, 305, 306, 307 of the robot 2.

To calculate motion characteristics of the links of the robot 2, an approach known as the Newton- Euler method may be used. The general idea of the Newton-Euler approach is to evaluate motion characteristics of one link, based on balance of ferees and torques with variation in linear and angular momentum. The result obtained for one link may then be used to evaluate motion characteristics of the adjacent link. Thereby, motion characteristics of each of the links with respect to a common reference point, e.g. the base 320 of the robot, may be calculated. Calculations of position, velocity and acceleration of each of the links may be calculated starting from the base 320, having a known position, velocity and acceleration, e.g. the base 320 may be stationary. The positions, velocities and accelerations of each of the links may thus be calculated starting from the base, continuing with the first link 301 and continuing outwards towards the tip 322 of the robot. Following calculations of positions, velocities and accelerations of each of the links, the forces and torques of each of the links may be calculated starting from the tip 322 and continuing towards the base 320. This calculation may be based on a known torque and/or force to be applied by the end effector, e.g. based on a defined payload and/or action.

In the present disclosure, as further explained in relation to the following Figs. 5a-5d, the calculations of motion characteristics may be performed by the processing units adapted to control operation of the motors, as opposed to a central control unit calculating motion characteristics and instructing specifically the motor controlling processing units how the specific motors should operate. For example, the calculations of motion characteristics may be distributed throughout the robot 2. For example, processing units of each of the joint assemblies may calculate motion characteristics, e.g. relative to a common reference point, e.g. the base 320 of the robot 2. This procedure may work to optimize the use of processing power of the robot and/or to reduce the number of components, such as the number of processing units, of the robot 2.

Figs. 5a-5d are exemplary block diagrams of some components of an exemplary robot 2, such as the robot 2 of Fig. 1 and/or Fig. 4, and exemplary interaction between them.

The robot 2 comprises a plurality of motors, such as a first motor 202, a second motor 212 and a third motor 222. The motors 202, 212, 222 are adapted to cause relative movements between joint assemblies of the robot 2. The robot 2 may comprise fewer or more motors. However, for the purpose of exemplifying the present disclosure, three motors are illustrated. The motors 202, 212, 222 may be motors of consecutive joints of the robot 2. For example, the first motor 202 may be part of a first joint assembly connected by a link to a second joint assembly comprising the second motor 212. Similarly, the second joint assembly comprising the second motor 212 may be connected by another link to a third joint assembly comprising the third motor 222. However, in some examples the motors 202, 212, 222 might not be motors of consecutive joints.

The robot 2 further comprises a plurality of processing units, such as a first processing unit 201, a second processing unit 211, and a third processing unit 221. The processing units 201, 211, 221 are adapted to control operation of the motors 202, 212, 222. For example, the first processing unit 201 is adapted to control operation of the first motor 202, the second processing unit 211 is adapted to control operation of the second motor 212, and the third processing unit 221 is adapted to control operation of the third motor 222. In some alternatives, the robot 2 may comprise fewer or more processing units, and in some examples, one processing unit may control a plurality of motors. The processing units 201, 211, 221 may conveniently be arranged in the same joint assembly as the motor it is controlling. However, in some examples, the processing units 201, 211, 221 may be arranged external to the joint assemblies.

Each of the processing units 201, 211, 221 may temporarily store information, such as information received from sensors and/or other of the processing units. For this purpose, the robot 2 comprises electronic memory. For example, as illustrated the robot 2 may comprise a first memory 206 for the first processing unit 201, a second memory 216 for the second processing unit 211 and a third memory 226 for the third processing unit 221. The memories 206, 216, 226 may be arranged together with the respective processing units 201, 211, 221, e.g. in respective joint assemblies.

The processing units may calculate motion characteristics, such as angular position, angular velocity, angular acceleration, and/or torque of the motors 202, 212, 222. The motion characteristics may be indicative of how the motors 202, 212, 222 are to act to achieve a desired goal for the robot, e.g. to undertake a certain movement or a certain task.

The first processing unit 201 receives one or more first input signals 203. The one or more first input signals 203 may, for example, comprise high level instructions of a movement, such as "move end effector to position X."The one or more first input signals 203 may be received from a teach pendant or may be received from a control unit, which may be external to the robot 2. Alternatively, the one or more first input signals 203, may be received from one of the processing units of the robot, such as one of the second processing unit 211 and the third processing unit 221. Based on the received one or more first input signals 203, the first processing unit 201 calculates one or more primary motion characteristics for one or more primary motors of the plurality of motors 202, 212, 222. The primary motors may be any subset of the plurality of motors 202, 212, 222

The one or more primary motion characteristics may include one or more first motion characteristics for the first motor 202. Thus, the first processing unit 201 may control operation of the first motor 202 in accordance with the one or more first motion characteristics.

The one or more primary motion characteristics may include one or more second motion characteristics for the second motor 212. As shown in Fig. 5a, the second processing unit 211 may receive a first signal 205 from the first processing unit 201. The first signal 205 may be indicative of the one or more second motion characteristics. Thus, the second processing unit 211 may control operation of the second motor 212 in accordance with the one or more second motion characteristics.

The one or more primary motion characteristics may include one or more third motion characteristics for the third motor 222. As shown in Fig. 5a, the third processing unit 221 may receive a first signal 205' from the first processing unit 201. The first signal 205' received by the third processing unit 221 may be indicative of the one or more third motion characteristics. Thus, the third processing unit 221 may control operation of the third motor 222 in accordance with the one or more third motion characteristics. In some examples the first signal 205' received by the third processing unit 221 may be the same as the first signal 205 received by the second processing unit, in which case the first signal 205 may be indicative of both the one or more second motion characteristics and the one or more third motion characteristics.

Turning to the example of Fig. 5b, the second processing unit 211 may receive one or more second input signals 213 and/or the third processing unit 221 may receive one or more third input signals 223. The one or more second input signals 213 and/or the one or more third input signals 223 may be indicative of the same or nearly the same as the one or more first input signals 203 as received by the first processing unit 201. Hence, the one or more second input signals 213 and/or the one or more third input signals 223 may, for example, comprise high level instructions of a movement, such as "move end effector to position X." The one or more second input signals 213 and/or the one or more third input signals 223, like the one or more first input signals 203, may be received from a teach pendant or may be received from a control unit, which may be external to the robot 2. Alternatively, the one or more first input signals 203, the one or more second input signals 213 and/or the one or more third input signals 223, may be received from one of the processing units of the robot, such as one of the first processing unit 201, the second processing unit 211 and the third processing unit 221. Based on the received one or more second input signals 213, the second processing unit 211 may calculate one or more secondary motion characteristics for the one or more primary motors of the plurality of motors 202, 212, 222. Based on the received one or more third input signals 223, the third processing unit 221 may calculate one or more tertiary motion characteristics for the one or more primary motors of the plurality of motors 202, 212, 222. Thus, the second processing unit 211 and/or the third processing unit 221 may calculate alternative motion characteristics, such as alternative solutions, to the same task. This may be controlled by the input signals 203, 213, 223 comprising varying parameters. Thus, the plurality of processing units 201, 211, 221 may be used to simultaneously search for a (best) solution of motor movements to achieve the desired movement, as indicated by the receives input signals 203, 213, 223, such as which of the parameters provided with the input signals 203, 213, 223 resulted in the best or most useful solution to the task.

Each of the one or more primary, secondary, tertiary motion characteristics for the one or more primary motors may include one or more first motion characteristics for the first motor 202, one or more second motion characteristics for the second motor 212 and/or one or more third motion characteristics for the third motor 222.

One of the plurality of processing units 201, 211, 221 (in the illustrated example, the second processing unit 211, however could alternatively be the first processing unit 201 or the third processing unit 221) receives one or more signals 205, 225 indicative of the various calculated motion characteristics for the one or more primary motors, such as all of the motors. Accordingly the processing unit receiving the various motion characteristics may control operation of one or more of the motors 202, 212, 222 in accordance with any of the various motion characteristics.

For example, as illustrated, the second processing unit 211 may receive a first signal 205, from the first processing unit 201, indicative of the one or more primary motion characteristics, and a third signal 225, from the third processing unit 221, indicative of the one or more tertiary motion characteristics for the one or more primary motors. Accordingly, the second processing unit 211 may control operation of the second motor 212 in accordance with the one or more primary motion characteristics, the one or more secondary motion characteristics (which the second processing unit 222 may have calculated itself) and/or the one or more tertiary motion characteristics. The second processing unit 211 may also forward the motion characteristics to be used to the other processing units 201, 221, e.g. by respective second signals 215, 215'. Accordingly, the other processing units 201, 221 may control operation of the respective motors 202, 222 in accordance with the same of the one or more primary motion characteristics, the one or more secondary motion characteristics and/or the one or more tertiary motion characteristics. The processing unit receiving the several motion characteristics, such as the second processing unit 211 as illustrated, may evaluate which of the received motion characteristics for controlling operation of the motors provided the best or most useful solution to the task and further whether the best result is sufficient to achieve the task. In some instances, the processing unit receiving the several motion characteristics, such as the second processing unit 211, may determine that the received motion characteristics are not sufficient for achieving the task, and accordingly the search process may be repeated to search for better alternatives, e.g. by sending new input signals 203, 213, 223, which may be indicative of the same overall task, but with different input parameters.

Turning to the example of Fig. 5c, the second processing unit 211 may receive one or more second input signals 213. The one or more second input signals 213 may be indicative of the same or nearly the same as the one or more first input signals 203 as received by the first processing unit 201. Hence, the one or more second input signals 213 may, for example, comprise high level instructions of a movement, such as "move end effector to position X." The one or more second input signals 213, like the one or more first input signals 203, may be received from a teach pendant or may be received from a control unit, which may be external to the robot 2.

Based on the received one or more second input signals 213, the second processing unit 211 may calculate one or more secondary motion characteristics for one or more secondary motors of the plurality of motors 202, 212, 222. The secondary motor(s) may be a subset of the plurality of motors 202, 212, 222, which is different from the primary motor(s). For example, the one or more primary motors may be the first motor 202 (and optionally the third motor 222) and the one or more secondary motors may be the second motor 212.

Thus, the second processing unit 211 may calculate motion characteristics for other motors than the first processing unit 201, such as for the second motor 212. Similarly, other processing units, such as the third processing unit 221 may receive other input signals and calculate motion characteristics for further other motors. Thus, the plurality of processing units 201, 211, 221 may be used to simultaneously calculate motion characteristics for different motors to achieve the desired overall movement, as indicated by the receives input signals 203, 213, 223.

The motion characteristics calculated by each processing unit may include or consist of motion characteristics for the motor that particular processing unit controls, whereby each processing unit may control its respective motor in accordance with the motion characteristics it has calculated. For example, the one or more primary motion characteristics, calculated by the first processing unit 201, may include one or more first motion characteristics for the first motor 202, and the first processing unit 201 may accordingly control operation of the first motor 202. The one or more secondary motion 1 characteristics, calculated by the second processing unit 211, may include one or more second motion characteristics for the second motor 212, and the second processing unit 211 may accordingly control operation of the second motor 212.

In some examples, the third motor 222 forms part of the one or more primary motors (e.g. together with the first motor 202), and the one or more primary motion characteristics, as calculated by the first processing unit 201, includes one or more third motion characteristics for the third motor 222. In such example, the third processing unit 221 may receive a first signal 205', e.g. from the first processing unit 201, indicative of the one or more third motion characteristics. Accordingly, the third processing unit 221 may control operation of the third motor 222 in accordance with the one or more third motion characteristics as received by the first signal 205'.

Turning to the example of Fig. 5d, the processing units 201, 211, 221 may calculate motion characteristics based on motion characteristics previously calculated by other processing units.

For example, the second processing unit 211 may receive a first signal 205 from the first processing unit 201. The first signal 205 may be indicative of the one or more primary motion characteristics for the one or more primary motors, such as for the first motor 202. Based on the received first signal 205, the second processing unit 211 may calculate one or more secondary motion characteristics for one or more secondary motors of the plurality of motors 202, 212, 222, such as for the second motor 212. The one or more secondary motion characteristics may include at least one or more second motion characteristics for the second motor 212, and the second processing unit 211 may control operation of the second motor 212 in accordance therewith.

Similarly, the third processing unit 221 may receive a second signal 215 from the second processing unit 211. The second signal 215 may be indicative of the one or more secondary motion characteristics for the one or more secondary motors, such as the second motor 212. Based on the received second signal 215, the third processing unit 221 may calculate one or more tertiary motion characteristics for one or more tertiary motors of the plurality of motors 202, 212, 222, such as for the third motor 222. The one or more tertiary motion characteristics may include at least one or more third motion characteristics for the third motor 222, and the third processing unit 221 may control operation of the third motor 222 in accordance therewith.

The present example may include successive calculations of motion characteristics, which may be particularly useful in situations where the calculated motion characteristics are dependent on motion characteristics of other motors of the robot 2. For example, if a processing unit is to calculate overall motion characteristics in a common reference frame, such as position, linear velocity, linear acceleration, force and torque, e.g. relative to a common reference point, such as the base of the robot 2 or the end effector of the robot 2, information about overall motion characteristics of the previous joint may be used to further calculate overall motion characteristics of the next.

Receiving information from the other processing units about their individual motion characteristics may further be used in calculating individual motion characteristics for a particular motor, because the motion characteristics of other motors of the robot may influence how an individual motor should operate to achieve the desired goal. Thus, it should be clear that the processing units 201, 211, 221, in some examples may receive signals indicative of motion characteristics of a plurality, such as all, of the processing units 201, 211, 221, i.e. not limited to only neighbouring processing units.

Opposite communication between processing units may also (alternatively or additionally) be provided, for example, because calculation of some overall motion characteristics, e.g. force and torque, may require knowledge of motion characteristics of more distal joints, while calculation of other overall motion characteristics, e.g. position, velocity and acceleration, may require knowledge of motion characteristics of more proximal joints.

Hence, the first processing unit 201 may receive a signal 215', e.g. from the second processing unit

211, indicative of one or more secondary motion characteristics for one or more secondary motors, such as the second motor 212. Accordingly, the first processing unit may calculate the one or more primary motion characteristics for the one or more primary motors, such as the first motor 202, based on the received signal 215' indicative of the one or more secondary motion characteristics, e.g. in addition to being based on the received one or more first input signals 203.

Similarly, the second processing unit 211 may receive a signal 225, e.g. from the third processing unit 221, indicative of one or more tertiary motion characteristics for one or more tertiary motors, such as the third motor 222, and the second processing unit may calculate the one or more secondary motion characteristics for the one or more secondary motors, such as the second motor

212, based on the received signal 225 indicative of the one or more tertiary motion characteristics, e.g. in addition to being based on the received first signal 205 indicative of the one or more primary motion characteristics for the one or more primary motors.

Looking again collectively at Figs. 5a-5d, the processing units 201, 211, 221 may, as illustrated, also receive sensor signals 208, 218, 228, from respective one or more sensors 207, 217, 227.

For example, the first processing unit 201 may receive one or more first sensor signals 208, e.g. indicative of one or more primary actual motion characteristics of the one or more primary motors, such as the first motor 202. For example, the one or more first sensor signals 208 may be indicative of actual angular position of the first motor 202, actual angular velocity of the first motor 202, actual angular acceleration of the first motor 202, and/or actual torque provided by the first motor 202. For example, the sensors 207 may include one or more accelerometers, one or more rotational position encoders, one or more torque sensors, and/or one or more current sensors.

Similarly, the second processing unit 211 may receive one or more second sensor signals 218, e.g. indicative of one or more secondary actual motion characteristics of the one or more secondary motors, such as the second motor 212. Similarly, the third processing unit 221 may receive one or more third sensor signals 228, e.g. indicative of one or more tertiary actual motion characteristics of the one or more tertiary motors, such as the third motor 222. Like the sensors 207, the one or more sensors 217, 227 include one or more accelerometers, one or more rotational position encoders, one or more torque sensors, and/or one or more current sensors.

The first processing unit 201 may compare calculated motion characteristics for the primary motors (e.g. as calculated by the first processing unit 201 based on the one or more first input signals 203) with the one or more primary actual motion characteristics of the primary motors based on the one or more first sensor signals 208. Accordingly, the first processing unit 201 may modify its control of the one or more primary motors, such as the first motor 202, in case there is a discrepancy between the calculated motion characteristics and the one or more actual motion characteristics.

The second processing unit 211 and/or the third processing unit 221 may, similarly, compare calculated motion characteristics with one or more actual motion characteristics based on the one or more second and/or third sensor signals 218, 228, and accordingly modify control of the corresponding motors if needed.

For example, as illustrated in Fig. 5c, the first processing unit 201 may receive the one or more first sensor signals 208, e.g. indicative of one or more primary actual motion characteristics of the one or more primary motors, e.g. including the first motor 202 and/or the third motor 222. The first processing unit 201 may compare the calculated one or more primary motion characteristics for the one or more primary motors with the one or more primary actual motion characteristics of the one or more primary motors based on the one or more first sensor signals 208. Accordingly, the first processing unit 201 may modify the control of the one or more primary motors in case there is a discrepancy between the calculated one or more primary motion characteristics for the one or more primary motors and the one or more primary actual motion characteristics of the one or more primary motors.

The second processing unit 211 may receive the one or more second sensor signals 218, e.g. indicative of one or more secondary actual motion characteristics of the one or more secondary motors, e.g. including the second motor 212. The second processing unit 211 may compare the calculated one or more secondary motion characteristics for the one or more secondary motors with the one or more secondary actual motion characteristics of the one or more secondary motors based on the one or more second sensor signals 218. Accordingly, the second processing unit 211 may modify the control of the one or more secondary motors in case there is a discrepancy between the calculated one or more secondary motion characteristics for the one or more secondary motors and the one or more secondary actual motion characteristics of the one or more secondary motors.

In some examples, such as, for example, illustrated in Figs. 5a, 5b, and 5d, the second processing unit 211 may receive a first signal 205. As mentioned previously, the first signal 205 may be indicative of the one or more primary motion characteristics for the one or more primary motors, e.g. as calculated by the first processing unit 201. However, alternatively or additionally, the first signal 205 may be indicative of the one or more primary actual motion characteristics of the one or more primary motors, e.g. as derived by the first processing unit 201 based on the first sensor signal 208. In some examples, the one or more secondary actual motion characteristics of the one or more secondary motors may additionally be based on motion characteristics of the one or more primary motors. This may, for example, be the case, if the motion characteristics includes overall motion characteristics relative to a common reference frame, as described above in relation to Fig. 5d. Accordingly, the second processing unit 211 may compare the one or more secondary motion characteristics for the one or more secondary motors, such as the second motor 212, with the one or more secondary actual motion characteristics of the one or more secondary motors based on the one or more second sensor signals 218 (as mentioned above) and additionally based on the received first signal 205.

Turning again to Fig. 5d, the one or more first sensor signals 208 may be indicative of one or more primary actual motion characteristics of one or more primary motors, such as the first motor 202. Based on the one or more first sensor signals 208, the first processing unit 201 may calculate one or more primary overall motion characteristics of the one or more primary motors. For example, the first processing unit 201 may calculate one or more first overall motion characteristics, such as position/velocity/acceleration, e.g. relative to a base of the robot, of the first motor 202 based on the one or more first sensor signal 208. In some examples, the first motor 202 is connecting a first link and the base of the robot. Thereby, based on the first sensor signal 208, the first processing unit may calculate the first overall motion characteristics of the first motor 202.

The first processing unit 201 may transmit the signal 205 to the second processing unit 211. The signal 205 may be or may comprise a first result signal indicative of the one or more primary overall motion characteristics of the one or more primary motors, such as of the first motor 202. The second processing unit 211 receives the first result signal 205. The second processing unit 211 may further receive one or more second sensor signals 218 indicative of one or more secondary actual motion characteristics of one or more secondary motors, such as the second motor 212. The second motor 212 may be the motor subsequent to the first motor 202 in the robot 2. For example, the first motor 202 and the second motor 212 may be connected by a single link.

Based, on the one or more second sensor signals 218 and the first result signal 205, the second processing unit 211 may calculate one or more secondary overall motion characteristics of the one or more secondary motors, such as the second motor 212. For example, the second processing unit 211 may calculate one or more second overall motion characteristics of the second motor 212 based on the one or more second sensor signals 218 and the first result signal 205.

The second processing unit 211 may transmit the signal 215 to the third processing unit 221. The signal 215 may be or may comprise a second result signal indicative of the one or more secondary overall motion characteristics of the one or more secondary motors, such as of the second motor 212.

The third processing unit 221 receives the second result signal 215. The third processing unit 221 may further receive one or more third sensor signals 228 indicative of one or more tertiary actual motion characteristics of one or more tertiary motors, such as the third motor 222. The third motor 222 may be the motor subsequent to the second motor 212 in the robot 2. For example, the second motor 212 and the third motor 222 may be connected by a single link.

Based, on the one or more third sensor signals 228 and the second result signal 215, the third processing unit 221 may calculate one or more tertiary overall motion characteristics of the one or more tertiary motors, such as the third motor 222. For example, the third processing unit 221 may calculate one or more third overall motion characteristics of the third motor 222 based on the one or more third sensor signals 228 and the second result signal 215.

Although not illustrated, it should be clear that such method may be similarly repeated for further distal or more proximal motors of the robot 2.

The overall motion characteristics, such as the one or more primary overall motion characteristics of the one or more primary motors (e.g. the first motor 212), the one or more secondary overall motion characteristics of the one or more secondary motors (e.g. the second motor 212), and/or the one or more tertiary overall motion characteristics of the one or more tertiary motors (e.g. the third motor 222) may be in a common reference frame for the robot, such as relative to a common reference point, such as the base of the robot. As mentioned previously, while some motion characteristics, e.g. position, velocity, acceleration, are dependent on similar motion characteristics of more proximal motors, other motion characteristics, e.g. force and torque, are dependent on similar motion characteristics of more distal motors. Accordingly, some overall motion characteristics may be calculated based on signals received from processing units controlling more distal motors.

For example, the one or more second sensor signals 218 received by the second processing unit 211 may comprise one or more further second sensor signals indicative of one or more further secondary actual motion characteristics of the one or more secondary motors, such as the second motor 212. The one or more further secondary actual motion characteristics may be different than the one or more secondary actual motion characteristics. For example, the one or more further secondary actual motion characteristics may be one or more of force and torque and the one or more secondary actual motion characteristics may be one or more of position, velocity and acceleration, or vice versa.

Based on the one or more further second sensor signals 218, the second processing unit 211 may calculate one or more further secondary overall motion characteristics of the one or more secondary motors, such as the second motor 212. In some examples, calculation of the one or more secondary overall motion characteristics may further be based on a signal 225 indicative of one or more further tertiary overall motion characteristics of the one or more tertiary motors, such as the third motor 222, received from the third processing unit 221.

The second processing unit 211 may transmit the signal 215' to the first processing unit 201. The signal 215' may be or may comprise a further second result signal indicative of the one or more further secondary overall motion characteristics of the one or more secondary motors, such as of the second motor 212.

The first processing unit 201 receives the further second result signal 215'. Furthermore, the one or more first sensor signals 208 received by the first processing unit 201 may comprise one or more further first sensor signals indicative of one or more further primary actual motion characteristics of the one or more primary motors, such as the first motor 202.

Based, on the one or more further first sensor signals 208 and the further second result signal 215', the first processing unit 201 may calculate one or more further primary overall motion characteristics of the one or more primary motors, such as the first motor 212. For example, the first processing unit 201 may calculate one or more further first overall motion characteristics of the first motor 202 based on the one or more further first sensor signals 208 and the further second result signal 215'. Transmission of data between the processing units may be facilitated by bus communication, such as a secured bus communication, wherein the signals may be encrypted such as to ensure they are only read and used by the intended receiving processing unit.

The disclosure has been described with reference to a preferred embodiment. However, the scope of the invention is not limited to the illustrated embodiment, and alterations and modifications can be carried out without deviating from the scope of the invention.

Throughout the description, the use of the terms "first", "second", "third", "fourth", "primary", "secondary", "tertiary" etc. does not imply any particular order or importance but are included to identify individual elements. Furthermore, the labelling of a first element does not imply the presence of a second element and vice versa.

LIST OF REFERENCES

2 robot

4 base

6 first link

8 first joint assembly

10 second link

12 second joint assembly

14 third link

16 third joint assembly

18 fourth link

20 fourth joint assembly

22 fastening bolts

24 first electrical base connector

26 second electrical base connector

90 joint assembly

92 primary link

94 secondary link

100 joint housing

102 primary motor

104 secondary motor

106 circuitry

108 primary processing unit

110 secondary processing unit

112 primary first sensor

114 primary second sensor

116 secondary first sensor

118 secondary second sensor

124 primary first sensor signal

126 primary second sensor signal

128 secondary first sensor signal

130 secondary second sensor signal

201 first processing unit

202 first motor

203 first input signal(s)

205, 205' first signal

206 first memory 207 sensor

208 first sensor signal

211 second processing unit

212 second motor

213 second input signal(s)

215, 215' second signal

216 second memory

217 sensor

218 second sensor signal

221 third processing unit

222 third motor

223 third input signal(s)

225 third signal

226 third memory

227 sensor

228 third sensor signal

301 first link

302 second link

303 third link

304 fourth link

305 fifth link

306 sixth link

307 seventh link

311 first motor

312 second motor

313 third motor

314 fourth motor

315 fifth motor

316 sixth motor

317 seventh motor

320 base

322 tip/end effector

Axl first axis

Ax2 second axis Ax3 third axis

Ax4 fourth axis

Ax5 fifth axis

Ax6 sixth axis Ax7 seventh axis