Mech. Mach. Theory Vol. 22, No. 6, pp. 507-514, 1987 0094-114X/87 $3.00+0.00 Printed in Great Britain Pergamon Journals Ltd GENERALIZED INVERSES FOR ROBOTIC MANIPULATORS MICHAEL TUCKER ~ and N. DUKE PERREIRA 2 Institute for Robotics, tElectrical Engineering Department, 2Mechanical Engineering and Mechanics Department, Lehigh University, Bethlehem, PA 18015, U.S.A. (Received 17 February 1987) Abstraet--Jacobians are used in robotics for motion planning and control. They are also used in algorithms that determine linkage parameter errors of robots and in algorithms that determine pair variable corrections for accurate motion. Most applications require that the inverse of the Jacobian be obtained. The causes of singularities in Jacobians and a procedure to detect their presence are given. Appropriate inverse solution techniques and their implementation for robots with various types of singularities is outlined. The solutions are applicable to robots with less than, equal to, or greater than six degrees of freedom. For each case, the implementation of both the complete Moore-Penrose inverse and a robot specific pseudo inverse are included. Although it is not necessary to use the Moore--Penrose inverse on any particular robot, the Moore-Penrose inverse can be used to obtain generic inverses for general purpose applications. INTRODUCTION In the command and control of robot manipulators, the inverse Jacobian has many applications. One of the more common uses of the inverse Jacobian is in resolved motion rate control to relate small changes in the pose of the hand frame (its position and orientation) or the hand's pose velocity to changes in the joint pair variables[l]. It can be used in force and torque control[2-4], compliant motion control[5], hybrid force-position control[6] and active stiffness control[7]. In these control techniques it relates forces and torques expressed in the hand frame to joint forces or torques[2]. The inverse Jacobian is also used by algorithms to determine the actual kinematic parameters of a robot linkage[8-12]. After deter- mining the actual kinematic linkage of a robot, the inverse Jacobian can be used to obtain the inverse kinematics solution for that robot[l 3, 14]. All of these applications require that the inverse of a robot Jacobian be computed. The inverse Jacobian is found by first determining the forward Jacobian and then taking its inverse. This approach to finding inverse Jacobians is algorithmic and allows variations in kinematic parameters to occur. It allows generic Jacobians to be developed and results in optimal solutions if either more than one solution or no solution exists. In most applica- tions, the manipulator Jacobian relates small changes in the joint variables to small changes in the pose of the hand frame. The differential change in the pose of the hand frame is defined by three differential trans- lational and three differential rotational hand mo- tions. The ith row of the forward Jacobian contains kinematic influence coefficients that relate small joint motions to a motion of the hand frame in a particu- lar, ith, rotation or displacement direction. The jth column contains kinematic influences that relate small motions of joint j to each of the hand motions. Each element of the forward Jacobian is found by taking a first derivative of the appropriate kinematic constraint equation. Although the forward Jacobian is much easier to determine than the inverse Jacobian, most control techniques require the use of the inverse Jacobian. The forward Jacobian can be inverted, using normal inversion techniques for square matrices, when the robot has six degrees of freedom and is not at a singular point. The causes of the Jacobian singu- larities and algorithmic methods to obtain inverse Jacobians when the forward Jacobian is singular are presented below. THE NOMINAL AND ACTUAL JACOBIAN There are two basic types of forward and inverse Jacobians discussed in this paper, the nominal and actual. During manufacture and construction of a robot, inaccuracies and tolerances cause its linkage lengths and orientations to be different from their nominal (specified) values. Algorithms have been developed that determine the linkage parameter er- rors of the robot[8-12]. The actual Jacobian is based on the actual linkage parameters while the nominal Jacobian is based on the nominal kinematic parame- ters. The kinematic influences of the small changes of the joints on the hand motions are slightly different for the actual robot than for the nominal robot. Thus, for highly accurate pose placement control, the actual Jacobian must be used rather than the nominal Jacobian[15-17]. The distinction between the actual Jacobian and the nominal Jacobian is also important because it is more difficult to determine when the actual Jacobian is singular as opposed to determining when the nominal Jacobian is singular. M.M.T. 22/6--A 507