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