Inverse Kinematics Problem

The inverse kinematics problem is the problem of finding a vector of joint variables which produce a desired end effector location.

From: Neural Systems for Robotics , 1997

Inverse Kinematics of Dextrous Manipulators

David DeMers , Kenneth Kreutz-Delgado , in Neural Systems for Robotics, 1997

4.2.2 The Inverse Kinematics Problem

The inverse kinematics problem is the problem of finding a vector of joint variables which produce a desired end effector location. If a unique vector of joint angles exists which attains the desired end-effector location, there is a well-defined inverse to the forward kinematics function and the inverse kinematics problem is well-posed. Unfortunately, the inverse kinematics problem can be ill-posed because there is either no solution (in this case the target location is infeasible, i.e., out of the reachable workspace), or because there are many solutions.

In general, ill-posedness of the latter type can be interpreted as arising from two distinct phenomena. First, the inverse is nonunique in a global sense (but perhaps still well-defined locally) because of the existence of multiple solution branches. This occurs for manipulators both with and without excess DoF. For example, consider the nonredundant two-link planar manipulator with unlimited rotational joints shown in Figure 4.2. There are two configurations which place the end effector at any given point in the reachable workspace. The nonredundant Puma 560 can place the end effector at a specified location in four distinct ways, as shown in Figure 4.3. problem is locally well-posed.

FIGURE 4.2. Two-link planar manipulator. The two-link planar manipulator is nonredundant for (x, y) positioning in its reachable workspace. For each location within the reachable workspace, there are two inverse solutions. For this nonredundant manipulator, each branch contains only one solution and thus the inverse

FIGURE 4.3. The Puma's postures. The four physical solutions which position the end effector at (0, 30, 40).

Second, the inverse kinematics problem for a manipulator with redundant DoF is locally ill-posed in that each solution branch contains an infinite number of solutions. A single inverse solution branch consists of a set of configurations which have a manifold structure in the joint space of dimension equal to the number of redundant degrees of freedom. The existence of such nontrivial preimage manifolds for redundant DoF manipulators allows configuration motions to occur while keeping the end effector fixed at some desired location. Such motions are called manipulator self-motions.

In general, the set of solutions to the inverse kinematics problem for a redundant manipulator consists generically of a finite number of nontrivial self-motion manifolds (the solution branches) in the configuration space. Any point in this set solves the task of positioning and orienting the end effector at the target. Control of a redundant manipulator involves selecting one of these branches and selecting a unique point on the branch.

Figure 4.4 is a contour plot showing a simplified example of the nature of inverse solutions in the context of a function from a two-dimensional space to a one-dimensional space. The forward function is a function from (longitude, latitude) to elevation. The set of (longitude, latitude) pairs which are at an elevation value of 60 form a single connected line around the side of the mountain. For elevations slightly different from 60, the sets will look quite similar. At 80, we are approaching a saddle in the hillside, but still we can reach all of the locations at elevation 80 by strolling once around the mountain. However, at 100 we have a critical point: a (longitude, latitude) point at which the choice of contour direction suddenly changes from 2 to 4. This is a bifurcation in the set of contours. Elevation 100 is a critical value of the elevation. And the inverse image of elevation 100 forms a dividing surface in the (longitude, latitude) map. There are several choices of how to follow the curve of locations near elevation 100. For elevations slightly below 100, there is a single loop, but for elevations slightly above 100 there are two distinct loops, one around each of the peaks. At 120 there are two well-defined and distinct sets of locations. If we want to stroll around at constant elevation, we have to choose one of the paths; in order to reach the other, we must descend and pass through the contour at 100. At 140, we have again only a single set—the south peak is only at elevation 130 while the north peak is at 150. Thus there is another bifurcation occurring at elevation 130, where one branch of the contour disappears entirely.

FIGURE 4.4. Contour example. Consider a function from (x, y) to elevation as shown by this map. The inverse problem asks, "What set of locations are at elevation X ?." Different elevations X yield qualitatively different solution sets; for example, at X = 80, the solution set extends all the way around the mountain, whereas at X = 120 there are two disjoint closed loops, one around each peak. The elevations where qualitative changes occur are the critical values.

