Summary: | <p>The paper presents a hierarchical approach to solving an inverse problem of kinematics.</p><p>The main idea of the approach is to take, as a basis of solution, a motion (or set of motions) that the robot device has to make in practice.</p><p>Suppose that the robot device is open kinematics having N joints.</p><p>To implement the solution to the inverse kinematics problem it is necessary:</p><p>1. Select a motion (or a set of motions) to be taken as a basis of solution.</p><p>2. Select joints that will be involved in making the specified motion. Let M joints be responsible for making motion, wherein M < N (if to make motion is necessary to use all the joints, then M = N).</p><p>If M < N, then the remaining (N - M) joints will be fixed, the algorithm of solution will not take into consideration their generalized coordinates, and the values of these coordinates will be constant. If a set of motions is specified, we select Mi joints for each motion where i - number of motion.</p><p>3. Assign a motion succession of selected M joints while making the specified motion.</p><p>4. Assign the limits for changes of generalized coordinates in the selected joints.</p><p>A solution of the inverse kinematics problem is a gradual approximation to the specified gripper position and orientation by changing (increasing or decreasing) the values of generalized coordinates in the same succession in which the selected joints have to move.</p><p>The solving process is cyclic. At each step of the cycle generalized coordinates of the selected M joints move in the above succession, each coordinate being under a series of actions described below.</p><p>Each generalized coordinate changes by the value of the increment that corresponds to this coordinate at each step of the solution cycle.</p><p>Then, the following verifications are made for this generalized coordinate:</p><p>- to verify an impact of the generalized coordinates on the gripper – target distance and / or on the gripper orientation;</p><p>- to verify if a generalized coordinate achieves the developer-specified limits of its change.</p><p>Depending on the results of verifications the following actions are undertaken:</p><p>1. If the distance to the target has decreased and / or the gripper orientation has become closer to the desired, additional corrective actions are unnecessary, and we go on to the next generalized coordinate.</p><p>2. If the change of the generalized coordinate has led to a longer distance from the target or increasing angular deviation from the target position, but its value has not yet reached the limits of change, the increment sign of the this coordinate becomes inverse.</p><p>3. If the value of the generalized coordinate reached the limits of change, then its corresponding increment also changes its sign. If after changing the increment sign the gripper is still distant from the target, the last change of the generalized coordinates is cancelled.</p><p>Note: a technique for changing increment signs of generalized coordinate enables to avoid a situation where the robot device that has reached the limits of several coordinates, fails to reach the target.</p><p>In accordance with the idea of a hierarchical approach (taking some motion as a basis of solution), to each of the M joints responsible for the solution a developer assigns a specific "role" in the making a specified motion. For example, one joint may be responsible for rotation towards the target; the other two - for a target approach, joints that are closer to the gripper - for the orientation of the gripper, etc. Some joints may be involved both in the target approach process and in specifying a desired orientation.</p><p>The solving algorithm shows such "roles" of joints at the stage of verification of appropriate generalized coordinates:</p><p>- a changing target – gripper distance is verified for the joint being responsible only for target approach;</p><p>- angular deviations of the gripper unit vectors of the gripper coordinate system from the coordinate system axes of the working space, or other axes selected by the developer are verified for the joint being responsible for gripper orientation;</p><p>- if the joint is responsible for position and orientation both types of verifications are carried out.</p><p>If the set of motions is taken as basis of solution the solving process has a succession of cycles performed (from one motion to another).</p><p>The solution is completed when the requirements for a specified precision of gripper position and orientation are met.</p><p>In fact, the proposed approach has innumerable number of examples in nature. One of them may be a human hand: to take something off the table people consistently use the certain joints of a hand. Thus, a shoulder "drive" is more responsible for guidance to the target, "drives" of the elbow joints – for target approach, "drives" of wrist - for “gripper” orientation and interaction with the target. Since, when making the motions, a human uses all hand joints, there is no need to lock individual joints (the case where M = N).</p>
|