IP Library Granted Patent US 11,396,098
Granted Patent B2
US 11,396,098 · App. 16/095,225 · Granted Jul 26, 2022

Control of a robot system

Inventor: Sami Haddadin (Hannover, DE)
Assignee: Franka Emika GmbH
B25J9/1674B25J9/1694G05B2219/40311
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,396,098
App. No.
16/095,225
Granted
Jul 26, 2022
Kind
B2
Abstract

The invention relates to a method for controlling a robot system as well as a robot system. The robot system includes the following components: a robot ROBO with elements driven by actuators; first sensors S1i for sensing a current robot state; a central control unit ZSE, which executes a current control program SP(t) for controlling the robot system; one or more user interfaces NS p ; one or more processor units PE r ( 205 ), which execute services MPSr for the central control unit ZSE and/or for one or more of the other components of the robot system; wherein the robot ROBO, the first sensors S1 i , the central control unit ZSE, the user interfaces NS p , and the processor units PE r communicate with one another over a data network DN. The central control unit ZSE is configured and executed to predictively test whether an execution of the current control program SP(t) will lead to an error state. If such an error state is predicted during the test, execution of one or more actions takes place.

Claims (144)

1. A method of controlling a robot system, wherein the robot system comprises the following components:

a robot ROBO with elements configured to be driven by actuators,

first sensors S1 i configured to sense a current robot state Z robo (t), where i=1, . . . , I,

a central control unit ZSE configured to execute a current control program SP(t) for controlling the robot system,

one or more user interfaces NS p , where p=1, . . . , P, and

one or more processor units PE r configured to execute services MPS r for the central control unit ZSE and/or for one or more of the other components of the robot system, where r=1, . . . , R,

wherein the robot ROBO, the first sensors S1 i , the central control unit ZSE, the user interfaces NS p , and the processor units PE r are configured to communicate with one another over a data network DN,

wherein the central control unit ZSE and the user interfaces NS p are configured to modify the current control program SP(t), during execution thereof at a time t 1 , to a modified control program SP(t)=SP*(t for t>t 1 ),

wherein the robot ROBO is enabled to accept robot states Z robo , wherein the following applies: Z robo ϵ Z robo,total and Z robo,total defines a state space, the state space Z robo,total indicating quantities of all possible robot states, and wherein a state space Z robo,permitted is further specified, the state space Z robo,permitted defining quantities of all permitted robot states Z robo,permitted , wherein the following applies: Z robo,permitted ϵ Z robo,permittedl and Z robo,permitted ⊆ Z robo,total ,

wherein the first sensors S1 i are enabled to accept sensor states Z S1,i , wherein the following applies: Z S1,i ϵ Z S1,i,total and Z S1,i,total defines a state space, the state space Z S1,i,total indicating quantities of all possible sensor states, and wherein a state space Z S1,i,permitted is further specified, the space state Z S1,i,permitted defining quantities of all permitted sensor states Z S1,i,permitted , wherein the following applies: Z S1,i,permitted ϵ Z S1,i,permitted and Z S1,i,permitted ⊆ Z S1,i,total ,

wherein the central control unit ZSE is enabled to accept control unit states Z ZSE , wherein the following applies: Z ZSE ϵ Z ZSE,total and Z ZSE,total defines a state space, the state space Z ZSE,total indicating quantities of all possible control unit states, and wherein a state space Z ZSE,permitted is further specified, the state space Z ZSE,permitted defining quantities of all permitted control unit states Z ZSE,permitted , wherein the following applies: Z ZSE,permitted ϵ Z ZSE,permitted and Z ZSE,permitted ϵ Z ZSE,total ,

wherein the user interfaces NS p are enabled to accept user interface states Z NS,p , wherein the following applies: Z NS,p ϵ Z NS,p,total and Z NS,p,total defines a state space, the state space Z NS,p,total indicating quantities of all possible user interface states, and wherein a state space Z NS,p,permitted is further specified, the state space Z NS,p,permitted defining quantities of all permitted user interface states Z NS,p,permitted , wherein the following applies: Z NS,p,permitted ϵ Z NS,p,permitted and Z NS,p,permitted ⊆ Z NS,p,total ,