These phenomena are generic to smooth many-to-one functions over bounded domains. In particular, the elevations at which the number or nature of the (longitude, latitude) inverse sets changes will partition the set of target elevations into a finite number of regions. The inverse of any elevation in one of these regions looks very much like that of any other elevation within the same region, but very different from that of elevations on the other side of the bifurcation points.

Similarly, the forward kinematics mapping has a global topological structure which induces a partition of the workspace into regions which have as their inverse images sets forming a disjoint partition of the jointspace into the solution branches. The inverse image of any point in a single workspace region has the same topology as all others in that region. In some sense this is the most parsimonious partition of the workspace in that the invertibility of these (maximally sized) disjoint workspace regions can be guaranteed, with all inverse solutions available over each region. Wenger has investigated finding the maximally sized nondisjoint invertible workspace regions [54]. Here, there is an explicit attempt to find the largest regions within each of which at least one solution branch can be guaranteed, and which are invertible in the sense described later in this section. However, the availability of all inverse solutions is no longer guaranteed.

In order to develop a framework to describe and analyze the topological structure of a manipulator, in the next subsection we delve into more abstract topological notions. This background is important, as appropriate use of topological knowledge of the problem allows the development of algorithms for identifying the invertible regions of the workspace and identifying solution branches, and developing a natural representation for the redundant degrees of freedom.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780080925097500087

Kinematics

Dragomir N. Nenchev , ... Teppei Tsujita , in Humanoid Robots, 2019

2.10.2 Inverse Kinematics Solution

The inverse kinematics problem for closed loop e can be formulated as follows: "Given the loop-closure and root-link twists V e and V R and the relative end-link twist V k , find the limb joint velocities θ ˙ k , k { e r , e l } ." The solution to the above problem can be derived from (2.73). It would be straightforward to solve this equation for the joint velocity that instantaneously satisfies both constraints determined by the r.h.s., i.e. the loop-closure one and the end-link relative velocity one. It is important to note, however, that the former constraint is a physical one while the latter is a task-induced one. Having in mind that physical constraints should always be satisfied, it would be preferable to resort to a solution with a priority structure such that the loop-closure constraints have the higher priority. To this end, first solve the upper part of (2.73) for the limb joint velocity, i.e.

(2.85) θ ˙ k = J c R + ( q k ) V ˜ k c + ( E J c R + ( q k ) J c R ( q k ) ) θ ˙ k u ,

where V ˜ k c = V k c C c R T ( q k ) V R . The joint velocity θ ˙ k u of the unconstrained limb is then determined to satisfy the end-link relative motion task constraint in the lower part of (2.73). As a result, one obtains the following constrained least-squares solution (cf. (2.49)):

(2.86) θ ˙ k = J c R + ( q k ) V ˜ k c + J m R + ( q k ) V ˜ k m + ( E J R + ( q k ) J R ( q k ) ) θ ˙ k u = θ ˙ k c + θ ˙ k m + θ ˙ k n , s.t. θ ˙ k c θ ˙ k m θ ˙ k n .

Here J m R ( q k ) = J m R ( q k ) N ( J c R ( q k ) ) is the end-link mobility Jacobian restricted by the null space of the limb constraint Jacobian, N ( J c R ( q k ) ) . The end-link velocity V ˜ k m = V k m J m R ( q k ) J c R + ( q k ) V ˜ k c C m R T ( q k ) V R . The joint velocity θ ˙ k u can be reused to parametrize any remaining DoFs within the null space of the limb Jacobian, N ( J R ( q k ) ) . Such DoFs are available when the limb is kinematically redundant ( n k 6 > 0 ); they determine its self-motion.

On the other hand, when the limb is nonredundant ( n k = 6 ), the last term in the above equation vanishes. This is the case with the leg branches (cf. Fig. 2.13), i.e. e = F and R = B . Recall the example in 2.10.1 where a stationary support with hard contacts was assumed. Then, V F = 0 = V F j c (cf. (2.84)). The higher-priority component (the first term on the r.h.s. of (2.86)) yields then instantaneous motion in each leg that will only contribute to the base link velocity V B . The lower-priority component (the second term), on the other hand, will produce a sliding motion within the support plane and/or a rotation around the plane normal. This subtask can be accomplished independently from the respective subtask with the other leg.

Further on, in many cases high-friction contacts at the feet are assumed, s.t. foot velocity V F j becomes identically zero (under the assumption of a stationary support surface). This also implies that the constraint basis at the feet B c = E 6 . Hence, J c B ( q F j ) becomes identical to the limb Jacobian J B ( q F j ) (a square matrix). Since the feet are fixed, the relative twist V F = 0 . Then, from (2.86) the following unique solution is obtained:

(2.87) θ ˙ F j = J B 1 ( q F j ) V B .

The closed-loop formulas derived above hold even when a contact breaks and the respective closed loop ceases to exist. For instance, consider the change from a double to a single leg stance, e.g. when the left foot lifts off the floor. Then, the last equation expresses the inverse kinematics relationship for a nonredundant serial-link limb (the right leg, j = r ) on a fixed base, provided the contact is maintained.

The limb joint velocities derived from the above equations will be henceforth referred to as constraint-compatible or constraint-consistent.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780128045602000092

System Modeling

Patricia Mellodge , in A Practical Approach to Dynamical Systems for Engineers, 2016

2.4.6.1 MATLAB Example: Inverse Kinematics of the Robotic Arm

This example shows how to solve the inverse kinematic problem using SVD in MATLAB and plots the results. In the problem, the desired movement of the end effector is given in terms of x ˙ and y ˙ . The code then determines the necessary angular velocities to achieve that end-effector movement. The angles are updated according to these angular velocities to get the angles at the next sampling time. The new angles are then used in the next iteration of the solution. The code below is the basic program for simulating the robotic arm movement.

% inverse_kinematics.m

close all

clear all

% Set the lengths of each link

l1 = 1;

l2 = 1.5;

l3 = 0.5;

% Sampling time for updating

T = 0.01;

% Initial conditions

theta1 = 45∗pi/180;

theta2 = 60∗pi/180;

theta3 = -20∗pi/180;

theta = [theta1;theta2;theta3];

% Desired trajectory

x_dot = 5;

y_dot = -5;

% Plot the initial position

figure

hold on

plot_arm(11,l2,l3,theta,'bo')

% Update the plot for several iterations

for k = 1:10

    % Define the Jacobian matrix

    J(1,1) = -l1∗sin(theta(1)) - l2∗sin(theta(1)+theta(2)) -     l3∗sin(theta(1)+theta(2)+theta(3));

    J(1,2) = J(1,1) + l1∗sin(theta(1));

    J(1,3) = J(1,2) + l2∗sin(theta(1)+theta(2));

    J(2,1) = 11∗cos(theta(1)) + l2∗cos(theta(1)+theta(2)) +     l3∗cos(theta(1)+theta(2)+theta(3));

    J(2,2) = J(2,1) - 11∗cos(theta(1));

    J(2,3) = J(2,2) - l2∗cos(theta(1)+theta(2));

    % Perform singular value decomposition

    [U,S,V] = svd(J);

    % Determine angular velocities

    [theta_dot] = V∗pinv(S)∗U'∗[x_dot;y_dot];

    % Update angles

    theta = theta+theta_dot∗T;

    plot_arm(11,l2,l3,theta,'b∗')

end

% Format plot

xlabel('x')

ylabel('y')

axis equal

axis([-(11+l2+l3)/2 (l1+l2+l3)/2 0 (l1+l2+l3)])

After the initial setting of the arm lengths, the sampling time is set to 0.01 s. The sampling time is needed because the angles have to be updated for the next iteration of the solution. This method allows us to see the progression of the arm over time.

Next, initial conditions of the arm position are set so the arm angles are 45, 60, and −20 degrees. The desired movement of the end effector is to move down and right at a 45-degree angle, so x ˙ = 5 and y ˙ = 5 . Using SI units, these values are in meters per second. Although 5 m/s is a large velocity for a robotic arm to achieve, these values are used for illustrative purposes in the simulation because it allows the movements to be clear.

The next step in the code is to plot the initial position of the arm in a figure. This plot is accomplished by calling the plot_arm function, which is shown below. The arm is drawn as three vectors using the quiver command. The joints are drawn as individual points using the specified marker, which is passed to the function. For the initial condition, the joint positions are drawn as circles. Subsequent joint positions are drawn as asterisks.

function plot_arm(l1,l2,l3,theta,marker)

x1 = l1∗cos(theta(1));

y1 = l1∗sin(theta(1));

x2 = x1+l2∗cos(theta(1)+theta(2));

y2 = y1+l2∗sin(theta(1)+theta(2));

x3 = x2+l3∗cos(theta(1)+theta(2)+theta(3));

y3 = y2+l3∗sin(theta(1)+theta(2)+theta(3));

quiver(0,0,l1∗cos(theta(1)),l1∗sin(theta(1)),1,marker)

quiver(x1,y1,l2∗cos(theta(1)+theta(2)),l2∗sin(theta(1)+     theta(2)),1,marker)

quiver(x2,y2,l3∗cos(theta(1)+theta(2)+theta(3)),l3∗sin(theta(1)+     theta(2)+theta(3)),1,marker)

plot(x3,y3,marker)

After the initial plot, the mathematical solution of the inverse kinematic problem begins. In the code, 10 positions are determined at 0.01-s intervals.

The first step is to define the Jacobian matrix J(Θ). This step needs to be done each time through the loop because as the angles change, the values in J(Θ) need to be updated. Then the SVD is performed on J(Θ) using the svd command, returning the three matrices specified in (2.185). After these matrices are determined, the desired angular velocities are found by implementing (2.186) using matrix multiplication. The ' operator in MATLAB takes the transpose of a matrix, and the pinv command takes the pseudoinverse of a matrix.

After the angular velocities are determined, the new angles are calculated using the first-order approximation

θ ( t + Δ t ) θ ( t ) + d θ d t Δ t

or in MATLAB code,

theta = theta+theta_dot∗T;

where Δt and T are the sampling time of 0.01. Then the plot is updated to illustrate the new arm position, and the process is repeated.

Notice that the actual mathematical solution occurs in two lines.

    % Perform singular value decomposition

    [U,S,V] = svd(J);

    % Determine angular velocities

    [theta_dot] = V∗pinv(S)∗U'∗[x_dot;y_dot];

The majority of the code is for other peripheral, but important, tasks such as setting constants, updating variables, and plotting the results.

The plot resulting from the above code is shown in Figure 2.52. As was desired, the end effector moves down and right at a 45-degree angle from its initial position.

Figure 2.52. The movement of the robotic arm in the xy plane. The initial joint positions are indicated by o, and the subsequent joint positions are indicated by asterisks.

Figure 2.53 shows the result of the same code using the same initial condition but a different desired end effector movement. In this case, the values are x ˙ = 5 and y ˙ = 5 .

Figure 2.53. The robotic arm attempting to move toward its outstretched position.

At first, the arm is moving as desired, and the end effector is moving up and right at a 45-degree angle. But on the last iteration, something strange and interesting happens. It starts to pull back in. The reason for this behavior is that the robot is nearly completely stretched out (θ 2 = 0 and θ 3 = 0) and near its kinematic singularity. In this configuration, the arm cannot move outward as quickly as it can in other directions. We can see this visually by investigating the manipulability ellipse for the robotic arm, which will be discussed next.

The next use of the SVD in the robotic arm example is to find the manipulability ellipses. A manipulability ellipse is a means to visualize in what directions the end effector can move when the arm is in a particular configuration.

