(1) Field of Invention
The present invention relates to robot controllers and, more particularly, to method for adaptive obstacle avoidance for articulated redundant robot arms.
(2) Description of Related Art
A variety of methods for controlling robot arms are known in the art [see references 1, 2, 3, and 4, cited below]. The most notable of such methods is the “Direction-to-Rotation Transform” (DIRECT) robot controller model disclosed in [1 and 2]. The DIRECT model develops relationships between joint angles and arm end locations by a random movement learning process known as “babbling.” Babbling is similar to the strategy used by infants when learning to control their limbs. It involves making a series of random muscle motions and observing the resulting change in arm location. Over time, enough muscle-motion to arm-location relationships are learned that the infant can reach any desired location in the physical vicinity by retrieving the proper joint change from muscle memory. In the case of a robot controller, the system maps changes in joint angles to changes in end-effector locations during the babbling period. After building an extensive knowledge database of joint angle to end-effector location relationships, the system can reach any location in the physical vicinity by retrieving the proper joint angle changes necessary to reach that location. The DIRECT model is fault tolerant and scalable to large degrees of freedom. However, the DIRECT model lacks the ability to avoid obstacles while reaching for targets. This makes the DIRECT model impractical for use in environments containing obstacles.
Another method known in the art for controlling robot arms relies on known trajectories comprising readily available geometries and absolute joint angles [3]. The trajectory to the target serves as the attractor. The influence of each obstacle in the environment is superimposed on the attractor dynamics to modify the path to the target. The reliance of this system on prescribed trajectories makes it highly dependent on system parameters and difficult to implement. Also, the use of absolute joint angles results in poor fault tolerance and poor scalability to robots with large redundancy and perturbations.
Thus, a continuing need exists for a method of obstacle avoidance for robot arms that is fault-tolerant, scalable, and easily implemented in environments containing obstacles.
(3) References Cited
[1] D. Bullock, S. Grossberg, and F. H. Guenther, “A Self-Organizing Neural Model of Motor Equivalent Reaching and Tool Use by a Multi joint Arm,” Journal of Cognitive Neuroscience, vol. 5, pp. 408-435, 1993.
[2] N. Srinivasa and S. Grossberg, “A Self-Organizing Neural Model for Fault Tolerant Control of Redundant Robots,” in Proc. of the IEEE International Joint Conference on Neural Networks, pp. 1146-1152, 2007.
[3] Iossifidis, I and G. Schoner, “Dynamical Systems Approach for the Autonomous Avoidance of Obstacles and Joint-Limits for an Redundant Robot Arm,” Proc. of IEEE 2006 International Conference on Intelligent Robots and Systems, IROS'06, Beijing, China, October 2006.
[4] B. R. Fajen, W. H. Warren, S. Temizer and L. P. Kaelbling, “A Dynamical Model of Visually-guided Steering, Obstacle Avoidance, and Route Selection,” International Journal of Computer Vision, pp. 13-34, 2003.
The present invention relates to robot controllers and, more particularly, to method for adaptive obstacle avoidance for articulated redundant robot arms. The method begins with calculating an obstacle avoidance vector for each of a set of limbs in a robot arm. The obstacle avoidance vector incorporates factors including; (1) a distance and direction of each of a set of obstacles to the limb; and (2) when the limb is part of a kinematic chain of limbs, contributions from the obstacle avoidance vectors of all peripheral limbs in the kinematic chain. Then, the obstacle avoidance vector is applied to constrain the inverse model in a robot arm controller, whereby the robot arm can reach a target while avoiding obstacles.
In another aspect, the obstacle avoidance vector for each limb is determined by the equation:
where:
{right arrow over (v)}limb n obstacle avoidance is the obstacle avoidance vector for limb n;
f(x) is the kinematic chaining function;
{right arrow over (v)}obstacles to limb n is a vector representing the distance and direction of all obstacles relative to limb n; and
is a summation function over all limbs in the kinematic chain.
In yet another aspect, the vector {right arrow over (v)}obstacles to limb n, representing the distance and direction of all obstacles to limb n is determined by the equation:
where:
{right arrow over (v)}obstacles to limb n is a vector representing the distance and direction of all obstacles to limb n;
k is an operator-defined parameter for controlling the degree of obstacle avoidance desired;
min is a minimum function;
{right arrow over (v)}obstacle i to limb n is a vector representing the distance and direction of obstacle i to limb n;
is a summation function over all obstacles;
∥x∥ is the magnitude of x; and
min∥{right arrow over (v)}obstacles to limb n∥ is the minimum distance from all obstacles to limb n.
In a further aspect of the method of the present invention, the obstacle avoidance vector constrains the inverse model in a robot controller according to the equation:
Δθn=∂n×({right arrow over (v)}target−{right arrow over (v)}limb n obstacle avoidance),
where:
Δθn is the change in joint angle for limb n;
∂n is the nth row of the inverse Jacobian matrix learned during babbling;
× is a multiplication function;
{right arrow over (v)}target is a target vector representing the direction and distance from the limb to the target; and
{right arrow over (v)}limb n obstacle avoidance is the obstacle avoidance vector for limb n.
Another aspect of the present invention is a data processing system for adaptive obstacle avoidance for articulated redundant robots comprising one or more processors configured to perform the acts of the method of the present invention, as previously described.
A further aspect of the present invention is a computer program product for adaptive obstacle avoidance for articulated redundant robots. The computer program product comprises computer-readable instructions stored on a computer-readable medium that are executable by a computer having a processor for causing the processor to perform the acts of the method of the present invention, as previously described.
The objects, features and advantages of the present invention will be apparent from the following detailed descriptions of the various aspects of the invention in conjunction with reference to the following drawings, where:
The present invention relates to robot controllers and, more particularly, to method for adaptive obstacle avoidance for articulated redundant robot arms. The following description is presented to enable one of ordinary skill in the art to make and use the invention and to incorporate it in the context of particular applications. Various modifications, as well as a variety of uses in different applications will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to a wide range of embodiments. Thus, the present invention is not intended to be limited to the embodiments presented, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
In the following detailed description, numerous specific details are set forth in order to provide a more thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without necessarily being limited to these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention.
The reader's attention is directed to all papers and documents which are filed concurrently with this specification and which are open to public inspection with this specification, and the contents of all such papers and documents are incorporated herein by reference. All the features disclosed in this specification, (including any accompanying claims, abstract, and drawings) may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise. Thus, unless expressly stated otherwise, each feature disclosed is only one example of a generic series of equivalent or similar features.
Furthermore, any element in a claim that does not explicitly state “means for” performing a specified function, or “step for” performing a specific function, is not to be interpreted as a “means” or “step” clause as specified in 35 U.S.C. Section 112, Paragraph 6. In particular, the use of “step of” or “act of” in the claims herein is not intended to invoke the provisions of 35 U.S.C. 112, Paragraph 6.
Further, if used, the labels left, right, front, back, top, bottom, forward, reverse, clockwise and counter clockwise have been used for convenience purposes only and are not intended to imply any particular fixed direction. Instead, they are used to reflect relative locations and/or directions between various portions of an object.
(1) Introduction
Reaching for targets in space is a basic activity performed by humans and animals. The ability to reach for targets is acquired via learning in the early stages of life and is repeatedly refined as an organism grows and the control plan of the organism changes. Learning offers the flexibility to adapt muscle controls as new situations are encountered. Industrial robots are far more programmed and less flexible than biological organisms in order provide repeatable safe and robust operations. Because of this, movement through a complex obstacle environment must be programmed into the robot controller, making it ill-suited to changing real-world situations.
The purpose of the present invention is to provide a robust robot arm controller that can adapt to real-world situations. The present invention allows a robot to negotiate around obstacles in various environments in an un-programmed fashion. The invention is inspired by the learning processes of biological organisms. It offers a learning framework to acquire reaching capability, and then to modify the controller via perceptual influences in order to avoid obstacles during reaching. The present invention obviates the need to precisely program paths for robots to follow as with current industrial robots, offering a degree of autonomy not known in the art.
(2) Method for Adaptive Obstacle Avoidance
The present invention relates to robot controllers [see references 1, 2, 3, and 4, cited above] and, more particularly, to a method for adaptive obstacle avoidance for articulated redundant robot arms. The method of the present invention was originally developed as an extension of the “Direction-to-Rotation Transform” (DIRECT) method robot controller [1 and 2]. However, it should be noted that the method of the present invention is applicable to robot controllers in general, and should not be interpreted as being limited to applications to the DIRECT method. Redundancy in this context means a robot arm contains at least one joint with at least as many degrees of freedom as the dimensions of task space. For example, for a two dimensional task space the robot arm needs, at a minimum, one joint with two degrees of freedom. If this joint is the shoulder then the two angles may be thought of as azimuth and elevation. For a three dimensional task space one joint with three degrees of freedom or two joints where the sum of degrees of freedom of the two joints greater than or equal to three. In general, the sum of the degrees of freedom of all the joints of a robot arm must be greater than or equal to the dimensions of the task space.
{right arrow over (v)}target=[xtarget, ytarget].
{right arrow over (v)}obstacle to limb n=[xobstacle to limb n, yobstacle to limb n].
The DIRECT controller updates joint angles by applying a transformation on the desired change in end-effector location. This transformation is preferably the inverse of the Jacobian matrix learned during the babbling phase, which has elements for each dimension in the workspace and each joint in the arm, as shown below:
where:
J−1(θ) represents the inverse of the Jacobian matrix for the joint angle θ;
n is a limb;
m is the total number of limbs in the kinematic chain;
d is the number of dimensions in Cartesian space; and
∂nd is the joint angle for a joint n in the Cartesian dimension d.
The elements of the Jacobian matrix are learned during the “babbling” phase in obstacle-free space as described in [1 and 2]. The Jacobian represents the mapping from a given change in joint angles to the achieved direction of the end of the robot arm. The inverse model represents the mapping between a desired direction of end position in the end of the robot arm and the change in angles of each degree of freedom of each joint. The present invention constrains the inverse model in the controller by subtracting an obstacle avoidance vector ({right arrow over (v)}limb n obstacle avoidance) from the desired change in arm endpoint according to the following equation:
Δθn=∂n×({right arrow over (v)}target−{right arrow over (v)}limb n obstacle avoidance),
where:
Δθn is the change in joint angle for limb n;
∂n is the nth row of the inverse Jacobian matrix learned during babbling;
× is a multiplication function;
{right arrow over (v)}target is a target vector representing the direction and distance from the limb to the target; and
{right arrow over (v)}limb n obstacle avoidance is the obstacle avoidance vector for limb n.
The obstacle avoidance constraints are applied to each limb independently. The obstacle avoidance vector {right arrow over (v)}limb n obstacle avoidance can comprise any of a variety of factors, but should at a minimum depend on: (1) the distance and direction of each obstacle in the workspace to each limb, denoted as {right arrow over (v)}obstacle to limb n and illustrated in
A specific function which can be used to determine {right arrow over (v)}limb n obstacle avoidance is shown below:
where:
{right arrow over (v)}limb n obstacle avoidance is the obstacle avoidance vector for limb n;
f(x) is a kinematic chaining function;
{right arrow over (v)}obstacles to limb n is a vector representing the distance and direction of all obstacles relative to limb n; and
is a summation function over all limbs in the kinematic chain; and where:
where:
{right arrow over (v)}obstacles to limb n is a vector representing the distance and direction of all obstacles to limb n;
k is an operator-defined parameter for controlling the degree of obstacle avoidance desired;
min is a minimum function;
{right arrow over (v)}obstacle i to limb n is a vector representing the distance and direction of obstacle i to limb n;
is a summation function over all obstacles;
∥x∥ is the magnitude of x; and
min∥{right arrow over (v)}obstacles to limb n∥ is the minimum distance from all obstacles to limb n.
Also, as an example for a single joint angle θ3 trained in a two-dimensional Cartesian space:
where:
Δθ3 is the change in joint angle for limb 3;
∂3x is the x component of the inverse Jacobian learned during babbling;
xtarget is the x component of the vector from limb 3 to the target;
∂3y is the y component of the inverse Jacobian learned during babbling; and
ytarget is the y component of the vector from limb 3 to the target.
The obstacle avoidance vector {right arrow over (v)}limb n obstacle avoidance includes contributions from all obstacles. It also depends on the position of the limb n in the total kinematic chain of m limbs. The term “kinematic chain,” as known in the art and used in this document, means linked by motion. For example, a shoulder movement affects a kinematic chain comprising the upper arm, the forearm, and the hand. An elbow movement affects a kinematic chain comprising the forearm and hand. A wrist movement only affects the motion of the hand. The same basic principle applies to a redundant robot arm with multiple limbs, where the movement of basal limbs will affect the movement of peripheral limbs.
A host of functions can be used to weight the vectors, such as an inverse distance function and an exponential function. In a preferred embodiment the inverse distance function
is used to weight the vectors. Thus, the vector {right arrow over (v)}obstacles to limb n is scaled by the magnitude of the distance of each obstacle to the limb n.
Overall, {right arrow over (v)}limb n obstacle avoidance is a unit direction vector that represents the weighted average of the vectors for all obstacles, represented by the factor
in the above equations. Since more weight is given to vectors with closer proximity between obstacle and limb, the direction of {right arrow over (v)}limb n obstacle avoidance represents the optimal direction for a limb n to move in order to simultaneously avoid all obstacles.
The unit direction vector {right arrow over (v)}limb n obstacle avoidance is scaled by the weighting factor
which weights the vector by the inverse of the minimum distance from limb n to all obstacles, and multiplies this by a parameter k (described below). This final weighting by the minimum distance constrains the change in joint angle based on the closest, and most urgent, obstacle.
Finally, the parameter k is an operator-determined parameter which controls the degree of obstacle avoidance. A breakdown of the components of parameter k is shown below:
k=k0×∥{right arrow over (v)}target∥,
where:
k0 is an operator defined parameter; and
∥{right arrow over (v)}target∥ is the distance to the target.
The distance to the target ∥{right arrow over (v)}target∥ is included in order to weight the obstacle avoidance vector as heavily as the target. Often, the target distance is much greater than one unit from the end-effector. Without the term ∥{right arrow over (v)}target∥, the contributions from the target would dominate the joint angle update, thereby creating obstacle avoidance only when the minimum distance to an obstacle is much less than one unit. The user defined parameter k0 allows the amount of obstacle avoidance to be scaled, where 0<k0<1. A value of k0=0 cancels any avoidance, while k0=1 causes total avoidance. An appropriate parameter k0 should be chosen to suit the unique obstacle environment at hand.
(3) Data Processing System
A block diagram depicting the components of a generic obstacle avoidance data processing system for the present invention is provided in
(4) Computer Program Product
An illustrative diagram of a computer program product embodying the present invention is depicted in
Number | Name | Date | Kind |
---|---|---|---|
4999553 | Seraji | Mar 1991 | A |
5430643 | Seraji | Jul 1995 | A |
5737500 | Seraji et al. | Apr 1998 | A |
20070255454 | Dariush | Nov 2007 | A1 |
Entry |
---|
D. Bullock, et al., “A self-organizing neural model of motor equivalent reaching and tool use by a multi-joint arm,” Journal of Cognitive Neuroscience, vol. 5, pp. 408-435, 1993. |
N. Srinivasa, et al., “A self-organizing neural model for fault tolerant control of redundant robots,” in Proc. of the IEEE International Joint Conference on Neural Networks, pp. 1146-1152, 2007. |
I. Iossifidis, et al., “Dynamical systems approach for the autonomous avoidance of obstacles and joint-limits for an redundant robot arm,” Proc. of IEEE 2006 International Conference on Intelligent Robots and Systems, IROS'06, Beijing, China, Oct. 2006. |
B.R. Fajen, et al., “A dynamical model of visually-guided steering, obstacle avoidance, and route selection,” International Journal of Computer Vision, pp. 13-34, 2003. |