wherein the processor units PE r are enabled to accept processor states Z PE,r , wherein the following applies: Z PE,r ϵ Z PE,r,total and Z PE,r,total defines a state space, the state space Z PE,r,total indicating quantities of all possible processor states, and wherein a state space Z PE,r,permitted is further specified, the state space Z PE,r,permitted defining quantities of all permitted processor states Z PR,r,permitted , wherein the following applies: Z PE,r,permitted ϵ Z PE,r,permitted and Z PE,r,permitted ⊆ Z PE,r,total ,

wherein the services MPS r are enabled to accept service states Z MPS,r , wherein the following applies: Z MPS,r ϵ Z MPS,r,total and Z MPS,r,total defines a state space, the state space Z MPS,r,total indicating quantities of all possible service states, and wherein a state space Z MPS,r,permitted is further specified, the state space Z MPS,r,permitted defining quantities of all permitted service states Z MPS,r,permitted , wherein the following applies: Z MPS,r,permitted ϵ Z MPS,r,permitted and Z MPS,r,permitted ⊆ Z MPS,r,total ,

wherein the data network DN is enabled to accept data network states Z data , wherein the following applies: Z data ϵ Z data,total and Z data,total defines a state space, the state space Z data,total indicating quantities of all possible data network states, and wherein a state space Z data,permitted further specified, the state space Z data,permitted defining quantities of all permitted data network states Z data,permitted , wherein the following applies: Z data,permitted ϵ Z data,permitted and Z data,permitted ⊆ Z data,total ,

wherein the method comprises:

predictively testing, during execution of the current control program SP(t) at a time t, as to whether an execution of the current control program SP(t) yet to be executed at a time t>t 1 will lead to an error state, wherein the error state is defined such that the execution of the current control program SP(t) leads to a:

processor state Z PE,r , to which the following applies: Z PR,r ∉ Z PR,r,permitted , and/or

data network state Z data (t), to which the following applies: Z data ∉ Z data,permitted ; and

if such an error state is predicted during the predictively testing, executing the following listed actions:

automatically modifying the current control program at a time t 1 to the modified control program SP(t)=SP*(t for t>t 1 ) such that no error state is determined with a new predictive test, and

executing the modified control program SP(t).

2. The method according to claim 1 , wherein the state spaces Z robo,permitted , Z S1,i,permitted , Z ZSE,permitted , Z PR,r,permitted , Z MPS,r,permitted , Z NS,p,permitted , Z data,permitted are defined as a function of a task/action intended to be executed by the robot ROBO using the control program SP(t).

3. The method according to claim 1 , wherein the control program SP(t) recognizes its own structure and is enabled to modify it.

4. The method according to claim 1 , wherein the data network state Z data considers one or more of the following parameters:

a physical availability of the components: robot ROBO, first sensors S1 i , central control unit ZSE, user interfaces NS p , and processor units PE r in the data network DN,

a current communication state of the components,

data and signal runtimes between the components, and

chronological and causal limitations of a data exchange between the components.

5. The method according to claim 1 , wherein the robot state Z robo considers one or more of the following parameters:

a current physical configuration of the robot ROBO,

a dynamic state of the robot ROBO,

an electric state of the robot ROBO, and

an interaction or interactions of the robot ROBO with an environment.

6. The method according to claim 1 , wherein a processor state Z PE,r considers one or more of the following parameters:

service or algorithm currently being executed on a processor unit PE r ,

current performance of the service or algorithm being executed on the processor unit PE r ,

available processor capacity of the processor unit PE r ,

current load of the processor unit PE r ,

available working memory of the processor unit PE r ,

state of the control bus of the respective processor unit PE r ,

architecture of the processor unit PE r ,

command set of the processor unit PE r , and

cycling of the processor unit PE r .

7. The method according to claim 1 , wherein the service state Z MPS,r considers one or more of the following parameters:

a current physical configuration of the robot ROBO,

a dynamic state of the robot ROBO,

an electric state of the robot ROBO, and

an interaction or interactions of the robot ROBO with an environment.

8. The method according to claim 1 , wherein the error state is additionally defined such that the execution of the current control program SP(t) leads to a:

robot state Z robo , to which the following applies: Z robo ∉ Z robo,permitted , and/or