As a starting point in the discussion, consider the robotic arm stretched out along the x-axis so that θ 1 = θ 2 = θ 3 = 0 as in Figure 2.54. Then according to (2.182), x ˙ = 0 and therefore there can be no movement in the radial direction. This situation is known as a kinematic singularity in the robot's movement. Mathematically, singularities can be found by investigating the Jacobian J and determining where JJ T is not full rank, that is, the determinant of JJ T is zero.

Figure 2.54. The robotic arm stretched out along the x-axis. From this configuration, the end effector cannot move along the x-axis.

This singularity is present not only in the configuration shown in Figure 2.54 but is in fact the case whenever θ 2 = θ 3 = 0. The determinant of JJ T is zero under these conditions. Thus, there can be no movement in the radial direction. This characteristic is intuitive in the outward direction (the arm cannot reach beyond its fully stretched position). However, in the inward direction, it is somewhat surprising, even counterintuitive to our everyday experience. If the reader has ever opened a bifold closet door, then the mathematics has seemingly been violated. To resolve this conflict, one must realize that the closet door and its track are never perfectly machined, and it allows some movement in the perpendicular direction. Any movement, even the smallest amount, brings the system away from the singularity and prevents it from getting "stuck" when trying to move in the radial direction.

We can now extend this idea to any end-effector position. Consider the two arm configurations shown in Figure 2.55. The arm in position B is "closer" to the singularity in the sense that it is more outstretched than the arm in position A. In position B, the end effector is relatively less capable of movement. We can characterize this idea in the manipulability ellipse.

Figure 2.55. Two configurations of the robotic arm. The arm in position B is closer to kinematic singularity than the one in position A.

The size and shape of the manipulability ellipse can be found using the SVD of J. The axis lengths of the ellipse are the singular values and the axis directions are the columns of U. At the singularities, the ellipse collapses to a line perpendicular to the arm.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780081002025000024

Robotic materials for robot autonomy

Nikolaus Correll , in Robotic Systems and Autonomous Platforms, 2019

12.3.2.5 Distributed computation layer

Calculating the required stiffness and moment to reach a certain shape is known as the inverse kinematics problem (Fig. 12.3D). Solving this problem requires a matrix inversion, which has the computational complexity of roughly O ( N 3 ) , with N the number of elements. McEvoy and Correll [20] describe an algorithm to reduce the inverse kinematics problem to a constant time problem by breaking it into N subproblems of constant size. Instead of computing a solution for all elements at once, the algorithm works by reducing the beam to only kN flexible elements at a time. Finding the curvatures that bring it is has the beam as close as possible to a desired location by changing only k degrees of freedom is a O ( k 3 ) operation. The algorithm then works along the beam by selecting the next k elements, until the desired pose is reached.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780081022603000123

Inverse kinematics analysis of 7-degree of freedom welding and drilling robot using artificial intelligence techniques

Swet Chandan , ... Ankush Ghosh , in Artificial Intelligence for Future Generation Robotics, 2021

2.2 Literature review

Finding the location of the joints for the given end effector position, that is, inverse kinematics problems is a classical problem in the robotics [1,2]. As the end effector position can be written as a function of the location of the joint position, finding the inverse solution involves trigonometrical and nonlinear function, and getting the solution for a multiple DOF system becomes increasingly difficult. This problem can be solved with the help of numerical or computational methods. Classical optimization techniques were being used for solving such problems but they don't lead to the desired accuracy.

In the last 20 years many metaheuristics methods including the Cuckoo search method [3] have evolved and are being implemented for solving industrial problems. The Cuckoo search method is based on the assumption that each cuckoo will lay an egg in one nest and the best egg will be used as the new solution and rest will be discarded. This method is very helpful for providing the best solution.

In the literature [4–6] we find neural network, bee algorithm, and genetic algorithm being used to solve inverse kinematics problems. Similarly, PSO [7] and FA [8] were used to get the joint parameters for the given end effector positions.

