• Aucun résultat trouvé

Discrete Kinematic Mapping

Dans le document ROBOTICS LINKING PERCEPTION TO ACTION (Page 129-140)

Mechanical System of Robots

Definition 3.4 Any open kinematic-chain with designated base and end- end-effector links is called a simple open kinematic-chain

3.3 Robot Kinematics

3.3.4 Discrete Kinematic Mapping

From the above discussions, we can highlight the following points regarding the conventional solutions of inverse kinematics:

Mechanical System of Robots 105

d d

2D Humanoid Robot in Posture of Standing

_ , A l p h a (Arm) 1 0 0| I I I I 11 I I I I I I I I I I I I I I I I I I I I I 11 I I I I I I I I I 11 I I I I I I I I I I "J JAIpha(Boefy)

'«n __ 9 0; ; i : : : : : i ; : ; ; : : : : : : : : : ; ; ; : ; : : : : : : : : ; ; : ; : : : :::;;; io Zl i:::: : : ! : : : : : : : : : : : : : : : : : : :::::: Ll

d

80

:::MHHMMMWM^ijpiHHEH! ::: *

Gamma (Arm) 40 _,- ^ - p a i TTTT B H l B B P n " T T : : : : : [Beta (Leg)

g1 ? 2 1 6 -20 0 20 40 60 80