sensor state Z S1,i , to which the following applies: Z S1,i ∉ Z S1,i,permitted , and/or

control unit state Z ZSE , to which the following applies: Z ZSE ∉ Z ZSE,permitted , and/or

service state Z MPS,r , to which the following applies: Z MPS,r ∉ Z MPS,r,permitted , and/or

user interface state Z NS,p , to which the following applies: Z NS,p ∉ Z NS,p,permitted .

9. A robot system comprising the following components:

a robot ROBO with elements configured to be driven by actuators,

first sensors S1 i , configured to sense a current robot state Z robo (t), where i=1, . . . , I,

a central control unit ZSE configured to execute a current control program SP(t) for controlling the robot system,

one or more user interfaces NS p , where p=1, . . . , P,

one or more processor units PE r configured to execute services MPSr for the central control unit ZSE and/or for one or more of the other components of the robot system, where r=1, . . . , R,

wherein the robot ROBO, the first sensors S1 i , the control unit ZSE, the user interfaces NS p , and the processor units PE r are configured to communicate with one another over a data network DN,

wherein the central control unit ZSE and the user interfaces NS p are configured to modify the current control program SP(t), during the execution thereof at a time t 1 , to a modified control program SP(t)=SP*(t for t>t 1 ),

wherein the robot ROBO is enabled to accept robot states Z robo , wherein the following applies: Z robo ϵ Z robo,total and Z robo,total defines a state space, the state space Z robo,total indicating quantities of all possible robot states, and wherein a state space Z robo,permitted is further specified, the state space Z robo,permitted defining quantities of all permitted robot states Z robo,permitted , wherein the following applies: Z robo,permitted ϵ Z robo,permittedl and Z robo,permitted ⊆ Z robo,total ,

wherein the first sensors S1 i are enabled to accept sensor states Z S1,i ,wherein the following applies: Z S1,i ϵ Z S1,i,total and Z S1,i,total defines a state space, the state space Z S1,i,total indicating quantities of all possible sensor states, and wherein a state space Z S1,i,permitted is further specified, the state space Z S1,i,permitted defining quantities of all permitted sensor states Z S1,i,permitted , wherein the following applies: Z S1,i,permitted ϵ Z S1,i,permitted and Z S1,i,permitted ⊆ Z S1,i,total ,

wherein the control unit ZSE is enabled to accept control unit states Z ZSE , wherein the following applies: Z ZSE ϵ Z ZSE,total total and Z ZSE,total defines a state space, the state space Z ZSE,total indicating quantities of all possible control unit states, and wherein a state space Z ZSE,permitted is further specified, the state space Z ZSE,permitted defining quantities of all permitted control unit states Z ZSE,permitted , wherein the following applies: Z ZSE,permitted ϵ Z ZSE,permitted and Z ZSE,permitted ⊆ Z ZSE,total ,

wherein the user interfaces NS p are enabled to accept user interface states Z NS,p , wherein the following applies: Z NS,p ϵ Z NS,p,total and Z NS,p,total defines a state space, the state space Z NS,p,total indicating quantities of all possible user interface states, and wherein a state space Z NS,p,permitted is further specified, the state space Z NS,p,permitted defining quantities of all permitted user interface states Z NS,p,permitted , wherein the following applies: Z NS,p,permitted ϵ Z NS,p,permitted and Z NS,p,permitted ⊆ Z NS,p,total ,

wherein the processor units PE r are enabled to accept processor states Z PE,r , wherein the following applies: Z PE,r ϵ Z PE,r,total and Z PE,r,total defines a state space, the state space Z PE,r,total indicating quantities of all possible processor states, and wherein a state space Z PE,r,permitted is further specified, the state space Z PE,r,permitted defining quantities of all permitted processor states Z PE,r,permitted , wherein the following applies: Z PE,r,permitted ϵ Z PE,r,permitted and Z PE,r,permitted ⊆ Z PE,r,total ,

where the services MPS r are enabled to accept service states Z MPS,r , wherein the following applies: Z MPS,r ϵ Z MPS,r,total and Z MPS,r,total defines a state space, the state space Z MPS,r,total indicating quantities of all possible service states, and wherein a state space Z MPS,r,permitted is further specified, the state space Z MPS,r,permitted defining quantities of all permitted service states Z MPS,r,permitted , wherein the following applies: Z MPS,r,permitted ϵ Z MPS,r,permitted and Z MPS,r,permitted ⊆ Z MPS,r,total , and

