METHOD AND SYSTEM FOR CONTROLLING A ROBOT MANIPULATOR FOR OPERATING IN A SHARED WORKSPACE WITH HUMAN(S)
20250236018 ยท 2025-07-24
Inventors
Cpc classification
G05B2219/40104
PHYSICS
B25J9/1676
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1666
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
A method of controlling a robot manipulator for operating in a shared workspace with human(s) is provided. The method includes: determining a safety control set with respect to a safety condition between selected part(s) of the robot manipulator and selected part(s) of the human(s) using a safety control function: determining a hard constraint control set with respect to hard constraint(s) in trajectory tracking in DOF(s) of a component of the robot manipulator for a task using a hard constraint function: determining a soft constraint control set with respect to soft constraint(s) in trajectory tracking in DOF(s) of the component for the task using a soft constraint function: and performing control input optimization based on the safety control set. the hard constraint control set and the soft constraint control set to determine a control input for controlling the robot manipulator. In particular, the safety control function is configured to determine the safety control set: based on a control model for the robot manipulator that is configured in a control affine form based on a control mode of the robot manipulator, and for each part pair of part pair(s) of a selected part of the selected part(s) of the robot manipulator and a selected part of the selected part(s) of the human(s): based on a safety distance function associated with the part pair which corresponds to a control barrier function, and based on a sliding manifold associated with the part pair configured based on the safety distance function and a relative degree of the safety distance function with respect to the control input to the robot manipulator.
Claims
1. A method of controlling a robot manipulator for operating in a shared workspace with one or more humans using at least one processor, the method comprising: obtaining robot state information indicating a current state of the robot manipulator, human state information indicating a current state of the one or more humans, desired trajectory information for a task indicating a current desired trajectory of a component of the robot manipulator to perform the task and degree of freedom classification information for the task indicating a constraint type in trajectory tracking for each of a plurality of degrees of freedom of the component for the task; determining a safety control set comprising a set of candidate control inputs with respect to a safety condition between one or more selected parts of the robot manipulator and one or more selected parts of the one or more humans using a safety control function based on the robot state information and the human state information; determining a hard constraint control set comprising a set of candidate control inputs with respect to one or more hard constraints in trajectory tracking respectively in one or more degrees of freedom of the plurality of degrees of freedom of the component for the task using a hard constraint function based on the robot state information, the desired trajectory information of the component for the task and the degree of freedom classification information for the task; determining a soft constraint control set comprising a set of candidate control inputs with respect to one or more soft constraints in trajectory tracking respectively in one or more degrees of freedom of the plurality of degrees of freedom of the component for the task using a soft constraint function based on the robot state information, the desired trajectory information of the component for the task and the degree of freedom classification information for the task; and performing control input optimization based on the safety control set, the hard constraint control set and the soft constraint control set to determine a control input for controlling the robot manipulator, wherein the safety control function is dependent on the current state of the robot manipulator and the current state of the one or more humans and is configured to determine the safety control set: based on a control model for the robot manipulator that is dependent on the current state of the robot manipulator, the control input to the robot manipulator and a disturbance input to the robot manipulator, and is configured in a control affine form based on a control mode of the robot manipulator, and for each part pair of one or more part pairs of a selected part of the one or more selected parts of the robot manipulator and a selected part of the one or more selected parts of the one or more humans: based on a safety distance function associated with the part pair that is dependent on the current state of the robot manipulator and the current state of the one or more humans and corresponds to a control barrier function, and based on a sliding manifold associated with the part pair configured based on the safety distance function associated with the part pair and a relative degree of the safety distance function with respect to the control input to the robot manipulator.
2. The method according to claim 1, wherein the control model for the robot manipulator is configured in the control affine form according to the control mode of the robot manipulator, and the control mode of the robot manipulator is any one of a joint-position control mode, a joint-velocity control mode, a joint-acceleration control mode and a joint-torque control mode.
3. The method according to claim 1, wherein the safety distance function associated with the part pair is configured based on a distance function configured to represent a distance between the selected part of the robot manipulator and the selected part of the one or more humans of the part pair and a predefined minimum safety distance relating to the safety condition between the selected part of the robot manipulator and the selected part of the one or more humans of the part pair.
4. The method according to claim 1, wherein the sliding manifold associated with the part pair is configured based on the relative degree of the safety distance function associated with the part pair with respect to the control input to the robot manipulator such that the sliding manifold has a relative degree of one with respect to the control input.
5. The method according to claim 1, wherein the safety control function is configured to determine the safety control set such that for said each part pair, the safety distance function associated with the part pair produces a value of greater than or equal to zero for all candidate control inputs in the safety control set regardless of the disturbance input in the control model.
6. The method according to claim 1, wherein the safety control function comprises a first parameter, a second parameter and a third parameter, the first and second parameters are each configured based on the control model for the robot manipulator, the safety distance function associated with said each part pair and the control mode of the robot manipulator, and the third parameter is configured based on the sliding manifold associated with said each part pair.
7. The method according to claim 6, wherein the safety control function is configured to determine the safety control set such that for each candidate control input in the safety control set, the first parameter multiplied by the candidate control input plus the second parameter and the third parameter is greater than or equal to zero.
8. The method according to claim 1, wherein the hard constraint function is dependent on the current state of the robot manipulator and is configured to determine the hard constraint control set: based on the control model for the robot manipulator, and for each of the one or more degrees of freedom of the component classified as a hard constraint degree of freedom for the task based on the degree of freedom classification information for the task: based on a hard trajectory tracking error function associated with the hard constraint degree of freedom that is dependent on the current state of the robot manipulator, and based on a sliding manifold associated with the hard constraint degree of freedom configured based on the hard trajectory tracking error function associated with the hard constraint degree of freedom and a relative degree of the hard trajectory tracking error function with respect to the control input to the robot manipulator, and the soft constraint function is dependent on the current state of the robot manipulator and is configured to determine the soft constraint control set: based on the control model for the robot manipulator, and for each of the one or more degrees of freedom of the component classified as a soft constraint degree of freedom for the task based on the degree of freedom classification information for the task: based on a soft trajectory tracking error function associated with the soft constraint degree of freedom that is dependent on the current state of the robot manipulator, and based on a sliding manifold associated with the soft constraint degree of freedom configured based on the soft trajectory tracking error function associated with the soft constraint degree of freedom and a relative degree of the soft trajectory tracking error function with respect to the control input to the robot manipulator.
9. The method according to claim 8, wherein the hard trajectory tracking error function associated with the hard constraint degree of freedom is configured to represent a trajectory tracking error of the component in the hard constraint degree of freedom based on the current state of the robot manipulator and the current desired trajectory of the component of the robot manipulator, and the soft trajectory tracking error function associated with the soft constraint degree of freedom is configured to represent a trajectory tracking error of the component in the soft constraint degree of freedom based on the current state of the robot manipulator and the current desired trajectory of the component of the robot manipulator.
10. The method according to claim 8, wherein the sliding manifold associated with the hard constraint degree of freedom is configured based on the relative degree of the hard trajectory tracking error function with respect to the control input to the robot manipulator such that the sliding manifold has a relative degree of one with respect to the control input, and the sliding manifold associated with the soft constraint degree of freedom is configured based on the relative degree of the soft trajectory tracking error function with respect to the control input to the robot manipulator such that the sliding manifold has a relative degree of one with respect to the control input.
11. The method according to claim 8, wherein the hard constraint function is configured to determine the hard constraint control set such that for said each hard constraint degree of freedom for the task, the hard trajectory tracking error function associated with the hard constraint degree of freedom produces a value of zero for all candidate control inputs in the hard constraint control set, and the soft constraint function is configured to determine the soft constraint control set such that for said each soft constraint degree of freedom for the task, the soft trajectory tracking error function associated with the soft constraint degree of freedom produces a value of zero for all candidate control inputs in the soft constraint control set.
12. The method according to claim 8, wherein the hard constraint function comprises a first parameter, a second parameter and a third parameter, the first and second parameters each being configured based on the control model for the robot manipulator, the hard trajectory tracking error function associated with said each hard constraint degree of freedom for the task and the control mode of the robot manipulator and the third parameter being configured based on the sliding manifold associated with said each hard constraint degree of freedom for the task, and the soft constraint function comprises a first parameter, a second parameter and a third parameter, the first and second parameters each being configured based on the control model for the robot manipulator, the soft trajectory tracking error function associated with said each soft constraint degree of freedom for the task and the control mode of the robot manipulator and the third parameter being configured based on the sliding manifold associated with said each soft constraint degree of freedom for the task.
13. The method according to claim 12, wherein the hard constraint function is configured to determine the hard constraint control set such that for each candidate control input in the hard constraint control set, the first parameter multiplied by the candidate control input plus the second parameter and the third parameter equals to zero, and the soft constraint function is configured to determine the soft constraint control set such that for each candidate control input in the soft constraint control set, the first parameter multiplied by the candidate control input plus the second parameter and the third parameter equals to zero.
14. The method according to claim 8, wherein the degree of freedom classification information for the task indicating the constraint type in trajectory tracking for each of the plurality of degrees of freedom of the component for the task is with respect to a plurality of degrees of freedom of a task frame defined for the task.
15. The method according to claim 8, wherein the plurality of degrees of freedom of the component comprises six degrees of freedom.
16. The method according to claim 1, wherein said performing control input optimization comprises selecting a first candidate control input from an intersection of the safety control set and the hard constraint control set that has a minimum distance to the soft constraint control set.
17. The method according to claim 16, wherein said performing control input optimization further comprises selecting a second candidate control input from an intersection of the safety control set and the hard constraint control set such that the second candidate control input has a same distance to the soft constraint control set as the first candidate control input and minimizes joint position deviation of the robot manipulator from an initial joint position thereof.
18. The method according to claim 17, wherein the control input for controlling the robot manipulator is set as the first candidate control input based on determining that the component has no redundant degree of freedom, and the control input for controlling the robot manipulator is set as the second candidate control input based on determining that the component has at least one redundant degree of freedom.
19. The method according to claim 16, further comprising converting the control input for controlling the robot manipulator to a joint-position control input based on determining that the robot manipulator has a joint-position control mode.
20. The method according to claim 1, wherein the component of robot manipulator is an end effector.
21. A controller system for controlling a robot manipulator for operating in a shared workspace with one or more humans, the controller system comprising: at least one memory; and at least one processor communicatively coupled to the at least one memory and configured to perform the method of controlling a robot manipulator according to claim 1.
22. A computer program product, embodied in one or more non-transitory computer-readable storage mediums, comprising instructions executable by at least one processor to perform the method of controlling a robot manipulator for operating in a shared workspace with one or more humans according to claim 1.
23. A robot manipulator system comprising: a robot manipulator configured to operate in a shared workspace with one or more humans; and the controller system according to claim 21 communicatively coupled or couplable to the robot manipulator and configured to control the robot manipulator to operate in the shared workspace.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Embodiments of the present invention will be better understood and readily apparent to one of ordinary skill in the art from the following written description, by way of example only, and in conjunction with the drawings, in which:
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
DETAILED DESCRIPTION
[0051] Various embodiments of the present invention provide a method of controlling a robot manipulator for operating in a shared workspace with one or more humans, and a controller system thereof.
[0052] As discussed in the background, conventional control methods for robot manipulators for human-robot interaction (HRI) suffer from one or more problems, namely, human safety problem, task consistency problem and different control modes compatibility problem. Accordingly, various embodiments of the present invention provide a method of controlling a robot manipulator for operating in a shared workspace with one or more humans and a controller system thereof, that seek to overcome, or at least ameliorate, one or more deficiencies in conventional methods and systems for controlling a robot manipulator, and more particularly, providing an improved method and system for controlling a robot manipulator that seek to simultaneously address or achieve human safety, task consistency and different control modes compatibility.
[0053]
[0054] In particular, the safety control function is dependent on the current state of the robot manipulator and the current state of the one or more humans and is configured to determine the safety control set: based on a control model for the robot manipulator that is dependent on the current state of the robot manipulator, the control input to the robot manipulator and a disturbance input to the robot manipulator, and is configured in a control affine form based on a control mode of the robot manipulator, and for each part pair of one or more part pairs of a selected part of the one or more selected parts of the robot manipulator and a selected part of the one or more selected parts of the one or more humans: based on a safety distance function associated with the part pair that is dependent on the current state of the robot manipulator and the current state of the one or more humans and corresponds to a control barrier function, and based on a sliding manifold associated with the part pair configured based on the safety distance function associated with the part pair and a relative degree of the safety distance function with respect to the control input to the robot manipulator. Therefore, according to various embodiments, the safety control function is configured to determine the safety control set based on the control model for the robot manipulator and for the above-mentioned each part pair, based on the safety distance function and the sliding manifold associated with the part pair.
[0055] It will be appreciated by a person skilled in the art that the above-mentioned one or more selected parts of the one or more humans may be represented by corresponding one or more markers (e.g., tags) attached or affixed to the one or more selected parts of the one or more humans, depending on the type of human motion detection technology employed for tracking the motion of the one or more selected parts of the one or more humans. On the other hand, the one or more markers may not be necessary if they are not required by the type of human motion detection technology employed for tracking the motion of the one or more selected parts of the one or more humans.
[0056] It will also be appreciated by a person skilled in the art that the above-mentioned task performed may be a sub-task of a task. Therefore, for example, the method 200 of controlling the robot manipulator may be performed with respect to each of one or more sub-tasks of a task, as desired or as appropriate, according to various embodiments of the present invention.
[0057] Accordingly, the method 200 of controlling a robot manipulator according to various embodiments of the present invention advantageously simultaneously addresses or achieves human safety, task consistency and different control modes compatibility. For example, the safety control function is configured to determine the safety control set based on a control model for the robot manipulator that is configured in a control affine form based on the control mode of the robot manipulator (i.e., the control mode in which the robot manipulator is configured to operate). Therefore, different control models for different types of control modes (e.g., joint-velocity control mode, joint-acceleration control mode and joint-torque control mode) are advantageously unified to the control affine form according to various embodiments of the present invention, thereby facilitating or enabling the method 200 in addressing the human safety problem regardless of which one of the different types of control modes the robot manipulator is configured to operate in, thereby also addressing the different control modes compatibility problem.
[0058] In addition, for the above-mentioned each part pair of a selected part of the robot manipulator and a selected part of one or more humans, the safety control function is configured to determine the safety control set further based the above-mentioned sliding manifold associated with the part pair configured based on the above-mentioned safety distance function (configured as a control barrier function) associated with the part pair and a relative degree of the safety distance function with respect to the control input to the robot manipulator. Therefore, human safety can be directly tracked or monitored using the safety distance function defined as a control barrier function to directly track or monitor a distance between the part pair regardless of the relative degree of the safety distance function with respect to the control input to the robot manipulator since the sliding manifold is advantageously configured to adapt the safety distance function according to the relative degree of the safety distance function with respect to the control input to the robot manipulator. As a result, the sliding manifold can be directly controlled for human safety.
[0059] Furthermore, hard constraint control set with respect to hard constraint(s) in trajectory tracking in degree(s) of freedom of the component (e.g., end effector) for the task and soft constraint control set with respect to soft constraint(s) in trajectory tracking in degree(s) of freedom of the component are determined for facilitating or enabling hierarchical task consistency. In particular, by performing control input optimization on the safety control set, the hard constraint control set and the soft constraint control set to determine the control input for controlling the robot manipulator, full task consistency is ensured as long as it is achievable, while guaranteeing human safety and primary task consistency.
[0060] Therefore, the method 200 of controlling a robot manipulator according to various embodiments of the present invention advantageously simultaneously addresses or achieves human safety, task consistency and different control modes compatibility. These advantages or technical effects, and/or other advantages or technical effects, will become more apparent to a person skilled in the art as the method 200 of controlling a robot manipulator, as well as the corresponding controller system for controlling a robot manipulator, is described in more detail according to various embodiments and example embodiments of the present invention.
[0061] In various embodiments, the control model for the robot manipulator is configured in the control affine form according to the control mode of the robot manipulator. In various embodiments, the control mode of the robot manipulator is any one of a joint-position control mode, a joint-velocity control mode, a joint-acceleration control mode and a joint-torque control mode. That is, the robot manipulator may be configured to operate in any one of the different types of control modes, and the control model for the robot manipulator is configured in the control affine form according to the control mode which the robot manipulator is operating in.
[0062] In various embodiments, the safety distance function associated with the part pair is configured based on a distance function configured to represent a distance between the selected part of the robot manipulator and the selected part of the one or more humans of the part pair and a predefined minimum safety distance relating to the safety condition between the selected part of the robot manipulator and the selected part of the one or more humans of the part pair.
[0063] In various embodiments, the sliding manifold associated with the part pair is configured based on the relative degree of the safety distance function associated with the part pair with respect to the control input to the robot manipulator such that the sliding manifold has a relative degree of one with respect to the control input. Therefore, the sliding manifold is advantageously configured to adapt the safety distance function according to the relative degree of the safety distance function with respect to the control input to the robot manipulator. Because of this adaptability, the sliding manifold can be directly controlled for human safety regardless of the relative degree of the safety distance function with respect to the control input to the robot manipulator.
[0064] In various embodiments, the safety control function is configured to determine the safety control set such that for the above-mentioned each part pair, the safety distance function associated with the part pair produces a value of greater than or equal to zero for all candidate control inputs in the safety control set regardless of the disturbance input in the control model. In this regard, it will be appreciated by a person skilled in the art that the safety distance function may be subjected to an error bias, such as caused by the input disturbance and the initial value of the safety distance function.
[0065] In various embodiments, the safety control function comprises a first parameter, a second parameter and a third parameter. In this regard, the first and second parameters are each configured based on the control model for the robot manipulator, the safety distance function associated with the above-mentioned each part pair and the control mode of the robot manipulator. Furthermore, the third parameter is configured based on the sliding manifold associated with the above-mentioned each part pair.
[0066] In various embodiments, the safety control function is configured to determine the safety control set such that for each candidate control input in the safety control set, the first parameter multiplied by the candidate control input plus the second parameter and the third parameter is greater than or equal to zero.
[0067] In various embodiments, the hard constraint function is dependent on the current state of the robot manipulator and is configured to determine the hard constraint control set: based on the control model for the robot manipulator, and for each of the one or more degrees of freedom of the component classified as a hard constraint degree of freedom for the task based on the degree of freedom classification information for the task: based on a hard trajectory tracking error function associated with the hard constraint degree of freedom that is dependent on the current state of the robot manipulator, and based on a sliding manifold associated with the hard constraint degree of freedom configured based on the hard trajectory tracking error function associated with the hard constraint degree of freedom and a relative degree of the hard trajectory tracking error function with respect to the control input to the robot manipulator. Therefore, according to various embodiments, the hard constraint function is configured to determine the hard constraint control set based on the control model for the robot manipulator and for each of the one or more degrees of freedom of the component classified as a hard constraint degree of freedom for the task, based on the hard trajectory tracking error function and the sliding manifold associated with the hard constraint degree of freedom.
[0068] Accordingly, for each of the one or more degrees of freedom of the component classified as a hard constraint degree of freedom for the task, the hard constraint function is configured to determine the hard constraint control set based on the above-mentioned sliding manifold associated with the hard constraint degree of freedom configured based on the hard trajectory tracking error function associated with the hard constraint degree of freedom and the relative degree of the hard trajectory tracking error function with respect to the control input to the robot manipulator. Therefore, trajectory tracking error in the hard constraint degree of freedom is advantageously directly tracked or monitored using the hard trajectory tracking error function for controlling the robot manipulator with respect to the hard constraint degree of freedom regardless of the relative degree of the hard trajectory tracking error function with respect to the control input to the robot manipulator since the sliding manifold is advantageously configured to adapt the hard trajectory tracking error function according to the relative degree of the hard trajectory tracking error function with respect to the control input to the robot manipulator.
[0069] In various embodiments, similarly, the soft constraint function is dependent on the current state of the robot manipulator and is configured to determine the soft constraint control set: based on the control model for the robot manipulator, and for each of the one or more degrees of freedom of the component classified as a soft constraint degree of freedom for the task based on the degree of freedom classification information for the task: based on a soft trajectory tracking error function associated with the soft constraint degree of freedom that is dependent on the current state of the robot manipulator, and based on a sliding manifold associated with the soft constraint degree of freedom configured based on the soft trajectory tracking error function associated with the soft constraint degree of freedom and a relative degree of the soft trajectory tracking error function with respect to the control input to the robot manipulator. Therefore, according to various embodiments, the soft constraint function is configured to determine the soft constraint control set based on the control model for the robot manipulator and for each of the one or more degrees of freedom of the component classified as a soft constraint degree of freedom for the task, based on the soft trajectory tracking error function and the sliding manifold associated with the soft constraint degree of freedom.
[0070] Accordingly, for each of the one or more degrees of freedom of the component classified as a soft constraint degree of freedom for the task, the soft constraint function is configured to determine the soft constraint control set based on the above-mentioned sliding manifold associated with the soft constraint degree of freedom configured based on the soft trajectory tracking error function associated with the soft constraint degree of freedom and the relative degree of the soft trajectory tracking error function with respect to the control input to the robot manipulator. Therefore, trajectory tracking error in the soft constraint degree of freedom is advantageously directly tracked or monitored using the soft trajectory tracking error function for controlling the robot manipulator with respect to the soft constraint degree of freedom regardless of the relative degree of the soft trajectory tracking error function with respect to the control input to the robot manipulator since the sliding manifold is advantageously configured to adapt the soft trajectory tracking error function according to the relative degree of the soft trajectory tracking error function with respect to the control input to the robot manipulator.
[0071] In various embodiments, the hard trajectory tracking error function associated with the hard constraint degree of freedom is configured to represent a trajectory tracking error of the component in the hard constraint degree of freedom based on the current state of the robot manipulator and the current desired trajectory of the component of the robot manipulator. In various embodiments, similarly, the soft trajectory tracking error function associated with the soft constraint degree of freedom is configured to represent a trajectory tracking error of the component in the soft constraint degree of freedom based on the current state of the robot manipulator and the current desired trajectory of the component of the robot manipulator.
[0072] In various embodiments, the sliding manifold associated with the hard constraint degree of freedom is configured based on the relative degree of the hard trajectory tracking error function with respect to the control input to the robot manipulator such that the sliding manifold has a relative degree of one with respect to the control input. In various embodiments, similarly, the sliding manifold associated with the soft constraint degree of freedom is configured based on the relative degree of the soft trajectory tracking error function with respect to the control input to the robot manipulator such that the sliding manifold has a relative degree of one with respect to the control input. Therefore, the sliding manifold is advantageously configured to adapt the hard/soft trajectory tracking error function according to the relative degree of the hard/soft trajectory tracking error function with respect to the control input to the robot manipulator. Because of this adaptability, the sliding manifold can be directly controlled for trajectory tracking in hard/soft degrees of freedom of the component for the task regardless of the relative degree of the hard/soft trajectory tracking error function with respect to the control input to the robot manipulator.
[0073] In various embodiments, the hard constraint function is configured to determine the hard constraint control set such that for the above-mentioned each hard constraint degree of freedom for the task, the hard trajectory tracking error function associated with the hard constraint degree of freedom produces a value of zero for all candidate control inputs in the hard constraint control set. In various embodiments, similarly, the soft constraint function is configured to determine the soft constraint control set such that for the above-mentioned each soft constraint degree of freedom for the task, the soft trajectory tracking error function associated with the soft constraint degree of freedom produces a value of zero for all candidate control inputs in the soft constraint control set. In this regard, it will be appreciated by a person skilled in the art that the hard/soft trajectory tracking error function may be subjected to an error bias, such as caused by the input disturbance and the initial value of the hard/soft trajectory tracking error function.
[0074] In various embodiments, the hard constraint function comprises a first parameter, a second parameter and a third parameter. In this regard, the first and second parameters are each configured based on the control model for the robot manipulator, the hard trajectory tracking error function associated with the above-mentioned each hard constraint degree of freedom for the task and the control mode of the robot manipulator and the third parameter is configured based on the sliding manifold associated with the above-mentioned each hard constraint degree of freedom for the task.
[0075] In various embodiments, the soft constraint function comprises a first parameter, a second parameter and a third parameter. In this regard, the first and second parameters are each configured based on the control model for the robot manipulator, the soft trajectory tracking error function associated with the above-mentioned each soft constraint degree of freedom for the task and the control mode of the robot manipulator and the third parameter is configured based on the sliding manifold associated with the above-mentioned each soft constraint degree of freedom for the task.
[0076] In various embodiments, the hard constraint function is configured to determine the hard constraint control set such that for each candidate control input in the hard constraint control set, the first parameter multiplied by the candidate control input plus the second parameter and the third parameter equals to zero. In various embodiments, similarly, the soft constraint function is configured to determine the soft constraint control set such that for each candidate control input in the soft constraint control set, the first parameter multiplied by the candidate control input plus the second parameter and the third parameter equals to zero.
[0077] In various embodiments, the degree of freedom classification information for the task indicating the constraint type in trajectory tracking for each of the plurality of degrees of freedom of the component for the task is with respect to a plurality of degrees of freedom of a task frame defined for the task.
[0078] In various embodiments, the plurality of degrees of freedom of the component comprises six degrees of freedom.
[0079] In various embodiments, the above-mentioned performing control input optimization comprises selecting a first candidate control input from an intersection of the safety control set and the hard constraint control set that has a minimum distance to the soft constraint control set. As a result, trajectory tracking in the soft degree(s) of freedom of the component for the task is ensured as long as it is achievable, thus achieving full task consistency. Otherwise, the trajectory tracking error in the soft degree(s) of freedom is minimized. Therefore, full task consistency is ensured as long as it is achievable, while guaranteeing human safety and primary task consistency.
[0080] In various embodiments, the above-mentioned performing control input optimization further comprises selecting a second candidate control input from an intersection of the safety control set and the hard constraint control set such that the second candidate control input has a same distance to the soft constraint control set as the first candidate control input and minimizes joint position deviation of the robot manipulator from an initial joint position thereof. Accordingly, in the case there is at least one redundant (e.g., free) degree of freedom of the component for the task, the motion of the robot manipulator is advantageously stabilized to avoid undesirable or unexpected behavior.
[0081] In various embodiments, the control input for controlling the robot manipulator is set as the first candidate control input based on determining that the component has no redundant (e.g., free) degree of freedom. In various embodiments, the control input for controlling the robot manipulator is set as the second candidate control input based on determining that the component has at least one redundant (e.g., free) degree of freedom.
[0082] In various embodiments, the method 200 further comprises converting the control input for controlling the robot manipulator to a joint-position control input based on determining that the robot manipulator has a joint-position control mode (i.e., operates in a joint-position control mode). For example, the control input may have been a joint-velocity control input, a joint-acceleration control input or a joint-torque control input.
[0083] In various embodiments, the above-mentioned component of robot manipulator is an end effector.
[0084]
[0085] As described hereinbefore, the safety control function is dependent on the current state of the robot manipulator and the current state of the one or more humans and is configured to determine the safety control set: based on a control model for the robot manipulator that is dependent on the current state of the robot manipulator, the control input to the robot manipulator and a disturbance input to the robot manipulator (e.g., caused by the one or more selected parts of the one or more humans), and is configured in a control affine form based on a control mode of the robot manipulator, and for each part pair of one or more part pairs of a selected part of the one or more selected parts of the robot manipulator and a selected part of the one or more selected parts of the one or more humans: based on a safety distance function associated with the part pair that is dependent on the current state of the robot manipulator and the current state of the one or more humans and corresponds to a control barrier function, and based on a sliding manifold associated with the part pair configured based on the safety distance function associated with the part pair and a relative degree of the safety distance function with respect to the control input to the robot manipulator.
[0086] It will be appreciated by a person skilled in the art that the at least one processor 304 may be configured to perform various functions or operations through set(s) of instructions (e.g., software modules) executable by the at least one processor 304 to perform various functions or operations. Accordingly, as shown in
[0087] It will be appreciated by a person skilled in the art that the above-mentioned modules are not necessarily separate modules, and two or more modules may be realized by or implemented as one functional module (e.g., a circuit or a software program) as desired or as appropriate without deviating from the scope of the present invention. For example, two or more modules, such as the information obtaining module 306, the safety control set determining module 308, the hard constraint control set determining module 310, the soft constraint control set determining module 312 and the control input optimization module 314, may be realized (e.g., compiled together) as one executable software program (e.g., software application or simply referred to as an app), which for example may be stored in the at least one memory 302 and executable by the at least one processor 304 to perform various functions/operations as described herein according to various embodiments of the present invention.
[0088] In various embodiments, the controller system 300 for controlling a robot manipulator corresponds to the method 200 of controlling a robot manipulator as described hereinbefore with reference to
[0089] For example, in various embodiments, the at least one memory 302 may have stored therein the information obtaining module 306, the safety control set determining module 308, the hard constraint control set determining module 310, the soft constraint control set determining module 312 and/or the control input optimization module 314, which respectively correspond to various steps (or operations or functions) of the method 200 of controlling a robot manipulator as described herein according to various embodiments, which are executable by the at least one processor 304 to perform the corresponding functions or operations as described herein.
[0090] A computing system, a controller, a microcontroller or any other system providing a processing capability may be provided according to various embodiments in the present disclosure. Such a system may be taken to include one or more processors and one or more computer-readable storage mediums. For example, the controller system 300 for controlling a robot manipulator described hereinbefore may include at least one processor (or controller) 304 and at least one computer-readable storage medium (or memory) 302 which are for example used in various processing carried out therein as described herein. A memory or computer-readable storage medium used in various embodiments may be a volatile memory, for example a DRAM (Dynamic Random Access Memory) or a non-volatile memory, for example a PROM (Programmable Read Only Memory), an EPROM (Erasable PROM), EEPROM (Electrically Erasable PROM), or a flash memory, e.g., a floating gate memory, a charge trapping memory, an MRAM (Magnetoresistive Random Access Memory) or a PCRAM (Phase Change Random Access Memory).
[0091] In various embodiments, a circuit may be understood as any kind of a logic implementing entity, which may be special purpose circuitry or a processor executing software stored in a memory, firmware, or any combination thereof. Thus, in an embodiment, a circuit may be a hard-wired logic circuit or a programmable logic circuit such as a programmable processor, e.g., a microprocessor (e.g., a Complex Instruction Set Computer (CISC) processor or a Reduced Instruction Set Computer (RISC) processor). A circuit may also be a processor executing software, e.g., any kind of computer program, e.g., a computer program using a virtual machine code, e.g., Java. Any other kind of implementation of the respective functions may also be understood as a circuit in accordance with various embodiments. Similarly, a module may be a portion of a system according to various embodiments and may encompass a circuit as described above, or may be understood to be any kind of a logic-implementing entity.
[0092] Some portions of the present disclosure are explicitly or implicitly presented in terms of algorithms and functional or symbolic representations of operations on data within a computer memory. These algorithmic descriptions and functional or symbolic representations are the means used by those skilled in the data processing arts to convey most effectively the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities, such as electrical, magnetic or optical signals capable of being stored, transferred, combined, compared, and otherwise manipulated.
[0093] Unless specifically stated otherwise, and as apparent from the following, it will be appreciated that throughout the present specification, description or discussions utilizing terms such as controlling, obtaining, determining, performing, optimizing, selecting, converting or the like, refer to the actions and processes of a computer system, or similar electronic device, that manipulates and transforms data represented as physical quantities within the computer system into other data similarly represented as physical quantities within the computer system or other information storage, transmission or display devices.
[0094] The present specification also discloses a system (e.g., which may also be embodied as a device or an apparatus), such as the controller system 300 for controlling a robot manipulator, for performing various operations/functions of various methods described herein. Such a system may be specially constructed for the required purposes, or may comprise a general purpose computer or other device selectively activated or reconfigured by a computer program stored in the computer. The algorithms presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose machines may be used with computer programs in accordance with the teachings herein. Alternatively, the construction of more specialized apparatus to perform various method steps may be appropriate.
[0095] In addition, the present specification also at least implicitly discloses a computer program or software/functional module, in that it would be apparent to the person skilled in the art that individual steps of various methods described herein may be put into effect by computer code. The computer program is not intended to be limited to any particular programming language and implementation thereof. It will be appreciated that a variety of programming languages and coding thereof may be used to implement the teachings of the disclosure contained herein. Moreover, the computer program is not intended to be limited to any particular control flow. There are many other variants of the computer program, which can use different control flows without departing from the scope of the invention. It will be appreciated by a person skilled in the art that various modules described herein (e.g., the information obtaining module 306, the safety control set determining module 308, the hard constraint control set determining module 310, the soft constraint control set determining module 312 and/or the control input optimization module 314) may be software module(s) realized by computer program(s) or set(s) of instructions executable by a computer processor to perform the required functions, or may be hardware module(s) being functional hardware unit(s) designed to perform the required functions. It will also be appreciated that a combination of hardware and software modules may be implemented.
[0096] Furthermore, one or more of the steps of a computer program/module or method described herein may be performed in parallel rather than sequentially. Such a computer program may be stored on any computer readable medium. The computer readable medium may include storage devices such as magnetic or optical disks, memory chips, or other storage devices suitable for interfacing with a computer. The computer program when loaded and executed on such the computer effectively results in a system or an apparatus that implements various steps of methods described herein.
[0097] In various embodiments, there is provided a computer program product, embodied in one or more computer-readable storage mediums (non-transitory computer-readable storage medium(s)), comprising instructions (e.g., the information obtaining module 306, the safety control set determining module 308, the hard constraint control set determining module 310, the soft constraint control set determining module 312 and/or the control input optimization module 314) executable by one or more computer processors to perform the method 200 of controlling a robot manipulator, as described herein with reference to
[0098] Software or functional modules described herein may also be implemented as hardware modules. More particularly, in the hardware sense, a module is a functional hardware unit designed for use with other components or modules. For example, a module may be implemented using discrete electronic components, or it can form a portion of an entire electronic circuit such as an Application Specific Integrated Circuit (ASIC). Numerous other possibilities exist. Those skilled in the art will appreciate that the software or functional module(s) described herein can also be implemented as a combination of hardware and software modules.
[0099] In various embodiments, the controller system 300 for controlling a robot manipulator may be realized by any computer system (e.g., desktop or portable computer system) including at least one processor and at least one memory, such as an example computer system 400 as schematically shown in
[0100]
[0101] It will be appreciated by a person skilled in the art that the present invention is not limited to any particular type of robot manipulator 502 as long as the robot manipulator 502 can be controlled by the controller system 300 to operate in the shared workspace 504 with one or more humans 506 according to various embodiments of the present invention. Similarly, it will be appreciated by a person skilled in the art that the present invention is not limited to any particular type of sensor system 508 as long as the human state information indicating the current state of the one or more humans 506 as described according to various embodiments of the present invention can be obtained based on the sensor data generated. Furthermore, it will be appreciated by a person skilled in the art that the controller system 300 may be communicatively coupled or couplable to the robot manipulator 502 and/or the sensor system 508 based on communication protocols or technologies known in the art, including wired and/or wireless communication networks, such as but not limited to, Ethernet, cellular or mobile communication network (e.g., 3G, 4G, 5G or higher generation mobile communication network), Wi-Fi, Bluetooth, wired or wireless sensor network, wired or wireless personal or local area network and so on. Still further, in various embodiments, the controller system 300 may be integrated in the robot manipulator 502 (e.g., instead of being separate as shown in
[0102] It will be appreciated by a person skilled in the art that the terminology used herein is for the purpose of describing various embodiments only and is not intended to be limiting of the present invention. As used herein, the singular forms a, an and the are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms comprises and/or comprising, when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
[0103] Any reference to an element or a feature herein using a designation such as first, second and so forth does not limit the quantity or order of such elements or features, unless stated or the context requires otherwise. For example, such designations may be used herein as a convenient way of distinguishing between two or more elements or instances of an element. Thus, a reference to first and second elements does not necessarily mean that only two elements can be employed, or that the first element must precede the second element. In addition, a phrase referring to at least one of a list of items refers to any single item therein or any combination of two or more items therein.
[0104] In order that the present invention may be readily understood and put into practical effect, various example embodiments of the present invention will be described hereinafter by way of examples only and not limitations. It will be appreciated by a person skilled in the art that the present invention may, however, be embodied in various different forms or configurations and should not be construed as limited to the example embodiments set forth hereinafter. Rather, these example embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the present invention to those skilled in the art.
[0105] In particular, for better understanding of the present invention and without limitation or loss of generality, various example embodiments of the present invention will now be described with respect to a method of controlling a robot manipulator for operating in a shared workspace with one human for clarity and conciseness. It will be understood by a person skilled in the art that the robot manipulator is not limited to operating in the shared workspace with one human and may interact with multiple humans in the shared workspace as desired or as appropriate without going beyond the scope of the present invention.
[0106] Human-robot interaction (HRI) enables the combination of complementary abilities of humans and robots, thereby promoting efficient manufacturing. However, as discussed in the background, conventional control methods for robot manipulators for HRI suffer from one or more problems, namely, human safety problem, task consistency problem and different control modes compatibility problem, which hinder the practical application of HRI in manufacturing scenarios. In particular, various conventional control methods for HRI still suffer from problems including: [0107] 1) Compatibility problem: for example, the conventional control method may generate a control input for each joint that is either position, velocity, acceleration or torque, but the robot manipulator may require a different control input; [0108] 2) Safety-Guarantee problem: for example, various example embodiments found that in various conventional control methods, the human-robot distance is not directly controlled and the human safety is thus not guaranteed. For example, in artificial potential field (APF)-based methods, the effort for collision avoidance depends on some empirically selected parameters, and the human-robot distance is not directly controlled, so human safety is not guaranteed; and [0109] 3) Task-Consistency problem: for example, the robot manipulator may abandon its task in an unresumable manner in order to avoid collision with human, leading to failure of the task. For example, the robot manipulator may execute an evasive motion for collision avoidance when the human approaches. However, the evasive motion may be inconsistent with the robot manipulator's task resulting in unresumable task failure.
[0110] Accordingly, various example embodiments of the present invention provide a method of controlling a robot manipulator for operating in a shared workspace with a human and a controller system thereof, that seek to overcome, or at least ameliorate, one or more deficiencies in conventional methods and systems for controlling a robot manipulator, and more particularly, providing an improved method and system for controlling a robot manipulator that seek to simultaneously address or achieve human safety, task consistency and different control modes compatibility.
[0111] In this regard, according to various example embodiments, a universal control method or framework with guaranteed human safety and hierarchical task consistency is provided. The framework is universal as it can adapt to different types of control modes of commercial robots (or more specifically, robot manipulators), for example, position-input control mode (or joint-position control mode), velocity-input control mode (or joint-velocity control mode), acceleration-input mode (or joint-acceleration control mode) and torque-input mode (or joint-torque control mode). For example, as discussed in the background, commercial robot manipulators in the current market have different types of control modes. However, the majority of existing control methods for HRI is configured for a specific type of control mode and cannot adapt to other types of control modes, such as being configured only for joint-velocity control mode, being configured only for joint-acceleration control mode or being configured only for joint-torque control mode. In contrast, various example embodiments of the present invention advantageously provide a universal control method or framework for controlling robot manipulators that is adaptive to, or compatible with, different types of control modes.
[0112] Various example embodiments further introduce a sliding mode control barrier function (SMCBF) that uses a sliding mode to advantageously deal with different types of control modes and reject input disturbance, so that human safety can be guaranteed by keeping a set of control barrier functions positive. In this regard, in various example embodiments, the human-robot distance is explicitly formulated (e.g., corresponding to the safety distance function as described hereinbefore according to various embodiments) and a sliding manifold is defined to keep the distance above a safe value regardless of different control modes in the presence of input disturbance (e.g., caused by the human operating in the shared workspace).
[0113] In addition, various example embodiments provide hierarchical task consistency based on defining hard constraint(s) and soft constraint(s) in trajectory tracking systematically. In particular, the hard constraint(s) are provided to ensure primary task consistency that keeps the task resumable, while the soft constraint(s) together with the hard constraint(s) are provided to ensure full task consistency as long as it is achievable. Control input optimizations are then employed to ensure full task consistency whenever possible while guaranteeing human safety and primary task consistency. Accordingly, task consistency is satisfied hierarchically by defining hard and soft constraints in a systematic way and using optimization techniques. As a result, when the human (e.g., hand(s) thereof) approaches the robot manipulator, the robot manipulator conducts an evasive motion while keeping the task resumable, and when the human (e.g., hand(s) thereof) retracts, the robot manipulator resumes its task automatically.
[0114] Accordingly, various example embodiments of the present invention advantageously provide a universal control method or framework for controlling robot manipulators (e.g., commercial robot manipulators) that is adaptable to, or compatible with, various different types of control modes while simultaneously addressing or solving two conflicting issues or problems of close HRI, namely, human safety and task consistency. Therefore, various example embodiments of the present invention advantageously solve a technical challenge of providing a universal control framework that ensures human safety and task consistency during HRI. For example, the control method avoids collision with human while considering constraints of the robot manipulator's task, thereby achieving safe and efficient HRI.
[0115] For better understanding, three main contributions associated with the universal control method will now be described in further details below according to various example embodiments of the present invention.
[0116] Firstly, a SMCBF is provided according to various example embodiments of the present invention to ensure human safety, which is an inequality-based control objective. Various example embodiments note that traditional sliding mode control (SMC) can deal with different relative degrees and reject disturbance but cannot deal with inequality-based objectives. Meanwhile, various example embodiments further note that traditional CBF is dedicated to inequality-based control objectives, but it is required to be of relative degree one with respect to the control input, which means that it may only apply to joint-velocity control mode and is not adaptive to other types of control modes. Exponential CBF and high order CBF are capable of different relative degrees, but they do not consider disturbance. In contrast, the SMCBF according to various example embodiments combines the advantages of SMC and CBF and addresses the above-mentioned problems, namely, human safety problem, task consistency problem and different control modes compatibility problem. In this regard, various example embodiments advantageously use a sliding manifold to formulate a robust control term that rejects disturbance while constraining the state of the robot manipulator on the safe side of a sliding surface, thereby guaranteeing inequality-based control objectives (e.g., human safety) regardless of disturbance and different relative degrees.
[0117] According to various example embodiments, in SMC, a sliding manifold is constructed according to the relative degree of the control objective, so that the control system can track the desired value regardless of its relative degree and external disturbance as long as the state is on the sliding manifold. In CBF, a barrier of the control objective is defined, and the control objective can be constrained within the barrier as long as the control input is within an admissible control set. The control system is required to be of relative degree one with respect to the control input. In this regard, various example embodiments advantageously combine and define the SMC and CBF to produce a SMCBF for ensuring human safety while being adaptable or compatible to different types of control modes. In particular, a sliding manifold is constructed to modify or convert the CBF (e.g., corresponding to the safety distance function as described hereinbefore according to various embodiments) into a SMCBF and provides a safety control set that can constrain the state of the robot manipulator on the sliding manifold in presence of input disturbance. As a result, the control system, regardless of its relative degree, is constrained within the barrier as long as the state of the robot manipulator is on the sliding manifold. Therefore, according to various example embodiments, human safety can be guaranteed by defining a set of uniform SMCBFs (e.g., one respective SMCBF for each part pair of a selected part of the robot manipulator and a selected part of the human) regardless of robot control modes (e.g., regardless of a joint-position control mode, a joint-velocity control mode, a joint-acceleration control mode or a joint-torque control mode).
[0118] Secondly, hierarchical task consistency is introduced according to various example embodiments of the present invention to prevent task failure. In this regard, in various example embodiments, the robot manipulator's task is decomposed into a plurality of degrees of freedom (DOFs) (e.g., six DOFs) of a user-defined Cartesian task frame so that hard constraint(s) and soft constraint(s) can be extracted systematically. The hard constraint(s) ensures primary task consistency that keeps the task resumable, while the soft constraint (together with the hard constraint) ensures full task consistency. Referring back to the example task shown in
[0119] Accordingly, various example embodiments advantageously provide soft constraint(s) in trajectory tracking in one or more DOFs that can be relaxed for human safety. Various example embodiments further advantageously provide a task frame to facilitate the definitions of the hard and soft constraints and which may be defined or selected by a user based on the nature of the task and can be time-varying. As a result, the definitions of the hard and soft constraints can be more flexible. For example, more complicated robot tasks can be handled. By way of an example only and without limitation, for Skill II (Gripping) as discussed later below with reference to
[0120] Finally, control input optimizations are configured according to various example embodiments to ensure full task consistency whenever possible while guaranteeing human safety and primary task consistency. For example, in various conventional control methods, the states (i.e., enforced/relaxed) of constraints may be determined by comparing a danger criterion with empirically selected thresholds. Therefore, conventionally, full task consistency depends on the empirically selected thresholds. Furthermore, the control law switches with the states of the constraints, resulting in discontinuous control input and jerky robot motion. In contrast, in the control method according to various example embodiments, the state of the soft constraint is solved automatically in the control input optimizations, so that full task consistency can be achieved whenever possible. In various example embodiments, primary task consistency is guaranteed together with human safety and full task consistency is sought using all DOFs of the robot manipulator while guaranteeing primary task consistency and human safety. Furthermore, in various example embodiments, the control input to the robot manipulator is continuous so the robot manipulator's motion is smooth.
[0121] Accordingly, various advantages of the universal control method or framework may include: [0122] human safety is guaranteed by a set of uniform SMCBFs in presence of disturbance; [0123] hierarchical task consistency is achieved, that is, primary task consistency is always enforced, while full task consistency is ensured as long as possible; and [0124] compatible/adaptable to different types of robot control modes with consistent performance.
[0125] Accordingly, various example embodiments of the present invention advantageously provide a universal control method or framework that simultaneously addresses the above mentioned three problems or issues. In various example embodiments, a minimum (or shortest) human-robot distance is formulated as a function of human and robot states, and a function (i.e., a CBF, e.g., corresponding to the safety distance function as described hereinbefore according to various embodiments) is defined as a difference between the minimum distance and a predetermined safe distance. In addition, a sliding manifold for human safety is defined based on the above-mentioned function and its time derivative according to the control mode of the robot manipulator, such that the above-mentioned function is positive on the sliding manifold. Thereafter, a safety control set to achieve the sliding manifold is formulated. Therefore, according to various example embodiments, the above-mentioned function is advantageously subjected to, or modified by, the sliding manifold to introduce a sliding mode, and such the modified function may thus be referred to as a sliding mode CBF (SMCBF). Next, various example embodiments advantageously introduce hierarchical task consistency, whereby task consistency can be partially satisfied, that is, satisfied hierarchically (hard constraint(s) ensures primary task consistency while soft constraint(s) (together with hard constraint(s) ensures full task consistency as long as it is achievable). In various example embodiments, control input optimizations are utilized to ensure full task consistency whenever possible while guaranteeing human safety and primary task consistency.
[0126] To demonstrate the effectiveness of the control method or framework according to various example embodiments of the present invention, experiments and simulations were conducted to validate the control method according to various example embodiments with comparisons to conventional or existing methods, and results thereof will be discussed later below.
Models of Robot Manipulator
[0127] Robot control models corresponding to a number of example different types of robot control modes will now be described according to various example embodiments of the present invention, namely, a joint-position control mode, a joint-velocity control mode, a joint-acceleration control mode and a joint-torque control mode.
[0128] .sub.e. The position and orientation of
.sub.e are p.sub.e
.sup.3 and R.sub.e=[x.sub.e, y.sub.e, z.sub.e]SO(3) (3D rotation group), respectively, where p.sub.e locates at the tool center point (TCP) of the end effector, and x.sub.e, y.sub.e, and z.sub.e are three orthonormal bases. The following example different types of control modes of the robot manipulator are considered according to various example embodiments of the present invention.
[0129] .sup.n.fwdarw.
.sup.3 and f.sub.R:
.sup.n.fwdarw.SO(3) are continuously differentiable forward kinematic mappings, u.sub.p is the control input of joint positions and .sub.p is the input disturbance (e.g., caused by the human operating in the shared workspace).
[0130] .sup.3 is the angular velocity of end effector, J.sub.v(q) and J.sub.(q) are linear and angular Jacobian matrices, respectively, u.sub.v
.sup.n is the control input of joint velocities and .sub.v is the input disturbance.
[0131] .sup.n is the control input of joint accelerations and .sub.a is the input disturbance.
[0132] .sup.nn is the symmetric and positive definite inertia matrix, C(q, {dot over (q)}){dot over (q)} is the Coriolis and centrifugal vector, G(q) is the gravity vector, u.sub.
.sup.n is the control input of joint torques and .sub. is the input disturbance.
[0133] For example, for a commercial robot manipulator, the control inputs are bounded, which means u.sub..sub.
{u.sub.
.sup.n|u.sub.,minu.sub.u.sub.,max} where {v, a, } and u.sub.,min and u.sub.,max are known constants. Furthermore, the commercial robot manipulator usually has, or it is assumed to have, an embedded controller to make the state (e.g., position, velocity, acceleration or torque) of each joint of the robot manipulator track the control input. Therefore, various example embodiments provide the following bounded-disturbance assumption: the input disturbances are bounded as: .sub.{.sub.
.sup.n|.sub..sub.}, where {p, v, a, }, and .sub. is known constants. Furthermore, various example embodiments advantageously unify the control models in Modes II, III and IV into the control affine form {dot over (x)}=f(x)+g(x)(u+), where x
.sup.n.sup.
.sup.n.sup.
.sup.n.sup.
is the control input, and
.sup.n is the input disturbance. According to various example embodiments, for the control affine form, in Mode II, x=q, f=0.sub.n1, g=I.sub.n, u=u.sub.v, =.sub.v, and
=
.sub.v. In Mode III, x=[1.sup.T, {dot over (q)}.sup.T].sup.T, f=[{dot over (q)}.sup.T, 0.sub.n1.sup.T].sup.T, g=[0.sub.nn.sup.T, I.sub.n.sup.T].sup.T, u=u.sub.a, =.sub.a, and
=
.sub.a. In Mode IV, x=[q.sup.T, {dot over (q)}.sup.T].sup.T, f=[{dot over (q)}.sup.T, (M.sup.1(C{dot over (q)}+G)).sup.T].sup.T, g=[0.sub.nn.sup.T, (M.sup.1).sup.T].sup.T, u=u.sub., =.sub., and
=
.sub.. Therefore, the universal control method or framework according to various example embodiments is advantageously developed or configured based on the above-mentioned control affine form, so that the control method can adapt to multiple control modes, such as the above-mentioned three example different types of control modes, namely, Modes II, III and IV.
[0134] Various example embodiments note that the robot manipulator in Mode I is a zero-order system and thus cannot be written in the control affine form. However, as will be described later below, the universal control method can work as a real-time motion planner to generate the joint position command u.sub.p for the robot manipulator in Mode I. Therefore, the universal control method can adapt to, or is compatible with, all of the above-mentioned four robot control modes.
Guaranteed Human Safety Based on SMCBFS
[0135] A SMCBF that uses a sliding manifold to deal with different relative degrees and reject disturbance will firstly be introduced below according to various example embodiments of the present invention. Then, a set of SMCBFs, each of which is based on the minimal distance between a selected part of the human and a selected part or link of the robot manipulator, are formulated to represent human safety (e.g., corresponding to the part pair as described hereinbefore according to various embodiments).
Preliminaries of SMCBF
[0136] For better understanding, the preliminaries of SMCBF will now be described according to various example embodiments of the present invention. According to various example embodiments, a smooth function h(x, ) dependent on the robot state x and a set of continuously differentiable parameters (t) representing the human state are utilized to define the safety of HRI, that is, h(x, )0 means that the robot state x is safe for the human, and h(x, )<0 means that the robot state x is unsafe for the human. The human state may be represented by (t)=[p.sub.h,1.sup.T, . . . , p.sub.h,n.sub..sup.3n.sup.
.sup.3, where
.sup.k represents the set of k times continuously differentiable functions. Therefore, given the parameter (t), the set of the safe robot states
can be defined as
(t)={x
.sup.n.sup.
regardless of the disturbance .
[0137] Based on traditional CBF, the above-mentioned function h can be controlled to be positive when the relative degree (r) of h with respect to the control input u is r=1, i.e., .sub.gh0. However, various example embodiments note that the function h cannot be controlled directly when r2. According to various example embodiments, to address this technical problem, instead of constraining h0 directly, the function h is subjected to, or modified by, a sliding manifold to introduce a sliding mode and such a modified function may be referred to as a SMCBF. In various example embodiments, the SMCBF enforces the sliding manifold s.sub.h: s.sub.h=(d/dt+).sup.r1h=.sub.k=0.sup.r1C.sub.k.sup.r1.sup.r1kh.sup.(k)0, where r is the relative degree of h (i.e.,
.sub.g
.sub.f.sup.ih=0 for i{0, 1, . . . , r2}, and
.sub.g
.sub.f.sup.r1h0), is a positive constant, C.sub.k.sup.n=n!/(k!(nk)!), and h.sup.(k) represents k-th time derivative of h. As a result, the relative degree of s.sub.h with respect to the control input u is always one, so it can advantageously be controlled directly according to various example embodiments.
[0138] In SMC, h=0 is achieved automatically when the robot state is on the sliding manifold, i.e., s.sub.h=0. Similarly, in SMCBF, h0 is achieved when the robot state is on the sliding manifold s.sub.h>0. According to various example embodiments, the SMCBF may be defined as follows: consider the control affine system, given the safe set (t) and continuous parameters (t), a
.sup.r function h: (
.sup.n.sup.
.sup.3n.sup.
is called an SMCBF if there exist positive constants and .sub.h, and .sub.h(t)|
.sub.g
.sub.f.sup.r1h| for t0, such that, for x
, sup.sub.u
.sub.
.sub.g
.sub.f.sup.r1h, a.sub.h=
.sub.f.sup.rh+.sub.k=0.sup.r1C.sub.k.sup.r.sup.rkh.sup.(k) and .sub.h=.sub.htanh (.sub.hs.sub.h/.sub.h) is a robust control term.
.sub.h=h/x is Lie derivative,
.sub..sup.rh is determined recursively, and
.sub.f.sup.rh=[/.Math..sup.(1)+ . . . +/.sup.r1).Math..sup.(r)+
.sub.f].sup.rh. .sub.h(t) represents the upper bound of the effect of the input disturbance to the function h and is utilized to formulate a.sub.h. According to various example embodiments, the robust control term .sub.h uses continuous function tanh() to ensure the smoothness of the final control law.
[0139] Accordingly, once an SMCBF is defined, the set of admissible control inputs (e.g., corresponding to the safety control set as described hereinbefore according to various embodiments) can be determined as .sub.h={u
.sub.h|A.sub.hu+a.sub.h+.sub.h0} (e.g., corresponding to the safety control function as described hereinbefore according to various embodiments, whereby A.sub.h, a.sub.h and .sub.h correspond to the first parameter, the second parameter and the third parameter, respectively).
[0140] In various example embodiments, if a .sup.r function h is an SMCBF, then there exists (t) exponentially converging to a ball with a size proportional to .sub.h, such that any controller u:
.sup.n.sup.
.sub.h keeps the robot state x within a relaxed safe set
.sub.r, that is,
.sub.r={x
.sup.n.sup.
[0141] Different from SMC which is used for equality-based control objectives such as trajectory tracking, the SMCBF according to various example embodiments is designed to achieve inequality-based objectives such as human safety. For illustration purposes,
[0142] Accordingly, various example embodiments advantageously combine the SMC and CBF to produce a SMCBF for ensuring human safety while being adaptable or compatible to different types of control modes. In particular, a sliding manifold is constructed to modify or convert the CBF into a SMCBF and provides a safety control set that can constrain the state of the robot manipulator on the sliding manifold in presence of input disturbance. Therefore, according to various example embodiments, a safety control set may be produced based on the SMCBF as follows: 1) formulate a function h(x, ) (control barrier function) to represent human safety; 2) define a sliding manifold s.sub.h>0 based on the relative degree r of h; 3) generate an admissible control set (safety control set) that enforces the sliding manifold s.sub.h0; and 4) s.sub.h0 leads to h0, thereby guaranteeing human safety.
Definitions of SMCBF's for Human Safety
[0143] A set of SMCBFs (e.g., one respective SMCBF for each part pair of a selected part of the robot manipulator and a selected part of the human) may be formulated for ensuring human safety. Consider an example HRI scenario shown in .sub.i
.sup.3 centered at p.sub.h,i, and the radius of
.sub.i is r.sub.h,i. The robot manipulator may be modeled by n.sub.r links p.sub.r,j1p.sub.r,j with j{1,2, . . . , n.sub.r}. Each link p.sub.r,j1p.sub.,j may be enveloped by a capsule
.sub.j
.sup.3 with radius r.sub.r,j. By way of an illustrative example only and without limitation, n.sub.h=10 and n.sub.r=7 for the example shown in
.sub.i
.sub.j= for i{1, 2, . . . , n.sub.h} and j{1, 2, . . . , n.sub.r}.
[0144] Considering a combination of i and j (i.e., a part pair of a selected part (i) of the robot manipulator and a selected part (j) of the human), the minimum (or shortest) distance between the point p.sub.h,i and the line-segment p.sub.r,j1p.sub.r,j is d.sub.i,j(x, )=f.sub.d(p.sub.h,i(), P.sub.r,j1(x), p.sub.r,j1(x)), where f.sub.d: (.sup.3,
.sup.3,
.sup.3).fwdarw.
is a function that gives the minimum distance between a point and a line-segment. Thus, according to various example embodiments, the following function is an SMCBF: h.sub.i,j(x, )=d.sub.i,j(x, )d.sub.s, where d.sub.s=r.sub.h,i+r.sub.r,j is a constant safe distance. The corresponding safety control set for h.sub.i,j is
.sub.i,j={u
|A.sub.i,ju+a.sub.i,j+.sub.i,j0}, where .sub.i,j=.sub.i,jtanh(.sub.i,js.sub.i,j/.sub.i,j) with .sub.i,j being a constant, .sub.i,j=A.sub.i,j.sub. with =v, a, and in Modes II, III, and IV, respectively, and A.sub.i,j, a.sub.i,j, and sliding manifold s.sub.i,j depend on the relative degree r.sub.i,j. In Mode II, r.sub.i,j=1, so A.sub.i,j=
.sub.gh.sub.i,j, a.sub.i,j=
.sub.fh.sub.i,j+h.sub.i,j, and s.sub.i,j=h.sub.i,j. In Modes III and IV, r.sub.i,j=2, so A.sub.i,j=
.sub.g
.sub.fh.sub.i,j, a.sub.i,j=
.sub.f.sup.2h.sub.i,j+2{dot over (h)}.sub.i,j+.sup.2h.sub.i,j, and s.sub.i,j={dot over (h)}.sub.i,j+h.sub.i,j. The final safety control set for all combinations of i and j is
.sub.s={u
|Au+a0} where A=[A.sub.1,1.sup.T, . . . , A.sub.n.sub.
.sup.n.sup.
.sup.n.sup.
.sub.s holds for t0:
.sub.s={x
.sup.n.sup.
.sup.n.sup.
.sup.n.sup.
[0145] In various example embodiments, for example, the above .sub.i,j(t) may be determined as follows: .sub.i,j(t)=S(h.sub.i,j(0))e.sup..sup.
[0146] Therefore, according to various example embodiments, the safety control set .sub.s may be determined as follows: 1) define the protected/selected parts of the human using multiple spheres
.sub.i and the protected/selected parts of the robot using multiple capsules
.sub.j; 2) formulate the minimal distance d.sub.i,j between a sphere
.sub.i and a capsule
.sub.j based on the human state.x and the robot state ; 3) formulate an SMCBF (e.g., corresponding to the safety distance function as described hereinbefore according to various embodiments) as the difference between the minimum distance d.sub.i,j and the safe distance d.sub.s; 4) define a sliding manifold using the SMCBF and its time derivative such that the SMCBF is kept positive on the sliding manifold; and 5) determine the safety control set comprising a set of control inputs that leads to the sliding manifold.
Hierarchical Task Consistency based on Hard and Soft Constraints
[0147] A technique for defining a Cartesian task frame and classifying its six DOFs, based on which the hard and soft constraints ensuring primary and full task consistency are formulated, will now be described according to various example embodiments of the present invention. The task of picking a cup with water using an end effector in the form of a two-finger gripper as shown in
[0148] A task for a robot manipulator may include a sequence of actions which may be referred to as skills (or sub-tasks). For example, as shown in
[0149] In various example embodiments, each of the skills is defined by the desired trajectory of the end effector represented by a frame .sub.d(t)
.sup.r.sup.
.sub.d(t) are denoted as p.sub.d(t) and R.sub.d(t), respectively. For example, when the human is far from the robot, full task consistency can be achieved, which means
.sub.d(t) can be well tracked and the task can be completed with success. However, in the case of close HRI, the end effector may have to deviate from its desired trajectory to avoid collision with the human.
[0150] By way of an illustrative example and without limitation, for the example task shown in .sub.e should be prevented to avoid collision between the gripper's fingers and the cup; 3) In Skill III (
.sub.t(t)
.sup.r.sup.
.sub.t(t) is used to facilitate the definitions of the constraints and may be defined or selected by a user based on the nature of each skill (or sub-task) and can be time-varying. For example, in Skill III, the task frame
.sub.t may be fixed with respect to the world frame
.sub.w; while in Skill II,
.sub.t(t) is fixed to
.sub.e(t) which is time-varying.
[0151] In various example embodiments, the task frame .sub.t has a plurality of DOFs corresponding to the plurality of DOFs of the end effector to perform the task, such as six DOFs: three of them are translational DOFs along x-, y-, and z-axes (namely, px, py, and pz) and the other three are rotational DOFs around the three axes (namely, rx, ry, and rz). According to various example embodiments, the trajectory tracking of end effector is decomposed into the six DOFs of
.sub.t. Further, the six DOFs are classified into the following three types.
[0152] Hard DOF(s): The trajectory tracking of end effector in hard DOF(s) (which may also be referred to as hard constraint DOF(s)) guarantees primary task consistency. Therefore, the trajectory deviation in hard DOF(s) breaks the resumability of the task and thus the primary task consistency. Considering Skill III (
[0153] Soft DOF(s): The trajectory deviation in soft DOF(s) (which may also be referred to as soft constraint DOF(s)) breaks full task consistency and suspends the task, but primary task consistency is unaffected. Considering Skill III as an example, for example, the trajectory deviation in px py, and pz suspends the task, but the task can be resumed after the end effector returns to its desired trajectory. Therefore, these DOFs may be defined as soft DOFs.
[0154] Free DOF(s): The trajectory tracking in free DOF(s) has no effect on the task. This means full task consistency is unaffected by trajectory deviation in free DOF(s). Considering Skill III as an example, for example, because the cup is axisymmetric, the rotation of the end effector about the z-axis does not matter. Therefore, rz can be defined as a free DOF. Although the desired trajectory in the free DOF(s) may be provided, it may simply ignored in the control framework. The free DOF(s) provides additional flexibility to achieve human safety without affecting the robot's task.
[0155] According to various example embodiments, a vector .sub.t=[.sub.px, .sub.py, .sub.pz, .sub.rx, .sub.ry, .sub.rz].sup.T may be used to denote or define the classification of the six DOFs of .sub.t. For example, for i{px, py, pz, rx, ry, rz}, .sub.i=hard when i is a hard DOF, .sub.i=soft when i is a soft DOF, and .sub.i=free when i is a free DOF.
Formulation of Hard and Soft Constraints
[0156] Hard and soft constraints are formulated or configured according to various example embodiments of the present invention. The trajectory tracking in hard DOF(s) is regarded as hard constraint and the trajectory tracking in soft DOF(s) is regarded as soft constraint. Therefore, in various example embodiments, primary task consistency is ensured by enforcing the hard constraint, while full task consistency is ensured by enforcing both hard and soft constraints. To represent the hard and soft constraints, in various example embodiments, a vector.sup.te(t)=[.sup.te.sub.p(t), .sup.te.sub.o(t)].sup.6 may be used to denote the trajectory-tracking errors in the six DOFs of
.sub.t, where .sup.te.sub.p
.sup.3 and .sup.te.sub.o
.sup.3 are the position and orientation errors, respectively. The position error can be obtained as .sup.te.sub.p(t)=R.sub.t.sup.T(t)e.sub.p(t) where e.sub.p=p.sub.ep.sub.d
.sup.3. A unit quaternion {.sub.ed, .sub.ed} is extracted from the rotation matrix R.sub.ed=R.sub.eR.sub.d.sup.T. After that, the orientation error may be defined as: .sup.te.sub.o(t)=R.sub.t.sup.T(t).sub.ed(t). e.sub.p(t)=p.sub.ep.sub.d is the position error of
.sub.e with respect to
.sub.d represented in the world frame, and similarly .sub.ed(t) is the orientation error. R.sub.t(t) is the orientation of the task frame
.sub.t, and R.sub.t.sup.T(t) is its transpose. Accordingly, left multiplying e.sub.p(t) by R.sub.t.sup.T(t) converts the position error into the task frame. Therefore, .sup.te.sub.p(t) is the position error in the task frame, and similarly .sup.te.sub.o(t) is the orientation error in the task frame.
[0157] With .sup.te, the hard and soft constraints can be formulated as .sup.te.sub.hard=0 with the hard-constraint error .sup.te.sub.hard=N.sub.hard.sup.te and .sup.te.sub.soft=0 with the soft-constraint error .sup.te.sub.soft=N.sub.soft.sup.te, respectively. N.sub.hard.sup.n.sup.
.sup.n.sup.
An Example of Constraint Formulation
[0158] For better understanding, an example of constraint formulation will now be described according to various example embodiments of the present invention. The constraints of a task depend on the task frame .sub.t and its DOF classification .sub.t. The design or configuration of
.sub.t and .sub.t is specified with reference to the example task of
[0159] In Skill I, the position p.sub.t of the task frame .sub.t may be fixed at point A, while the orientation R.sub.t depends on the position of end effector: the z-axis of
.sub.t is aligned with that of
.sub.w, i.e., z.sub.t=z.sub.w; the y-axis is perpendicular to the connecting line between the EE and point A, i.e., y.sub.t=y.sub.c/y.sub.c where y.sub.c=z.sub.t(p.sub.Ap.sub.e); then, the x-axis is determined as x.sub.t=y.sub.tz.sub.t. By setting .sub.t=[soft, soft, hard, hard, hard, hard].sup.T and letting R.sub.d=R.sub.t, the end effector of the robot is allowed to escape in a horizontal plane while keeping the gripper's opening pointing at the cup.
[0160] In Skill II, .sub.d may be fixed at point A with the z-axis z.sub.d=z.sub.w, and a time-varying task frame
.sub.t(t) coinciding with the end effector frame
.sub.e is selected. The DOF classification is .sub.t=[soft, hard, hard, hard, hard, free].sup.T, which constrains the end effector's motion to be along the x-axis of
.sub.e. Because .sub.rz is free, the end effector can escape in a horizontal plane. The gripper closes gradually only when the end effector stands still at point A; otherwise, the gripper opens. The skill finishes once a signal indicating successful gripping is received from the gripper.
[0161] In Skill III, the task frame .sub.t may be fixed at point B with z.sub.t=z.sub.w. The DOF classification is .sub.t=[soft, soft, soft, hard, hard, free].sup.T, allowing the EE to escape in the 3D space while keeping the gripper horizontal.
Hard and Soft Constraint Control Sets
[0162] The generation of the hard constraint control set (.sub.hard) comprising a set of candidate control inputs with respect to hard constraint(s) in trajectory tracking in hard DOF(s), and the generation of the soft constraint control set (
.sub.soft) comprising a set of candidate control inputs with respect to soft constraint(s) in trajectory tracking in soft DOF(s) will now be described according to various example embodiments of the present invention.
[0163] Similar to the SMCBF (h.sub.i,j) described above, various example embodiments note that the hard constraint error .sup.te.sub.hard (i.e., hard trajectory tracking error function) and the soft constraint error (i.e., soft trajectory tracking error function) .sup.te.sub.soft have different relative degrees in different robot control modes. To address this, various example embodiments utilize the SMC to tackle different types of control modes, such as the above-mentioned Modes II, III, and IV. First, a vector of sliding manifolds (.sup.ts.sub.hard) is defined for the hard constraint(s) and a vector of sliding manifolds (.sup.ts.sub.soft) is defined for the soft constraint(s), each sliding manifold being defined for a corresponding hard or soft constraint. For example, according to various example embodiments, .sup.ts.sub. (where =hard or soft for hard or soft constraint, respectively) may be defined as follows: .sup.ts.sub.=(d/dt+K.sub.e,)r.sup.1 te.sub.=.sub.k=0.sup.r1C.sub.k.sup.r1K.sub.e,.sup.r1K.sub.e,.sup.r1k te.sub..sup.(t), where K.sub.e,=diag([k.sub.e,1, . . . , k.sub.e,n].sup.T) is a positive-definite diagonal matrix, and r is the relative degree of .sup.te with respect to u. Therefore, .sup.te.sub.hard is a vector that collects the trajectory tracking error in each hard DOF and .sup.ts.sub.hard is a vector with the same length as .sup.te.sub.hard, and each element of .sup.ts.sub.hard corresponds to a sliding manifold for a corresponding hard DOF. Similarly, .sup.te.sub.soft is a vector that collects the trajectory tracking error in each soft DOF and .sup.ts.sub.soft is a vector with the same length as .sup.te.sub.soft, and each element of .sup.ts.sub.soft corresponds to a sliding manifold for a corresponding soft DOF. Accordingly, a trajectory tracking error function .sup.te is defined for each hard/soft constraint and a sliding manifold is defined based on the corresponding .sup.te for each hard/soft constraint. That is, for each hard constraint degree of freedom, a hard trajectory tracking error function .sup.te.sub.hard is defined for the hard DOF to represent a trajectory tracking error in the hard DOF. Similarly, for each soft constraint degree of freedom, a soft trajectory tracking error function .sup.te.sub.soft is defined for the soft DOF to represent a trajectory tracking error in the soft DOF.
[0164] For example, in Mode II, r=1, so .sup.ts.sub.=.sup.te.sub.. In Modes III and IV, r=2, so .sup.ts.sub.=.sup.ts.sub.=.sup.t.sub.+K.sub..sup.te.sub.. According to the theorem of SMC, the hard/soft constraint .sup.te.sub.=0, can be achieved when the state is on the hard/soft sliding manifold .sup.ts.sub.=0. Therefore, according to various example embodiments, to achieve the hard/soft sliding manifold .sup.ts.sub.=0, the hard/soft control set is designed as follows: .sub.={u
|B.sub.+b.sub.+
.sub.g.sup.te.sub., b.sub.=
.sub.f.sup.te.sub.+K.sub.e,.sup.te.sub., and .sup.ts.sub.=.sup.te.sub.. In Modes III and IV, r=2, B.sub.=
.sub.g
.sub.f.sup.te.sub., b.sub.=
.sub.f.sup.2 te.sub.+2K.sub.e,.sup.tK.sub.e,.sup.2 te, and .sup.ts.sub.=.sup.t.sub.+K.sub.e,.sup.te. Here,
.sub.f.sup.i te.sub.=[/t+
.sub.f].sup.i te.sub. for i=1 or 2. Control input optimization may then be performed based on the safety control set (
.sub.s), the hard constraint control set (
.sub.hard) and the soft constraint control set (
.sub.soft) to determine the control input for controlling the robot manipulator.
Optimization in Task Space
[0165] First, task-space optimization may be performed according to various example embodiments. The task-space optimization comprises selecting a candidate control input (corresponding to the first candidate control input as described hereinbefore according to various embodiments) from an intersection of the safety control set and the hard constraint control set that has a minimum distance to the soft constraint control set. For example, the task-space optimization may be implemented as follows: u.sub.1=argmin.sub.u dist(u, .sub.soft) subjects to u
.sub.s, and u
.sub.hard, where dist(u,
.sub.soft)=B.sub.softu+b.sub.soft.sup.2 represents the distance between the control u and control set
.sub.soft. For example, when the distance is zero, u.sub.1 is in the soft constraint control set, so the soft constraint is ensured. Otherwise, the distance is minimized based on the above cost function, so the trajectory tracking error of the soft constraint (trajectory tracking error in the soft constraint DOF) is also minimized. Accordingly, a first condition (u
.sub.s) guarantees human safety. Meanwhile, a second condition (u
.sub.hard) ensures trajectory tracking in hard DOFs, i.e., primary task consistency. Furthermore, the above cost function ensures u
.sub.soft as long as it is achievable. When it is achieved, trajectory tracking in the soft DOFs is ensured, and thus achieves full task consistency. Otherwise, when u
.sub.soft is not achievable, the deviation from the sliding manifold is minimized, advantageously resulting in minimized trajectory-tracking error in soft DOFs.
Optimization in Joint Space
[0166] In addition, a joint-space optimization may be performed according to various example embodiments based on determining that the end effector performing the task has at least one redundant (or free) DOF. For example, the robot manipulator may have redundant DOFs (i.e., n>n.sub.hard+n.sub.soft) due to its inherent redundancy or according to the setting of free
[0167] DOFs for a task. On the one hand, the redundant DOFs provide flexibility for the task-space optimization to achieve guaranteed human safety and hierarchical task consistency. On the other hand, various example embodiments note that it introduces a null space orthogonal to the task space. To address this, various example embodiments stabilize the robot manipulator's motion in the null space to avoid undesired behavior. In this regard, according to various example embodiments, this is achieved by minimizing the deviation of the joint position q(t) from its initial value q(0), i.e., e.sub.q=q(t)q(0).
[0168] In particular, according to various example embodiments, the joint-space optimization comprises selecting a candidate control input (corresponding to the second candidate control input as described hereinbefore according to various embodiments) from an intersection of the safety control set and the hard constraint control set such that the second candidate control input has a same distance to the soft constraint control set as the first candidate control input and minimizes joint position deviation of the robot manipulator from an initial joint position thereof.
[0169] For example, the joint-space optimization may be implemented as follows: u.sub.2=argmin.sub.u dist(u, .sub.0) subjects to u
.sub.s, u
.sub.hard, and B.sub.softu=B.sub.softu.sub.1. Here,
.sub.0={u
|Du+d0} consists of the control input that makes the joint position q(t) stay at its initial position q(0). In Mode II, D=I.sub.n and d=K.sub.qe.sub.q, where K.sub.q is a positive definite diagonal matrix. In Mode III, D=I.sub.n and d=2K.sub.q.sub.q+K.sub.q.sup.2e.sub.q. In Mode IV, D=M.sup.1 and d=M.sup.1(C{dot over (q)}+G)+2K.sub.q.sub.q+K.sub.q.sup.2e.sub.q. Accordingly, the above cost function minimizes the distance between u.sub.2 and the control set
.sub.0. As a result, the robot manipulator's joint position is kept close to its initial position and the robot's motion in the null space is stabilized. The condition B.sub.softu=B.sub.softu.sub.1 maintains the distance to the soft control set (
.sub.soft), i.e., dist(u.sub.2,
.sub.soft)=dist(u.sub.1,
.sub.soft). The above two conditions (u
.sub.s, u
.sub.hard) inherit from the task-space optimization and the third condition (B.sub.softu=B.sub.softu.sub.1) ensures the optimal motion in soft DOFs solved by the joint-space optimization unaffected. Furthermore, the cost function renders the manipulator's motion repetitive, which means stabilized motion in the null space. Accordingly, when n>n.sub.hard+n.sub.soft, there are multiple candidates of u.sub.1 fulfilling the task-space optimization. In this case, the joint-space optimization selects the one that is closest to
.sub.0, i.e., u.sub.2. Because
.sub.0 consists of a single control input, u.sub.2 is always unique. The third condition B.sub.softu=B.sub.softu.sub.1 maintains the distance to the soft control set, i.e., dist(u.sub.2,
.sub.soft)=dist(u.sub.1,
.sub.soft). When n=n.sub.hard+n.sub.soft, the solution to the task-space optimization is unique. In this case, u.sub.1 is the only candidate fulfilling the constraints of the joint-space optimization, so u.sub.2=u.sub.1. Therefore, the final control law is u=u.sub.1 when n=n.sub.hard+n.sub.soft, and u=u.sub.2 when n>n.sub.hard+n.sub.soft.
Universal Control Framework
[0170]
[0171] For example, the user-defined/selected module 1204 allows a user to 1) define the protected/selected parts of the human and the robot; 2) select the control mode of the robot from a list of robot control modes; 3) define the desired trajectory .sub.d(t) of the end effector of the robot manipulator; and 4) define the task frame
.sub.t(t) and its DOF classification .sub.t.
[0172] In various example embodiments, the pre-programmed module 1208 may be configured to generate or formulate a safety control set module 1209 (.sub.s(x,
.sub.hard(x, t) (e.g., corresponding to the hard constraint function) and a soft constraint control set module 1211
.sub.soft(x, t) (e.g., corresponding to the soft constraint function as described hereinbefore according to various embodiments). For example, the pre-programmed module 1208 may be executed before the robot manipulator begins operating to perform a task.
[0173] According to various example embodiments, the safety control set module 1209 may be configured to determine or produce the safety control set .sub.s as a function of the robot state x and the human state
.sub.i() and robot parts
.sub.j(x), and the control-affined model of the robot manipulator in the selected control mode, i.e., {dot over (x)}=f(x)+g(x)(u+). For example, the human state is
[0174] .sub.s(x,
.sub.s according to various example embodiments of the present invention. First, the minimum distance d.sub.i,j(x, ) between a protected/selected human part
.sub.i() and a protected/selected robot part
.sub.j(x) is formulated as a function of the human position and the robot state x. Second, an SMCBF h.sub.i,j(x, )=d.sub.i,j(x, )d.sub.s (e.g., corresponding to the safety control function as described hereinbefore according to various embodiments) is formulated such that the collision between the protected human part
.sub.i and the protected robot part
.sub.j is avoided when the SMCBF h.sub.i,j is positive. Third, a sliding manifold s.sub.i,j is defined using the SMCBF h.sub.i,j and its time derivative {dot over (h)}.sub.i,j, such that the SMCBF h.sub.i,j is kept positive on the sliding manifold s.sub.i,j0. Finally, the safety control set module
.sub.s(x,
[0175] As shown in .sub.s(x,
.fwdarw.[1, 1] is a unit
.sup.2 saturation function. Then, the Lie derivatives in A.sub.i,j and a.sub.i,j are as follows. In Mode II,
.sub.gh.sub.i,j=
.sub.fh.sub.i,j=
.sub.g
.sub.fh.sub.i,j=
.sub.f.sup.2h.sub.i,j=
.sub.g
.sub.fh.sub.i,j=
.sub.f.sup.2h.sub.i,j=
[0176] According to various example embodiments, the hard constraint control set module .sub.hard(x, t) 1210 and the soft constraint control set module
.sub.soft(x, t) 1211 may be configured to determine or produce the hard constraint control set
.sub.hard and the soft constraint control set
.sub.soft as functions of the robot state.x using the desired trajectory
.sub.d(t), the task frame
.sub.t(t) with DOF classification .sub.t, and the control-affined model of the robot in the selected control mode, i.e., {dot over (x)}=f(x)+g(x)(u+). A frame (
(t)) may include a position (3D) and an orientation (3D). In this regard, various example embodiments use a frame to represent an object in a 3D space, such as the end effector of the robot manipulator. Then, the trajectory tracking of the object becomes to make the object's frame (e.g., end effector's frame
.sub.e(t)) coincides with a desired frame (
.sub.d(t)) for all time. Therefore, the desired frame (e.g.,
.sub.d(t)) may be used to represent the desired trajectory.
[0177] .sub.hard and the soft constraint control set
.sub.soft, respectively, according to various example embodiments of the present invention. First, the task-frame tracking error .sup.te(x, t) is formulated using the robot state x, the desired trajectory
.sub.d(t), and the task frame
.sub.t(t). Second, the hard-constraint error .sup.te.sub.hard(x, t)=N.sub.hard.sup.te (e.g., corresponding to the hard trajectory tracking error function for each hard constraint DOF as described hereinbefore according to various embodiments) and the soft-constraint error .sup.te.sub.soft(x, t)=N.sub.soft.sup.te (e.g., corresponding to the soft trajectory tracking error function for each soft constraint DOF as described hereinbefore according to various embodiments) are formulated using the task-frame tracking error .sup.te(x, t) and the DOF classification .sub.t. Third, two sliding vectors of sliding manifolds .sup.ts.sub.hard and .sup.ts.sub.soft are formulated based on the hard-and soft-constraint errors .sup.te.sub.hard and .sup.te.sub.soft and their time derivatives .sup.t.sub.hard and .sup.t.sub.soft, such that the hard- and soft-constraint errors are kept zero on the sliding manifolds .sup.ts.sub.hard=0 and .sup.ts.sub.soft=0, respectively. Finally, the hard constraint control set module
.sub.hard(x, t) 1210 that leads to the sliding manifold .sup.ts.sub.hard=0 and the soft constraint control set module
.sub.soft(x, t) 1211 that leads to the sliding manifold .sup.ts.sub.soft=0 are formulated.
[0178] As shown in .sub.(x, t) is based on B.sub.(x,
.sub.g .sup.te.sub.=N.sub.[(
.sub.g .sup.te.sub.p).sup.T, (
.sub.g .sup.te.sub.o).sup.T].sup.T with
.sub.g .sup.te.sub.p=R.sub.t.sup.TJ.sub.v and
.sub.g .sup.te.sub.o=R.sub.t.sup.TEJ.sub., and
.sub.f .sup.te.sub.=N.sub.[(
.sub.f .sup.te.sub.p).sup.T, (
.sub.f.sup.te.sub.o).sup.T].sup.T with
.sub.f.sup.te.sub.p=R.sub.t.sup.T{dot over (p)}.sub.d+{dot over (R)}.sub.t.sup.Te.sub.p and
.sub.f.sup.te.sub.o=R.sub.t.sup.TE.sub.d+{dot over (R)}.sub.t.sup.Te.sub.o. In Mode III,
.sub.g
.sub.L.sup.te.sub.=N.sub.[(
.sub.g,
.sub.f.sup.te.sub.p).sup.T, (
.sub.g
.sub.f.sup.te.sub.o).sup.T].sup.T with
.sub.g
.sub.f.sup.te.sub.p=R.sub.t.sup.TJ.sub.v and
.sub.g
.sub.f.sup.te.sub.o=R.sub.t.sup.TEJ.sub., and
.sub.f.sup.2 te.sub.=N.sub.[(
.sub.f.sup.2 te.sub.p).sup.T, (
.sub.f.sup.2 te.sub.o).sup.T].sup.T with
.sub.f.sup.2 te.sub.p=R.sub.t.sup.T({dot over (J)}.sub.v{dot over (q)}{umlaut over (p)}.sub.d)+2{dot over (R)}.sub.t.sup.T.sub.p+{umlaut over (R)}.sub.t.sup.Te.sub.p and
.sub.f.sup.2 te.sub.o=R.sub.t.sup.T((E{dot over (J)}.sub.+J.sub.){dot over (q)}(.sub.d))+2{dot over (R)}.sub.t.sup.T.sub.o+{umlaut over (R)}.sub.t.sup.Te.sub.o. In Mode IV,
.sub.g
.sub.f .sup.te.sub.=N.sub.[(
.sub.g
.sub.f .sup.te.sub.p).sup.T, (
.sub.g
.sub.L .sup.te.sub.o).sup.T].sup.T with
.sub.g
.sub.L .sup.te.sub.p=R.sub.t.sup.TJ.sub.vM.sup.1 and
.sub.g
.sub.L .sup.te.sub.o=R.sub.t.sup.TEJ.sub.M.sup.1, and
.sub.f.sup.2 te.sub.=N.sub.[(
.sub.f.sup.2 te.sub.p).sup.T, (
.sub.f.sup.2 te.sub.o).sup.T].sup.T with
.sub.f.sup.2 te.sub.p=R.sub.t.sup.T(J.sub.vM.sup.1(C{dot over (q)}+G)+{dot over (J)}.sub.v{dot over (q)}{umlaut over (p)}.sub.d)+2{dot over (R)}.sub.t.sup.T.sub.p+{umlaut over (R)}.sub.t.sup.Te.sub.p and
.sub.f.sup.2 te.sub.o=R.sub.t.sup.T(J.sub.M.sup.1(C{dot over (q)}+G)+(E{dot over (J)}.sub.+J.sub.){dot over (q)}(E{dot over ()}.sub.d+.sub.d))+2{dot over (R)}.sub.t.sup.T.sub.o+{umlaut over (R)}.sub.t.sup.Te.sub.o. Here, E=(.sub.edI.sub.3[.sub.ed])/2 is a matrix based on the unit quaternion {.sub.ed, .sub.ed}, where [.sub.ed] is the skew-symmetric matrix extracted from .sub.ed such that .sub.ed=[.sub.ed] for
.sup.3.
[0179] In various example embodiments, the safety control set module 1209, the hard constraint control set module 1210 and the soft constraint control set module 1211 formulated are stored in a computer readable storage medium 1212. The real-time implemented module 1216 may then be executed repeatedly or continuously in real-time to control the robot manipulator to operate in the shared workspace with the human.
[0180] The real-time implemented module 1216 may comprise a safety control set determining module 1218 configured to determine the safety control set .sub.s, a constraint control set determining module 1220 configured to determine the hard constraint control set
.sub.hard and the soft constraint control set
.sub.soft, and a control input optimization module 1222 configured to perform control input optimization based on the safety control set
.sub.s, the hard constraint control set
.sub.hard and the soft constraint control set
.sub.soft. The safety control set determining module 1218 may be configured to determine the current safety control set
.sub.s using the safety control set formulation (safety control set module) (
.sub.s(x,
.sub.hard and the current soft control set
.sub.soft using the hard constraint control set formulation (hard constraint control set module) (
.sub.hard(x, t)) 1210 and the soft constraint control set formulation (soft constraint control set module) (
.sub.soft(x, t) 1211, respectively, based on the current robot state x. The control input optimization module 1222 performs control input optimization based on the current control sets
.sub.s,
.sub.hard, and
.sub.soft determined.
[0181] .sub.s,
.sub.hard, and
.sub.soft. In particular, as described hereinbefore, the task-space optimization module 1224 is configured to select the first candidate control input u.sub.1 from an intersection of the safety control set and the hard constraint control set that has a minimum distance to the soft constraint control set.
[0182] In various example embodiments, if the robot manipulator has at least one redundant DOF (e.g., free DOF), i.e., n>n.sub.hard+n.sub.soft, the joint-space optimization module 1226 is configured to determine a second candidate control input u.sub.2 based on the current control sets .sub.s,
.sub.hard, and
.sub.soft. In particular, as described hereinbefore, the joint-space optimization module 1226 is configured to select the second candidate control input from an intersection of the safety control set and the hard constraint control set such that the second candidate control input has the same distance to the soft constraint control set as the first candidate control input and minimizes joint position deviation of the robot manipulator from an initial joint position thereof. When n>n.sub.hard+n.sub.soft, there are multiple candidate control inputs of u.sub.1 fulfilling the task-space optimization. Accordingly, the joint-space optimization is configured to seek to select the candidate control input u.sub.2 that is closest to
.sub.0. Accordingly, the control input u for controlling the robot manipulator is set as the first candidate control input (u=u.sub.1) based on determining that the component has no redundant DOF (e.g., no free DOF), or the control input u for controlling the robot manipulator is set as the second candidate control input (u=u.sub.2) based on determining that the component has at least one redundant DOF (e.g., at least one free DOF). For illustration purposes and without limitation,
.sub.s,
.sub.hard, and
.sub.soft is non-empty (i.e., the soft constraint can be achieved), all candidate control inputs in the intersection are possible u.sub.1, and u.sub.2 is the closest candidate control input
.sub.0 among all possible u.sub.1. As illustrated in
.sub.s,
.sub.hard, and
.sub.soft is empty (i.e., the soft constraint cannot be achieved), the candidate control inputs in the intersection of
.sub.s and
.sub.hard with minimum distance to
.sub.soft are possible u.sub.1, and u.sub.2 is the closest candidate control input to
.sub.0 among all possible u.sub.1.
[0183] According to various example embodiments, the final control input u 1228 generated by the control input optimization module 1222 may then be applied or inputted to the robot manipulator to control it. In various example embodiments, for robot manipulator operating in Mode II, III or IV, the final control input u 1228 may be directly applied to the robot manipulator. However, for a robot manipulator operating in Mode I, various example embodiments further process the final control input u 1228 prior to applying or inputting it to the robot manipulator. In particular, various example embodiments convert the final control input u 1228 (e.g., being a joint-velocity control input, a joint-acceleration control input or a joint-torque control input) to a joint-position control input.
[0184]
[0185] According to various example embodiments, the control gains in the universal control framework 1200 can be tuned as follows regardless of the robot model.
[0186] First, .sub.h and K.sub.s in the robust control terms described hereinbefore may be tuned. For example, .sub.h determines the steady-state error of the SMCBF while K.sub.s determines the steady-state errors of the task constraints. The same HRI scenario was simulated using large and small gains with an order of magnitude difference. It was seen that the steady-state errors decrease as .sub.h and K.sub.s increases. Therefore, according to various example embodiments, .sub.h and K.sub.s are configured or selected to be large enough to limit the steady-state errors to tolerances.
[0187] Next, and K.sub.e may be tuned. For example, a small makes the robot reacts to the approaching human in advance, while a large prevents the robot's reaction until the human is very close to the robot. Furthermore, a large K.sub.e can make the robot return to the desired trajectory quickly when the human retracts from the robot. Therefore, according to various example embodiments, and K.sub.e are configured or selected to ensure smooth transitions between collision avoidance and task implementation.
[0188] Furthermore, according to various example embodiments, K.sub.q is set to tune the robot's motion in the free DOFs. For example, a large K.sub.q leads to an aggressive recovery motion in the free DOF while a large K.sub.q dampens the motion in the free DOF.
[0189] As described hereinbefore,
Experiments and Simulations
[0190] An experimental setup corresponding to that shown in
TABLE-US-00001 TABLE I VALUES OF PARAMETERS IN EXPERIMENTS AND SIMULATIONS SMCBFs = 6, .sub.h = 0.1, d.sub.s = 0.16m. Constraints K.sub.e = diag([3I.sub.3, 5I.sub.3].sup.T), K.sub.s = 0.1I.sub.6, K.sub.q = 10I.sub.6. Mode I u.sub.p, min = 1.sub.6, u.sub.p, max = 1.sub.6, .sub.p = 0.15. (unit: rad) Mode II u.sub.v, min = 31.sub.6, u.sub.v, max = 31.sub.6, .sub.v = 0.5. (unit: rad/s) Mode III u.sub.a, min = 101.sub.6, u.sub.a, max = 101.sub.6, .sub.a = 1.7. (unit: rad/s.sup.2) Mode IV u.sub., min = [281.sub.3.sup.T, 1501.sub.3.sup.T].sup.T, u.sub., max = [281.sub.3.sup.T, 1501.sub.3.sup.T].sup.T, .sub. = 1.5. (unit: N .Math. m)
Validation of Guaranteed Human Safety with Comparison to APF-Based Method
[0191] To demonstrate the effectiveness of the present control method according to various example embodiments, the guaranteed human safety based on SMCBF according to various example embodiments is validated with a comparison to the conventional APF-based method, and the comparison results are shown in .sub.d. According to various example embodiments, the task frame
.sub.t is set identically to
.sub.d, and .sub.t=[soft, soft, soft, hard, hard, hard].sup.T. In the experiment conducted, because it is difficult for a human to repeat the exact same motion for comparison, a robot is used to mimic the human's left hand. The robot manipulator operates on the joint-velocity control mode (i.e., Mode II). For the present control method 1200, the following two sets of control gains were tested. C1: .sub.h=0.1, K.sub.s=0.1I.sub.6, =10, K.sub.e=10I.sub.6, and K.sub.q=10I.sub.6; C.sub.2: .sub.h=1, K.sub.s=I.sub.6, =1, K.sub.e=I.sub.6, and K.sub.q=I.sub.6. For the conventional APF-based method, the control law is u.sub.v=u.sub.att+J.sub.rep.sup.TF.sub.rep, where u.sub.att is the control term for trajectory tracking, J.sub.rep is the Jacobian matrix, F.sub.rep is the repulsive force depending on the APF, and is a coefficient to be selected.
[0192] The distance d between the human's hand and the end effector of the robot manipulator in the comparison experiments are plotted
Validation of Hierarchical Task Consistency with Comparison to Threshold-Based Method
[0193] Next, the hierarchical task consistency based on the control input optimization according to various example embodiments is validated with a comparison to the conventional threshold-based method, and the comparison results are shown in
Validation of Universality
[0194]
[0195]
[0196] To validate the universality of the universal control method 1200 according to various example embodiments of the present invention, the same experiment was repeated for the robot manipulator operating in the joint-position control mode (i.e., Mode I) using the motions of human hands shown in
[0197]
[0198] Accordingly, a universal control method or framework 1200 that can adapt to different types of control modes of robot manipulators is provided according to various example embodiments to achieve HRI with guaranteed human safety and hierarchical task consistency. With the universal control method 1200, for example, the robot manipulator can perform collaborative tasks with human(s) with guaranteed human safety. As described hereinbefore according to various example embodiments, first, the SMCBF that uses a sliding mode to deal with different relative degrees and reject disturbance is introduced, after which a set of SMCBFs is defined to guarantee human safety. Next, hard and soft constraints for primary and full task consistencies are defined by choosing a task frame and classifying its DOFs. Finally, a task-space optimization and a joint-space optimization are performed to generate a continuous control input for controlling the robot manipulator to operate in the shared workspace with human(s). Furthermore, from experiments and simulations conducted to validate the universal control method 1200 according to various example embodiments with comparisons to existing methods, it was found that the universal control method 1200 can keep human-robot distance above a critical value regardless of control gains. Furthermore, it can fulfill the full task consistency maximally without setting a threshold and the performance of the universal control method is consistent for different robot models.
[0199] While embodiments of the invention have been particularly shown and described with reference to specific embodiments, it should be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the scope of the invention as defined by the appended claims. The scope of the invention is thus indicated by the appended claims and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced.