Method and apparatus for dynamically reprogramming remote autonomous agents
First Claim
1. An apparatus, comprising a controlled element (10) and a control system (11), the control system (11) using a control system equation (eq. (1)) to determine control signals (dq/dt) and the control system (11) then providing the control signals (dq/dt) to the controlled element (10), the control system (11) implemented so as to include executable elements (11a 11d 11e 11h) operative according to coded instructions, the apparatus adapted so as to load the executable elements (11a 11d 11e 11h) at power on into a memory device (11f) from which coded instructions are then obtained by which the control system (11) is operative, the apparatus characterized in that the control system (11) comprises:
- a controller (11c), comprising static controller code elements (11e) and responsive to a script file indicating a code structure (11d), for providing at least some components (W,F,α
,β
) of the control system equation (eq. (1)), the controller (11c) for creating the code structure (11d) in the memory device (11f);
wherein, in providing the code structure (11d), the controller (11c) parses the script file so as to create the code structure (11d) in the memory device (11f) or in a memory device holding auxiliary memory, and imparts to the code structure (11d) executable logic enabling the code structure (11d) to return a set of one or more values when queried.
6 Assignments
0 Petitions
Accused Products
Abstract
An apparatus and associated method, the apparatus comprising a controlled element (10), such as a robotic manipulator, and a dynamically updatable control system (11). The control system (11) uses a control system equation (eq. (1)) to determine control signals (dq/dt) for controlling the controlled element (1) given any required inputs (q, V) to the control system equation (eq. (1)). The control system (11) is dynamically updatable in that in response to a script file indicating a code structure (11d) preferably having linked nodes (12a 13a-c) and representing at least some components (W,F,α,β) of the control system equation (eq. (1)), the control system (11) creates the code structure (11d), at run-time, and does so such that the nodes (12a 13a-c) can be queried (i.e. are executable logic) to provide values for at least some components (W,F,α,β) of the control system equation (eq. (1)).
28 Citations
23 Claims
-
1. An apparatus, comprising a controlled element (10) and a control system (11), the control system (11) using a control system equation (eq. (1)) to determine control signals (dq/dt) and the control system (11) then providing the control signals (dq/dt) to the controlled element (10), the control system (11) implemented so as to include executable elements (11a 11d 11e 11h) operative according to coded instructions, the apparatus adapted so as to load the executable elements (11a 11d 11e 11h) at power on into a memory device (11f) from which coded instructions are then obtained by which the control system (11) is operative, the apparatus characterized in that the control system (11) comprises:
-
a controller (11c), comprising static controller code elements (11e) and responsive to a script file indicating a code structure (11d), for providing at least some components (W,F,α
,β
) of the control system equation (eq. (1)), the controller (11c) for creating the code structure (11d) in the memory device (11f);
wherein, in providing the code structure (11d), the controller (11c) parses the script file so as to create the code structure (11d) in the memory device (11f) or in a memory device holding auxiliary memory, and imparts to the code structure (11d) executable logic enabling the code structure (11d) to return a set of one or more values when queried. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
in which;
V is a vector of length m indicating motion of a point on an end-effector of the robotic manipulator rigidly attached to one or more joints of the robotic manipulator (10);
q is a vector of length n defining the pose of the robotic manipulator (10);
{dot over (q)} is the rate of change q with time;
J is a known m×
n manipulator Jacobian and is possibly a function of q;
NJ is an n×
(n−
m) two-dimensional array defined such that JNJ=0;
α
is a known scalar;
W is a known two-dimensional array and is a function of q; and
F is a known vector and is a function of q, and at least one or more of W, F and α
are created in the memory device (11f) by the controller (11c) as part of the code tree structure (11d).
-
-
8. An apparatus as in claim 7, wherein the control system equation (eq. (1)) includes a scaling factor β
- (q,V) so that the values provided by the control system are given by;
and the scaling factor β
(q,V) is created in the memory device (11f) by the controller (11c) as part of the code tree structure (11d).
- (q,V) so that the values provided by the control system are given by;
-
9. An apparatus as in claim 2, wherein the code tree structure (11d) further comprises at least one container, and wherein the container contains the root node and is implemented so as to be able to create the expression elements of the other branch and leaf nodes.
-
10. An apparatus as in claim 9, wherein the container provides access to information relating to the state of the control system (11).
-
11. An apparatus as in claim 10, wherein each expression element provides an indication allowing access to the container.
-
12. An apparatus as in claim 1, wherein the control system (11) further comprises a singularity avoidance element using multi-pass singularity detection.
-
13. An apparatus as in claim 1, wherein the control system (11) further comprises at least either means responsive to an exchangeable end-effector description or means responsive to an exchangeable joint type description.
-
14. An apparatus as in claim 1, wherein a creator function is used by the controller (11c) to impart to the code structure (11d) executable logic.
-
15. A method by which a control system (11) is operative to control a controlled element (10) using a control system equation (eq. (1)), the method characterized by:
-
a step (53) in which expressions or values for at least some components (W,F, α
,β
) of the control system equation (eq. (1)) are communicated to the control system (11) as a script file; and
a step (55) in which the control system (11) creates, in a memory device (11f) from which coded instructions are then obtained by which the control system (11) is operative, at run-time, a code structure (11d) representing each of the components of the control system equation (eq. (1)) for which the script file provides an expression or a value, wherein in creating the code structure (11d), the control system (11) imparts to the code structure (11d) executable logic enabling the code structure (11d) to return a set of one or more values when queried. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23)
in which;
V is a vector of length m indicating motion of a point on an end-effector of the robotic manipulator rigidly attached to one or more joints of the robotic manipulator (10);
q is a vector of length n defining the pose of the robotic manipulator (10);
{dot over (q)} is the rate of change q with time;
J is a known m×
n manipulator Jacobian and is possibly a function of q;
NJ is an n×
(n−
m) two-dimensional array defined such that JNJ=0;
α
is a known scalar;
W is a known two-dimensional array and is a function of q; and
F is a known vector and is a function of q, and at least one or more of W, F and α
are created in the memory device (11f) by the controller (11c) as part of the code tree structure (11d).
-
-
22. A method as in claim 21, wherein the control system equation (eq. (1)) includes a scaling factor β
- (q,V) so that the values provided by the control system are given by;
and the scaling factor β
(q,V) is created in the memory device (11f) by the controller (11c) as part of the code tree structure (11d).
- (q,V) so that the values provided by the control system are given by;
-
23. A method as in claim 15, wherein a creator function is used to impart to the code structure (11d) executable logic.
Specification