.4 i Home [ Exit |

Fig. 3.27 The effect of singularity on error compensation used in the numerical solution of inverse kinematics: "+" indicates the desired path of the end-effector's frame, and

"o" indicates the computed path of the end-effector's frame. The robot has been shifted away from its initial posture in order to give a better view of the first three iterations.

(1) In general, it is difficult to obtain a closed form solution for inverse kinematics.

(2) In general, mapping from task space to joint space is a one-to-many mapping. In practice, it is advantageous to explore this kind of kine-matic redundancy.

(3) The range of joint variable qi is specified by the joint limits, denoted by {qi,min, <li,max)- The solutions of inverse kinematics usually do not explicitly take into account the limits of the joint variables. In practice, one must pay attention to the joint limits when programming a real or virtual robot.

(4) If we apply the solution for joint velocities to obtain a general numerical solution for recursively computing joint variables, it is necessary to be careful about singularity due to the inverse of (J • J1).

(5) The numerical solution for computing joint displacements will not work properly if the initial configuration of the simple open kinematic-chain

is in singularity (i.e. the rank of (J'J1) at U is less than the admissible number of degrees of freedom at the end-effector's frame).

(6) The numerical solution is computationally expensive as N is usually not a small number.

Clearly, there is room to improve the efficiency of the inverse-kinematic solutions. One interesting idea is to employ discrete kinematic-mapping.

3.3.4.1 Discrete Forward Kinematic-Mapping

For a simple open kinematic-chain with n + 1 links (inclusive of the base link), the corresponding joint space can be divided into a set of regular partitions which form a discrete joint space. If the range of joint variable qi is {qi,min, qi,max), the discrete representation of this variable in joint space will be index vector K, the corresponding posture of the end-effector's frame can be pre-calculated using the solution of forward kinematics (see Eq. 3.17), and stored if needed. All the pre-stored postures of the end-effector's frame can be arranged in the form of a reference table which is indexed by index vector K. This table describes discrete mapping from joint space to task space.

Since the granularity, in terms of {Aqi, i = 1,2, ...,n}, of the subdivi-sion of joint space can incrementally be adjusted and fine-tuned during the developmental process of a robot, the idea of discrete kinematic-mapping naturally serves as a sound basis for the study of a developmental princi-ple for a robot to acquire motion skills and kinematic modelling through experience, learning and real-time interaction with its environment.

The study of a developmental principle in robotics is emerging as a new research topic which directs the way towards the realization of an intelligent and autonomous robot, such as a humanoid robot. Most importantly, this principle appears to be an interesting approach to the study of a time-varying robot mechanism, the kinematic modelling of which is not available in advance.

Mechanical System of Robots 107

3.3.4.2 Discrete Inverse Kinematic-Mapping

Similarly, we can divide task space into a set of regular partitions which are commonly called voxels in computer graphics. If the end-effector's effective workspace is within the volume of

{{-X-mim -X-rnax)) {'mini *max)i \^mim ^rnax)j

task space, in the form of voxels, can be represented by

• X{ix) = Xmm + ix»AX, ixe[0,Nx-l]

< Y(iy) = Ymin + iy • Ay, iy e [0, Ny - 1] (3.70) . Z{iz) = Zmin + iz • AZ, iz e [0, Nx - 1]

with

• 1\J — Xmax-Xmin JVa: "" AX

Kf — Ymax-Ymin

Iyy ~ AY

M _ Zmax-Zmm

I 1Sz - AZ

Again, the granularity, in terms of (AX,AY,AZ), of the subdivision of task space can also be incrementally adjusted and fine-tuned during the developmental process of robot.

Let / = {ix,iy,iz) be the index vector. Given an index vector / , the corresponding joint variable vector q can be pre-calculated by a conven-tional inverse-kinematics solution. For example, one can use the numerical solution. All the pre-calculated joint variables can be arranged in a refer-ence table indexed by index vector / . Clearly, this table describes discrete mapping from task space to joint space.

Example 3.23 Fig. 3.28 shows the process of constructing discrete in-verse kinematic-mapping by using the numerical solution. The discrete locations in task space, having the corresponding set of joint angles, are marked by the diamond symbol. In this example, we have set: Ax = 10cm and Ay = 10cm.

••oooooooooooooooo

J id

2D Humanoid Robot in Posture of Standing a{

WphafArm) 1 0 0| 11 [ j j M M I I I I I 11 I I I I I I I I I I I 11 I I I I ITJj I 11 I I I I I I I 111 t*fata®«*d _

Ge-nrrifl(Arm) 40 - - - - =p S | j ^ S i : : : : : : : - _ : : : ^ _ : : : ^ : : : : : : : : : : : : : : iBetadea)

-J bg ""-20 0 20 40 60 80

J Home ' I Exit |

Fig. 3.28 Construction of the discrete inverse kinematic-mapping by using the numerical solution. The diamond symbol indicates the discrete locations in task space.

In the spirit of the developmental principle, if the precise kinematic modelling of a robot is not available, the discrete inverse kinematic-mapping can be established through a learning process based on real-time interaction between the robot and its environment,

3.3.4.3 Bidirectional Discrete Kinematic-Mapping

If there is no concern about the size of memory, it is theoretically possible to pre-calculate the mapping between index vectors I and K from the forward kinematic solution in Eq. 3.17. The results are not exact, but at a certain level of accuracy, depending on the levels of granularity. This mapping can be pre-stored into a database. If there is any change in the level of granularity of discrete task space or joint space, it is sufficient to recalculate the mapping and update the database.

With the mapping between index vectors / and if at a certain level of granularity, inverse kinematics solutions are known in advance and a basic computer can effortlessly retrieve a solution from the database. This is

Mechanical System of Robots 109

similar to the effortless way that human beings solve inverse kinematics.

In addition, discrete kinematic-mapping automatically eliminates concern about joint limit and singularity because all these have been implicitly taken into account by the computation.

3.3.4.4 Application of Discrete Kinematic-Mapping

The numerical solution for determining joint displacements is very powerful but computationally demanding. In addition, it is necessary to pay atten-tion to the effect of singularity. Therefore, it is useful to attempt to further improve the performance of the numerical solution.

In fact, the performance of the numerical solution can greatly be en-hanced with the inclusion of discrete inverse kinematic-mapping. The idea is very simple. Instead of using a numerical solution to interpolate a cho-sen spatial curve which connects the end-effector frame's initial posture

°Mn(ti) to its final posture °Mn(tf), we apply discrete inverse kinematic-mapping first to instantly obtain the joint angles which bring the end-effector's frame to an intermediate posture °Mn(tj), which is close to the final posture °Mn(tf). The difference depends on the granularity of discrete task space. Subsequently, we apply the numerical solution to compute the joint displacements which bring the end-effector's frame from the interme-diate posture °Mn(tj) to the final posture °Mn(tf).

Example 3.24 Fig. 3.29 shows an example of the use of the numerical so-lution to determine joint displacements without any performance enhance-ment. The initial posture of the end-effector's frame is singular. Its final posture is at (46cm, 54cm). After 26 iterations, the end-effector's frame reaches its final posture.

oooooooooooooooooo

Example 3.25 For the same example as shown in Fig. 3.29, we now explore the knowledge of discrete inverse kinematic-mapping. Instead of starting from the singular initial posture, the end-effector's frame is in-stantly moved over to an intermediate posture at (50cm, 60cm), as shown in Fig. 3.30. From this intermediate posture, the end-effector's frame reaches its final posture within 5 iterations. In other words, the computational load with performance enhancement is three times less than the computational load required by the numerical method alone.

oooooooooooooooooo

2D Humanoid Robot in Posture of Standing «J

-1 |Alpha(Armj . 1°°| I I I I 1111 I I MUM I 11111 ITTTTTTTTTTTTI I I I I I I I I 11 i m ^halBocM

SetaJAim) ._ 7 0: : : : : : : : | B H B | j ^ ^ ^ f f l : : : : : : : : : : : : : : : : : : : : : Alpha (Leg)

Gamma (Arm) 4 0 : : : : : : : : : : : ^ ^ ^ ^ K : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : iBetaiteq)

_ l ;5 4 ~ -20 0 20 40 60 80

J Home ; Exit |

Fig. 3.29 Numerical solution for determining joint displacements without any enhance-ment.

3.4 Summary

A robot is able to perform motions because of its underlying mechanism. In this chapter, we started with the study of a robot's mechanism. We learned the concepts of link, joint, and open kinematic-chain. In order to facilitate the kinematic analysis of a humanoid robot, we discussed the concept of simple open kinematics-chain.

Subsequently, we studied a systematic way of representing a mechanism with a set of kinematic parameters, known as the DH representation. These parameters are sufficient to describe the relationship between the input and output motions governing the behavior of a robot's mechanism. For the sake of clarity, we discussed a new illustration of the DH representation.

It makes use of two parallel planes to clearly explain the four kinematic parameters which uniquely describe the motion transformation between two consecutive links' frames.

Then, after the study of the kinematics of a single link, we covered in greater detail, the kinematic formulation of a simple open kinematic-chain.

Mechanical System of Robots 111

2D Humanoid Robot in Posture of Standing j

J N p h n | A r m ) 1 0 0n T m T T T | I I L L U J l I I I I I I I I I I 11 I I I 111 I I I I I I I I 11II I I I |AIpho(Body) I2Z2.TO81 90::::::::±:^^S:::::::;::::::::::::::::::::::; IH56B6

Na(Arm) .. 70 : : : : : : : : : ^ ^ B ^ ^ f f i j ; : : : ^ : : : : : : : : : : : : : : |Alphs (Ug}_. _

^amma(ArmL.. 4° : : : : : : : : i J h M i J : : : " - - - : : ^ : : : <_:::::::::::::: |Beta(Leg)_

—I t i -20 0 20 40 60 80

J , Home ; Exit j

Fig. 3.30 Numerical solution for determining joint displacement with performance en-hancement by discrete inverse kinematic-mapping.

We learned that there are two related problems under the topic of robot kinematics: a) forward kinematics and b) inverse kinematics.