wherein the data network DN is enabled to accept data network states Z data , wherein the following applies: Z data ϵ Z data,total and Z data,total defines a state space, the state space Z data,total indicating quantities of all possible data network states, and wherein a state space Z data,permitted further specified, the state space Z data,permitted defining quantities of all permitted data network states Z data,permitted , wherein the following applies: Z data,permitted ϵ Z data,permitted and Z data,permitted ⊆ Z data,total ,

wherein the control unit ZSE is executed and configured such that the following operations are executed:

predictively testing, during execution of the current control program SP(t) at a time t, as to whether an execution of the current control program SP(t) yet to be executed at a time t>t 1 will lead to an error state, wherein the error state is defined such that the execution of the current control program SP(t) leads to a:

processor state Z PE,r , to which the following applies: Z PR,r ∉ Z PR,r,permitted , and/or

data network state Z data (t), to which the following applies: Z data ∉ Z data,permitted ; and

if such an error state is predicted during the predictively testing, executing the following listed actions:

automatically modifying the current control program at a time t 1 to the modified control program SP(t)=SP*(t for t>t 1 ) such that no error state is determined with a new predictive test, and

executing the modified control program SP(t).

10. The robot system according to claim 9 , wherein the state spaces Z robo,permitted , Z S1,i,permitted , Z ZSE,permitted , Z PR,r,permitted , Z MPS,r,permitted , Z NS,p,permitted , Z data,permitted permitted are defined as a function of a task/action intended to be executed by the robot ROBO using the control program SP(t).

11. The robot system according to claim 9 , wherein the control program SP(t) recognizes its own structure and is enabled to modify it.

12. The robot system according to claim 9 , wherein the data network state Z data considers one or more of the following parameters:

a physical availability of the components: robot ROBO, first sensors S1 i , central control unit ZSE, user interfaces NS p , and processor units PE r in the data network DN,

a current communication state of the components,

data and signal runtimes between the components, and

chronological and causal limitations of a data exchange between the components.

13. The robot system according to claim 9 , wherein the robot state Z robo considers one or more of the following parameters:

a current physical configuration of the robot ROBO,

a dynamic state of the robot ROBO,

an electric state of the robot ROBO, and

an interaction or interactions of the robot ROBO with an environment.

14. The robot system according to claim 9 , wherein a processor state Z PE,r considers one or more of the following parameters:

service or algorithm currently being executed on a processor unit PE r ,

current performance of the service or algorithm being executed on the processor unit PE r ,

available processor capacity of the processor unit PE r ,

current load of the processor unit PE r ,

available working memory of the processor unit PE r ,

state of the control bus of the respective processor unit PE r ,

architecture of the processor unit PE r ,

command set of the processor unit PE r , and

cycling of the processor unit PE r .

15. The robot system according to claim 9 , wherein the service state Z MPS,r considers one or more of the following parameters:

a current physical configuration of the robot ROBO,

a dynamic state of the robot ROBO,

an electric state of the robot ROBO, and

an interaction or interactions of the robot ROBO with an environment.

16. The robot system according to claim 9 , wherein the error state is additionally defined such that the execution of the current control program SP(t) leads to a:

robot state Z robo , to which the following applies: Z robo ∉ Z robo,permitted , and/or

sensor state to which the following applies: Z S1,i ∉ Z S1,i,permitted , and/or

control unit state Z ZSE , to which the following applies: Z ZSE ∉ Z ZSE,permitted , and/or

service state Z MPS,r , to which the following applies: Z MPS,r ∉ Z MPS,r,permitted , and/or

user interface state Z NS,p , to which the following applies: Z NS,p ∉ Z NS,p,permitted .

17. A method of controlling a robot system, wherein the robot system comprises the following components:

a robot ROBO with elements configured to be driven by actuators,

first sensors S1 i , configured to sense a current robot state Z robo (t), where i=1, . . . , I,

a central control unit ZSE configured to execute a current control program SP(t) for controlling the robot system,

