外文翻譯--多功能的六自由度機(jī)器人【中英文文獻(xiàn)譯文】
外文翻譯-多功能的六自由度機(jī)器人【中英文文獻(xiàn)譯文】,中英文文獻(xiàn)譯文,外文,翻譯,多功能,自由度,機(jī)器人,中英文,文獻(xiàn),譯文
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.多功能的六自由度機(jī)器人C.B.贊,K.J.微塵,M.Risti6and L.P_ 威廉姆斯倫敦帝國學(xué)院機(jī)械工程系 SW7 2BX英國本文介紹了一種原型的六自由度機(jī)器人8kg容量構(gòu)建滿足帝國學(xué)院機(jī)器人研究的需要。在未來的機(jī)器人需求的思想,機(jī)器人的控制系統(tǒng)開展了與項目公司的合作。4.臂的運動學(xué)4.1介紹 當(dāng)試圖編程機(jī)器人執(zhí)行一些有用的任務(wù),很明顯的事情之一是需要能夠指定機(jī)器人的動作相對于一個合適的坐標(biāo)軸。其中最合適的是,將取決于特定的任務(wù)被編程,例如,對于編程一般運動的手臂,它通常是最方便的工作關(guān)系到直角坐標(biāo)系坐標(biāo)系位于機(jī)器人基地(圖5);當(dāng)在對象上執(zhí)行工作時,該對象本身的坐標(biāo)系更為合適,而通常它是最方便的指定在機(jī)器人工具的坐標(biāo)系中的移動。 不幸的是,機(jī)器人控制器的工作,在聯(lián)合的水平和本質(zhì)上,他們需要的定位要求提供給他們的關(guān)節(jié)變量(關(guān)節(jié)角度的旋轉(zhuǎn)關(guān)節(jié)或滑動關(guān)節(jié)的線性運動)。在關(guān)節(jié)角度規(guī)劃的機(jī)器人,另一方面,是非常繁瑣和耗時的,因此,機(jī)器人運動學(xué)必須要解決的計算機(jī)在線。 機(jī)器人最常用的編程方式是教它通過一組點移動。然而,在它自己的這可能是不夠的,因為非常經(jīng)常,特別是在密閉空間工作時,手臂將被要求遵循一個給定的路徑,以避免碰撞任何障礙。由于在點對點的移動的教點之間的路徑是未定義的,如果路徑是要被嚴(yán)密控制的存儲點的數(shù)目將是非常大的。這是一個耗時的程序員和昂貴的內(nèi)存要求的控制計算機(jī)。通常情況下,15000個點必須存儲一五分鐘的執(zhí)行! 另一種是電腦耗材這些點之間所需的軌跡。然后是要提供移動組的軸要求,隨后將被傳遞到軸控制器的路徑控制器程序的時候了。這涉及到整個機(jī)器人運動不斷、 聯(lián)機(jī)、執(zhí)行統(tǒng)籌轉(zhuǎn)換。因此,在此操作期間的計算效率是至關(guān)重要。 因此我們定義了運動學(xué)軟件預(yù)計要執(zhí)行,和最必要的條件是對穿孔素的工作統(tǒng)籌空間與機(jī)器人關(guān)節(jié)空間之間的映射的基本任務(wù)。這種映射定義如下 事實上,在必要時解決機(jī)器人運動學(xué)中的兩個截然不同的問題直接運動學(xué)映射成相應(yīng)的關(guān)節(jié)角度位置/方向WRT的工作框架逆運動學(xué)映射位置/方向從工作框架為相應(yīng)的關(guān)節(jié)角度 運動學(xué)是變得更加容易解決比逆運動學(xué),尤其冗余情況下的手臂 (超過六自由度的)。在一般情況下,既可以求解矩陣演算或直接幾何分析。然而,雖然矩陣的方法是更一般的,但是它也是計算更密集。對于實時機(jī)器人控制的計算效率是本質(zhì)的,因此在這里描述的機(jī)器人系統(tǒng)設(shè)計的幾何方法4.1直接的運動學(xué)解在分析其結(jié)構(gòu),機(jī)械臂可以劃分成兩個坐標(biāo)軸組主軸軸線主要負(fù)責(zé)空間定位的夾具,通常軸1,2和3次要坐標(biāo)軸主要負(fù)責(zé)提供夾持器定位,即手腕軸的軸。這兩套軸通過機(jī)械節(jié)點加入,稱為腕關(guān)節(jié)點,并通過這次軸的參數(shù):w-position 0側(cè)方向的垂直方向如圖6所示。圖6(a)機(jī)器人的坐標(biāo)軸 圖6(b)二次手腕軸對機(jī)器人手腕配置的問題是輥輥間距(RPR)和主軸端采取包括鏈接4,這始終與3鏈接。圖5顯示了分配機(jī)器人參數(shù)和抓取位置/方向的約束,如下:1,.,6 -關(guān)節(jié)角 L1,.,L6 -鏈接長度X , Y , Z -爪坐標(biāo) -偏轉(zhuǎn) -傾斜 關(guān)于定義的基本框架 -轉(zhuǎn)動從圖6(a)rxv是腕關(guān)節(jié)點和底座的軸之間的水平距離,和R-的手腕點的垂直位移的XY平面。因此 手腕的點和垂直方向,以及,都給出:進(jìn)一步的分析中,通過將參數(shù)分配給矩形三角形:因而從圖 7 顯示鏈接 4,5 和6該機(jī)器人通過給出了偏轉(zhuǎn)角:現(xiàn)在:它的螺距角是:轉(zhuǎn)動角是:我們現(xiàn)在可得5.機(jī)器人控制器結(jié)構(gòu)5.1系統(tǒng)概述 在第3節(jié)中描述的機(jī)器人控制器的硬件和一個最明顯的特點是模塊化和靈活性的設(shè)計。這種模塊化源于控制器的多處理器結(jié)構(gòu),在離散處理單元被允許通過一個標(biāo)準(zhǔn)化的接口進(jìn)行通信。通信格式是這樣的,它允許在短時間內(nèi)通過接口傳遞各種信息。這是開發(fā)軟件,將充分利用這些功能,并進(jìn)行模塊化的基本原則,進(jìn)一步的出發(fā)點。 在軟件中,因此,一些相當(dāng)不同的模塊可以被識別,其中每一個被邏輯地專注于一個任務(wù),明確的分工,他們各自的工作。圖11給出了軟件組織的示意圖。可以看出,該軟件在不同級別上運行,這些可以分為以下幾類:用戶級別 機(jī)器人語言機(jī)器人手臂水平 運動學(xué)模塊聯(lián)合級別 動態(tài)補(bǔ)償和數(shù)字控制。 機(jī)器人語言提供了一個操作人員和機(jī)器人系統(tǒng)之間的接口,并進(jìn)行通信,通過終端或使用教的掛件。該語言將在6節(jié)更詳細(xì)地描述。在這個階段,它是足夠的注意,它使該地區(qū)規(guī)劃無論從聯(lián)合的角度或WRT的基礎(chǔ)框架,框架,工具架或其他任何選擇的坐標(biāo)框架。編程設(shè)備還包括指定存儲點之間的軌跡形狀。因此,語言的功能,就機(jī)器人而言,是以明確定義的任務(wù)要執(zhí)行。運動學(xué)模塊與語言的運行關(guān)系密切。事實上,它可以被看作是語言的“執(zhí)行模塊”,因為它需要的任務(wù)定義,并將其轉(zhuǎn)換成直接的聯(lián)合要求的軸控制器。機(jī)器人語言:提供了用戶和機(jī)器人之間的接口將運動命令轉(zhuǎn)換為內(nèi)部和重新定義的任務(wù)目標(biāo)的精確描述聯(lián)合運動 運動學(xué)模塊負(fù)責(zé)任務(wù)執(zhí)行坐標(biāo)變換計算路徑插值和速度分析以產(chǎn)生一組的移動需求傳遞到軸的伺服控制器這兩個模塊之間的接口是通過一整套標(biāo)準(zhǔn)化的輸入和輸出參數(shù),包括實數(shù)和整數(shù)值。典型的運動學(xué)從語言傳遞的信息是 O 代碼指令要執(zhí)行 O 統(tǒng)籌框架定義O 所需的機(jī)器人位置 (關(guān)節(jié)角度或根據(jù)工作框架協(xié)調(diào))O 軌跡形狀O 速度參數(shù) (額定速度和分析參數(shù))因此在處理語言命令之后,運動學(xué)模塊照顧其執(zhí)行。一個例子是當(dāng)機(jī)器人吩咐將從其現(xiàn)在的位置移到另一個位置,按照空間在一條直線。然后將執(zhí)行下列任務(wù)。檢查是否結(jié)束點是工作的信封之外。如果是的然后返回到錯誤的語言。確定每次在給定速度的世界空間中的位置增量。計算位置增量在世界空間中的考慮到帳戶加速 / 減速參數(shù)。T 已知到關(guān)節(jié)角度要求的瞬時位置。發(fā)送伺服軸需求。如果此舉尚未完成第三階段去。如果移動完畢返回命令語言。返回到該語言的信息包括 錯誤代碼在執(zhí)行結(jié)束實際手臂的位置基礎(chǔ)框架信息控制手臂的最后階段是留給軸控制器。這些接收要求的關(guān)節(jié)軌跡,并執(zhí)行當(dāng)?shù)芈?lián)合控制代理保持這些軌跡的精確跟蹤。5.2軸控制 目前最常用的機(jī)器人控制方法是在局部節(jié)點級采用比例或比例-積分-微分-積分-微分控制,實現(xiàn)簡單,價格便宜。很正常地,這將是完全可以接受的,但是,正如我們不久將看到的,為了快速的軌跡跟隨一個更先進(jìn)的控制方法是必要的。 考慮一個機(jī)器人關(guān)節(jié)作為一個獨立的控制系統(tǒng),它是一個二階機(jī)械系統(tǒng),包括慣性,摩擦阻尼和大多數(shù)手臂的配置,重力荷載。如果采用常規(guī)比例控制器的增益可調(diào)給一個臨界阻尼響應(yīng),但重力的影響將會產(chǎn)生一個穩(wěn)態(tài)誤差這是萬有引力的比例。增加增益將減少這個錯誤,但會導(dǎo)致在一個振蕩的瞬態(tài)響應(yīng),這是不可取的。通過將一個控制器的穩(wěn)態(tài)下垂,將被淘汰,而通過仔細(xì)選擇的控制器增益,以適應(yīng)系統(tǒng)的慣性和阻尼一個令人滿意的瞬態(tài)響應(yīng),可以實現(xiàn)小的超調(diào)。 不幸的是,對于大多數(shù)機(jī)械臂的慣性所看到的致動器是不是一個常數(shù),但會有所不同,往往是相當(dāng)大的量,取決于手臂的位置。負(fù)載的負(fù)載會導(dǎo)致慣性的進(jìn)一步變化。因此,如果PID設(shè)置這樣的瞬態(tài)響應(yīng)是臨界阻尼的一個位置,很可能是過阻尼或欠其他位置。通常的設(shè)計方法是計算PID參數(shù),將臨界阻尼響應(yīng)的慣性可能遇到的最壞情況下的設(shè)置,而大部分的操作系統(tǒng)將過阻尼。這種類型的控制仍然會給良好的點對點精度的手臂,但不到最佳的瞬態(tài)性能簡單地被接受。 當(dāng)關(guān)節(jié)被賦予后續(xù)的軌跡,將永遠(yuǎn)是一個有限的每個關(guān)節(jié)的誤差,這將增加速度。這些錯誤通過手臂繁殖產(chǎn)生不良的整體跟蹤。 在跟蹤的附加問題是關(guān)節(jié)間的耦合是隨著轉(zhuǎn)速的增加,離心力和科里奧利力變得明顯更為明顯。這將是一個進(jìn)一步的因素,以減少跟蹤質(zhì)量。 因此,為了實現(xiàn)良好的性能,在高速運動軌跡跟蹤一些方法補(bǔ)償機(jī)器人動力學(xué)已被納入控制器。 在過去已經(jīng)有一些嘗試解決這個問題,通過計算機(jī)器人動力學(xué)上線,并使用此信息產(chǎn)生的控制方案。通常情況下,方法采用拉格朗日方程或牛頓-歐拉方程組建立的動態(tài)模型的手臂,然后解決了計算所需的共同力量產(chǎn)生所需的運動。不幸的是,由于手臂的結(jié)構(gòu),大部分的關(guān)系是非常復(fù)雜的,解決這些問題的計算需求是非常大的。此外,所有這些方法都與控制的手臂在全球范圍內(nèi)的計算任務(wù)是嚴(yán)格的順序在本質(zhì)上,因此,它不能被拆分為并行處理。另一方面,為了不讓手臂的諧振頻率,任何控制信號必須提供至少60-100hz和這些動態(tài)的方法如果要實現(xiàn)它們需要非常昂貴的硬件來運行它們,通常一個大的迷你電腦。 在目前的機(jī)器人的標(biāo)準(zhǔn)的控制方案已經(jīng)實施,但動態(tài)補(bǔ)償?shù)姆椒ㄒ脖婚_發(fā)作為一種替代。 與傳統(tǒng)的方法如前所述,這里使用的動態(tài)補(bǔ)償作用于關(guān)節(jié)水平,利用自校正和自適應(yīng)控制理論的最新進(jìn)展。
收藏