外文翻译--多功能的六自由度机器人【中英文文献译文】
外文翻译-多功能的六自由度机器人【中英文文献译文】,中英文文献译文,外文,翻译,多功能,自由度,机器人,中英文,文献,译文
A Versatile Six Degree of Freedom RobotC. B. Besant, K. J. Gilliland, M. Risti6and L. P_ WilliamsDepartment of Mechanical Engineering, Imperial College, London SW7 2BX,United KingdomThis paper describes a prototype six degree of freedom 8kg capacity robot constructed to meet the needs of robotics research at Imperial College. With future robot requirements in mind, the robot control system was developed in collaboration with R.D, Projects Ltd.4.THE KINEMATICS OF THE ARM4.1 IntroductionWhen trying to program a robot to execute some useful task, one of the things that become immediately apparent is the need to be able to specify robot moves with respect to a suitable set of co-ordinate axes. Which co-ordinate is the most suitable will depend on the particular task being programmed, for example, for programming general movements of the arm, it is usually most convenient to work in relation to the cartesian co-ordinate frame located at the robot base (Figure 5); when performing work on an object, the objects own co-ordinate frame is more suitable, while often it is most convenient to specify moves in terms of the co-ordinate frame located at the robot tool.Unfortunately, robot controllers work at the joint level and inherently they require positioning demands to be supplied to them in terms of joint variables (joint angles for rotational joints or linear movements for sliding joints). Programming the robot in terms of joint angles, on the other hand, is extremely tedious and time consuming, thus the robot kinematics have to be solved on-line by computer.The most usual way of programming the robot is to teach it to move through a set of points. However, on its own this may not be sufficient because very often,especially when working in confined spaces, the arm will be required to follow closely a given path in order to avoid collisions with any obstacles. Since in point-to-point moves the path between the taught points is undefined, the number of stored points will be very large if the path is to be closely controlled. This is both time consuming for the programmer and expensive in terms of the memory requirements for the control computer. Typically 15,000 points will have to be stored for a five minute execution!An alternative is that the computer supplies the required trajectory between these points. It is then up to the path controller program to provide the moving set of axis demands which are then to be passed to the axis controllers. This involves performing co-ordinate transformation continuously, on-line, throughout the robot motion. Computational efficiency during this operation is therefore of utmost importance.Thus we have defined the basic tasks that the kinematic software is expected to perform, and the most essential one is to perforin the mapping between the working co-ordinate space and the robot joint space.This mapping is defined as: In fact, the need arises to solve two distinct problems in robot kinematics: Direct Kinematics - mapping of joint angles into the corresponding position/orientation wrt the working frame Inverse Kinematics - mapping of position/orientation from the working frame into corresponding joint angles.Direct kinematics are much more straightforward to solve than the inverse, especially in the case of redundant arms (more than six degrees of freedom). In general, both may be solved either by matrix calculus or by direct geometrical analysis. However, although the matrix method is much more general, it is also computationally more intensive. For the purposes of real-time robot control numerical efficiency is of essence and, therefore it was the geometrical method which was employed in designing the robot system described here4.2 Direct Kinematics SolutionIn analysing its structure, the robotic arm can be divided into two sets of axes: Primary axes 一 the axes mainly responsible for positioning the gripper in space, typically axes 1,2 and 3 Secondary axes 一 the axes mainly responsible for providing gripper orientation, i.e. the wrist axes.These two sets of axes are joined by a mechanical node, termed the wrist point, and the parameters passed through this to the secondary axes are: w-position 0 - lateral orientation a - vertical orientation This is illustrated in Figure 6.Figure 6(a). Robofs primary axes.For the robot in question the wrist configuration is Roll-Pitch-Roll (RPR) and the end of the primary axes is taken to include link 4,as this is always co-incident with link 3.Figure 5 shows the convention adopted in assigning robot parameters and gripper position/orientation, where:5. ROBOT CONTROLLER STRUCTURE5.1 System OverviewIn Section 3 the robot controller hardware was described and one of the features that became most apparent was the modularity and flexibility of the design. This modularity stems from the multiprocessor structure of the controller in which discrete processing units are allowed to communicate together via a standardised interface. The communication format is such that it allows a variety of information to be passed through the interface over a short period of time.This was the starting point in developing the software which will fully utilise these features and carry the underlying principles of modularity even further.In software too, therefore, a number of quite distinct modules can be recognised, each one of these being logically dedicated to a task with a clear division between their respective jobs. Figure 11 gives a schematic representation of software organisation. It is seen that the software operates on a number of different levels and these can be divided into the following: User level : robot language Robot arm level: kinematics module Joint level : dynamic compensation and digital control.The robot language provides an interface between the operator and the robotic system, and the communication is performed either via a terminal or by using the teach pendant. The language will be described in more detail in Section 6. At this stage it is sufficient to note that it enables programming of the area either in terms of the joint angles or wrt the base frame, object frame, tool frame or any other chosen co-ordinate frame. The programming facilities also include specifying the trajectory shape between the stored points. Thus the function of the language, as far as the robot is concerned, is to define in clear terms the task to be executed. The kinematics module is very closely related to the operation ofthe language. In fact, it may be viewed as the execution module of the language because it takes the task definition and translates it into direct joint demands for the axis controllers.The interface between these two modules is via a standardised set of input and output parameters, which include both real numbers and integer values. Typical information passed from the language to the kinematics is:Code of the instruction to beexecuted Co-ordinate frame definitionDesired robot position (in terms of joint angles or in terms of the working frame co-ordinates)Trajectory shapeVelocity parameters (nominal speed and profiling parameters)Thus after a language command has been processed, the kinematics module takes care of its execution.An example is when the robot is commanded to move from its present position to another position by following a straight line in space. The following tasks will then be performed. Check whether the end point is outside the working envelope. If yes then return to the language with an error. Determine position increment per time in world space for the given speed. Calculate position increment in world space, taking into account acceleration/ deceleration parameters. T ransform the demanded instantaneous position into joint angles. Send axis demand for servoing. If the move has not finished go to third stage. Ifthe move has finished return command to the language.Information returned to the language includes: Error code Actual arm position at the end ofthe execution Base frame informationThe final stage in controlling the arm is left to the axis controllers. These receive the demanded joint trajectories and perform local joint control acting to maintain accurate tracking of these trajectories.5.2 Axis ControlToday, the most common method of robot control is the proportional or the PID (proportional-integral-derivative) control employed on the local joint level, being very simple and cheap to implement. Very often this will be perfectly acceptable but, as we shall see shortly, for the purposes of fast trajectory following a more advanced control method is necessary.Considering a robot joint as an isolated control system, it is just a second order mechanical system comprising inertia, frictional damping and, for most arm configurations, the gravitational loading as well.Ifa conventional proportional controller is employed then its gain can be adjusted to give a critically damped response, but the effect of gravity will be to produce a steady state error which is proportional to the gravitational force. Increasing the gain will reduce this error, but will result in an oscillatory transient response which is undesirable.By putting a PID controller the steady state droop will be eliminated, while by careful choice of the controller gains to suit the system inertia and damping a satisfactory transient response with little overshoot can be achieved.Unfortunately, for most robotic arms the inertia seen by the actuators is not a constant but will vary, often by quite a large amount, depending on the position of the arm. Picking up a load will result in further changes of the inertia. Thus if the PID settings are such that the transient response is critically damped for one position it will probably be overdamped or underdamped for some other positions. The usual design procedure is to calculate the set of PID parameters which will give critically damped response for the worst case of the inertia that can be encountered, while for most of its operation the system will be overdamped. This type of control will still give good point-to-point accuracy of the arm, but the less than optimal transient performance simply has to be accepted.When the joints are given to follow trajectories, there will always be a finite following error for each joint and this will increase with speed. These errors multiply through the arm to produce poor overall tracking.The additional problem in tracking is that mechanical coupling between the joints becomes more pronounced as the speed increases and centrifugal and Corioli forces become appreciable. This will be a further factor to reduce the quality of tracking.Therefore, in order to achieve good performance during high speed trajectory following some method of compensating for robot dynamics has to be incorporated into the controller.In the past there have been a number of attempts to solve this problem by calculating robot dynamics on-line and using this information to produce a control scheme. Typically, methods employed Lagranges equations or Newton-Euler equations to set up the dynamic model of the arm which is then solved to calculate the joint forces required to produce the desired motion. Unfortunately, because ofthe structure ofthe arm, most ofthe relationships involved are very complex and the computing requirements for solving them are very large. In addition, all these methods are concerned with controlling the arm globally and the computing task is strictly sequential in nature so that it cannot be split for parallel processing. On the other hand, in order not to excite the resonant frequencies of the arm,any control signal has to be supplied at least at 60-100Hz and ifany of these dynamic methods are to be implemented they would require very expensive hardware to run them, typically a large mini-computer.In the present robot the standard PID control scheme has been implemented, but a method of dynamic compensation has also been developed to be used as an alternative.Unlike the traditional methods described previously, the dynamic compensation used here works on the joint level and utilises the recent advances in self-tuning and adaptive control theory.多功能的六自由度机器人C.B.赞,K.J.微尘,M.Risti6and L.P_ 威廉姆斯伦敦帝国学院机械工程系 SW7 2BX英国本文介绍了一种原型的六自由度机器人8kg容量构建满足帝国学院机器人研究的需要。在未来的机器人需求的思想,机器人的控制系统开展了与项目公司的合作。4.臂的运动学4.1介绍 当试图编程机器人执行一些有用的任务,很明显的事情之一是需要能够指定机器人的动作相对于一个合适的坐标轴。其中最合适的是,将取决于特定的任务被编程,例如,对于编程一般运动的手臂,它通常是最方便的工作关系到直角坐标系坐标系位于机器人基地(图5);当在对象上执行工作时,该对象本身的坐标系更为合适,而通常它是最方便的指定在机器人工具的坐标系中的移动。 不幸的是,机器人控制器的工作,在联合的水平和本质上,他们需要的定位要求提供给他们的关节变量(关节角度的旋转关节或滑动关节的线性运动)。在关节角度规划的机器人,另一方面,是非常繁琐和耗时的,因此,机器人运动学必须要解决的计算机在线。 机器人最常用的编程方式是教它通过一组点移动。然而,在它自己的这可能是不够的,因为非常经常,特别是在密闭空间工作时,手臂将被要求遵循一个给定的路径,以避免碰撞任何障碍。由于在点对点的移动的教点之间的路径是未定义的,如果路径是要被严密控制的存储点的数目将是非常大的。这是一个耗时的程序员和昂贵的内存要求的控制计算机。通常情况下,15000个点必须存储一五分钟的执行! 另一种是电脑耗材这些点之间所需的轨迹。然后是要提供移动组的轴要求,随后将被传递到轴控制器的路径控制器程序的时候了。这涉及到整个机器人运动不断、 联机、执行统筹转换。因此,在此操作期间的计算效率是至关重要。 因此我们定义了运动学软件预计要执行,和最必要的条件是对穿孔素的工作统筹空间与机器人关节空间之间的映射的基本任务。这种映射定义如下 事实上,在必要时解决机器人运动学中的两个截然不同的问题直接运动学映射成相应的关节角度位置/方向WRT的工作框架逆运动学映射位置/方向从工作框架为相应的关节角度 运动学是变得更加容易解决比逆运动学,尤其冗余情况下的手臂 (超过六自由度的)。在一般情况下,既可以求解矩阵演算或直接几何分析。然而,虽然矩阵的方法是更一般的,但是它也是计算更密集。对于实时机器人控制的计算效率是本质的,因此在这里描述的机器人系统设计的几何方法4.1直接的运动学解在分析其结构,机械臂可以划分成两个坐标轴组主轴轴线主要负责空间定位的夹具,通常轴1,2和3次要坐标轴主要负责提供夹持器定位,即手腕轴的轴。这两套轴通过机械节点加入,称为腕关节点,并通过这次轴的参数:w-position 0侧方向的垂直方向如图6所示。图6(a)机器人的坐标轴 图6(b)二次手腕轴对机器人手腕配置的问题是辊辊间距(RPR)和主轴端采取包括链接4,这始终与3链接。图5显示了分配机器人参数和抓取位置/方向的约束,如下:1,.,6 -关节角 L1,.,L6 -链接长度X , Y , Z -爪坐标 -偏转 -倾斜 关于定义的基本框架 -转动从图6(a)rxv是腕关节点和底座的轴之间的水平距离,和R-的手腕点的垂直位移的XY平面。因此 手腕的点和垂直方向,以及,都给出:进一步的分析中,通过将参数分配给矩形三角形:因而从图 7 显示链接 4,5 和6该机器人通过给出了偏转角:现在:它的螺距角是:转动角是:我们现在可得5.机器人控制器结构5.1系统概述 在第3节中描述的机器人控制器的硬件和一个最明显的特点是模块化和灵活性的设计。这种模块化源于控制器的多处理器结构,在离散处理单元被允许通过一个标准化的接口进行通信。通信格式是这样的,它允许在短时间内通过接口传递各种信息。这是开发软件,将充分利用这些功能,并进行模块化的基本原则,进一步的出发点。 在软件中,因此,一些相当不同的模块可以被识别,其中每一个被逻辑地专注于一个任务,明确的分工,他们各自的工作。图11给出了软件组织的示意图。可以看出,该软件在不同级别上运行,这些可以分为以下几类:用户级别 机器人语言机器人手臂水平 运动学模块联合级别 动态补偿和数字控制。 机器人语言提供了一个操作人员和机器人系统之间的接口,并进行通信,通过终端或使用教的挂件。该语言将在6节更详细地描述。在这个阶段,它是足够的注意,它使该地区规划无论从联合的角度或WRT的基础框架,框架,工具架或其他任何选择的坐标框架。编程设备还包括指定存储点之间的轨迹形状。因此,语言的功能,就机器人而言,是以明确定义的任务要执行。运动学模块与语言的运行关系密切。事实上,它可以被看作是语言的“执行模块”,因为它需要的任务定义,并将其转换成直接的联合要求的轴控制器。机器人语言:提供了用户和机器人之间的接口将运动命令转换为内部和重新定义的任务目标的精确描述联合运动 运动学模块负责任务执行坐标变换计算路径插值和速度分析以产生一组的移动需求传递到轴的伺服控制器这两个模块之间的接口是通过一整套标准化的输入和输出参数,包括实数和整数值。典型的运动学从语言传递的信息是 O 代码指令要执行 O 统筹框架定义O 所需的机器人位置 (关节角度或根据工作框架协调)O 轨迹形状O 速度参数 (额定速度和分析参数)因此在处理语言命令之后,运动学模块照顾其执行。一个例子是当机器人吩咐将从其现在的位置移到另一个位置,按照空间在一条直线。然后将执行下列任务。检查是否结束点是工作的信封之外。如果是的然后返回到错误的语言。确定每次在给定速度的世界空间中的位置增量。计算位置增量在世界空间中的考虑到帐户加速 / 减速参数。T 已知到关节角度要求的瞬时位置。发送伺服轴需求。如果此举尚未完成第三阶段去。如果移动完毕返回命令语言。返回到该语言的信息包括 错误代码在执行结束实际手臂的位置基础框架信息控制手臂的最后阶段是留给轴控制器。这些接收要求的关节轨迹,并执行当地联合控制代理保持这些轨迹的精确跟踪。5.2轴控制 目前最常用的机器人控制方法是在局部节点级采用比例或比例-积分-微分-积分-微分控制,实现简单,价格便宜。很正常地,这将是完全可以接受的,但是,正如我们不久将看到的,为了快速的轨迹跟随一个更先进的控制方法是必要的。 考虑一个机器人关节作为一个独立的控制系统,它是一个二阶机械系统,包括惯性,摩擦阻尼和大多数手臂的配置,重力荷载。如果采用常规比例控制器的增益可调给一个临界阻尼响应,但重力的影响将会产生一个稳态误差这是万有引力的比例。增加增益将减少这个错误,但会导致在一个振荡的瞬态响应,这是不可取的。通过将一个控制器的稳态下垂,将被淘汰,而通过仔细选择的控制器增益,以适应系统的惯性和阻尼一个令人满意的瞬态响应,可以实现小的超调。 不幸的是,对于大多数机械臂的惯性所看到的致动器是不是一个常数,但会有所不同,往往是相当大的量,取决于手臂的位置。负载的负载会导致惯性的进一步变化。因此,如果PID设置这样的瞬态响应是临界阻尼的一个位置,很可能是过阻尼或欠其他位置。通常的设计方法是计算PID参数,将临界阻尼响应的惯性可能遇到的最坏情况下的设置,而大部分的操作系统将过阻尼。这种类型的控制仍然会给良好的点对点精度的手臂,但不到最佳的瞬态性能简单地被接受。 当关节被赋予后续的轨迹,将永远是一个有限的每个关节的误差,这将增加速度。这些错误通过手臂繁殖产生不良的整体跟踪。 在跟踪的附加问题是关节间的耦合是随着转速的增加,离心力和科里奥利力变得明显更为明显。这将是一个进一步的因素,以减少跟踪质量。 因此,为了实现良好的性能,在高速运动轨迹跟踪一些方法补偿机器人动力学已被纳入控制器。 在过去已经有一些尝试解决这个问题,通过计算机器人动力学上线,并使用此信息产生的控制方案。通常情况下,方法采用拉格朗日方程或牛顿-欧拉方程组建立的动态模型的手臂,然后解决了计算所需的共同力量产生所需的运动。不幸的是,由于手臂的结构,大部分的关系是非常复杂的,解决这些问题的计算需求是非常大的。此外,所有这些方法都与控制的手臂在全球范围内的计算任务是严格的顺序在本质上,因此,它不能被拆分为并行处理。另一方面,为了不让手臂的谐振频率,任何控制信号必须提供至少60-100hz和这些动态的方法如果要实现它们需要非常昂贵的硬件来运行它们,通常一个大的迷你电脑。 在目前的机器人的标准的控制方案已经实施,但动态补偿的方法也被开发作为一种替代。 与传统的方法如前所述,这里使用的动态补偿作用于关节水平,利用自校正和自适应控制理论的最新进展。
收藏