Apart from inverse kinematics problems there are numerous other applications of robotics, such as navigation and control [9], energy minimization [10] during movement, and trajectory planning [11], where metaheuristic optimizations are being implemented to solve the problems. Recently, artificial intelligence-based optimization has also been used [12–15].

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780323854986000046

Inverse kinematics analysis of a parallel redundant manipulator by means of differential evolution

Wu Huapeng , Heikki Handroos , in Human Friendly Mechatronics, 2001

5 Conclusion

This paper offers a new structure of redundant parallel manipulator. To find the solution of the inverse kinematics problem for the redundant parallel manipulator, a non-linear optimization problem, which achieved the minimum deflection of the manipulator, was defined taking into account avoiding collision constraint and joints limit constraint. Differential evolution search algorithm was employed to solve this problem. Some calculate results ware presented. Those results responded to minimum deflection in all the possible inverse kinematics solution at any giving positions. The applicability of the proposed method was shown by comparing calculated results with those obtained a conventional method. The method presented in this paper can also apply for those point-to-point motion redundant manipulators with serial link structure.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780444506498500541

Mobile Manipulator Modeling and Control

Spyros G. Tzafestas , in Introduction to Mobile Robot Control, 2014

10.2.2 Robot Inverse Kinematics

In the direct kinematics problem we are finding Τ knowing the values of q 1 , q 2 , , q n . In the inverse kinematics problem we do the converse, that is, given Τ we determine q 1 , q 2 , , q n by solving (10.2) with respect to q i ( i = 1 , 2 , , n ) .

The direct kinematics Eq. (10.2) can be written in the vectorial form:

(10.3) X = f ( q )

where X is the six-dimensional vector:

(10.4) X = [ p ψ ] , p = [ x y z ] , ψ = [ ψ x ψ y ψ z ]

of the end-effector's position p and orientation ψ , f is a six-dimensional nonlinear column vectorial function, and

(10.5) q = [ q 1 , q 2 , , q n ] Τ

Therefore, the inverse kinematics equation is:

(10.6) q = f 1 ( X )

where f 1 ( · ) denotes the usual inverse function of f ( · ) .

A straightforward practical method for inverting the kinematic Eq. (10.2) is the following. We start from:

Τ = Α 1 0 ( q 1 ) Α 2 1 ( q 2 ) Α 6 5 ( q 6 )

and obtain the following sequence of equations:

(10.7) ( A 1 0 ) 1 Τ = Τ 6 1 ( A 2 1 ) 1 ( A 1 0 ) 1 Τ = Τ 6 2 ( A 3 2 ) 1 ( A 2 1 ) 1 ( A 1 0 ) 1 Τ = Τ 6 3 ( A 4 3 ) 1 ( A 3 2 ) 1 ( A 2 1 ) 1 ( A 1 0 ) 1 Τ = Τ 6 4 ( A 5 4 ) 1 ( A 4 3 ) 1 ( A 3 2 ) 1 ( A 2 1 ) 1 ( A 1 0 ) 1 Τ = Τ 6 5

The elements of the left-hand sides of these equations are functions of the elements of Τ and the first i 1 variables of the robot. The elements of the right-hand sides are constants or functions of the variables q i , q i + 1 , , q 6 . From each matrix equation we get 12 equations, that is, one equation for each of the elements of the four vectors n , o , a , and p = x 0 . From these equations we can determine the values of q i ( i = 1 , 2 , , 6 ) of the robot.

Although the solution of the direct kinematics problem is unique, it is not so for the inverse kinematics problem, because of the presence of trigonometric functions. In some cases, the solution can be found analytically, but, in general, the solution can only be found approximately using some approximate numerical method and the computer. Also, if the robot has more than six degrees of freedom (i.e., if we have a redundant robot), there are infinitely many solutions to q i ( i = 1 , 2 , , n ; n > 6 ) that lead to the same position and orientation of the end-effector.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780124170490000109

Use Cases for Subcontractors and Fabricators

Mohammad Nahangi , Minkoo Kim , in Infrastructure Computer Vision, 2020