one or more user interfaces NS p , where p=1, . . . , P,

one or more processor units PE r configured to execute services MPS r for the central control unit ZSE and/or for one or more of the other components of the robot system, where r=1, . . . , R,

wherein the robot ROBO, the first sensors S1 i the control unit ZSE, the user interfaces NS p , and the processor units PE r are configured to communicate with one another over a data network DN,

wherein the central control unit ZSE and the user interfaces NS p are configured to modify the current control program SP(t), during the execution thereof at a time t 1 , to a modified control program SP(t)=SP*(t for t>t 1 ),

wherein the processor units PE r are enabled to accept processor states Z PE,r , wherein the following applies: Z PE,r ϵ Z PE,r,total and Z PE,r,total defines a state space, the state space Z PE,r,total indicating quantities of all possible processor states, and wherein a state space Z PE,r,permitted is further specified, the state space Z PE,r,permitted defining quantities of all permitted processor states Z PE,r,permitted , wherein the following applies: Z PE,r,permitted ϵ Z PE,r,permitted and Z PE,r,permitted ⊆ Z PE,r,total ,

wherein the data network DN is enabled to accept data network states Z data , wherein the following applies: Z data ϵ Z data,total and Z data,total defines a state space, the state space Z data,total indicating quantities of all possible data network states, and wherein a state space Z data,permitted further specified, the state space Z data,permitted defining quantities of all permitted data network states Z data,permitted , wherein the following applies: Z data,permitted ϵ Z data,permitted and Z data,permitted ⊆ Z data,total ,

wherein the method comprises:

predictively testing, during execution of the current control program SP(t) at a time t, as to whether an execution of the current control program SP(t) yet to be executed at a time t>t 1 will lead to an error state, wherein the error state is defined such that the execution of the current control program SP(t) leads to a:

processor state Z PE,r , to which the following applies: Z PR,r ∉ Z PR,r,permitted , and/or

data network state Z data (t), to which the following applies: Z data ∉ Z data,permitted ; and

if such an error state is predicted during the predictively testing, executing the following listed actions:

automatically modifying the current control program at a time t 1 to the modified control program SP(t)=SP*(t for t>t 1 ) such that no error state is determined with a new predictive test, and

executing the modified control program SP(t).

18. The method according to claim 17 , wherein the state spaces Z PR,r,permitted and Z data,permitted are defined as a function of a task/action intended to be executed by the robot ROBO using the control program SP(t).

19. The method according to claim 17 , wherein the control program SP(t) recognizes its own structure and is enabled to modify it.

20. The method according to claim 17 , wherein the data network state Z data considers one or more of the following parameters:

a physical availability of the components: robot ROBO, first sensors S1 i , central control unit ZSE, user interfaces NS p , and processor units PE r in the data network DN,

a current communication state of the components,

data and signal runtimes between the components, and

chronological and causal limitations of a data exchange between the components.

21. The method according to claim 17 , wherein a processor state Z PE,r considers one or more of the following parameters:

service or algorithm currently being executed on a processor unit PE r ,

current performance of the service or algorithm being executed on the processor unit PE r ,

available processor capacity of the processor unit PE r ,

current load of the processor unit PE r ,

available working memory of the processor unit PE r ,

state of the control bus of the respective processor unit PE r ,

architecture of the processor unit PE r ,

command set of the processor unit PE r , and

cycling of the processor unit PE r .

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2026
From: FRANKA ROBOTICS GMBH
To: FR ADMINISTRATION GMBH
Reel/Frame 073519/0124 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2026
From: FRANKA EMIKA GMBH
To: AGILE ROBOTS HANOVER GMBH, NOW TRADING AS FRANKA ROBOTICS GMBH
Reel/Frame 073493/0884 →
CHANGE OF ADDRESS Recorded Dec 2, 2021
From: FRANKA EMIKA GMBH
To: FRANKA EMIKA GMBH
Reel/Frame 058295/0960 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2019
From: HADDADIN, SAMI
To: FRANKA EMIKA GMBH
Reel/Frame 048473/0484 →
Priority Claims (1)
DE 10 2016 004 836.0 · Apr 24, 2016 · national
Continuity (1)
Related Publication 20190134816A1 · May 9, 2019