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