We know that the objective of forward kinematics is to determine the output motion (in task space) of a robot's mechanism from the knowledge of its input motion (in joint space). As input to a robot system is a task, the most critical issue is how to determine the robot mechanism's input motions in joint space if the desired motion in task space is given. This is known as the inverse-kinematics problem. Subsequently, we studied dif-ferent methods for solving inverse kinematics including discrete kinematic mapping. This method effectively complements the conventional numerical inverse-kinematics solution.

Now that we know the relationship between the input and output mo-tions of a robot's mechanism, the next quesmo-tions are: How do we physically produce the input motions to a robot's mechanism? And, how do we relate the input motions to the forces and torques applied to the joints? We will study the answers to these questions in the next chapter.

3.5 Exercises

(1) What is the purpose of studying a robot's mechanism?

(2) What is a simple open kinematic-chain?

(3) Illustrate the possible number of simple open kinematic-chains inside a humanoid robot's mechanism.

(4) What is the acceleration vector of a single link?

(5) Under what situation will Jacobian Matrix J(q) be independent of joint variables ql

(6) Find the Jacobian matrix for the simple open kinematic-chain shown in Fig. 3.10.

(7) Comment on the applicability of the following algorithm to compute the joint angles of the planar open kinematic-chain shown in Fig. 3.9:

• Step 1: Multiply 1M0{qi) to both sides of Eq. 3.38 to obtain:

l

M

0

{

qi

) . {°M

n

} = fMM} • ... •

{"^Mnte,,)}-• Step 2: The above equation describes 12 equalities between the corresponding elements of the two matrices of both sides. Among them, choose the simple one(s) to solve for q\.

• Step 3: Multiply 2Mi(<?2) to both sides of the above equation to obtain:

2Mi(g2) . ^Motei)} • {°Mn} = {2M3(q3)} . ... . {n-lMn{qn)}

and solve for

q^-• Step 4: Repeat until qn is solved.

(8) Verify the results of the inverse-kinematic solution applied to the right arm and right leg, as shown in Fig. 3.21.

(9) Explain why an arbitrary velocity vector, in joint space, cannot be treated as an internal-motion vector to a kinematically-redundant open kinematic-chain, the end-effector of which stands still in task space.

(10) How do you determine internal-motion vector qa for a kinematically-redundant open kinematic-chain which is required to avoid the joint limits?

(11) How do you determine internal-motion vector qa for a kinematically-redundant open kinematic-chain which is required to avoid the singu-larity caused by the inverse of (J • J*)?

(12) Look at Fig. 3.27. Discuss the reason for the large deviation of the end-effector's frame at iteration 2 from its desired trajectory.

Mechanical System of Robots 113

3.6 Bibliography

(1) Asada, H. and J. J. E. Slotline (1986). Robot Analysis and Control, John Wiley and Sons.

(2) Denavit, J. and R. S. Hartenberg (1955). A Kinematic Notation for Lower-Pair Mechanisms Based on Matrices, Journal of Applied Me-chanics, 22, 215.

(3) Liegeois, A. (1977). Automatic supervisory control of the configura-tion and behavior of multi-body mechanisms, IEEE Transacconfigura-tion on Systems, Man and Cybernetics, 7, 12.

(4) McKerrow, P. J. (1991). Introduction to Robotics, Addison-Wesley.

(5) Murray, R. M., Z. X. Li and S. S. Sastry (1994). A Mathematical Introduction to Robotic Manipulator, CRC Press.

(6) Norton, R. L. (1999). Design of Machinery, McGraw-Hill.

(7) Schilling, R. J. (1990). Fundamentals of Robotics: Analysis and Con-trol, Prentice-Hall.

(8) Whitney, D. E. (1969). Resolved Motion Rate Control of Manipulators and Human Prostheses, IEEE Transaction on Man-Machine Systems, 10, 2.

(9) (2002). Proceedings of the IEEE Second International Conference on Development and Learning, MIT, June 12 - 15.

Chapter 4

Dans le document ROBOTICS LINKING PERCEPTION TO ACTION (Page 129-140)