Sunteți pe pagina 1din 8

Inverse Kinematic Problem Solving:

A Symbolic Approach Using


MapleSim and Maple

4
High-Performance Physical Modeling and Simulation
Inverse Kinematic Problem Solving:
A Symbolic Approach Using MapleSim and Maple
In multibody mechanics, the motion analysis kinematics problem typically involves solving a is often lost. In this paper, we will describe how
for a platform (the kinematics problem) can nonlinear system of equations with trigonometric to obtain a symbolic solution to the inverse
be classified into two cases: the forward functions. Issues such as singularity, multiple kinematics problem for a Stewart-Gough
kinematics problem and the inverse kinematics (non-unique) solutions (as in the case of “elbow parallel link manipulator using tools available
problem. For the forward kinematics problem, up” and “elbow down” configurations for a in MapleSimTM. In particular, we will show how
the trajectory of a point on a mechanism (for robot arm), and no solution (as in the case in having access to the symbolic Jacobian of the
example, the end effector of a robot arm or the which the specified trajectory goes beyond the constraint equations allows us to inspect and
center of a platform support by a parallel link workspace of the mechanism) can often come exploit the underlying matrix structure, which
manipulator) is computed as a function of the up, further complicating the solution process. leads to a simplified solution process for
joint motions. In the inverse kinematics case, the The complexity in the inverse kinematics obtaining the symbolic solution. An advantage
problem is reversed: the goal is to compute the problem is compounded even more for parallel of having a symbolic solution to the inverse
joint motions necessary to achieve a prescribed link manipulators. kinematics problem is the possibility of code-
end effector trajectory. generating the symbolic solution so that it can
Because of the complexity involved, the inverse be embedded in real-time hardware-in-the-
In general, given the mechanism geometry, it kinematics problem is often solved numerically loop (HIL) applications. This approach can be
is pretty straightforward to solve the forward through iterations, and is computationally contrasted with a purely numerical approach
kinematics problem both numerically and expensive. With a numeric approach, however, where the iterative solution process makes it
symbolically. In contrast, solving for the inverse information about the motion of the mechanism difficult to use in real-time applications.

Figure 1: Stewart-Gough Platform in MapleSim

Inverse Kinematic Problem Solving: A Symbolic Approach Using MapleSim and Maple
Figure 2: Platform Leg Structure

A Stewart-Gough manipulator is generally The tight integration between MapleSim and


referred to as a six degrees-of-freedom (DOF) MapleTM offers users a unique feature: access
parallel linkage mechanism. There are several to the underlying symbolic system equations.
variations in the leg configurations of a Stewart- The advantage of having access to the symbolic
Gough platform. In this paper, we will be looking equations is clearly illustrated when solving the
at a Stewart-Gough platform (see Figure 1) inverse kinematics problem. Information can
whose motion is provided through six prismatic be obtained by observing the structure of the
joints; each is anchored with a universal joint symbolic system of equations, which can assist
(two cascaded revolute joints) on one end and in obtaining the solution to the problem.
a spherical (ball) joint on the other end (see
Figure 2). Each of the platform legs is defined Here, we will use the Multibody Analysis
with five parameters, specifying the x-y offset of template provided with MapleSim to retrieve
the two anchor points (Xg, Yg, Xp, and Yp) the symbolic system equations for the Stewart-
and the base anchor rotation angle offset (Ang). Gough platform (see Figure 4). At the top of the
See Figure 3. The inverse kinematics problem template, there are some setup steps that lead
in this case is to find the length of each of the to a call to the command BuildEQs. The result
six prismatic joints that will result in a desired of executing BuildEQs is a data record (with
motion trajectory for the supported platform. In a default name of MB) containing information
symbolic terms, this means we want to obtain about the multibody system defined within the
the expressions for the prismatic joint lengths as MapleSim model. Information available in this
Figure 3: Platform Leg Parameters a function of the desired position. data record includes state variable and parameter

www.maplesoft.com
Figure 4: Multibody Analysis Template Figure 5: Multibody System Information

