Until now, we have been using transformations for exploring the inertia tensor. But another useful application is for the control of a robot manipulator. Most industrial robots consist of a chain of ‘revolute’ axes which we can think of waist, shoulder, elbow, wrist and so on. But the position of the ‘end effector’, the hand that does the work, is a somewhat complicated combination of the functions that depend on all these angles. By now you should be familiar with the 3 by 3 matrices \(\left[ {\begin{array}{*{20}c} 1 & 0 & 0 \\ 0 & c & { - s} \\ 0 & s & c \\ \end{array} } \right]\;\left[ {\begin{array}{*{20}c} c & 0 & s \\ 0 & 1 & 0 \\ { - s} & 0 & c \\ \end{array} } \right]\;{\text{and}}\;\left[ {\begin{array}{*{20}c} c & { - s} & 0 \\ s & c & 0 \\ 0 & 0 & 1 \\ \end{array} } \right]\) that define rotations about the x, y and z axes respectively. At simulations/cubemat.htm you can see them in action, rotating a cube. But now we need to combine translations with these rotations, so that we can move coordinate frames down the parts of the robot, from shoulder to elbow, say. We could simply add the displacement to our present coordinate, but we would really like something that can be applied using the standard computer matrix multiplication routine. So we ‘fatten up’ the matrix to become 4 by 4 and add a fourth component, which is always 1, to our position vector to become (x, y, z, 1)′. Now \(\left[ {\begin{array}{*{20}c} c & 0 & s & L \\ 0 & 1 & 0 & 0 \\ { - s} & 0 & c & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right]\) will represent a rotation about the y axis, combined with a translation L in the x direction. But does the translation happen before or after the rotation when we are describing the kinematics of a robot arm? This chapter tries to remind you of the theory, while the next will put it into practice. But the simulations, which up until now have simply moved images around the screen, can now use the power of HTML5 graphics.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Kinematics

  • John Billingsley

摘要

Until now, we have been using transformations for exploring the inertia tensor. But another useful application is for the control of a robot manipulator. Most industrial robots consist of a chain of ‘revolute’ axes which we can think of waist, shoulder, elbow, wrist and so on. But the position of the ‘end effector’, the hand that does the work, is a somewhat complicated combination of the functions that depend on all these angles. By now you should be familiar with the 3 by 3 matrices \(\left[ {\begin{array}{*{20}c} 1 & 0 & 0 \\ 0 & c & { - s} \\ 0 & s & c \\ \end{array} } \right]\;\left[ {\begin{array}{*{20}c} c & 0 & s \\ 0 & 1 & 0 \\ { - s} & 0 & c \\ \end{array} } \right]\;{\text{and}}\;\left[ {\begin{array}{*{20}c} c & { - s} & 0 \\ s & c & 0 \\ 0 & 0 & 1 \\ \end{array} } \right]\) that define rotations about the x, y and z axes respectively. At simulations/cubemat.htm you can see them in action, rotating a cube. But now we need to combine translations with these rotations, so that we can move coordinate frames down the parts of the robot, from shoulder to elbow, say. We could simply add the displacement to our present coordinate, but we would really like something that can be applied using the standard computer matrix multiplication routine. So we ‘fatten up’ the matrix to become 4 by 4 and add a fourth component, which is always 1, to our position vector to become (x, y, z, 1)′. Now \(\left[ {\begin{array}{*{20}c} c & 0 & s & L \\ 0 & 1 & 0 & 0 \\ { - s} & 0 & c & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right]\) will represent a rotation about the y axis, combined with a translation L in the x direction. But does the translation happen before or after the rotation when we are describing the kinematics of a robot arm? This chapter tries to remind you of the theory, while the next will put it into practice. But the simulations, which up until now have simply moved images around the screen, can now use the power of HTML5 graphics.