ARA95 - A computer tool for simulation and analysis - the Robotics ToolBox for MATLAB (779827)
Текст из файла
A computer tool for simulation and analysis:the Robotics Toolbox for MATLABPeter I. CorkeCSIRO Division of Manufacturing Technologypic@mlb.dmt.csiro.auAbstract. This paper introduces, in tutorial form, a Robotics Toolbox for MATLAB thatallows the user to easily create and manipulate datatypes fundamental to robotics suchas homogeneous transformations, quaternions and trajectories.
Functions provided forarbitrary serial-link manipulators include forward and inverse kinematics, and forwardand inverse dynamics. The complete Toolbox and documentation is freely available viaanonymous ftp.1 IntroductionMATLAB[1] is a powerful environment for linear algebra and graphical presentation thatis available on a very wide range of computer platforms. The core functionality canbe extended by application specic toolboxes.
The Robotics Toolbox provides manyfunctions that are required in robotics and addresses areas such as kinematics, dynamics,and trajectory generation. The Toolbox is useful for simulation as well as analyzing resultsfrom experiments with real robots, and can be a powerful tool for education.The Toolbox is based on a very general method of representing the kinematics anddynamics of serial-link manipulators by description matrices.
These comprise, in thesimplest case, the Denavit and Hartenberg parameters[2] of the robot and can be createdby the user for any serial-link manipulator. A number of examples are provided for wellknown robots such as the Puma 560 and the Stanford arm. The manipulator descriptioncan be elaborated, by augmenting the matrix, to include link inertial, and motor inertialand frictional parameters. Such matrices provide a concise means of describing a robotmodel and may facilitate the sharing of robot models across the research community.
Thiswould allow simulation results to be compared in a much more meaningful way than iscurrently done in the literature. The Toolbox also provides functions for manipulatingdatatypes such as vectors, homogeneous transformations and unit-quaternions which arenecessary to represent 3-dimensional position and orientation. The routines are generallywritten in a straightforward, or textbook, manner for pedagogical reasons rather than formaximum computational eciency.This paper is written in a tutorial form and does not require detailed knowledge ofMATLAB.
The examples illustrate both the principal features of the Toolbox and someelementary robotic theory. Section 2 begins by introducing the functions and datatypesused to represent 3-dimensional (3D) position and orientation. Section 3 introduces thegeneral matrix representation of an arbitrary serial-link manipulator and covers kinematics; forward and inverse solutions and the manipulator Jacobians. Section 4 is concernedwith the creation of trajectories in conguration or Cartesian space. Section 5 extendsthe general matrix representation to include manipulator rigid-body and motor dynamics,and describes functions for forward and inverse manipulator dynamics. Details on how toobtain the package are given in Section 6.2 Representing 3D translation and orientationIn Cartesian coordinates translation may be represented by a position vector, A p, withrespect to the origin of coordinate frame A and where p 2 <3.
If A is not given theworld coordinate frame is assumed. Many representations of 3D orientation have beenproposed[3] but the most commonly used in robotics are orthonormal rotation matricesand unit-quaternions. The homogeneous transformation is a 4 4 matrix which representstranslation and orientation and can be compounded simply by matrix multiplication. Sucha matrix representation is well matched to MATLAB's powerful capability for matrixmanipulation. Homogeneous transformations"R pT= 000 1#(1)describe the relationships between Cartesian coordinate frames in terms of a Cartesiantranslation, p, and orientation.
expressed as an orthonormal rotation matrix, R is a 3 3.A homogeneous transformation representing a pure translation of 0.5 m in the X-directionis created by>> T = transl(0.5, 0.0, 0.0)T =1.00000001.00000001.00000000.5000001.0000and a rotation of 90 about the Y-axis by>> T = roty(pi/2)T =0.0000001.0000-1.00000001.000000.000000001.0000Such transforms may be concatenated by multiplication, for instance,>> T = transl(0.5, 0.0, 0.0) * roty(pi/2) * rotz(-pi/2)T =0.00000.00001.00000.5000-1.00000.0000000.0000-1.00000.000000001.0000The resulting transformation may be interpreted as a new coordinate frame whose X-, Yand Z-axes are parallel to unit vectors given by the rst three columns of T. That is, thenew X-axis is anti-parallel to the world Y-axis, and so on. The orientation of the newcoordinate frame may be expressed in terms of Euler angles>> tr2eul(T)ans =01.5708-1.5708in units of radians, or roll/pitch/yaw angles>> rpy = tr2rpy(T)rpy =-1.57080.0000-1.5708Homogeneous transforms can be generated from Euler or roll/pitch/yaw angles, or byrotation about an arbitrary vector using the functions eul2tr(), rpy2tr(), rotvec()respectively.Rotation can also be represented by a quaternion[3], which will be denoted here byq = [s; v](2)where s is a scalar and v 2 <3.
A unit-quaternion has unit magnitude, that is, s2 + jvj2 = 1in which case s = sin =2, and q can be considered as a rotation of about the vectorv. The rotational component of a homogeneous transform can be converted to a unitquaternion>> q = tr2q(T)q = 0.5000-0.50000.5000-0.5000which indicates that the compounded transformation is equivalent to a rotation of 0:5 radabout the vector [ 1 1 1]. Quaternions can be compounded (`multiplied') by the function qmul().
Quaternions oer several advantages over homogeneous transformationssuch as reduced arithmetic cost when compounding rotations, simpler rotational interpolation, and less need for normalization to counter the eects of numerical roundo. Torepresent translation as well as rotation a quaternion/vector pair can be employed[3] butsuch a composite type is not yet supported by this Toolbox.3 KinematicsForward kinematics is the problem of solving the Cartesian position and orientation ofthe end-eector given knowledge of the kinematic structure and the joint coordinates.The kinematic structure of a serial-link manipulator can be succinctly described in termsof Denavit-Hartenberg parameters[2].
Within the Toolbox the manipulator's kinematicsare represented in a general way by a dh matrix which is given as the rst argument toToolbox kinematic functions. The dh matrix describes the kinematics of a manipulatorusing the standard Denavit-Hartenberg conventions, where each row represents one linkof the manipulator and the columns are assigned according to the following table:Column SymbolDescription1ilink twist angle (rad)2Ai link oset distance3ilink rotation angle (rad)4Di link length5ioptional joint type; 0 for revolute, non-zero for prismaticIf the last column is not given, Toolbox functions assume that the manipulator isall-revolute.
For an n-axis manipulator dh is an n 4 or n 5 matrix. Joint angles arerepresented by n-element row vectors.Consider the example of a Puma 560 manipulator, a common laboratory robot. Thekinematics may be dened by the puma560 command which creates a kinematic descriptionmatrix p560 in the workspace using standard Denavit-Hartenberg conventions, and theparticular frame assignments of Paul and Zhang[4]. It also creates workspace variablesthat dene special joint angle poses: qz for all zero joint angles, qr for the `READY'position and qstretch for a fully extended arm horizontal pose. The forward kinematicsmay be computed for the zero angle pose>> puma560>> fkine(p560, qz)ans =1.0000001.00000000% define puma kinematic matrix p560001.000000.4521-0.12540.43181.0000which returns the homogeneous transform corresponding to the last link of the manipulator.
The translation, given by the last column, is in the same dimensional units as theAi and Di data in the dh matrix, in this case metres. This pose can be visualized by>> plotbot(p560, qz);which produces the 3-D plot shown in Figure 1. The drawn line segments do not necessarily correspond to robot links, but join the origins of sequential link coordinate frames.This simple approach eliminates the need for detailed robot geometry data. A small righthanded coordinate frame is drawn on the end of the robot to show the wrist orientation.The X-, Y- and Z-axes are represented by the colors red, green and blue respectively.Inverse kinematics is the problem of nding the robot joint coordinates, given a homogeneous transform representing the pose of the end-eector.
It is very useful when thepath is planned in Cartesian space, for instance a straight line path as shown later. Firstgenerate the transform corresponding to a particular joint coordinate,>> q = [0 -pi/4 -pi/4 0 pi/8 0]q =0-0.7854-0.7854>> T = fkine(p560, q);00.392700.39270.0000and then nd the corresponding joint angles using ikine()>> qi = ikine(p560, T)qi =0.0000-0.7854-0.78540.00001.5Z10.50110.50.500-0.5Y-0.5-1-1XFigure 1: Visualization of Puma robot at zero joint angle pose | created byplotbot(p560, qz).which compares well with the original value.The inverse kinematic procedure for any specic robot can be derived symbolically[2]and commonly an ecient closed-form solution can be obtained.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.