definitions, inertia properties (inertial matrix), of the problem that might be exploited for design Maple syntax, MB:-vQ). The default compact
dynamic equations, constraint (kinematic) or performance considerations. display from Maple (see Figure 5) shows that, in
equations, as well as Jacobian matrices of the this case, there are 24 generalized coordinates
As it turns out, for this particular leg configuration,
constraint equations. or states for the platform system. The ordering
a structural property can be exploited to simplify
and names of the individual state variables can
In general, to solve the inverse kinematics the solution of the inverse kinematic problem
be inspected by double-clicking on the compact
problem, we would take the position constraint so that a closed-form symbolic solution can be
vector summary, represented by the blue text
equations for the platform and try to solve obtained. The 18 positional constraint equations
enclosed within the square brackets, which opens
for the length of each leg given the desired come from the spherical joints that are used to
the Matrix/Vector browser (see Figure 6). From
platform location. In the case of the Stewart- attach each leg to the platform, which result from
Gough platform, this represents solving a set the Vector browser, the state vector is ordered
enforcing the x, y, z position of each leg’s end to
of 18 positional constraint equations for the six such that the position of the platform center
be coincident with a given point on the platform.
prismatic joint lengths, plus 12 revolute joint (named x_Platform_RB4(t), y_Platform_
Such structural properties can be observed from
angles for the orientation of the legs. In addition RB4(t), and z_Platform_RB4(t)) is at the
the definition of the state vector and the position
to being a nontrivial problem to solve, the sheer top. The length variable of each prismatic joint
constraint Jacobian matrix of the system.
size of this inverse problem implies that even with from s_SPLC1_Leg_P1(t) to s_SPLC6_
numeric iterations, the calculations involved are The generalized coordinate definition for the Leg_P1(t) is next. This value is followed by
still quite intense. Further, the numeric solution Stewart-Gough platform can be accessed from the variables for the orientation of the platform
would not provide any insights into the structure the vQ field of the system data record MB (in (zeta_Platform_RB4(t), eta_Platform_

Inverse Kinematic Problem Solving: A Symbolic Approach Using MapleSim and Maple
Figure 6: State Vector Definition

RB4(t), and xi_Platform_RB4(t)). Finally, six and 24 states). Its structure describes the
pairs of joint angles for the two revolute joints relationships between the constraint equations
at the base anchor of each leg (theta_SPLC#_ and the state variables: a zero entry in the (i,j)
Leg_R1(t) and theta_SPLC#_Leg_R2(t), element of the Jacobian matrix means that the
where # ranges from 1 to 6) fill in the rest of the ith positional constraint is independent of the jth
state vector. A structural breakdown of the state state variable.
vector is shown below:
Once again, to inspect the Jacobian matrix, we
Platform Position Variables (3) will open the Matrix browser by double-clicking
Leg Length Variables (6) the result returned by the xJacPos field of the
Platform Orientation Variables (3) MB record (MB:-xJacPos in Figure 5). In
Leg Orientation Variables (2 x 6 = 12)
addition to seeing the symbolic entries of the
Jacobian, the overall structural information can
The Jacobian matrix for the position constraints be visualized graphically as an image by clicking
is defined as the partial derivatives of the the Image tab of the Matrix browser window
positional constraint equations (accessible (see Figure 7). By using the image option, we can
through the MB:-GetPosCons() command, see visualize either the magnitude or the structure of
Figure 5) with respect to the state variables. In the matrix under examination. In this case, we
this case, it is a 18 ×24 matrix (for 18 constraints select the structure option in the Display list

www.maplesoft.com
Figure 7: Position Constraint Jacobian (Table View) Figure 8: Position Constraint Jacobian (Image View)

near the bottom of the window (see Figure 8). second bundle of three for the second leg, and so the first leg of the platform. For compactness,
The colormap is chosen such that the white areas on. This implies that the kinematics constraints we renamed state variables with shorter names
represent structural zero entries (that is, the entry for each leg can be solved independently and as follows: s for the leg length, a and  for
is exactly zero for all times) and the black areas with only a subset of the constraint equations. the revolute joint angles at the base anchor
represent nonzero entries. With this information, we can now effectively point, and X, Y, Z for the position variables.
transform the original problem of solving 18 For this particular example, we specified a
Relating the Matrix browser image back to the state fixed orientation (0 rad rotation about all three
nonlinear constraint equations into a problem
vector definition, we can see that the two bands of axes) for the platform when solving the inverse
of solving six sets of three nonlinear constraint
nonzero columns in the image correspond to the kinematics problem below, which will keep the
equations independently. Furthermore, because
platform position and orientation variables. This platform level.
of the symmetry and the parametric nature of the
means that all of the constraints are dependent
leg component, the solution obtained for one leg
on these platform variables as expected. On the With this simplified problem, we can now use the
is expressed with respect to the leg parameters,
other hand, an interesting pattern has emerged Maple solve command to obtain the symbolic
as defined in Figure 3. This means the same
relating the constraint equations to the leg expression for the leg length s. From the result, we
solution is applicable to all six legs, given the
length and orientation variables. This pattern obtain the solution as a function f of the platform
appropriate leg parameter values. So, the overall
reveals that the constraint equations (within position (X, Y, Z) and the leg parameters (Xg,
inverse kinematics problem is stripped down to
the constraint equation vector, obtained from Yg, Xp, Ang) in the following form:
solving a subset of three positional constraint
the call to the MB:-GetPosCons command s = f (X, Y, Z, Xg, Yg, Xp, Yp, Ang)
equations, representing a significant reduction in
- see Figure 5) are bundled into six groups that Now, we can take this symbolic solution for
the problem complexity.
correspond to the variables associated with each s and implement it as a custom component
of the six legs in the system. For example, the We obtained the reduced set of position constraint in MapleSim to obtain an inverse kinematics
first three constraint equations form a bundle equations, shown in Figure 9, by taking the simulation. The result of the simulation is shown
that describes the constraints for the first leg, the position constraint equations corresponding to in Figure 10.

Inverse Kinematic Problem Solving: A Symbolic Approach Using MapleSim and Maple
In conclusion, we have taken advantage of the numerically within MapleSim (to obtain the plot presented in this paper. Using the symbolic
ability to access the underlying symbolic system shown in Figure 10) by simply applying enforced solution obtained here and MapleSim’s code
equations to help reduce the size of the inverse motion to the platform by using the Prescribed generation feature, you can embed the code
kinematics problem by exploiting the symbolic Translation motion driver component. However, into other platforms, unlocking the possibility
structure of the Jacobian matrix. It should be such a purely numerical solution does not have for real-time application without the need for an
noted that the same problem can also be solved the same flexibility as the symbolic solution iterative solver.

Figure 9: A Subset of Position Constraints

Figure 10: Inverse Kinematics Solution

www.maplesoft.com
www.maplesoft.com

www.maplesoft.com | info@maplesoft.com
Toll-free: (US & Canada) 1-800-267-6583 | Direct:1-519-747-2373

© Maplesoft, a division of Waterloo Maple Inc., 2010. Maplesoft, Maple, MapleSim, are trademarks of Waterloo Maple Inc.
All other trademarks are the property of their respective owners.

S-ar putea să vă placă și