Path-modifying control system managing robot singularities
11667035 · 2023-06-06
Assignee
Inventors
Cpc classification
B25J11/0075
PERFORMING OPERATIONS; TRANSPORTING
B25J13/088
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1605
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1666
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/40333
PHYSICS
B25J9/163
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
A controller for robot arms and the like having mechanical singularities identities paths near the singularities and modifies those paths to avoid excessive joint movement according to a minimization of tool orientation deviation to produce alternative paths that minimize changes in the tool orientation such as can affect application such as welding, sealant application, coating and the like.
Claims
1. A robot control system for a multi-axis robot having multiple links including an end link defining a tool position, the links movable with respect to each other at joints defining axes and having sensors and actuators for movement of the joints about the axes by the actuators according to the sensors subject to joint movement rate limits, the joints and links configured so as to present at least one singularity, the controller comprising: an electronic circuit communicating with the actuators and sensors at each joint and executing a stored program to: (a) receive path instructions defining a path of desired changes in tool orientation along with desired positional velocity occurring along this path; (b) identifying at least one unmodified path portion proximate to the singularity exceeding at least one joint movement rate limit at the desired positional velocity; (c) identifying a modified path portion providing the desired velocity and the desired tool position without exceeding the at least one joint movement rate limit of (b) according to a minimization of a maximum accumulated deviation of a tool orientation of the modified path portion from a tool orientation of the unmodified path portion taken over the entirety of the modified path portion.
2. The robot control system of claim 1 wherein the modified path does not intersect the singularity.
3. The robot control system of claim 1 wherein the modified path intersects the singularity.
4. The robot control system of claim 1 wherein step (c) identifies alternative modified path portions providing the desired velocity and the desired tool position without exceeding the at least one joint movement rate limit of (b) according to a minimization of a maximum deviation of a tool orientation of the modified path portion from a tool orientation of the unmodified path portion; and further including the step of receiving path instructions describing at least one region where path rerouting is prohibited and wherein step (c) identifies the modified path portion to minimize the deviation among the alternative modified paths not including the at least one region.
5. The robot control system of claim 1 wherein step (c) further identifies a modified path portion according to a minimization of a length of the modified path portion.
6. The robot control system of claim 1 wherein step (c) further identifies a modified path portion that limits at least one of joint maximum acceleration and joint maximum velocity among joints of the multi-axis robot to at least one predetermined value.
7. The robot control system of claim 6 wherein step (c) further identifies a modified path portion according to a predetermined lower limit of a length of the modified path portion.
8. The robot control system of claim 1 wherein the three axis robot wrist provides a spherical roll-pitch-roll configuration and the singularity occurs when the two roll axes are collinear.
9. The robot control system of claim 1 wherein the robot provides an offset wrist.
10. The robot control system of claim 1 further including a robot providing a total of six joints.
11. A robot control system for a multi-axis robot having multiple links including an end link defining a tool position, the links movable with respect to each other at joints defining axes and having sensors and actuators for movement of the joints about the axes by the actuators according to the sensors subject to joint movement rate limits, the joints and links configured so as to present at least one singularity, the controller comprising: an electronic circuit communicating with the actuators and sensors at each joint and executing a stored program to: (a) receive path instructions defining a path of desired changes in tool orientation along with desired positional velocity occurring along this path; (b) identifying at least one unmodified path portion proximate to the singularity exceeding at least one joint movement rate limit at the desired positional velocity; (c) identifying a modified path portion providing the desired velocity and the desired tool position without exceeding the at least one joint movement rate limit of (b) according to a minimization of a maximum deviation of a tool orientation of the modified path portion from a tool orientation of the unmodified path portion; wherein step (c) models the robot as a closed kinematic system consisting of a base comprising a first link in that system supporting a first point supporting a first joint of the robot, through the joints of the robot then through a three axis virtual wrist sharing one axis with a final axis of the robot and then through a virtual joint connecting to a link on the path that is rigidly connected to the first link.
12. The robot control system of claim 11 wherein the virtual three axis wrist is constrained so that a first and third joint of the three axis wrist are constrained to move by equal and opposite angles.
13. The robot control system of claim 12 wherein virtual three axis wrist is constrained so that a second joint of the virtual wrist is perpendicular to a second joint in the robot wrist comprising the final three joints of the robot.
14. The robot control system of claim 11 wherein the three axis virtual wrist provides a spherical configuration.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
(23) Discussion of Robot and Controller Hardware
(24) Referring now to
(25) In one example, the robot arm 12 may provide for six axes or 6 degrees of freedom implemented by a set of six joints including a first joint 20 positioned between a stationary base 22, for example, attached to the floor and a first vertical link 21 and providing rotation about a vertical first axis 23 generally aligned along the extent of the vertical link 21. The first link 21 in turn attaches to a second link 24 through rotative joint 26 having a horizontal second axis 28.
(26) The second link 24 in turn connects to third rotative joint 29 communicating between the second link 24 and a third link 30 and movable about a third axis 32 parallel to second axis 28. The third link 30 attaches to a fourth rotative joint 33 rotatable about a fourth axis 34 generally along the extent of the third link 30 and perpendicular to the third axis 32 and communicating with a fourth link 36. The fourth link 36 attaches to a fifth rotative joint 38 connecting the fourth link 36 to a fifth link 44, the fifth rotative joint 38 rotating about a fifth axis 42. The fifth link 44 communicates through a sixth joint 50 with an end link 52 holding the tool 16. The sixth joint 50 rotates about an axis 54 extending generally along the extent of the sixth link 44 and end link 52 and perpendicular to axis 42.
(27) Each of the joints 20, 26, 29, 33, 38 and 50 are associated with an actuator 60, for example, an electric motor that may turn the portions of the respective joint with respect to each other and a sensor 62 that may measure the relative angle between the portions of that joint as moved by the electric actuator 60. The electric actuator 60 and sensor 62 for each joint may communicate with a controller 66, for example, providing a computer processor 68 communicating with electronic memory 70 and providing analog-to-digital and digital to analog converters (not shown) for receiving and providing signals to the sensor 62 and actuator 60 for control of the robot arm 12.
(28) The controller 66 may provide for an input device 71 such as a keyboard, disk drive, or network connection for receiving information and may provide for output information for example on the screen 72 or the like. The memory 70 may hold an operating program 74 as will be described and a path file 76 describing a desired path 18 as well as standard controller software (not shown) known in the art for feedback control, for example, providing for proportional/integral/derivative control loops and the like.
(29) Referring now to
(30) Referring now also to
(31) As indicated by process block 81, in this example, the program 74 may identify a region 82 of the path 78, where the actuated path matches the desired path in both orientational change and positional velocity, that will result in excessive joint motion as a result of its proximity to a singularity 84 representing the alignment of axes 34 and 54. Note that the singularity 84 being defined by the wrist angles of the wrist which moves in space may occur at various absolute locations within the reach of the robot 10.
(32) At process block 83, and as will be discussed in greater detail below, the program 74 evaluates alternative actuator paths, for example, actuator paths 86, 87 and 85 that all allow the tooltip 64 to maintain the desired positional velocity 67 but deviate in angles depicted by 88, 90 and 89 that initially may be sub optimal, from the desired orientational paths 91, 79 and 80. Importantly, at process block 83, the program 74 identifies these alternative paths 86, 87 and 85 to minimize a maximum deviation of the type represented by 88, 90 or 89 in the region 82.
(33) At succeeding process block 92, program 74 may correct the paths that minimize maximum deviation 88, 90 or 89 to meet achievable limits on joint axis angular velocity (joint rate) and/or acceleration of joints in the robot. The resulting path length will be the least amount meeting a designated limit on rate and acceleration within the achievable range, where the designated limit may also be based on input from the user.
(34) As indicated by process block 94, optimized paths 86, 87 and 85 may then be compared against excluded zones, for example, indicating regions where there will be physical interference between the tool 16 and other structure surrounding the robot 12. Paths among 86, 87 or 85 within that excluded zone are excluded. The result is a set of modified path instructions incorporating, for example, depicted path 86 that minimizes each of tool deviation 88, path length, and path joint velocity and acceleration, as indicated by process block 96.
(35) Per process block 98 a qualified, alternative modified path is then used instead of path 78 in the region 82. Note generally that paths 87 may pass through the singularity, which may in fact result in the least deviation 90 under certain situations.
(36) Referring now to
(37) Detailed Discussion of Evaluation Controller Software
(38) A 6-axis robot having a spherical roll-pitch-roll wrist allows as much as ±145 deg.sup.2 pointing deflection from the major axis of the forearm. This dexterity comes at the cost of a wrist singularity at the center of that pointing cone. Commanding a constant-rate sweep of the final wrist axis through near alignment with the initial wrist axis can exceed hardware limits on joint rates, a concern in seam welding, coating application or other tasks requiring continuous motion. This problem occurs even in a 5-axis robot.sup.3 when an axisymmetric tool eliminates the need for the last roll axis. The robot arm singularities can be avoided by staying away from the overhead position and inside the usable envelope of the arm.sup.4. The wrist singularity merits special consideration because it can occur anywhere inside that workspace.
(39) To free the workspace, the pitch-yaw-roll wrist places its 180-deg separated pair of wrist singularities along the equator to the major forearm axis s. Mechanical interferences will limit the pointing cone to less than the full hemisphere. Non-singular 2-axis wrists coordinate articulation of a series pair of universal joints.sup.6-9. Interferences limit one such wrist to a hemisphere.sup.8 whereas two others are limited to a pointing cone of ±100 deg.sup.6,9, perhaps explaining the absence of these wrists in commercial painting robots.sup.2,10 Another 2-axis pointer makes the tool oblique to the final axis in a redundant roll-pitch-roll wrist; its pointing cone is also less than a hemisphere.sup.11. The reduced pointing range of these alternatives motivates methods for tolerating the wrist singularity of existing robots.
(40) The wrist singularity also marks a bifurcation between displacement paths, one where the wrist pitch angle (on what is joint 5 of the robot) passes through zero and another where this deflection stays zero and the wrist spins about the aligned axes of roll joints 4 and 6. Low-order path following methods are reported to stay on one of these two paths if that path happens to pass directly through the singularity.sup.12. Such is subject to the restriction of starting a tracking step some distance before the path bifurcation and taking a long enough step to emerge on the other side.sup.13. A path intended to pass directly through the singularity, however, may pass nearby owing to numerical approximation. A path passing near the singularity poses special challenges, even during the path planning phase where physical rate limits do not apply, as a path-following method can jump paths at the sudden onset of high joint rates.sup.14.
(41) Huang et al..sup.15 classifies singularity avoidance into 1) regularization of the robot Jacobian matrix.sup.16-21, 2) use of kinematic redundancy to replace degrees-of-freedom that lose effectiveness.sup.4,21-25 and 3) interpolation of joint angles between inverse-kinematic solutions on each side of the singularity. Regularization methods.sup.16-18,26 produce deviations in both the tool position and orientation near the singularity. Modifications have been proposed to control those errors.sup.18,27,28. Whereas redundant actuation removes singularities specific to parallel robots.sup.29, a serial robot already actuates all joints.
(42) Motivated by seam welding, Huang and Milenkovic.sup.30,31, Aboaf and Paul.sup.32, and Cheng et al..sup.1 enforce positioning of the tool contact with the work surface while tolerating deviation in the tool orientation resulting from limited joint rates. In obtaining redundant degrees of freedom by allowing the tool to deviate in orientation, these methods are in class 2 of Ref..sup.15. Reference.sup.1 avoids high joint rates bypassing through the singularity instead of slewing the wrist joint nearly 180 deg when passing close by. This method interpolates one joint angle and corrects two others, placing it in class 3.
(43) The Preferred Embodiment plans and executes a through-the-singularity maneuver that 1) limits joint rates, 2) tolerates a deviation in tool orientation, 3) enforces the required tool position at the work surface along a continuous curve and 4) meets these conditions without slowing the tool traversal. Its improvements over the prior methods with these capabilities.sup.1,30-32 are 1) achieving the least-maximum deviation in tool orientation (the smallest value of the peak magnitude occurring along the maneuver) and 2) also limiting joint acceleration. Besides its theoretical significance, global optimality supplies a benchmark to quantify performance loss resulting from the kinematic approximations made in the prior methods. This optimality is achieved by extending the robot wrist with a 3-joint virtual wrist. New procedures incorporate control of the resulting redundancy into a rapid, high-order kinematic power-series expansion.sup.33—see Appendix A. This expansion allows a small number of displacement steps to 1) locate the wrist singularity, 2) articulate the wrist to joint angles at that location giving an optimal path, 3) follow that path back to a zero-deviation starting point meeting rate and acceleration limits on a key wrist joint and 4) execute the through-the-singularity maneuver in its forward direction.
(44) Robot with Singularity Avoidance Wrist
(45)
(46) In the Preferred Embodiment, a singularity avoidance wrist consists of back-to-back roll-pitch-roll wrists. A physical wrist and a virtual wrist are initially rolled 90 deg with respect to each other. Neighboring physical and virtual joints, however, share the same axis and are merged into joint 6 in
(47) Other singularity avoidance wrists add only one virtual.sup.34 or physical joint.sup.35. The wrist with an extra physical joint can achieve zero tool deviation in both orientation and contact position. Both wrists lack a path-independent rule for coordinating their redundant joint. As a consequence, the physical joint cannot be passively actuated with a mechanical constraint as afforded by symmetry of the non-singular wrist. The virtual joint of Ref..sup.4 is in a physical wrist offset from the work piece. Tool deviations in both orientation and contact position occur when this joint is removed during robot operation.
(48) Prior methods enforce tool position.sup.1,30-32 without joints bridging the robot tool to its target position and orientation. Apart from Ref..sup.32, a two-stage iteration at each path point was deemed necessary to obtain a kinematic solution under these conditions. The first stage adjusts the physical wrist to meet a constraint on the tool deviation angle. The second stage adjusts the robot arm to correct the resulting position error. The angle error introduced by the second stage is corrected in the next iteration. This procedure lacks the fast convergence of Newton's method, but its speed and reliability were judged acceptable for offline path planning.sup.30. The method of Aboaf and Paul.sup.32 applies matching rotational transformations to the “Cartesian rates” (combined angular and translational velocity vector) {dot over (x)} and the robot Jacobian J (see Eq. (1) of Ref..sup.32). These terms are expressed at the tool contact with the work surface. The two rotations align the desired tool deviation axis with a canonical axis direction corresponding to a row of J. This row is removed after a rate limit applied to joint 4 in the physical wrist eliminates a column of J. This work is widely cited for eliminating the degeneracy of a nearly singular Jacobian.sup.14,18,19,28,34. It also implements a kinematic path predictor tracking the tool position. The tool deviation is represented implicitly by the uncorrected rotation along the missing canonical axis. The uniqueness of this capability among singularity avoidance methods is perhaps not as well known.
(49) In what follows, coordinated displacements of the initial and final roll joints in the virtual wrist align the axis of the tool deviation. The displacement of the central pitch angle in the virtual wrist will be shown to represent the tool deviation itself. Predictor-corrector path tracking is applied to a serial robot with the avoidance wrist. This explicit representation of the path deviation separates the accumulated tool deviation, which the corrector should retain, from series truncation error or calibration differences between the model and the robot, which the corrector should remove. An accurate high-order predictor of the current step combined with a corrector of the preceding step.sup.36,37 will allow rapid calculation of large displacement steps.
(50)
(51) The tool deviation is the change in body orientation resulting from articulation of the virtual wrist connecting the actual tool attached to physical joint 6 to its intended posture on the link attached to joint 9. Because the joints of the virtual wrist intersect at the TCP, articulation of this wrist varies the tool deviation without disturbing the position of the TCP.
(52) Angle θ.sub.7 gives the rotation about joint 7 that redirects the axis of joint 6 to align with that of joint 8. The links in the virtual wrist hold unit axis direction vector ω.sub.7 of this rotation perpendicular to the plane containing ω.sub.6 and ω.sub.8, which also makes ω.sub.6 trace a great-circle arc on the surface of the unit sphere where this plane intersect its equator. Given this relative alignment of those axes, the following establishes the conjugate angle condition θ.sub.8=θ.sub.6 under which θ.sub.7 is the least angle in an angle-axis representation of the tool deviation.
(53) Lemma 1: When y=R.sub.ω (θ)x represents rotation by angle θ about axis ω by the 3×3 matrix R.sub.ω(θ), R R.sub.ω(θ) R.sup.T represents rotation by θ about rotated axis Rω.
(54) Proof: For ŷ=Ry, ŷ=RR.sub.ω(θ)x=RR.sub.ω(θ)R.sup.TRx=RR.sub.ω(θ)R.sup.T{circumflex over (x)}. The rotation transformation {circumflex over (x)}=Rx preserves lengths and angles because inner product {circumflex over (x)}.sup.T{circumflex over (x)}={circumflex over (x)}.sup.TR.sup.TR{circumflex over (x)}=x.sup.Tx. Hence ŷ=Ry is {circumflex over (x)}=Rx rotated by the same angle θ about axis R ω.□
(55) Theorem 1: Unit vectors r.sub.i and r.sub.ƒ select points on the unit sphere. Apart from r.sub.i=±r.sub.j constituting the same or diametrically opposed points on the sphere, the unique great-circle arc between these points gives the path length on that sphere connecting those two pointing directions.
(56) Proof: Axis ω.sub.⊥ is perpendicular to the plane containing r.sub.i and r.sub.ƒ; ω.sub.⊥ points to the side of the plane where its right-hand rotation of r.sub.i by 0<θ<180 deg gives r.sub.ƒ. Vector r.sub.0 rotates about ω.sub.⊥ to trace its equator. Both r.sub.0 and r=Rr.sub.0 trace continuous paths connecting r.sub.i and r.sub.ƒ. Holding R constant, the Lemma establishes r to trace a great-circle arc of length dθ.sub.0 when traces the same arc length along the equator. Next, R may be varied in a way that r traces an arc of length dΩ that is perpendicular to the dθ.sub.0 arc. A segment of the path traced by r may be represented by an arc forming the diagonal to a spherical right triangle with sides dθ.sub.0 and dΩ. This arc has dΣ≥d
. The path lengths of r and r.sub.0 therefore satisfy Σ≥θ.sub.0≥θ, with θ.sub.0=θ when r.sub.j does not reverse direction. Hence any path departing from the r.sub.i, r.sub.ƒ plane has cumulative instantaneous rotation angle Σ>θ; Σ=θ occurs along a great-circle path, establishing the well-known minimum arc length between points on a sphere.
(57) Theorem 2. For ψ the cumulative rotation angle about instantaneous axis ω.sub.ϕ generating a path on the unit sphere connecting the end points, Σ the length of that path and θ the arc length of the great circle traced by rotation by that angle about fixed axis ω giving Σ≥θ, it follows that ψ≥Σ≥θ, with ψ=θ achieved for constant ω.sub.p=ω.
(58) Proof. Unit vector r rotated about instantaneous axis ω.sub.ϕ with angle ϕ between r and ω.sub.ϕ traces a circle of radius sin ϕ. The length of segment dΣ traced on the surface of the unit sphere is bounded by ∥dΣ∥=|sin ϕ∥dψ|≤|dψ|, establishing the inequality after integrating angle ψ and path length Σ.
(59) Theorem 3: Displacing a roll-pitch-roll wrist by joint angles θ.sub.6, and imposing the condition of conjugate joint angles θ.sub.8=−θ.sub.6, the minimum rotational displacement θ about an axis direction ω between the pair of rigid bodies connected by the 3-axis virtual wrist is achieved by θ=θ.sub.7 and ω=ω.sub.7.
(60) Proof: For a great-circle arc traced by rotation R.sub.7, the Lemma establishes that R.sub.6R.sub.7R.sub.6.sup.T traces an arc of the same length. Theorems 1 and 2 establish this arc length to give the minimum rotation angle connecting the pointing directions at the ends of the arc. This in turn gives the minimum angle in the angle-axis representation of the change in body orientation achieving the required change in pointing direction.
(61) Upon dividing joint 6 into actual and virtual angles according to θ.sub.6=θ.sub.6W+θ.sub.6T, actuating the physical wrist with angle θ.sub.6W=θ.sub.6−θ.sub.6T=θ.sub.6+θ.sub.8 maintains conjugate virtual angles θ.sub.6T=−θ.sub.8. The deviation in tool orientation is θ.sub.7 therefore quantified by the single scalar value θ.sub.7. Adjusting the combined actual and virtual angle θ.sub.6 directs the sweep of joint 7 to change θ.sub.7. In this manner, using three virtual joints simplifies control of the tool deviation at each point along a displacement path to a single-input single-output system. In a 5-axis robot −θ.sub.6W gives the amount of uncorrected tool roll along the missing axis of joint 6. When such a 5-axis robot directs an axisymmetric tool, this additional tool deviation may be safely disregarded. Such also establishes that under the conjugate-angle condition, the virtual wrist produces a pure change in pointing direction of the tool without adding any roll. Any required roll to bridge the pointing direction generated by joints 4 and 5 in the physical wrist to the full 3-axis body orientation of the link attached to joint 9 is supplied by physical joint 6.
(62) Wrist Singularity Locating Maneuver.
(63) The first step in planning the singularity avoidance maneuver places the wrist at its singular posture. Articulation of the compound wrist accomplishing this is illustrated by the singularity locating maneuver depicted in
(64) Placing the robot along a path passing nearby the singularity supplies a starting point for demonstrating this maneuver.
(65) From such a starting point, the locating maneuver brings the wrist to its singular position by declining the angle of joint 5 to zero. Departing the condition where the tool follows both its intended position and orientation with joint 1, 2, 3, 7, 8 and 9 held passive, this is done with joint 4 locked while employing the methods of Appendix A to guide joint 6 to maintain joint 7 at the minimum angle θ.sub.7 expressing the tool deviation in orientation.
(66) TABLE-US-00001 TABLE 1 Joint number and spherica triangle label-joints 1-3 are in the robot arm Joint Triangle Joint description: number label Forearm roll 4 Ā Wrist deflection 5 c Second wrist roll 6 B Tool deviation 7 a Tool azimuth 8 C Tool displacement 9 b
Stereographic Projection of the Spherical Indicatrix.
(67) The spherical indicatrix is a kinematic chain having joint axes in the same orientations as its parent spatial chain. These axes also intersect at a common point.sup.38-40. Closure of the indicatrix is hence a necessary condition for closure of that linkage. It is also useful for visualizing orientational displacements in a spatial linkage. The intersection of a revolute axis with the sphere surface—a rotation pole—is one representation of a joint in the plot of the indicatrix. A second representation sweeps a pointing direction along the rotation equator as the joint angle varies. The rotation pole and equatorial sweep for joint 5 (wrist deflection from the singular position) and joint 7 (tool deviation from orientation on the reference path) are seen in the top and bottom portions of
(68) When the joint poles are plotted as points on the sphere surface, connecting a pair of joints with a 90-deg link separates them by a 90-deg arc along a great circle. This means the equator of that second joint passes through the pole of the first joint, and the 90-deg connecting link is implied. A spherical dyad—links articulated by a pair of joints in series—is in this way represented by a great-circle arc for the second joint emanating from the pole for the first joint. The joint 6-7 dyad corresponds to the vertical arcs in the bottom drawing of
(69) Snyder.sup.41 gives formulas for alternative 2D projections of plots on the surface of a sphere as in
(70)
(71) The top plot in
(72) The sweep of joint 9 represents the reference tool orientational displacement from which the tool deviates. Treating the movable forearm as the initial link in a kinematic loop, the axis of joint 8 is connected through joint 9 back to the forearm through joints 1-3 of the robot arm. As the curve traced by the pole of joint 8 results from the actuation of multiple revolute joints, it is not on a great circle and shows a more pronounced curve. With joint 5 fixed and joint 6 allowed to vary, the sweep of joint 9 will trace a modified curve. As a consequence of the translational offsets between joints in a spatial kinematic chain, this curve depicting a virtual displacement differs slightly from the actual displacement where angle θ.sub.5 of joint 5 varies. The modified curve is at a right angle to the sweep of joint 7, meeting the geometric condition for a minimum angle of joint 7 at each location along the singularity locating maneuver.
(73) Orienting the Tool Deviation Arc.
(74) Minimum θ.sub.7 is therefore to be achieved and maintained everywhere along the singularity locating maneuver by setting and maintaining joint rate C.sub.V7=0 in the virtual displacement where θ.sub.5 is held fixed. Such a virtual displacement occurs along a continuous set of points. These points are along the actual displacement path declining deflection angle θ.sub.5 to zero in the physical wrist. The guided virtual displacement method (Appendix A) conducts a power series expansion for the actual displacement path subject to the side condition C.sub.V7=0, which is to be achieved and maintained along the actual displacement path.
(75) In the limiting case of zero tool and task translational offsets, maintaining minimum θ.sub.7 establishes right spherical triangles for the steps along a displacement path. Dihedral angle A is constant for joint 4 locked. In this case where points WCP, TCP, and RCP from
(76) This contrasts with the unmodified kinematic path in
(77) Theorem 4: For fixed angles θ.sub.4 and θ.sub.5 where ω.sub.6p≠ω.sub.8, a zero virtual displacement of θ.sub.7 with respect to θ.sub.6p implies θ.sub.7 is also stationary with respect to θ.sub.6. Angle θ.sub.6p is the displacement of another (a 4.sup.th) virtual joint having its axis perpendicular to both joints 6 and 7 and intersecting the tool center point (TCP) as do the other joints in the virtual wrist. When ω.sub.6p≈ω.sub.8, ω.sub.6≠ω.sub.8 allows reverting to joint 6 driving the virtual displacement.
(78) Proof: With wrist joints 4 and 5 locked, applying loop closure to the joint screws T.sub.i=(ω.sub.i; v.sub.0i) expressing the instantaneous mobility from the joint-rate vector C.sub.6:9C gives
(79)
(80) Subscript.sub.6:9C denotes an inclusive range of indices. Vector C.sub.9Cω.sub.9C=C.sub.9ω.sub.9+C.sub.1ω.sub.1+C.sub.2ω.sub.2+C.sub.3ω.sub.3 gives the combined angular velocity when actuating joint 9 for the tool rotation and joints 1, 2, and 3 for the robot arm. Placing the screw origin O instantaneously coincident with the tool center point (TCP) makes the velocity elements v.sub.06:8=0. This requires joint rates satisfying the velocity closure relation C.sub.9v.sub.9+C.sub.1v.sub.1+C.sub.2v.sub.2+C.sub.3v.sub.3=0 making v.sub.09C=0. Referring to
(81)
for c.sub.7=cos θ.sub.7 and s.sub.7=sin θ.sub.7. Driving an instantaneous displacement by either joint 6 or 6p requires ω.sub.9Cz≠0 to make [ω.sub.7 ω.sub.8 ω.sub.9C] full rank. For ω.sub.6p≠ω.sub.8, driving joint 6p then results in rate C.sub.9C≠0; ω.sub.9Cx=0 is then necessary and sufficient for θ.sub.7 to be stationary with respect to both θ.sub.6 and θ.sub.6p.
(82) Just before the last tracking step, the virtual path traced by the pole of joint 8 in the bottom plot in
(83) At the start of the locating maneuver, θ.sub.7=0 gives c.sub.7=1 and s.sub.7=0. In this condition where θ.sub.7=0 for all values of θ.sub.6, finding θ.sub.6 giving zero virtual displacement of θ.sub.7 with respect to θ.sub.6p will keep θ.sub.6 continuous after leaving the starting point. In place of conducting one or more path-following steps, solving Eq. (2) with C.sub.6=0 and C.sub.9C=−1 gives the joint rates C.sub.6p=ω.sub.9Cz and C.sub.7=ω.sub.9Cx. Designating ω.sub.9Cz=gc.sub.r and ω.sub.9Cx=gs.sub.r identifies a rotation by θ.sub.r about joint 8 in the local z-x plane. Adding θ.sub.r to θ.sub.6 and −θ.sub.r to θ.sub.8 sets ω.sub.9Cz=g and ω.sub.9Cx=0 while leaving the other matrix elements in Eq. (2) unchanged. Having ω.sub.9Cx=0 insures the tool deviation angle θ.sub.7 to be stationary with respect to both θ.sub.6p and θ.sub.6 according to Theorem 4.
(84) Because the joint rate solution is invariant from the coordinates expressing the joint screws, it is more convenient to solve AC=0 for C.sub.4:6=0 and C.sub.9=−1, where the columns of A are the complete set of joint screws in the coordinates of the robot base, and then calculate
θ.sub.r=a tan 2(C.sub.7,C.sub.6p) (3)
using the 2-argument arctangent function a tan 2(y, x). This places the initial virtual displacement of joint 7 at zero, which is maintained or corrected in subsequent tracking steps.
(85) Whereas the singularity locating maneuver depicted in
(86) Determining the Least-Maximum Deviation Along the Adjusted Path.
(87) The goal is to locate where the least-maximum tool deviation occurs along the adjusted path, with least-maximum meaning the smallest value of peak deviation magnitude. Owing to a spherical wrist exhibiting self-motion by contra-rotation of joints 4 and 6 with all other joints unchanged at its singularity where θ.sub.5=0, the least-maximum will be seen to occur at the endpoint of the singularity locating maneuver. At this location with joints 1, 2, 3, 7, 8 and 9 passive, θ.sub.7 is already stationary with respect to θ.sub.6 and its non-singular counterpart θ.sub.6p.
(88) Joints 4 and 6 are now contra-rotated to an initial position where joint axis directions ω.sub.5⊥ω.sub.7 make ω.sub.6p=±ω.sub.5. Making use of the self-motion, this displacement is made by changing θ.sub.4 and θ.sub.6 by equal-and-opposite amounts to set θ.sub.6=0. From this starting point, a guided displacement with joints 1, 2, 3, 4, 5 and 7 passive is applied to joint 6; because of the self-motion allowed by joint 4 passive, this leaves the tool deviation angle θ.sub.7 and axis direction ω.sub.7 unchanged. Hence the stationary condition at the end of the locating maneuver is left unchanged. This guided displacement conducted by the method of Appendix A makes θ.sub.7 stationary with respect to θ.sub.6p.
(89) Theorem 5: Under the preceding conditions, θ.sub.7 at path location θ.sub.5=0 is at a least-maximum.
(90) Proof: At the end of the above guided displacement where θ.sub.7 is made stationary under a set of passive joints leaving θ.sub.8 and θ.sub.9 fixed, θ.sub.7 remains stationary with respect to a coordinated change in θ.sub.4, θ.sub.5 and θ.sub.6p when joints 1, 2, 3, 7, 8 and 9 are made passive. For those passive joints, θ.sub.7 has remained stationary with respect to θ.sub.6 and also θ.sub.6p at the end of the guided displacement. After a small guided displacement of θ.sub.6 keeping to ω.sub.6p nearly collinear to ω.sub.5, the change in θ.sub.5 in the virtual displacement is non-zero. Owing to the self-motion at θ.sub.5=0, θ.sub.7 is also stationary with respect to equal-and-opposite change to θ.sub.4 and θ.sub.6. Linear combinations of coordinated changes in angles establish θ.sub.7 to be stationary with respect to θ.sub.4, θ.sub.5 and θ.sub.6. That θ.sub.7 is stationary with respect to θ.sub.6 is a necessary condition for maintaining minimum tool deviation θ.sub.7 along a kinematic path crossing through θ.sub.5=0. That θ.sub.7 is stationary with respect to θ.sub.4 and θ.sub.5 at θ.sub.5=0 is a necessary condition for this value of θ.sub.7 to be a maximum along all such paths crossing through θ.sub.5=0, making it a least maximum.□ With an offset wrist not satisfying the conditions of Theorem 5, finding the least-maximum point on the adjusted path requires guiding three virtual displacements according to Eq. (A14) to achieve stationarity of θ.sub.7 with respect to changes in each of θ.sub.4, θ.sub.5 and θ.sub.6.
(91) Intercepting the Actual Path.
(92) After locating the least-maximum point at angles (θ.sub.9ref, θ.sub.4ref), a through-the-singularity avoidance maneuver is planned by fixing the rate of a joint in the robot (such as C.sub.4 of joint 4) in relation to the rate of tool traversal C applied to joint 9. From the zero reference for robot angles established by the posture in
(93) Whereas any finite ratio may be used for this purpose with a spherical wrist, limiting it to |C.sub.4|/|C.sub.9|=6 reliably gives before-and-after encounter intercept points for robots with offset wrists representative of industrial practice. Choosing a rate-ratio limit of 6 is also motivated by it limiting tool orientation deviation to about 10° inside the wrist“exclusion cone” (.sup.43,44, Appendix B). Should a higher rate limit be allowed, reaching this limit by correcting the start and end points of the avoidance maneuver by displacements along the actual path allows for a shorter path interval for the avoidance maneuver where tool deviation takes place.
(94) With joints 4 and 9 active, joint 6 held fixed and selecting joints 1, 2, 3, 5, 7 and 8 as passive, the path-following procedure of Appendix C solves for the zero of θ.sub.7 at the intercept point. This procedure is preferred on account of the initial zero slope of θ.sub.7 on this path being a singular condition in an alternative series-reversion solution as described in Appendix C.
(95) The intercept procedure is demonstrated for the robot in
(96)
(97) In
(98) Cheng et al..sup.1 calls the two alternative configurations of the wrist giving the same tool placement“no-flip” and“flip.” For a spherical wrist, no-flip is changed into flip by a step change of equal and opposite rotations of 180° applied to joint 4 and physical joint 6 along with a change in sign of the angle of joint 5, with all other angles unchanged. Changing θ.sub.4 by 180° with an offset wrist results in changes of all the other angles, which may be solved by path following. Passing close by but not directly through the singularity maintains either no-flip or flip over a continuous, sigmoidal path on one branch of the path-following solution. No-flip and flip are called “principal branch” and “alternative branch” in
(99) The path-intercept procedure locates points before and after the inflection of two sigmoidal branches. “Crosses branches” connects the “before” with the “after” point from two branches, in the process passing directly through the wrist singularity where joints 4 and 6 become collinear. These starting and ending points are to be adjusted to connect the two branches with a path of limited joint rate and acceleration having least-maximum tool deviation over a least interval where tool deviation occurs.
(100) “Same branch” joins before-and-after points without switching branches, also avoiding the steep, high-rate portion of the actual path. Because the path-intercept procedure finds points on different branches, this procedure is reapplied after changing branches by equal-and-opposite 180° rotation of joints 4 and 6. This step is of special importance for an offset wrist where the alternative branch is not exactly separated by an exact 180° change with all other joints unchanged as with a spherical wrist. The lines in
(101)
(102)
(103) Connecting a path between before-and-after points that change branches will also cross through the notional singularity whereas an around-the-singularity path is planned by connecting points on the same branch. Starting from a point on the specified, principal branch, one of two same-branch paths is selected for having less excursion in θ.sub.4. This will give the least peak tool deviation θ.sub.7, apart from possibly where the θ.sub.4 excursion is nearly the same. In that instance, calculating both paths and select the path with lower θ.sub.7 may be required.
(104) In this manner, points are located before and after singularity encounter on the same branch but different segments of the actual path. This is to be followed by corrections to these locations on their respective actual-path segments. These starting and ending points of the adjusted path along the avoidance maneuver bridge the exclusion zone to satisfy rate and acceleration limits. Such an avoidance path will increase tool deviation θ.sub.7 in magnitude until it reaches a peak at its slope inflection, decrease θ.sub.7 until reaching a point on the actual path where θ.sub.7 crosses through zero, have θ.sub.7 reach a peak of opposite sign and finally rejoin the actual path segment on the opposite side of the exclusion zone where θ.sub.7 once more reaches zero.
(105) It is not known in advance, however, whether a crossing of the actual path midway on the line occurs between the two supplied points, or if it is one of these points. Whereas the downward-sloping “Same branch” line in
(106) Avoidance Maneuver Endpoint Correction to Limit Joint Acceleration
(107) Both avoidance maneuver endpoints are displaced along the actual path to limit the joint acceleration Ċ.sub.4={umlaut over (θ)}.sub.4. The following applies to correcting the before-singularity point of the avoidance maneuver conducted for increasing tool angle θ.sub.9, with the correction for the after point following the same formulas after changing the sign of all acceleration values.
(108) Consider a constant pair of angles (θ.sub.9ref, θ.sub.4ref) on the adjusted path and a pair of angles (θ.sub.9, θ.sub.4) at a location along the actual path at initiation of the avoidance maneuver. For all maneuvers, (θ.sub.9ref, θ.sub.4ref) is set to the a least-maximum point, which occurs at θ.sub.5=0 for a through-the-singularity maneuver of an offset wrist, only. An around-the-singularity path will have two least-maximum points, and the nearest is selected.
(109) The angles on the actual path vary according to (θ.sub.9(t), θ.sub.4(t)) when constant displacement rate C.sub.9=−1 causes path distance s=θ.sub.9ref−θ.sub.9(t) to increase at constant rate {dot over (s)}=1, Holding t fixed when following a path at rate C.sub.9=−1 in the forward direction starting at θ.sub.9(t) reaches after elapsed interval s. The actual change in θ.sub.4 over this interval is θ.sub.4ref−θ.sub.4(t). The change in θ.sub.4 achieved at the acceleration limit applied over a forward path interval of length r obtained by integrating initial rate C.sub.V4(t) and constant joint 4 acceleration a.sub.4 is
(110)
where C.sub.V4(t)=−C.sub.4(t) from the reverse path varying θ.sub.4(t). When the rate-ratio limit C.sub.V4limit=(C.sub.4/C.sub.9).sub.limit is reached at 0<r=(C.sub.V4limit−C.sub.V4(t))/a.sub.4<s, the remaining path of length s−r is traversed at rate C.sub.V4limit applied to joint 4 giving the total change in angle as
(111)
(112) The path-following procedure in parameter t generates power series coefficients for C.sub.V4(t)=−C.sub.4(t), θ.sub.4(t), s=θ.sub.9(t) and in turn θ.sub.4(t)=(θ.sub.4ref−θ.sub.4(t)−θ.sub.4limit(t) by way of the Cauchy product.sup.45 applied to product terms in Eqs. (4) or (5) see Appendix A. The preferred procedure employs the method in Appendix C to solve for the zero of θ.sub.4err(t), which establishes that the change in angle θ.sub.4ref−θ.sub.4(t) is met at the active combination of acceleration and rate limits, giving the avoidance maneuver initiation point at (θ.sub.9(t), θ.sub.4(t).
(113) Equation (4) is solved for a.sub.4 at r=s and θ.sub.4limit,r(t)=θ.sub.ref−θ.sub.4(t). If a, exceeds its limit, it is replaced by that limit and the avoidance maneuver endpoint correction is made using Eq. (4) evaluated at r=s. Should joint 4 exceed its rate limit at s when a.sub.4 is subject to its limit, the correction is repeated using Eq. (5) for both the acceleration and rate limits being active.
(114) if the calculated value of a.sub.4 meeting θ.sub.4ref−θ.sub.4(t) does not exceed either the acceleration or rate limits, no further correction is needed. Otherwise a level of acceleration may meet θ.sub.4ref−θ.sub.4(t) at the active rate limit without correcting (θ.sub.9, θ.sub.4). Applying a.sub.4r=C.sub.V4limit−C.sub.V4 to Eq. (5) gives
(115)
(116) If either of the conditions C.sub.V4limits−θ.sub.4limit≠0, a.sub.4no correct within the acceleration limit and 0<r=(C.sub.V4limit−C.sub.V4/a.sub.4)<s is not satisfied, a.sub.4 is replaced by its limit and the avoidance maneuver endpoint correction is made using Eq. (4) evaluated at r=s. When s=θ.sub.9ref−θ.sub.9(t)<0, the substitution a.sub.4←−a.sub.4 supplies the change in sign for Eqs. (4) and (5), a.sub.4no correct←−a.sub.4no correct for Eq. (6).
(117) For a through-the-singularity maneuver, the before-and-after-singularity halves meet at (θ.sub.9ref, θ.sub.4ref) with largest tool deviation θ.sub.7. To achieve continuity of joint rates, the peak rate of joint 4 applying the acceleration limit to the “before” half supplies the rate limit for this procedure applied to the “after” half. If “after” reduces the rate limit further, the adjustment of “before” is repeated. If the before and after rates still disagree, neither rate limit is active. Adjustments are then made to the constant accelerations applied to before and after.
(118) For an around-the-singularity maneuver, too low an acceleration limit may result in reaching the rate limit after the nearest least-maximum point (θ.sub.9ref, θ.sub.4ref). As this violates the assumptions in the optimization for that point, the acceleration limit is increased so the rate limit is reached at that point. The procedure correcting the endpoint is rerun using Eq. (4) with r=s and a.sub.4=(C.sub.V4limit−C.sub.V4(t))/s. Increasing the acceleration limit in this way generates an avoidance maneuver with a smooth onset of maximum slope as seen in
(119) For the robot in
(120) The Actual path of tool displacement generated by the robot splits into the Reference path of the intended tool orientation and the Avoidance path, where the tool orientation differs in the amount of the tool deviation. Owing to wrist offsets inducing orientational changes in the arm to be corrected by articulating these wrists, the reference path on the stereographic plot showing orientation will differ from the actual path owing to articulation of the virtual wrist producing the plotted tool deviation arcs. This coupling results from the separation between the virtual and physical wrists along with any offset in the physical wrist. Furthermore, an actual path producing the same tool orientations as the reference path does not exist for an offset wrist under the conditions of
(121) The dots in
(122) The least-maximum deviation occurs at the dot along the avoidance path adjusted to pass through-the-singularity of a spherical wrist, occurring near but not at the dot for the offset wrist. The amount of deviation does not change with an increased rate limit. The least-maximum deviation for the around-the-singularity path occurs in two places as the tool deviation advances, retreats, crosses zero, and then advances, retreats and reaches zero the end of the avoidance maneuver. The global least-maximum deviation is achieved by equalizing the local least-maximum deviation at its two locations by Eqs. (A15)-(A19) in Appendix A. Increasing the rate limit, however, will reduce this global least-maximum, with an offset wrist having a maximum rate limit owing to the gap between segments of the actual path seen in
(123)
(124) In
(125) In
(126)
(127)
(128)
(129) Path-Following Step-Size Limits.
(130) Path-following displacements steps conducted by a high-order series expansion such as but not limited to Eqs. (A4)-(A6) are to be limited in length to obtain high accuracy, which is quantified by the level of closure error in the kinematic loop incorporating the robot. The resulting orientational mismatch is represented by a 3×3 rotation matrix R and a 3-element translational displacement vector d using well-known rules for combining these transformation in a serial kinematic chain. These representations, in turn, are transformed into a pair of 3-element vectors (θω, θv).sup.46 representing the closure error by a screw motion through angle θ about the fixed screw axis line represented by (ω, v). A corrector for the path-following closure error, either as a separate step or combined with the next predictor step, is readily implemented by supplying this representation of a virtual joint with rate θ/t.sub.h to Eq. (A5).
(131) For purposes of setting the step size t.sub.h of the path-following predictor step, this screw representation also quantifies the closure error by a distance ∥θv∥ and an angle ∥θω∥=|θ|, ∥ω∥−1. The accuracy of a truncated Taylor-series expansion depends on distance to the nearest singularity. For a spherical wrist, θ.sub.4 of the singularity close-approach on an adjusted path where ↓.sub.5=0 and the value of θ.sub.6 gives least tool deviation θ.sub.7, which is the same value at its (θ.sub.9ref, θ.sub.4ref) least-maximum point, supplies a reference point for limiting the step size in the Preferred Embodiment to ±0.3|θ.sub.9ref−θ.sub.9| for an order p=10 series expansion when θ.sub.9 is the start of the step.
(132) Owing to an inflection or turning point θ.sub.9sing on the actual path occurring way from θ.sub.9ref in the case of an offset wrist, the actual-path step is instead limited to ±0.3|θ.sub.9sing−θ.sub.9| Holding joint 6 fixed and selecting passive joints 1, 2, 3, 5, 8 and 9, joint 4 replaces joint 9 in path-following displacement steps along the actual path. The least-maximum point (θ.sub.9ref, θ.sub.4ref) supplies the limit ±0.3|θ.sub.4ref−θ.sub.r| for those steps employing the procedure of Appendix C to locate where for constant rate C.sub.4, rate C.sub.9 crosses zero, identifying a turning point, or joint acceleration Ċ.sub.9, crosses zero, where the identified point supplies θ.sub.9sing.
(133) The procedure for planning a through-the-singularity avoidance maneuver locates (θ.sub.9ref, θ.sub.4ref) near the Principal branch in
(134)
(135) On the actual path with joint 9 active, and starting at the after-encounter intersection of the remote through-the-singularity line, the upward sloping “extrapolated path” is generated by setting all negative-valued terms beyond 2.sup.nd order to zero in a displacement step taken in the −θ.sub.4 direction. This action biases the series to diverge downward when approaching its radius-of-convergence bounded by a singularity. Angle θ.sub.9alt sing marks where the excursion of the extrapolated path has crossed −180°. If this location is beyond the point of maximum slope of the principal branch as seen in
(136) Steps are conducted at a constant rate along an adjusted path in proximity to the singularity, whether in planning or executing the singularity avoidance maneuver. These planning steps are limited to 20° for the highest rate active joint, such as in the Preferred Embodiment where rates C.sub.4 and C.sub.9 are in a constant ratio where |C.sub.4/C.sub.9>1. These steps may be further limited in length by the procedure in Appendix C. Steps in avoidance execution where additional limits are not applied are limited to 14°. The resulting closure error for robots representative of industrial practice in
(137) The following supplies a step limit at constant acceleration in avoidance execution. The sine and cosine functions of displacement generated by joint rotation have an infinite radius of series convergence, but 1 rad (57.3°) is its effective value where convergence become impractically slow. A maximum allowed step s is calculated for either direction that changes θ.sub.4 by ±1 rad. This is expressed as the solution to Ċ.sub.4s.sup.2/2+C.sub.4s±1=0 at acceleration a=Ċ.sub.4 and rate ν=C.sub.4. For α=|C.sub.4/Ċ.sub.4|, g=|2/Ċ.sub.4|, the smallest positive-valued step length meeting these conditions is
s.sub.1=|−α+√{square root over (α.sup.2+g)}|, (7)
(138) if α.sup.2<g, s=s.sub.1
(139) otherwise, s=min(s.sub.1, |−α+√{square root over (α.sup.2−g)}|)
(140) Limiting the step length ±0.3 s keeps closure error at constant active-joint acceleration keeps error within the limits occurring for constant rate.
(141) Increasing the constant-rate avoidance execution step size to 20° increases the closure error to order 50 (10.sup.−6) (0.05 mm) distance and 2000 (10.sup.−6)° angle (2 thousandths of a degree). This is consistent with the 50-fold change—(0.7).sup.p+1=50.6—expected for an order p=10 Taylor series approximation of a function within its region-of-convergence not including any singularities.
(142) Choosing Between the Through and Around-Singularity Adjusted Path.
(143) TABLE-US-00002 TABLE 2 Worst-case least-maximum tool deviation over the range of proximity to the singularity requiring path adjustment to meet rate limit |C.sub.4/C.sub.9| = 6 for the robots from FIG. 21 and FIG. 12 having different directions of the wrist offset Tool deviation angle (°) Offset Rate limit Through Around Best (m) |C.sub.4/C.sub.9| singularity singularity method FIG. 21 −0.045 varying 10.057 0.665 0.665 6 10.057 6.570 3.382 0 6 9.821 6.486 3.327 FIG. 12 0.170 varying 19.615 7.766 7.516 6 19.615 9.132 7,516 0 6 9.919 6.550 3.290
(144) The robot in
(145) TABLE-US-00003 TABLE 3 Timing for singularity-avoidance planning and execution Rate Total limit Time Opti- plan- Exe- |C.sub.4/C.sub.9| (ms) Locate mize Adjust ning cute Through varying Avg 0.552 0.431 singularity Around varying Avg 0.040 0.227 0.727 0.994 0.422 singularity Max 1.149 0.590 6 Avg 0.040 0.212 0.702 0.954 0.292 Max 1.093 0.338
(146) Table 3 presents average and worst-case timings (Intel Core i5 2.5 GHz processor, single-core mode, 64-bit Java OpenJDK 10 and Windows 10 software environments) across the same conditions. The total time for planning the around-singularity path is separated into “Locate” to find the close approach in tool deviation from the notional singularity to intended tool position, “Optimize” to find the least-maximum point for the proximate and remote through-singularity paths along with the optimal around-singularity line, with “Adjust” including searches for the inflection or turning points on the actual path as required for an offset wrist along with displacements along the actual path to meet the rate and acceleration limits. “Adjust” is substantially reduced for a spherical wrist not requiring such path steps locating singularities on the actual path.
(147) The calculation time in planning the around-singularity path is about, twice that of the through-singularity path, with little change at the reduced rate limit. This is anticipated to be the total time using parallel processing when planning both maneuvers to allow selecting between the two. The reduced planning time for the through-singularity maneuver could be conducted on a second processor core, conducted independently of the “Adjust path” operations for around singularity and fitting within that time allotment. Hence planning the singularity maneuver of least deviation is expected to take about 1 ms, with path execution taking about half that time when conducted with either one or the other maneuver.
(148) Appendix A—Optimization Procedures.
(149) A robot is extended with a virtual wrist, which in turn is followed by a final virtual joint representing the intended tool motion in reference to the robot base. The resulting kinematic model expressed by a 9-joint closed kinematic loop (joint 6 represents the last joint in the physical wrist combined with the first in the virtual wrist supplies kinematic redundancy to allow limiting joint rate and acceleration along an adjusted displacement path near singularity encounter. This reduces to a 7-joint loop for displacements on the actual path where the tool deviation angle is held at θ.sub.7=0 before and after singularity encounter. Applying a high-order path-following method.sup.33,47,48 to this loop solves the robot inverse kinematics problem (IKP) over a continuous path of the intended tool displacement. Extending this method to controlling redundant joints in the 9-joint loop will do the same when near the singularity.
(150) Keeping the same numbering scheme as prior work.sup.33,48,49, joint 1 connects link 1 of the robot base to the initial moving link 2 in the robot. A revolute joint has screw T.sub.j=(ω.sub.j; v.sub.θj=r.sub.j×ω.sub.j) constructed from a pair of 3-element vectors: unit-length ω.sub.j gives the joint axis direction, r.sub.j selects a point on the joint axis line and × denotes the vector cross product.sup.50,51. From a set of joint angles at the start of a path-following step, solving the robot forward kinematics problem (FKP) determines initial joint axis directions ω.sub.j and joint axis-line reference points r.sub.j.
(151) The combined translational and orientational motion of each link in the kinematic chain is represented by its instantaneous screw or twist T.sub.Ci by the well-known relationship
(152)
(153) where C.sub.j={dot over (θ)}.sub.j is the rate of joint j having joint screw T.sub.j and angle θ.sub.j. The joint screws in this formula are expressed in a common coordinate frame referenced to the robot base. In the case of a non-redundant robot where the joints are numbered 1 through n=6 and the last loop joint representing tool motion in joint n+1=7, rate C.sub.n+1 is prescribed. The remote connection of the link back to the robot base fixes
T.sub.Cn+1=0 (A2)
(154) At any robot posture where the 6 robot joint screws T.sub.1, . . . , T.sub.6 are linearly independent, applying this form of the loop closure constraint along with a specified t traversal rate C.sub.7 to Eq. (A1) allows solving for joint rates C.sub.1, . . . , C.sub.6 expressing the instantaneous mobility of the closed chain incorporating the robot.
(155) In considering a finite displacement of this chain, the axis lines of the joints are conveyed through space by the links to which they are attached. Apart from the fixed axis lines of the joints connected to the robot base at each end of a chain, the resulting variation in the joint screws has the differential equation
{dot over (T)}.sub.i=T.sub.Ci×T.sub.i (A3)
where T.sub.Ci is selected to be the instantaneous screw imparted on the link immediately preceding the joint in the designated numbering scheme with Lie product x (boldface x).
(156) Loop-closure constraint Eq. (A2) applied to the coupled Eqs. (A1) and (A3) allows solving for both the time varying joint screws T.sub.i(t) along with joint rates C.sub.i(t). For a robot made redundant by adding virtual joints, a solution is found by designating a non-redundant subset of coefficients C.sub.i as passive joint rates whereas the remaining coefficients are designated as independent variables controlling the active joints. Setting one or more of these independent variables to zero locks those joints. Term-by-term integration of high-order power-series expansions of the rates C.sub.i(t) gives the robot joint angles θ.sub.i(t.sub.h) at the end of a path-following step of length t.sub.h. The robot base-referenced screw-based power series expansion of Eqs. (A1)-(A2) originally disclosed.sup.49, compared.sup.33 to a matrix-based method.sup.52 and alternatively expressed in moving link-local coordinate frames.sup.48, is expressed next.
(157) The variables varying with time have series expansions
T.sub.j=T.sub.j(t)=T.sub.j[0]+T.sub.j[1]t+T.sub.j[2]t.sup.2+ . . . ,
C.sub.j=C.sub.j(t)=C.sub.j[0]+C.sub.j[1]t+C.sub.j[2]t.sup.2+ . . . ,
T.sub.Ci=T.sub.Ci(t)=T.sub.Ci[0]+T.sub.Ci[1]t+T.sub.Ci[2]t.sup.2+ . . . ,
(158) Eq. (A1) relates the series coefficients of these variables by
(159)
(160) where initial joint screws T.sub.j=T.sub.j[0]=T.sub.j(0) and {tilde over (C)}.sub.j[m]=C.sub.j[m] apart from {tilde over (C)}.sub.j[k]=0. Operator * denotes discrete convolution expressed by the inner summation, which is also the Cauchy Product combining the series expansions of the product of two functions.sup.45. For link i=n+1 closing the chain, the loop closure constraint T.sub.Cn+1(t)=0 is expressed
T.sub.Cn+1[k]=AC[k]+T.sub.BCn+1[k]=0 (A5)
(161) where the columns of matrix A are constructed from the initial joint screws T.sub.i. Solving for rate vector C[k] of elements C.sub.j[k] subsequently allows updating T.sub.Ci[k] from T.sub.BCi[k] in Eq. (A4). When loop closure error accumulates at the end of a path-following step, T.sub.BCn+1[0] calculated by the method of Ref..sup.46 is applied to the next step in a combined predictor-corrector procedure.sup.36,37,48.
(162) Equation (A3) tracks the joint screws over a finite displacement giving
(163)
(164) Operator *.sub.x denotes discrete convolution over the Lie product x.
(165) Note that the link instantaneous screws depend on the joint screws in Eq. (A1) whereas the joint screws in Eq. (A3) depend on the link screws. This cycle of dependence is broken in the series expansion by the current coefficients T.sub.BCi[k], C[k] and T.sub.Ci[k] depending only on the joint screw coefficients up to T.sub.i[k], with the next coefficient T.sub.i[k+1] calculated in Eq. (A6) from the link screw and joint screw coefficients up to T.sub.Ci[k] and T.sub.i[k]. This relationship follows from the series coefficients T.sub.i[k+1] being calculated from the term-by-term integration of the series representation of {dot over (T)}.sub.i(t).
(166) A second useful relationship is the manner in which a non-linear implicit function has its series expansion calculated by the order-recursive solution of not simply a linear system of equations, but one having a constant matrix of its homogeneous form as seen in Eq. (A5). This allows from the closure constraint of Eq. (A2) applied not just instantaneously but over the course of a finite displacement. Such is represented by the time-varying linear system A(t)C(t)=0 having series coefficients that separate according to
(167)
(168) where constant matrix A=A[0]=┌T.sub.1[0] . . . T.sub.n+1[0]┐. Owing to how the Cauchy product expresses the series coefficients of A(t)C(t), the contribution of the current series coefficient C[k] is hence the homogeneous linear term AC[k], which is separated from T.sub.BCn+1[k] bundling the contributions from prior coefficients C[0], . . . C[k−1]. Each C[k] is therefore the solution to the linear system AC=B supplied the “right-hand side” B=−T.sub.BCn+1[k].
(169) Algorithm 1: Specify joint screws T.sub.i(t=0)=T.sub.i[0]=T.sub.i at the initial posture. For each index k starting at zero, 1) compute T.sub.BCn+1[k] by Eq. (A4), 2) supply that value to the linear system of equations with constant homogenous coefficient matrix A in Eq. (A5) to solve for the joint-rate coefficient vector C[k], 3) substitute the scalar elements C.sub.i[k] of vector C[k] back into Eq. (A4) to determine instantaneous link screws T.sub.Ci[k] and 4) supply those screws to Eq. (A6) calculating the joint-screw coefficients T.sub.i[k+1] needed for the next value of index k.
(170) The preceding constitutes an algorithmic differentiation, where a process determining high-order derivatives of an analytic function by recursive application of formulas giving such a power series expansion is one of the established techniques.sup.53. Unlike the fitting of interpolating polynomials that gives approximate derivative values and requires function evaluations at multiple points, algorithmic differentiation calculates numeric values of exact derivatives at a single point, to within precision of a computer floating-point representation. The single summations of order k terms for each successive series index k are advantageous over alternative formulas for calculating derivatives, whether the Faa di Bruno formula.sup.54 or recursive derivation of symbolic relationships.sup.55,56, both of which grow geometrically.
(171) How the cycle-of-dependence of the time-dependent equations is broken in the series expansion, and that the influence of each successive coefficient is a separable constant-matrix linear term, is foundational to how this algorithm is next extended to a kinematic loop having multiple degrees-of-freedom requiring additional constraints.
(172) Additional Degrees-of-Freedom
(173) The guided displacement method supplies additional independent variables to Eq. (A5) as arising in a path-following procedure applied to a robot with redundant degrees of freedom by
C[k]=C.sub.γγ[k]+C.sub.β[k] (A7)
(174) where C.sub.γ is constant and γ[k] is the guiding coefficient, a scalar for single guiding, a column vector for multiple guiding, where Greek letter γ (gamma) denotes “guiding” and β (beta) “baseline.” This separates the guiding term C.sub.γγ[k] at index k from the contribution of all other terms in C.sub.β[k].
(175) The n×v matrix C.sub.γ=[C.sub.γi,r] for joints 1≤i≤n. The guiding coefficients for 1≤r≥v form column vector γ[k]=[γ.sub.1[k] . . . γ.sub.v[k]].sup.T. Hence product C.sub.γγ[k] remains a column vector under single guiding where v=1 or multiple guiding with v>1. Upon substituting C[k] from Eq. (A7), Eq. (A5) is satisfied for all γ[k] when
AC.sub.γ=0,AC.sub.β[k]+T.sub.BCn+1[k]=0 (A8)
(176) Whereas this separation of terms is not unique, Eq. (A8) placing the T.sub.BCn+1[k] term in the second of the two formulas simplifies deferring the calculation of γ[k] until applying additional constraints. The one or more columns of C.sub.γ, constituting homogeneous solutions to a linear system with the same matrix A as Eq. (A5), are calculated once at the start of a series expansion. Subsequently at each index k, scalar or vector γ[k] weights these homogenous solutions to meet one or more of such constraints. The resulting value of C[k] then updates the value of T.sub.BCn+1[k+1] to allow solving Eq. (A8) for C.sub.β[k+1] at the next index k←k+1.
(177) Deferring the calculation of γ[k] is also facilitated by substituting Eq. (A7) into Eq. (A4) to give the dependence of the link instantaneous screw on γ[k] as
(178)
(179) Substituting this expression of the instantaneous screw into Eq. (A6) does the same for the joint screw
(180)
(181) and where {tilde over (T)}.sub.Ci[m]=T.sub.Ci[m], m<k and {tilde over (T)}.sub.Ci[k]=T.sub.βCi[k]. As with C.sub.γi, T.sub.γCi=[T.sub.γCi,1 . . . T.sub.γCi,v] and T.sub.γi=[T.sub.γi,1 . . . T.sub.γi,v] are right-multiplied by scalar or column-vector γ[k] for one or more guiding coefficients. For Lie product x, T.sub.γi,r=T.sub.γCi,r×T.sub.i is expressed over the range of guiding-coefficient index r. As with C.sub.γ, the one or more constant columns of T.sub.γCi and T.sub.γi to be multiplied by the one or more guiding coefficients are calculated once at the start of a series expansion.
(182) Constraining the Added Degrees of Freedom
(183) One source of an added constraint to a redundant robot considers a joint-rate vector C.sub.V(t) comprised of elements C.sub.Vi(t)=δθ.sub.i(t)/δx. These elements represent a virtual displacement δθ.sub.i(i) of joint angle θ.sub.i at time t with respect to variation δx in parameter x. The trajectories of the joint screws T.sub.i(t) making up the columns of A(t), however, are determined as before from the joint rates C(t) on the actual displacement path. The virtual displacement satisfies A(t)C.sub.V(t)=0 at all times t along that path.
(184) The goal is to calculate the series of coefficients γ[k] to guide displacement along the actual path to satisfy a condition on passive joint rate C.sub.Vi(t) representing a virtual displacement. Whereas the selected active and passive joints in C.sub.V(t) represent a single virtual displacement, C.sub.V,r(t) will represent one of multiple virtual displacement selected by index r. In each such virtual displacement, initial series coefficient C.sub.V[0]=C.sub.V(0) is determined by solving AC.sub.V[0]=0 from one or more active joint rates among the elements of C.sub.V driving the virtual displacement. Initial C.sub.V[0] is in this way determined by the initial joint angles of the robot along its actual displacement path. Successive coefficients C.sub.V[k+1] for k≥0 will be seen to be linear in the elements of the guiding vector γ[k] with a constant offset. This occurs upon expanding A(t)C.sub.V(t)=0 and separating terms according to
(185)
(186) where {tilde over (C)}.sub.Vi[m]=C.sub.Vi[m] apart from {tilde over (C)}.sub.Vi[k+1]=0. According to Eq. (A10), scalar γ[k] influences joint screw coefficients T.sub.i[k+1], which in turn determines C.sub.V[k+1] by Eq. (A11). Substituting
(187)
(188) together with Eq. (A10) into Eq. (A11) and then grouping by dependence on γ[k] gives formulas for the terms
(189)
(190) Constant C.sub.γV is an n×v matrix with the same structure as C.sub.γ that is also solved once at the start of a series expansion whereas C.sub.βV[k+1] is solved at each index k≥0. The manner in which γ[k] controls the next series coefficient C[k+1] by way of Eq. (A12) is key. Specifying one or more passive-joint entries of C.sub.V[k+1] will formulate a linear system of equations to be solved for γ[k]. That linear system will be constructed from elements taken from constant matrix C.sub.γV and each successive C.sub.βV[k+1], that were in turn solved from the linear systems in Eq. (A13). Once guiding vector coefficient is known γ[k], this completes the deferred solution to Eq. (A7) from which all the remaining kinematic series coefficients may be updates.
(191) Algorithm 2: Given the initial joint screws T.sub.i comprising matrix A, solve for constants C.sub.γ, T.sub.γCi, T.sub.γi along with the one or more values for C.sub.V[0] and C.sub.γV for one or more virtual displacements supplying constraints on one or more guiding coefficients. For each index starting at k=0, perform the following steps. Evaluate Eqs. (A8)-(A10) for C.sub.β[k] and T.sub.βi[k+1] followed by Eq. (A13) for one or more coefficients C.sub.βV[k+1]. Solve Eq. (A12) for vector γ[k] meeting a condition applied on the one or more virtual displacement coefficients C.sub.V[k+1] Use this value of γ[k] in Eqs. (A7), (A9) and (A10) to update C[k], T.sub.Ci[k] and T.sub.i[k+1] on the actual displacement path.
(192) Optimizing Tool Deviation at One Point Along a Through-the-Singularity Avoidance Path
(193) In a guiding a single virtual displacement, Eq. (A12) becomes
C.sub.γV7γ[k]+(k+1)(C.sub.βV7[K+1]−C.sub.V7[k+1])=0
where subscript 7 denotes the joint-7 element of column vectors C.sub.γV, C.sub.βV[k+1] and C.sub.V7[k+1]. Having initial coefficient C.sub.V7(0)=C.sub.V7[0]≠0, C.sub.V7(t) may be placed on a linear path restoring it to zero at t=1 by solving scalar γ[0] to make C.sub.V7[1]=−C.sub.V7[0], with γ[k] making C.sub.V7[k+1]=0 for k≥1. By correcting in this way for any C.sub.V7(t)β0 at the start of each successive step that may result from predictor error in the preceding step, the side condition C.sub.V7(t)=0 is “achieved and maintained” along an actual displacement path.
(194) This single virtual-displacement procedure is applied in the Preferred Embodiment 1) over the course of the singularity locating maneuver to maintain the minimum tool deviation θ.sub.7, 2) when solving for the point giving the least-maximum deviation on the adjusted path of a spherical wrist, and 3) in order to pass through the least-maximum point upon executing the singularity avoidance maneuver
(195) With an offset wrist, finding the least-maximum point on the adjusted path requires guiding joints 4, 5 and 6 with joints 1, 2, 3, 7, 8 and 9 passive to meet rate C.sub.V7(t)=0 for each of the constant active-joint rates C.sub.V4=1, C.sub.V5=1 and C.sub.V6p=1. Applying Eq. (A12) to these three virtual displacements having rate vectors C.sub.V,r for 1≤r≤3 gives the linear system of equations
(196)
(197) For example, constant coefficient C.sub.γV7,3,1 at the end of the first row in Eq. (A15) is taken from row 7 and column 3 of matrix C.sub.γV,1, which is in Eq. (A12) for the first of three virtual displacements. The three virtual-displacement rates C.sub.V7γ(t) for 1≤r≤3 are declined to zero on the interval 0≤t≤1 by coefficients appearing in Eq. (A14) set to C.sub.V7γ[1]=−C.sub.V7γ[0] followed by C.sub.V7γ[k+1]=0.
(198) Optimizing Tool Deviation at Two Points Along an Around-the-Singularity Avoidance Path
(199) Points on the actual path before and after the singularity are to be connected by an avoidance path that maintains joint rates C.sub.4 and C.sub.9 in a constant ratio. Along such a path not passing through the wrist singularity and maintaining the specified trace of the tool contact point with the work piece, tool deviation angle θ.sub.7 will increase from zero to a maximum, decrease from that maximum to cross zero, reach a maximum excursion of opposite sign and then decrease in magnitude until it reaches zero once more, reaching the actual path on the other side of singularity encounter. The objective is to achieve the least magnitude of the maximum of these two excursions occurring on this path.
(200) The procedure from Appendix C locates either an extremum where the slope of tool deviation θ.sub.7 crosses zero, or a zero crossing of θ.sub.7 itself. Applying searches for zero slope and zero value in alternating sequence locates the pair of points along a singularity-avoidance path where both are locally of maximum tool deviation. Each of these points is then displaced by a different path-following procedure having the objective of shifting the intersections of the line through those points along the actual path before and after singularity. These displacements are coordinated to keep constant Δθ.sub.4/Δθ.sub.9 slope, same as rate-ratio limit C.sub.4/C.sub.9, when shifting that line. Each such displacement step has a secondary objective to achieve or maintain the local least-maximum of tool deviation at the displaced point. This is accomplished over the course of a step by adjusting this point along the line of slope C.sub.4/C.sub.9 to where θ.sub.7 is maximized along with adjusting θ.sub.6 to simultaneously minimize θ.sub.7, meeting the least-maximum condition at the end of that step. Satisfying the above conditions, the coordinated displacements shift the line to increase one of the least-maximum deviation values and decrease the other until the two deviations equalize in magnitude, achieving the global least-maximum tool deviation that occurs at two places along an around-the-singularity avoidance path.
(201) The optimization procedure is conducted by the methods using one guiding coefficient to direct the coordinated actual displacement applied equally to each point in shifting the line of constant C.sub.4/C.sub.9. Two more guiding coefficients are applied independently at each point to direct a pair of virtual displacement to zero to meeting the least-maximum stationarity condition at the end of a displacement step. Joints 1, 2, 3, 5, 7, and 8 are made passive to both the actual and virtual displacements. The active joints guided by coefficient γ.sub.2 in Eq. (A7) are C.sub.γ4,2=1 and C.sub.γ9,2=C.sub.9/C.sub.4 (the reciprocal of slope C.sub.4/C.sub.9), and those for γ.sub.3 are C.sub.γ3,6=1. The active joints for γ.sub.1 are C.sub.γ4,1=1 and C.sub.γ9,1=√{square root over (−C.sub.9/C.sub.4)} for C.sub.9/C.sub.4<0, C.sub.γ9,1=−√{square root over (C.sub.9/C.sub.4)} C.sub.9/C.sub.4>0. This selection applies the coordinated displacement to the two points in a direction that is observed on average, to reduce the amount γ.sub.2 needs to slide the points along the line.
(202) In the two virtual displacements, the first is seeded with active-joint coefficients C.sub.V4,1[0]=1 and C.sub.V9,1[1]=C.sub.9/C.sub.4. The second is seeded with C.sub.V6p,2[0]=1; substituting joint 6p for 6, having unit joint axis direction ω.sub.6p=ω.sub.7×ω.sub.6 in place of ω.sub.6, maintains numeric precision at small tool deflections θ.sub.7.sup.57 where the virtual wrist becomes singular.
(203) When joint 7 is the passive joint controlled in each of two virtual displacements, applying Eq. (A12) to the two virtual displacements represented by C.sub.V,r for 1≤r≤2 gives the linear system
(204)
(205) For example, constant coefficient C.sub.γV7,3,1 at the end of the first row in Eq. (A15) is taken from row 7 and column 3 of matrix C.sub.γV,1, which is C.sub.γV in Eq. (A12) for the first of two virtual displacements. Were the adjustment equalizing |θ.sub.7| at the two points paused by setting γ.sub.1[k]=0, the stationarity conditions at each point are to be met by solving for γ.sub.2[k]=γ.sub.02[k] and γ.sub.3[k]=γ.sub.03[k] when C.sub.V7,r[1]=−C.sub.V7,r[0] followed by C.sub.V7,r[k+1]=0 for k>0. This solution declines C.sub.V7,r(t) to zero over the interval 0≤t≤1. Upon conducting the adjustment with γ.sub.1[k]≠0, solving
(206)
obtains corrections γ.sub.1[k]γ.sub.12 and γ.sub.1[k]γ.sub.13 preserving the least-maximum condition achieved by Eq. (A15).
(207) Equation (A16) is therefore solved once for the coefficients γ.sub.12 and γ.sub.13 for the influence of γ.sub.1[k] on γ.sub.2[k] and γ.sub.3[k], and Eq. (A15) is solved at each index k for baseline values γ.sub.02[k] and γ.sub.03[k], giving
γ.sub.2[k]=γ.sub.02[k]+γ.sub.1[k]γ.sub.12,γ.sub.3[k]=γ.sub.03[k]+γ.sub.1[k]γ.sub.13 (A17)
(208) With vector γ[k] having in this way a single degree-of-freedom controlled by γ.sub.1[k], vectors γ[k] are supplied to Eq. (A7) to control rates C.sub.7(t) in each of two of coordinated displacements equalizing |θ.sub.7|. Its power series coefficient is thereby expressed as
C.sub.7[k]=C.sub.γopt7γ.sub.1[k]+C.sub.βopt7[k],
C.sub.γopt7=C.sub.γ7,1+γ.sub.12C.sub.γ7,2+γ.sub.13C.sub.γ7,3,
C.sub.βopt7[k]=C.sub.γ7,2γ.sub.02[k]+C.sub.γ7,3γ.sub.03[k]+C.sub.β7[k] (A18)
(209) Supplying the same guiding coefficient γ.sub.1[k] to points on the adjusting path before and after the zero crossing of θ.sub.7,
θ.sub.7before+C.sub.7before[0]=−(θ.sub.7after+C.sub.7after[0]);
C.sub.7before[k+1]=−C.sub.7after[k+1],k≥0 (A19)
linearly declines the before-and-after tool deviation mismatch to zero over the interval 0≤t≤1. Substituting Eq. (A18) for the “before” and “after” points into Eq. (A19) gives a single linear equation solvable for γ.sub.1[k], which in turn determines the remaining guiding coefficients by Eq. (A17). Such allows updating the necessary kinematic variables to complete the steps of Algorithm 2
Optimization Constraints Required for an Offset Wrist
(210) For a step of length t.sub.h=1, the displacement Δθ.sub.4=γ.sub.1(1), Δθ.sub.9=γ.sub.1(1)C.sub.9/C.sub.4, evaluated from the series expansion of γ.sub.1(t) at t=1, series convergence benefits from limiting the step to a fraction of the distance to one of the two turning-point (path reversal) singularities that can occur with an offset wrist. The distance between the turning point at (θ.sub.9sing, θ.sub.4sing) and any point (θ.sub.9, θ.sub.4) on the line is expressed in terms of γ.sub.1(t) by solving for unknowns γ.sub.1max and γ.sub.2max in the linear system
θ.sub.4sing−θ.sub.4=C.sub.γ4,1γ.sub.max+C.sub.γ4,2γ.sub.2max,
θ.sub.9sing−θ.sub.9=C.sub.γ9,1γ.sub.max+C.sub.γ9,2γ.sub.2max (A20)
for γ.sub.1max. Similarly, distances are calculated to the points (θ.sub.9init, θ.sub.4init) on each actual-path segment, where θ.sub.9init is a minimum distance (such as 0.5°) from its corresponding turning point at θ.sub.9sing.
(211) When the initial series coefficient γ.sub.1[0] exceeds either the convergence limits or 0.7 of the distance when approaching (θ.sub.9init, θ.sub.4init), γ.sub.1[0] is set to that limit and γ.sub.1[k+1] is set to zero for k>0. Such a step does not reach equalized θ.sub.7 at the two local least-maximum points on the line, but it has neither taken too large a step nor violated the (θ.sub.9init, θ.sub.4init) limit on either side. If a step is conducted within those limits allowing calculation of γ.sub.1[k+1], that step has equalized the local least-maxima and has found an optimal line intersecting the actual path before and after singularity encounter. Those intersection points can then be adjusted outward from the singularity to meet the acceleration limit.sup.57.
(212) If one of the two (θ.sub.9init, θ.sub.4init) limits remains active, a second optimization keeps the intersection at that (θ.sub.9init, θ.sub.4init) and equalizes the two local least maxima by reducing slope Δθ.sub.4/Δθ.sub.9. Each pair of points (θ.sub.9, θ.sub.4) keeps that intersection point by maintaining
θ.sub.9(t)−θ.sub.9init=(θ.sub.4(t)−θ.sub.4init)v(t) (A21)
where v(t) is the reciprocal slope of the line varying over the displacement step starting with v(0)=v[0]=C.sub.9/C.sub.4. Taking the derivative of both sides gives
C.sub.9(t)=C.sub.4(t)v(t)+(θ.sub.4(t)−θ.sub.4init)γ.sub.1(t),γ.sub.1(t)={dot over (v)}(t) (A22)
having the power-series expansion
(213)
(214) Term-by-term integration of the series for {dot over (v)}(t)=γ.sub.1(t) and {dot over (θ)}.sub.4(t)=C.sub.4(t) gives
(215)
(216) These relations allow replacing the second line of Eq. (A23) by
(217)
(218) In this second optimization, C.sub.9[0]=C.sub.4[0]v[0]=C.sub.4[0]C.sub.9/C.sub.4 and C.sub.9[k+1]=C.sub.4[k+1]C.sub.9/C.sub.4 leave the active joints guided by coefficient γ.sub.2 in Eq. (A7) unchanged at C.sub.γ4,2=1 and C.sub.γ9,2=C.sub.9/C.sub.4. Similarly, the single active joint rate guided by γ.sub.1 becomes C.sub.γ9,1=θ.sub.4[0]−θ.sub.4init, where the same θ.sub.4init and different initial values of θ.sub.4[0] at the two points on the line are supplied to the two coordinated displacements. In Eq. (A7), C.sub.β[0] is unchanged whereas C.sub.βv9[k+1] from Eq. (A24) is added to C.sub.β[k+1] for k≥0.
(219) Similarly, the virtual displacement A(t)C.sub.V(t)=0 for the passive variation δθ.sub.7 with respect to δθ.sub.4 and δθ.sub.9=δθ.sub.4v, v=C.sub.9/C.sub.4 feeds to account for non-constant v=v(t). For this the first of two virtual displacements, the time-varying active-joint rate C.sub.V9(t)=v(t) applies to column T.sub.9(t) contributing
(220)
Term T.sub.9[k+1]C.sub.V9[0] is already incorporated into the solution for C.sub.γV in Eq. (A13) whereas T.sub.9[0]C.sub.V9[k+1] needs to be added to
(221)
in that equation when solving for C.sub.βV[k+1].
Appendix B—Proximity to Singularity and Maximum Joint-Rate Ratio
(222) The singularity exclusion cone depends on the maximum joint-rate ratio between either of joints 4 or 6 in the wrist and joint 9 for the tool motion. When called to pass inside that cone, deviating from the desired path by passing directly through the singularity can limit the joint rates.
(223) When rotation centers WCP, TCP, and RCP (see
C.sub.4ω.sub.4+C.sub.5ω.sub.5+C.sub.6ω.sub.6+C.sub.9ω.sub.9=0
(224) For wrist deflection θ.sub.5 giving the angle from the singular position, ϕ the angle of ω.sub.9 from ω.sub.6, ω.sub.4=(0, cos θ.sub.5, sin θ.sub.5), ω.sub.5=(1, 0, 0) ω.sub.6=(0, 1, 0), ω.sub.9=(0, cos ϕ, sin ϕ) gives solution C.sub.4=sin ϕ/sin θ.sub.5, C.sub.5=0, C.sub.6=−(cos θ.sub.5 sin ϕ+sin θ.sub.5 cos ϕ)/sin θ.sub.5=−sin(θ.sub.5+ϕ)/sin θ.sub.5 when C.sub.9=1. Hence the rate ratio |C.sub.4/C.sub.9|>1/sin θ.sub.5 axis direction ω.sub.9 pointed 90 deg in relation to ω.sub.6 and inside the exclusion cone of angle θ.sub.5: A ratio of 6 gives an exclusion cone below 10 deg.
(225) Appendix C—Path-Following Procedure for Locating Kinematic Zeroes.
(226) Operations conducted when planning the adjusted robot path encountering the singularity with a limit applied to a joint rate and acceleration require a procedure articulating the robot to bring a joint angle, its rate or a rate derivative (angular acceleration) to zero.
(227) Such a procedure based on a reversion of series expands the inverse function x=g(y) from the coefficients of y=ƒ(x), exchanging the roles of independent and dependent variable. Inverse function g is singular, however, at the pair of values x, y where the forward function has an inflection point. The Newton-Raphson method finding zero of ƒ(x) from its value and its derivative at a starting point x, may be regarded as a low-order reversion.sup.58; its iterations can diverge wildly near inflection ƒ′(x.sub.1)=0.sup.59.
(228) With a kinematic loop that admits a high-order power series, a high-order guided displacement procedure of the type describe in Appendix A potentially allows solving for a zero of a speed ratio over a large angle displacement of the guiding joint in one update step. Unfortunately, inflections of ƒ(x) giving the speed ratio as a function of a joint angle make g(y) singular. Even if that singularity is some distance from the zero in question, a high-order series converges slowly or even diverges if the step size is large in relation to the distance to the inflection singularity. Such remains the case even when taking a step in the opposite direction. Along with the complication of extending Appendix A to the rate derivative, ƒ(x) having an inflection on the scale of the distance to its zero motivates the following alternative.
(229) Consider expanding ƒ(x) to high order, treating the truncated series as coefficients of polynomial ƒ.sub.p(x), and solving for its first real root. This process is heuristic inasmuch as this polynominal is not ƒ(x). A high-order series truncation, however, gives small kinematic closure error when its steps are restricted in relation to distance to a known singularity. Taking a final step that is a fraction p of that limit makes the error of an order p expansion even smaller by O(ρ.sup.p+1). The problem then is one of finding the first real root x.sub.0>0, if any, of a polynomial. Newton-Raphson iterations are of low calculation cost when applied to a polynomial relative to function evaluations of the kinematic problem. Those iterations are prevented from overshooting the root by applying them to a bounding polynomial. The procedure used for course adjustments.sup.57 is improved by considering all cases of the quadratic portion of this polynomial to insure it contains one real root. The following also allows dispensing with reversion of series for the final, fine adjustment at minor increase in calculation cost.
(230) The approximating polynomial ƒ.sub.p(x)=ƒ.sub.p[0]+ƒ.sub.p[1]x+ƒ.sub.p[2]x.sup.2+ . . . +ƒ.sub.p[p]x.sup.p is normalized so that ƒ.sub.p[0]=ƒ.sub.p(0)≥0 without changing its roots. If ƒ.sub.p(0)≡0, the first root already located. The lower-hound polynomial ƒ̆.sub.p(x) retains the quadratic coefficients ƒ.sub.p[0], ƒ.sub.p[1], ƒ.sub.p[2] and sets all positive coefficients ƒ.sub.p[i] for 2<i≤p to zero. This guarantees that ƒ̆.sub.p(x)≤ƒ.sub.p(x) for positive x and that its first real root is a lower hound on the roots of ƒ.sub.p(x). Function leaves out the quadratic terms of ƒ̆.sub.p(x), insuring ƒ̆.sub.3,p(x)≤0 for x≥0 making it either constant or monotone down.
(231) Considering the relationships between its order 2 quadratic part and the complete bounding polynomial in
(232) In case b), both the quadratic and the bounding polynomial ƒ̆.sub.p(x) are initially of upward slope and downward curvature. Both functions will continue to increase until they reach their respective slope inflection points. Hence ƒ̆.sub.p(x) has no real root until after its inflection. Between its inflection point and the positive-real root of the downwardly curved quadratic, ƒ̆.sub.p(x) has one real root.
(233) In case e) where both functions are initially of positive slope and upward curvature, the bounding polynomial ƒ̆.sub.p(x) will continue to increase until it passes first its curvature inflection followed by its slope inflection. After that, ƒ̆.sub.p(x) is monotone down if ƒ̆.sub.3,p(x) has at least one non-zero coefficient. It follows that ƒ̆.sub.p(x) has only one real root on the positive real line. As the quadratic has no real root on that interval, ƒ̆.sub.p(x) would need to be sampled at increasing intervals to determine where it changes sign, marking the upper limit on a single real root. This condition is taken to be the absence of a root, and the search stops.
(234) In case d), the quadratic is downward sloping but upward curving with no real roots. The bounding polynomial ƒ̆.sub.p(x) cannot be guaranteed to be monotone down, and
(235) In a series reversion, the length of a step is known before conducting the expansion, allowing the expansion to correct the error from the previous step. Such a corrector is not as easily combined with the predictor step here in the non-reversion method. Function ƒ(x) needs to be expanded at the start of the step to obtain its bounding polynomial ƒ̆.sub.p(x) giving a step limit not overrunning the zero. Reducing the step length to meet this limit under-applies any correction combined into the expansion of ƒ(x). The non-reversion method is therefore conducted with a separate, 2nd order corrector, the calculation time penalty=being under 20%.sup.48. The following estimates the first zero of θ.sub.z.sup.{d}, where d is the order of the derivative of the angle of a passive joint.
(236) TABLE-US-00004 Algorithm 3: method findZeroAngleDerivative(int d , return boolean success) { Apply corrector; Conduct series expansion for predictor; Evaluate θ.sub.z1.sup.{d} from series coefficients; θ.sub.z0.sup.{d} ← θ.sub.z1.sup.{d} ; t.sub.0 ← tZeroBound (θ.sub.z.sup.{d} [0...p − d]); while ( t.sub.0 > 10.sup.−12 && θ.sub.z1.sup.{d} θ.sub.z0.sup.{d} > | θ.sub.z0.sup.{d} | 10.sup.−10 ) { t.sub.x ← maxStep( ); // Limits steps approaching zero to .14t.sub.x if ( t.sub.0 ≥.14t.sub.x ) {t.sub.0 ← (1 − .07)t.sub.x ; if (t.sub.0 > t.sub.x) t.sub.0 ← t.sub.x ;} Update kinematic variables at t.sub.0 from series expansion; Apply corrector; Conduct series expansion for predictor; Evaluate θ.sub.z1.sup.{d} from series coefficients; t.sub.0 ← tZeroBound(θ.sub.z.sup.{d} [0... p − d]); } success = t.sub.0 > 0 || θ.sub.z1.sup.{d} θ.sub.z0.sup.{d} ≤ |θ.sub.z0.sup.{d}| 10.sup.−10 ; }
REFERENCES
(237) 1. Cheng S K, Jean M R, McGee H D, et al. Method of Controlling a Robot through a Singularity. U.S. Pat. No. 6,845,295, 2005. 2. EPX1250 Versatile Coating Robot (Yaskawa). 3. Wampler C W. Inverse Kinematic Functions for Redundant Manipulators. In: IEEE International Conference on Robotics and Automation Proceedings. IEEE, pp. 610-617, 4. Wang X, Zhang D, Zhao C, et al. Singularity analysis and treatment for a 7R 6-DOF painting robot with non-spherical wrist. Mechanism and Machine Theory 2018; 126: 92-107. 5. Rosheirn M E. Robot Wrist Actuators. New York: Wiley, 1989. 6. Milenkovic V. New Nonsingular Robot Wrist Design. In: Robots 11 Conference Proceedings RI/SME. 1987, p. 13.29-13.42. 7. Stanisic M M, Duta O. Symmetrically Actuated Double Pointing Systems: The Basis of Singularity-Free Robot Wrists. IEEE Transactions on Robotics and Automation 1990; 6: 562-569. 8. Wiitala J M, Stanisic M M, Design of an Overconstrained and Dextrous Spherical Wrist. ASME Journal of Mechanical Design 2000; 122:347-353. 9. Milenkovic P. Non-Singular Spherically Constrained Clemens Linkage Wrist. ASME Journal of Mechanisms and Robotics 2011; 3: 011014-1. 10. Medium Payload Intelligent Robot: FANUC Robot M-710ic, http://www.fanucroboties.com/cmsmedia/datasheets/M-710iC%20Series_178.pdf (2013). 11. Wampler C W. Inverse Kinematic Functions for Redundant Spherical Wrists. IEEE Transactions on Robotics and Automation 1989; 5: 106-111. 12. Kieffer J. Differential Analysis of Bifurcations and isolated Singularities for Robots and Mechanisms. IEEE Transactions on Robotics and Automation 1994; 10: 1-10. 13. Allgower E L, Georg K. Introduction to Numerical Continuation Methods. Philadelphia, Pa.: SIAM, http://books.google.com/books?hl=en&lr=&id=yGAiYYCJ3rkC&oi=frid&pg=PR4&4-Allgower+Georg&ots=WIT8hbtSrl&sig=34jYZcUHCCIk479zP7SsizWjMG4 (2003, accessed 6 Aug. 2014). 14. Lloyd J E. Desingularization of Nonredundant Serial Manipulator Trajectories using Puiseux Series. IEEE Transactions on Robotics and Automation 1998; 14: 590-600. 15. Huang Y, Yong Y S, Chiba R, et al. Kinematic Control with Singularity Avoidance for Teaching-Playback Robot Manipulator System. IEEE Transactions on Automation Science and Engineering 2016; 13: 729-742. 16. Wampler C W. Manipulator Inverse Kinematic Solutions Based on Vector Formulations and Damped Least-Squares Methods. IEEE Transactions on Systems, Man and Cybernetics 1986; 16: 93-101. 17. Nakamura Y, Hanafusa H, inverse Kinematic Solutions with Singularity Robustness for Robot Manipulator Control. ASME Journal of Dynamic Systems, Measurement, and Control 1986; 108: 163-171. 18. Chiaverini S, Egeland O. A Solution to the Singularity Problem for Six-joint Manipulators. In: IEEE International Conference on Robotics and Automation, 1990, pp. 644-649. 19. Chiaverini S, Siciliano B, Egeland), a Review of the damped least-squares inverse kinematics with experiments on an industrial robot manipulato. IEEE Transactions on Control Systems Technology 1994; 2: 1:23-134. 20. Tsai L W. Robot Analysis: The Mechanics of Serial and Parallel Manipulators. New York: John Wiley and Sons, 1999. 21. Wan Y, Kou Y, Liang X. Closed-Loop Inverse Kinematic Analysis of Redundant Manipulators with Joint Limits. In: International Conference on Mechanical Design. Springer, 2017, pp, 1241-1255. 22. Nakamura Y. Advanced Robotics: Redundancy and Optimization. Reading, Mass. Addison-Wesley Longman Publishing Co., Inc., 1991. 23. Corinaldi D, Callegari M, Angeles J. Singularity-free path-planning of dexterous pointing tasks for a class of spherical parallel mechanisms. Mechanism and Machine Theory 2018; 128: 47-57. 24. Kim D-E, Park D-J, Park J-H, et al. Collision and Singularity Avoidance Path Planning of 6-DOF Dual-Alin Manipulator. In: International Conference on Intelligent Robotics and Applications. Springer, 2018, pp. 195-207. 25. Chembuly V, Voruganti H K. An Optimization Based inverse Kinematics of Redundant Robots Avoiding Obstacles and Singularities. In: Proceedings of the Advances in Robotics. ACM, 2017, p. 24. 26. Macicjewski A A, Klein C A. Numerical Filtering for the Operation of Robotic Manipulators through Kinematically Singular Configurations. Journal of Robotic Systems 1988; 5: 527-552. 27. Buss S R, Kim J-S. Selectively Damped Least Squares for Inverse Kinematics. Journal of Graphics, GPU, and Game Tools 2005; 10: 37-49. 28. Oetomo D, Ang, Jr. M H. Singularity Robust Algorithm in Serial Manipulators. Robotics and Computer-Integrated Manufacturing 2009; 25: 122-134. 29. Sun T, Liang D, Song Y. Singular-perturbation-based nonlinear hybrid control of redundant parallel robot. IEEE Transactions on industrial Electronics 2018; 65: 3326-3336. 30. Huang B, Milenkovic V. Method to Avoid Singularity in a Robot Mechanism. U.S. Pat. No. 4,716,350, 1987. 31. Milenkovic V, Huang B. Development On an Algorithm Negotiating Wrist Singularities. In: Robot 11/17th ISIR, pp. 13-1:13-6. 32. Aboaf E W, Paul R P. Living with the Singularity of Robot Wrists. In: IEEE International Conference on Robotics and Automation. 1987, pp. 1713-1717. 33. Milenkovic P. Series Solution for Finite Displacement of Single-loop Spatial Linkages. ASME Journal of Mechanisms and Robotics 2012; 4: 021016. 34. Oetomo D L, Ang V M H, Lim T M. Singularity Robust Manipulator Control using Virtual Joints. In: ICRA '02 Proceedings. 2002, pp. 2413-2423. 35. Long G L, Paul R P, Fisher W D. The Hamilton Wrist: A Four-Revolute-Joint Spherical Wrist Without Singularities. In: IEEE International Conference on Robotics and Automation, 1989, pp. 902-907. 36. Garcia C B, Zangwill W I. Pathways to Solutions, Fixed Points, and Equilibria. Englewood Cliffs, N.J.: Prentice-Hall, 1981. 37. Ambike S, Schmiedeler J P. A Methodology for Implementing the Curvature Theory Approach to Path Tracking with Planar Robots. Mechanism and Machine Theory 2008; 43: 1225-1235. 38. Bennett G T. The Skew Isogram Mechanism. Proceedings of the London Mathematical Society 1914; 13: 151-173. 39, Delassus E. Les Chaines Articulees Fermees et Deformables a Quatre Membres. Bulletin des Sciences Mathernatiques, 2nd series 1922; 46: 283-304. 40. Waldron K J. A Study of Overconstrained Linkage Geometry by Solution of Closure Equations-Part I. Method of Study, Mechanism and Machine Theory 1973; 8: 95-104. 41. Snyder J P. Map Projections: A Working Manual, US Government Printing Office, 1987. 42. Todhunter I. Spherical Trigonometry, for the Use of Colleges and Schools 5th Edition, Cambridge: Macmillan, 1886. 43. Paul R P, Stevenson C N. Kinematics of robot wrists. The International Journal of Robotics Research 1983; 2: 31-38. 44. Huang B, Milenkovic V. Kinematics of Minor Robot Linkage, In: Robotics Research: The Next Five Years and Beyond. RI/SME, 1984, pp. MS84-496. 45. Apostol T M. Mathematical Analysis, Second Edition, Reading, Mass.: Addison-Wesley, 1974. 46. Milenkovic P. Projective Constraint Stabilization for a Power Series Forward Dynamics Solver. ASME Journal of Dynamic Systems, Measurement, and Control 2013; 135: 031004. 47. Milenkovic, P. H. Kinematic predictor for articulated mechanisms. U.S. Pat. No. 9,031,699 B2, 2015. 48. Milenkovic. P. Effect of the coordinate frame on high-order expansion of serial-chain displacement. Proceedings of the Institution of Mechanical Engineers, Part K: Journal of Multi-body Dynamics 2019; 840-855, 49. Milenkovic. P. Solution of the Forward Dynamics of a Single-loop Linkage Using Power Series. ASME Journal of Dynamic Systems, Measurement, and Control 2011; 133: 061002. 50. Featherstone R. Rigid Body Dynamics Algorithms, New York: Springer, 2008. 51. Featherstone R. Plucker basis vectors. In: Proceedings 2006 IEEE International Conference on Robotics and Automation. 2006, pp, 1892-1897. 52. Karsai G. Method for the Calculation of the Combined Motion Time Derivatives of Optional order and Solution for the Inverse Kinematic Problems. Mechanism and Machine Theory 2001; 36: 261-272. 53. Ciriewank A, Walther A. On the efficient generation of Taylor expansions for DAE solutions by automatic differentiation. In: Dongarra J, Madsen K, Wasniewski J (eds). Springer, 2006, pp. 1089-1098. 54. Ambike S, Schmiedeler J P, Stanisic M M. Trajectory Tracking via Independent Solutions to the Geometric and Temporal Tracking Subproblems. ASME Journal of Mechanisms and Robotics 2011; 3: 021008. 55. Muller A, Higher Derivatives of the Kinematic Mapping and Some Applications. Mechanism and Machine Theory 2014; 76: 70-85. 56. Muller A. Higher-order analysis of kinematic singularities of lower pair linkages and serial manipulators. Journal of Mechanisms and Robotics 2018; 10: 011008. 57. Milenkovic P. Continuous path control for optimal wrist singularity avoidance in a serial robot. Mechanism and Machine Theory 2019; 140: 809-824. 58. Bickley W G. 1587. An Extension of Newton's Formula for Approximating to the Roots of Equations. The Mathematical Gazette 1942; 26: 102-104. 59. Press W H. Numerical Recipes in Pascal. New York: Cambridge University Press, 1989.
(238) Certain terminology is used herein for purposes of reference only, and thus is not intended to be limiting. For example, terms such as “upper”, “lower”, “above”, and “below” refer to directions in the drawings to which reference is made. Terms such as “front”, “back”, “rear”, “bottom” and “side”, describe the orientation of portions of the component within a consistent but arbitrary frame of reference which is made clear by reference to the text and the associated drawings describing the component under discussion. Such terminology may include the words specifically mentioned above, derivatives thereof, and words of similar import. Similarly, the terms “first”, “second” and other such numerical terms referring to structures do not imply a sequence or order unless clearly indicated by the context.
(239) When introducing elements or features of the present disclosure and the exemplary embodiments, the articles “a”, “an”, “the” and “said” are intended to mean that there are one or more of such elements or features. The terms “comprising”, “including” and “having” are intended to be inclusive and mean that there may be additional elements or features other than those specifically noted. It is further to be understood that the method steps, processes, and operations described herein are not to be construed as necessarily requiring their performance in the particular order discussed or illustrated, unless specifically identified as an order of performance. It is also to be understood that additional or alternative steps may be employed.
(240) References to “a microprocessor” and “a processor” or “the microprocessor” and “the processor,” can be understood to include one or more microprocessors that can communicate in a stand-alone and/or a distributed environment(s), and can thus be configured to communicate via wired or wireless communications with other processors, where such one or more processor can be configured to operate on one or more processor-controlled devices that can be similar or different devices. Furthermore, references to memory, unless otherwise specified, can include one or more processor-readable and accessible memory elements and/or components that can be internal to the processor-controlled device, external to the processor-controlled device, and can be accessed via a wired or wireless network.
(241) It is specifically intended that the present invention not be limited to the embodiments and illustrations contained herein and the claims should be understood to include modified forms of those embodiments including portions of the embodiments and combinations of elements of different embodiments as come within the scope of the following claims. All of the publications described herein, including patents and non-patent publications, are hereby incorporated herein by reference in their entireties
(242) To aid the Patent Office and any readers of any patent issued on this application in interpreting the claims appended hereto, applicants wish to note that they do not intend any of the appended claims or claim elements to invoke 35 U.S.C. 112(f) unless the words “means for” or “step for” are explicitly used in the particular claim,