7.5.2 Realignment calculation

The system of equations resulting from defining the DOFs ( Γ ), fixed platform, and target points has no general and closed form solution (Tsai, 1999). Numerical approaches should be employed for solving the resulting nonlinear system of equations. The general approach to solve the resulting nonlinear systems of equations is similar to the approach for serial systems developed in Nahangi et al. (2015b). The linearization approach makes use of Taylor series–based expansion of the kinematics chain equation P = F ( Γ ) . A new function E is defined for the discrepancy function as follows:

(7.7) E ( Γ ) = F ( Γ ) P g ,

in which P g is the desired configuration that contains the desired target positions at each target point defined. The inverse kinematics problem is then simplified to solving the system of equations E ( Γ ) = 0 . For solving this nonlinear system, the discrepancy function is approximated using linearization by the Taylor-based expansion employed. An initial start point is required to start the iterative solution. The equation is then iteratively solved for the unknown vector which is Γ . The procedure is also known as the Newton–Raphson method (Broyden, 1967).

A form of linearization in a multidimensional space suitable for ultrageneral cases is used in this chapter. The numerical solution for the inverse kinematics problem is summarized below. The kinematics function defining the target positions is linearized using Taylor expansion as follows:

(7.8) E ( Γ i + 1 ) = E ( Γ i ) + E Γ ( Γ i + 1 Γ i ) = 0

In which, Γ i is the initial state of the assembly in iteration i . Substituting E / Γ = F / Γ with J , where J is the Jacobian matrix, and rewriting Eq. (7.8) results in

(7.9) E = J × ΔΓ

Premultiplying both sides of Eq. (7.9) with the pseudoinverse of the Jacobian matrix ( J + ) results in

(7.10) ΔΓ = J + × E

Among existing forms and solution for pseudoinverse matrices, the Moore–Penrose pseudoinverse (Penrose, 1955) is used here to implement the mathematical solution of the inverse kinematics problem. The Moore–Penrose pseudoinverse is defined as follows:

(7.11) J + = ( J T J ) 1 J T

in which T is the transposition operator. More detail and explanation on this discussion and pseudoinverse matrices can be found in Penrose (1955), Weisstein (2014). As mentioned earlier, the explained procedure is also known as Newton–Raphson method, in general. In the ultrageneral cases where the Jacobian matrix is very likely to be noninvertible (i.e., nonsquare), a pseudoinverse is used rather than the regular inverse in the Newton–Raphson method. In general cases, for solving the resulting nonlinear system of equations being investigated, the method is called the Quasi-Newton–Raphson (QNR) method (Broyden, 1967; Dennis and Moré, 1977). Other methods to solve the nonlinear system of equations E ( Γ ) = 0 include the "continuation" and "homotopy" methods. For more detail on these methods and solving the nonlinear system of equations resulting from the inverse kinematics problem, see Garcia and Li (1980), Li (1997), Sommese et al. (2004), Tsai (1999), Uchida and McPhee (2011), Wampler et al. (1990). Fig. 7.29 shows a flowchart for solving the resulting equation for the inverse kinematics problem using the QNR method.

Figure 7.29. Flowchart to solve the inverse kinematics problem E ( Γ ) = 0 for parallel systems.

As a mathematical note, one obvious solution of Eq. (7) is ( Γ 0 ) , when P g equals the originally design state input based on the discrepancies calculated. In other words, the required change of a system (both serial and parallel) to achieve the original design state equals the reverse of the initial discrepancies ( Γ 0 ) calculated based on the comparison with the original design state. However, the desired state and thereby desired configuration are continually getting updated based on the changes in the interfaces involved. Such an unavoidable and continual change motivates the challenging concepts of "as-built modeling" and "as-built BIM" in construction and therefore necessitates continual maintenance and monitoring of construction components. Hence, it is unlikely that the specific case explained here exists in real projects; however, the mathematical solution explained can handle that case as well.

