Abstract:
Process for generating a trajectory for a robotized system comprising at least one member and making it possible to vary the speed of the movement in real time. 
     The process consists of choosing a main movement, e.g. the translation movement of the member and all the other movements are dependent thereon. The main movement takes place on the trajectory broken down into a section having a speed ensuring the possibility of stopping the member at the end of the section following that which has been covered. The dependent movements are covered in synchronized manner with the main movement to the extent that this is possible. 
     The invention can e.g. apply to the automatic trimming or deburring of parts having a complex shape. It is possible to envisage robotized systems formed from several independently mobile solids coordinated by the process, or several control dependency instructions.

Description:
BACKGROUND AND SUMMARY 
     The invention relates to a process for generating a trajectory for a robotized system comprising a random number of mobile members participating in the accomplishment of the trajectory. 
     The trajectories of industrial robots are defined by successions of sections or portions joined by passage points where the system is in a given state. It very frequently occurs that in reality the trajectory results from the superimposing of several movements performed by different mobile members or by the same mobile member. An elementary example is that of a working tool such as a grinding wheel or milling cutter at the end of a robot arm. One of the movements is the displacement of the cutter or its centre on a curvilinear trajectory and another movement is its orientation. These movements are accomplished in an almost uncoupled manner by the robot arm and by the rotation of the wrist at the end of said arm. 
     Certain inadequacies of the conventional trajectory generation processes restrict the capacities of robotized systems. The method normally used for generating trajectories consists of defining the travel speed of the section for each movement. The movements then comprise an acceleration phase, a constant speed phase and a deceleration phase. With this method it is not possible to vary the speed of the movement in real time. It is also necessary to carry out preliminary calculations in order to define the travel times of the three phases, as well as the distances of portions of corresponding travels as a function of authorized acceleration and deceleration values. These calculations must be carried out once and for all and it is not possible to repeat them when the travel of the trajectory has been commenced, which means that it is impossible to modify the speed and that the movement is consequently fixed from the outset. 
     FIG. 1 summarizes this trajectory generating mode. It consists of a speed diagram as a function of time and the three successive phases are designated F1, F2 and F3, the slopes of F1 and F3 being imposed in the same way as V2 (maximum acceleration, deceleration and speed). 
     The invention relates to an improved process more particularly making it possible to automatically generate a trajectory in direct time, i.e., whose advance speed is not necessarily known beforehand and which can e.g., be controlled by a sensor preceding the working tool and which indicates the presence or size of a burr. For this purpose one of the movements is a main movement for which each section is traversed at a speed limited as a function of an acceleration and a deceleration of a maximum nature associated with the main movement and the other movements so as not to exceed a maximum speed at the end of the section presently being covered, the maximum speed being calculated in such a way as to be able to stop the mobile members, whose robotized system is composed at the end of the following section and in that the other movements are dependent on the main movement and are covered at variable speeds calculated as a function of the variable speed on the main movement so that all the movements simultaneously lead to the end of each section, i.e. terminate together. The maximum acceleration and deceleration, which can be chosen by the system designer, permit flexible movements and serve as a mechanical filter for excessively sudden variations of controls. 
     The speeds of the dependent movements can naturally be calculated in such a way that the proportion of the section covered by each of said dependent movements converges towards the section proportion covered at the same instant by the main movement, or a maximum acceleration or deceleration until the said proportions coincide. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The invention is described in greater detail hereinafter relative to non-limitative embodiments and with reference to the attached drawings, wherein show: 
     FIG. 1: The performance of a trajectory generation according to the prior art. 
     FIG. 2: An example of application of the invention. 
     FIG. 3: The method of obtaining the main movement of the trajectory. 
     FIG. 4: A movement synchronization diagram. 
     FIG. 5: The way of obtaining the rotary movement. 
    
    
     DETAILED DESCRIPTION 
     FIG. 2 shows a sinuous part 1 obtained by moulding, which has led to the appearance of a burr 2 which should be removed. It is assumed that the burr 2 is connected to the part 1 and this extends in the plane of the drawing and is formed by two horizontal portions of different level separated by a transition portion. The part 1 is clamped and kept fixed relative to the ground by vices 3. A robot 4, whose arm is visible, carries a tool 5, which can be a grinding wheel or a milling cutter and which rotates about a shaft 6. The tool 5 must be moved along the base of the burr 2 and the shaft 6 must as far as possible remain perpendicular to the direction of the portion undergoing deburring. Therefore these conditions define two different movements of the tool 5. The trajectory is known beforehand, but it is possible to vary the travel speed in real time by means of a sensor 7, which precedes the tool 5 and evaluates the width or thickness of the burr. A simple example of such a sensor is given in French patent 2 649 630. 
     The burr 2 (and the trajectory) can consequently be broken down in said example into three main, rectilinear sections, namely a first horizontal section T1, an oblique section T3 and a second horizontal section T5. These three rectilinear sections are successively connected by two circular arc or connecting sections T2 and T4. The sections T consequently form an uninterrupted chain and are connected by passage points P, P1 being the starting point of the section T1, P2 of the section T2, etc. and reciprocally each section T is terminated on the following passage point P. It is clear that modifications to the displacement speed of the tool 5 must be introduced in order to limit the cutting force when the burr grows, because burrs can have significant, unforecastable thickness or width variations, which make it necessary to cover the sections at different advance speeds. However, this situation (which would, e.g., involve subdividing the rectilinear sections) is not illustrated, because the performance of the process remains the same. 
     The linear displacement movement defined by the Cartesian coordinates of the tool 5 is chosen as the main or master movement. Every effort is made to cover it as quickly as possible as a function of constraints which will be described in connection with FIG. 5 to which reference will subsequently be made. 
     The control system of the arm 4 essentially comprises an interpreter 10, which reads the content of the program memory 9 and transmits the decoded instructions to a trajectory generator 11 in the form of data usable by the latter and actuators 12, which control the movements of the articulations of the arm 4 and which is controlled by the trajectory generator 11. 
     The program memory 9 contains the instructions necessary for describing the evolution of the robotized system at each passage point P, i.e., the coordinates of the position of these points, the orientation which the tool 5 must have and the informations relating to the intermediate sections and in particular their rectilinear, circular or other shape. The interpreter 10 is programmed in such a way as to read and transmit the informations relating to a section as soon as the preceding section starts to be covered. For example, the informations relating to T3 and P3 are known when the tool 5 arrives at the starting point P1 or immediately thereafter. 
     Firstly calculation takes place of a maximum speed, in this case V2 max , at the end P2 of the section T1 which is on the point of being covered. This speed is calculated in such a way that it is possible to stop the tool 5 at the end of the following section T2 at the point P3, because the robotized system ignores whether this point will not be the final point of the trajectory and it is necessary to ensure any passing beyond the ends of the trajectory with the unforecastable consequences resulting therefrom. As there is a maximum acceleration and deceleration (in principle the same in absolute values), which are imposed beforehand by the mechanical design of the robot arm 4, or for safety reasons, or for maintaining the coordination of the different articulation movements, V2 max  cannot exceed the speed which would correspond to stopping at point P3 by a maximum deceleration movement. 
     Once V2 max  has been calculated, every effort is made to clear the section T1 at a speed compatible with the dimensions of the burr, designated VO and this speed can vary in real time. The sensor 7 will give the information necessary for optimizing VO and the first passage phase consists of covering the section T1 at maximum acceleration until said speed is reached. As the section T1 is relatively long, it is a priori possible to reach a speed VO by accelerating from the speed at point P1 (zero in the present case) for the time t11. 
     The second phase, covered during the time t12, is at speed VO, but a check is made at each machine operating cycle and as soon as the control system notes that it is necessary to decelerate in order not to exceed the speed V2 max  at point P2, it does so and the final stage is consequently a maximum deceleration stage from VO to V2 max  performed during the time t13. If VO is below V2 max , said deceleration will not be initiated. 
     The information relating to the section T3 and the point P4 are read when the passage through the section T2 commences. As the section T3 is relatively long, the control system notes that there is sufficient time to stop the tool 5 at point P4, even if the point P3 is reached at the maximum speed VO. Therefore the section T2 is firstly covered at maximum acceleration during the time t21 until the speed of the tool 5 reaches the maximum speed VO, which is then maintained for the time t22 up to the point P3. If the section T2 had been even shorter, the speed VO would not have been reached and it could have been entirely covered with the maximum acceleration. The movement then continues. It is found that it is in practice covered at an average speed relatively close to the maximum speed, which would not have been the case if it was necessary to stop the tool 5 at each passage point P. 
     The other movements of the system, namely in this case the orientation movement of the tool 5, are dependent as regards speed on that of the master movement. Therefore no attempt is made to perform them at the maximum speed, which would be possible, but would make it necessary to synchronize them with the main movement. Thus, during the covering of the section T2, on designating by s2 and s3 the curvilinear abscissas of the tool 5 on the trajectory at the points P2 and P3 and by si the curvilinear abscissa at the intermediate point, as well as by θ2, θ3 and θi the orientations of the tool 5 at these same points or instants, every effort is made to respect the condition (s3-si)/(s3-s2)=(θ3-θi)/(θ3-θ2), i.e., each of the movements on the same section must be covered with an identical proportion at the same time. However, on some occasions this condition cannot be respected, because the average speed variations of dependent movements between individual sections often make it necessary to exceed the maximum speed authorized for these movements. Thus, the rotation speed of the orientation of the tool 5, which is synchronized with VO on most of the section T1, must be modified on the section T2. If the radius of curvature is sufficiently small, it is only possible to reach a uniform speed θ2 after a phase of duration t&#39;21 (illustrated in FIG. 4) which is longer than t21 during which the rotation speed θ of the tool 5 varies at the maximum acceleration. It is only towards the end of the section T2 that the synchronization condition is reestablished. This condition is always reached at least at a distance before the end of the section (in this case P3) such that it is then possible to decelerate to a zero speed. The state of the system corresponding to a passage point is consequently reached at the same time for each of the movements. For the slow movements, e.g., for a deburring process, the desynchronizations are relatively unimportant in practice and are generally reduced to the start of the sections T. They also do not necessarily occur after each passage point P. 
     A description will now be given of the way in which the dependent rotation movement is accomplished during a section. 
     For each machine cycle a calculation is made as a function of the orientation reached by the member of the rotation axis which would make it possible to bring said member to the passage point P, followed by a simple rotary movement. On the rotation axis of the member is then imposed a maximum acceleration evolution in order to make it converge with the calculated rotation axis. The process is performed with the aid of the following formulas. 
     If i designates the index of the present situation and j the index of the desired situation, a calculation firstly takes place of a rotation axis defined by its unitary vector WC(i) making it possible to add a desired orientation M(j) on the basis of the present orientation M(i), i.e., an equation is solved which can be symbolized by WC(i)=AXE(M(i), M(j)), in which AXE is a programmed function in the control system. 
     The transition of W(i) (existing rotation axis defined by its unitary vector) to WC(i) in a single machine cycle for a sampling time Tech, would require an angular acceleration Sang&#34;(i) equal to |WC(i)-W(i)|·(Sang&#39;(i)/Tech) in which Sang&#39;(i) is the rotation speed taking place. If this acceleration Sang&#34;(i) is obtainable, we will obtain W(i+1)=WC(i), i.e., the desired rotation axis will be reached in a single cycle and if not we will have: 
     
         W(i+1)=W(i)+WC(i)-W(i)/|WC(i)-W(i)|• 
    
     •Sang&#34;·(Tech/Sang&#39; (i)) in which Sang&#34; is the maximum acceleration. 
     The rotation obtained during the cycle takes place around the axis W(i+1)/:W(i+1)|. The new orientation can then be calculated, as well as the path which remains to be covered up to the objective. The quantities between the vertical lines correspond to the standards of these quantities. 
     The programming software of robots is easily usable for programming such a convergence algorithm. When the member is placed with its rotation axis at the desired orientation, it is only necessary to impose on it a single rotation about a fixed axis and then the case referred to in connection with the tool 5 will be explained. 
     The invention can be performed in numerous different ways and in particular with much more numerous dependent movements, which can relate to components mechanically independent of the system, such as other robots or mobile, but inert solids, such as tables, conveyors, etc. In fact this constitutes a situation when the invention can be used with particular advantage. It is also possible to envisage several dependency control instructions, i.e., certain movements, instead of being made dependent on the master movement, will be made dependent on movements dependent thereon. The maximum speed VO can be determined for various reasons: maximum advance speed of the tool 5, safety reasons, need to remain coordinated with other slower mechanisms, etc.