The present invention relates to tension distribution in the torque control of a tendon-driven manipulator.
Robots are automated devices able to manipulate objects using a series of links, which in turn are interconnected via one or more robotic joints. Each joint in a typical robot represents at least one independent control variable, i.e., a degree of freedom (DOF). End-effectors such as hands, fingers, or thumbs are ultimately actuated to perform a task at hand, e.g., grasping a work tool or an object. Therefore, precise motion control of the robot may be organized by the level of task specification, including object, end-effector and joint-level control. Collectively, the various control levels achieve the required robotic mobility, dexterity, and work task-related functionality.
Tendon transmission systems are often used in robotic systems, e.g., in the actuation of robotic fingers in high degree of freedom (DOF) hands. For force control of a given tendon-driven finger, the desired torques on the finger must be translated into tension on the tendons. Since tendons can only transmit forces in tension, i.e., in a pull-pull arrangement, the number of tendons and the number of actuators must exceed the DOF to achieve fully determined control of the tendon-driven finger. To become fully determined, the finger needs only one tendon more than the number of DOF, which is known as an n+1 arrangement.
Given a desired set of joint torques, an infinite set of solutions exist for corresponding tendon tensions. Any solution, however, that assigns a negative tension value to a tendon is not physically valid. This is due to the unidirectional nature of the tendons, i.e., tendons can resist extension but not compression. Existing methods for this problem provide solutions that ensure that all tendon tensions are greater than or equal to zero. However, when upper saturation limits are achieved, e.g., when the maximum tension limit of the hardware is met, the resulting joint torques may become unpredictable, and undesired coupling may be introduced.
Accordingly, a torque control method and system are provided herein for tension distribution in a robotic manipulator driven by tendons. The method assigns or distributes tension to each tendon of the manipulator within a lower and upper bound. It satisfies the lower bound while minimizing the internal tension applied. At the same time, it satisfies the upper bound while eliminating the coupled effects of saturation. Smooth and predictable torque control of the manipulator is thus provided.
The method distributes tension among n+1 tendons of a tendon-driven finger in a robotic system, wherein the finger itself is characterized by n degrees of freedom. The method includes determining a maximum and a minimum functional tension of each of the n+1 tendons, and using a controller to automatically distribute tension among the n+1 tendons. Each tendon is assigned a tension value that is less than its corresponding maximum functional tension and greater than or equal to its corresponding minimum functional tension.
When the upper bound is exceeded by a tendon, the method provides for a linear scaling of the joint torques such that the upper bound is satisfied. This linear scaling allows the tensions to saturate without coupling effects across the joint torques. The method always assigns the minimum tension value equal to the lower bound. This ensures that the internal tension on the structure is minimized. The method is shown to require a maximum of one iteration of the solution. Hence, it does not entail an open-ended iterative process, as the mathematical nature of the problem would otherwise entail. This characteristic is important for real-time applications.
A robotic system includes a robot having at least one tendon-driven finger characterized by n degrees of freedom and n+1 tendons, and a controller having an algorithm for controlling the n+1 tendons. The algorithm is adapted for determining a maximum and a minimum functional tension of each of the n+1 tendons, and automatically distributing tension among the n+1 tendons, such that each tendon is assigned a tension value that is less than its corresponding maximum functional tension and greater than or equal to its corresponding minimum functional tension.
A controller is also provided for the tendon-driven robotic finger, with the controller including an algorithm adapted for determining a maximum and a minimum functional tension of each tendon of the tendon-driven finger, and automatically distributing tension among the n+1 tendons as noted above.
The above features and other features and advantages of the present invention are readily apparent from the following detailed description of the best modes for carrying out the invention when taken in connection with the accompanying drawings.
Referring to the drawings, wherein like reference numbers refer to the same or similar components throughout the several views, and beginning with
The robot 10 is adapted to perform one or more automated tasks with multiple degrees of freedom (DOF), and to perform other interactive tasks or control other integrated system components, e.g., clamping, lighting, relays, etc. According to one embodiment, the robot 10 is configured as a humanoid robot as shown, with over 42 DOF, although other robot designs may also be used having fewer DOF, and/or having only a hand 18 with at least one tendon-driven finger 19, without departing from the intended scope of the invention. The robot 10 of
Each robotic joint may have one or more DOF, which varies depending on task complexity. Each robotic joint may contain and may be internally driven by one or more actuators, e.g., joint motors, linear actuators, rotary actuators, and the like. The robot 10 may include human-like components such as a head 12, a torso 14, a waist 15, and arms 16, as well as the hands 18, fingers 19, and thumbs 21, with the various joints noted above being disposed within or between these components. The robot 10 may also include a task-suitable fixture or base (not shown) such as legs, treads, or another moveable or fixed base depending on the particular application or intended use of the robot. A power supply 13 may be integrally mounted to the robot 10, e.g., a rechargeable battery pack carried or worn on the back of the torso 14 or another suitable energy supply, or which may be attached remotely through a tethering cable, to provide sufficient electrical energy to the various joints for movement of the same.
Still referring to
The controller 22 may include a server or a host machine 17 configured as a distributed or a central control module, and having such control modules and capabilities as might be necessary to execute all required control functionality of the robot 10 in the desired manner. Additionally, the controller 22 may be configured as a general purpose digital computer generally comprising a microprocessor or central processing unit, read only memory (ROM), random access memory (RAM), electrically-erasable programmable read only memory (EEPROM), a high speed clock, analog-to-digital (A/D) and digital-to-analog (D/A) circuitry, and input/output circuitry and devices (I/O), as well as appropriate signal conditioning and buffer circuitry. Any algorithms resident in the controller 22 or accessible thereby, including an algorithm 100 for distributing tension among tendons of a manipulator as explained below, e.g., a finger 19, and a tendon map 50 as explained below, which may be stored in ROM and accessed or executed as needed to provide the respective functionality.
Referring to
Finger 19 includes tendons 34 and a plurality of joints 32, some of which are independent joints indicated by arrows τ1, τ2, and τ3. Finger 19 has n independent joints (n DOF) and n+1 tendons 34. The finger 19 shown in
For a tendon-driven finger 19 having n degrees of freedom and n+1 tendons 34, the torque control strategy is determined by algorithm 100, which automatically distributes tension among the n+1 tendons such that each respective tendon is assigned a respective tension f1 through fn+1 that is less than the maximum functional tension, fmax, and greater than or equal to the minimum functional tension, fmin. The tensions f through fn+1 are allocated within the range, [fmin, fmax], by linearly scaling the joint torques when necessary.
Therefore, in tendon-driven finger 19, the vector of tendon tensions, f is allocated such that each tension f1 through fn+1 falls within the range [fmin, fmax]. Due to the unidirectional nature of the tendons 34, fmin≧0. The relationship between the n joint torques, τ, and the n+1 tendon tensions f1 through fn+1 is:
where t is defined as the internal tension. R (εn×n+1) is the tendon map 50, shown schematically in
The inverse of the tendon transformation in (1) can be partitioned as follows:
A (εn+1×n) and a (εn+1×1) are constants that can be computed ahead of time and stored as calibrated values, and w is selected to be orthogonal to R(RwT=0). Under this condition:
A=R+, α=w+. (3)
The superscript (+) indicates the pseudoinverse. As noted, the null-space of the tendon transform must be a positive vector. α is thus also all-positive, since the pseudoinverse of a positive vector is also positive.
Referring to
f
i
=A
iτ+αit≧fmin (4)
This provides the following solution for the internal tension, t0:
Proceeding to step 106, the internal tension value t0 is then substituted into equation (2) for the tension distribution, i.e.,:
Thereafter, the controller 22 determines whether any of the tension values f1 through fn+1 exceeds the upper bound, fmax. If none of the tension values f1 through fn+1 exceeds the upper bound, Amax, the algorithm 100 proceeds to step 108, the tension values f1 through fmax, are assigned to their respective tendons 34, and the algorithm 100 is finished. If at step 106 it is determined that any of the tension values f1 through f n+1 exceeds the upper bound, fmax, the algorithm proceeds to step 110, wherein a scaled solution is computed. Let i represent the element with the minimum tension and j represent the element with the maximum tension. Assuming that fj>fmax the torques are linearly scaled:
and the solution is found where fi=fmin and fj=fmax. α is a positive scalar. The exact solution follows:
This solution guarantees that f ε[fmin, fmax]under two conditions: when fmin=0 or the finger 19 has a balanced configuration. A finger with a balanced configuration exhibits no net torques when the tensions are all equal (so the elements of w are all equal). In one of these two cases, the algorithm can immediately move to step 108 and exit. Otherwise, the solution does not guarantee that all elements lie within the desired limits, and the results need to be checked with the possibility of a second iteration. If none of the tension values fi through f n+1 exceeds the upper bound, fmax, then, at step 114 the tension values fi through fn+1 are assigned to their respective tendons 34.
If at step 112 any of the tension values f1 through f n+1 exceeds the upper bound, fmax, then, at step 116, equation (8) above is iterated after reassigning the index i or j, respectively, to the new extreme element. Due to the nature of the tendon transformation, the need to iterate should occur only rarely. For a typical design, for example, it may occur for less than 2% of the commanded torque values. In addition, a second iteration is effectively sufficient for fully determining the tension values to be assigned, and the algorithm can be capped at that iteration.
Advantages of the present invention lie in at least two key points. First, the distribution of tendon tensions occurs with a computationally-efficient algorithm, i.e., algorithm 100, that does not required linear programming. Second, the maximum tension is capped or limited with a linear scaling of the desired joint torques, eliminating the coupling and coupled disturbance ordinarily caused by saturation, producing smooth and linear torque control. This is in contrast to conventional methods which have tensions saturating mechanically to produce coupled and unpredictable torques. Additionally, algorithm 100 sets the lowest tension equal to the lower bound, or limit, thus minimizing the internal tension.
The scaled solution resultant from equation (8) rarely pushes another element beyond the bounds, that is, beyond fmax. This result can also be explained analytically, based on the nature of R. First, note that α is scalar such that αε(0,1). The result is intuitive, and the proof follows. Consider the solution for α in (8). Since fi=fmin and fj>fmax:
f
min
=A
iτ+αit0
f
max
<A
jτ+αjt0 (9)
Substituting into equation (8) shows that α<1. At the same time, showing that α>0 is trivial.
Let the parameters (0f, t0) refer to the initial solution (6), while (1f, t1) refer to the first iteration of the scaled solution to equation (8). It can be shown that the two solutions relate as follows. Recall that i and j refer to the elements with the lowest and highest values, respectively.
The first term on the right-hand side is the linearly scaled portion of the result. This term maintains the order of the elements. The second term, however, represents deviation from the linear distribution. Hence, when fmin=0, the term drops out and the scaled solution fully maintains the relative magnitudes of the elements. This guarantees that fε[0, fmax].
When fmin≠0, the relative order of the elements can change and a different element can jump the limit. Consider the case when another element, k, exceeds element j such that 1fk>1fj. As seen from equation (10), the difference after the first iteration is:
The first term is less then zero by the definition of element j. Regarding the second term, the elements of α are equal given a balanced configuration. Hence, 1fk can never be greater than 1fj in this case. This occurs whenever the columns of R sum to zero. Typically, fingers 19, if not balanced, will not diverge greatly from a balanced configuration. Accordingly, the relative difference between the elements of α will be small, and as such, α third element will rarely exceed the desired limits after the first iteration in equation (8). Hence, step 116 needs to be performed only once.
While the best modes for carrying out the invention have been described in detail, those familiar with the art to which this invention relates will recognize various alternative designs and embodiments for practicing the invention within the scope of the appended claims.
The present application claims the benefit of and priority to U.S. Provisional Application No. 61/174,316 filed on Apr. 30, 2009.
This invention was made with government support under NASA Space Act Agreement number SAA-AT-07-003. The government may have certain rights in the invention.
Number | Date | Country | |
---|---|---|---|
61174316 | Apr 2009 | US |