A practical application of the preceding method would be to steel erection. Initial bolt-up results usually in a nonsquare frame. Squaring the frame is a time-consuming process that typically takes 25% of the total erection time, and it is an iterative, intuitive process in practice, like leveling a total station with a set of screws, but much more complicated in that it uses cables, come-alongs, and turnbuckles. Being able to scan a frame, and then quickly calculate the actions required to square the frame, could save substantial time. The framework described is also useful in robotic alignment, fitting, and assembly.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780128155035000073

PID Admittance Control in Task Space

Wen Yu , in PID Control with Intelligent Compensation for Exoskeleton Robots, 2018

Abstract

The joint angle control needs the references (trajectories) generated from the trajectory planning. Admittance control is the most used method for the trajectory generation, and it is in task-space. If we work in joint space, the inverse kinematics are needed [96] . It is difficult to solve the inverse kinematics problem because they provide an infinite number of joint motions for a certain end-effector position and orientation [133]. The admittance control has the form of PID. There are many PID controllers in the task-space [25]. In order to ensure asymptotic stability of the PID control, a popular method is to modify the linear PID into nonlinear one. Previous knowledge of part of the dynamic robot model are required.

In this chapter, we apply a linear PID control in task space directly. We propose two Cartesian admittance controllers that do not require model compensation for a cooperative application using a force/torque sensor. Semiglobal asymptotic stability proof is proposed for both controllers. The controllers use the admittance model advantage for the torque-orientation transformation, which avoids using kinematics parameters.

A comparison between traditional and proposed admittance controllers are presented via real-time experiments in the 2-DoF pan and tilt robot and the 4-DoF upper limb exoskeleton. It uses the force interactions between the device and the user to create trajectories directly in task space.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780128133804000086

INTRODUCTION

David A. Rosenbaum , in Human Motor Control, 1991

Path Planning, Inverse Kinematics, and Inverse Dynamics

A final remark about the degrees-of-freedom problem is that it is a problem at several levels (Jordan & Rosenbaum, 1989). At the highest level is the problem of path planning. A representative path-planning problem is deciding whether to reach to the right or left of a milk bottle to take hold of a cereal box. At a lower level is the inverse kinematics problem. This is the problem of converting the selected path into a time-varying set of joint angles. At a still lower level is the inverse dynamics problem—determining the forces to be produced in order to generate the desired joint angles. A considerable amount of work has been done on these problems in robotics and human motor control (Craig, 1986; Jordan & Rosenbaum, 1989; Saltzman & Kelso, 1987).

One of the most intriguing results from path-planning research is that people have a preference for straight-line hand motions. When asked to move the hand from one point to another on a horizontal surface, people are likely to move the hand in a straight line (Morasso, 1981). Even when people are asked to draw curved lines (which of course they can do), detailed analysis of their movements suggests that the curves they produce consist of series of straight-line segments (Abend, Bizzi, & Morasso, 1982). The finding that hand paths are often linear was first taken to suggest that path planning is done with respect to the Cartesian coordinates in which the hand moves, not with respect to joint coordinates. Later it was suggested that minimizing mean squared jerk could also give rise to straight-line hand trajectories (Hogan & Flash, 1987). Most recently, it has been suggested that minimizing torque changes at the joints can also yield straight-line hand paths and that this constraint accurately predicts deviations from straight-line paths (Uno et al., 1989).

These three proposals have interesting implications for a general theory of motor control. The first proposal assumes that path planning is determined primarily by geometric constraints, the second proposal assumes that path planning is determined primarily by kinematic constraints, and the third proposal assumes that path planning is determined primarily by dynamic constraints. (Kinematics is concerned with motions without regard to the forces producing or preventing them. Dynamics is concerned with forces as well as motions.) The recognition that kinematics and even dynamics can affect path planning suggests that high-level aspects of movement planning do not occur in ignorance of the means by which plans must be executed. Apparently, low levels of control influence higher levels.

Read full chapter

URL:

https://www.sciencedirect.com/science/article/pii/B9780080571089500068