Abstract:
A method in accordance with the invention for modification of a robot path which has a plurality of path points comprises the following steps of specificying a modification region which has at least two path points of the robot path, specifying a modification of a reference point of the modification region, and automated modification of the modification region, in particular of path points of the modification region, on the basis of the specified modification.

Description:
TECHNICAL FIELD 
       [0001]    The present invention relates to a method and a programming means for the modification of a robot path. 
       BACKGROUND 
       [0002]    Robot paths have in general a plurality of path points. These may be taught, in particular manually, i.e. by manually running up to them with the robot and saving them, or also generated automatically, for example from the CAD data of a robot-supported workpiece to be processed or the like. 
         [0003]    It may be necessary to modify robot paths of this type. For example, a new obstacle in the working space of the robot, for example an additional shelf, may necessitate bypassing of the obstacle during transport of a workpiece by the robot. Similarly, the workpieces to be processed and/or the process paths may change, in particular locally, due to revisions of the assigned products. 
         [0004]    Up until now, the individual path points of the specified robot path must be individually sequentially modified for this purpose according to company-specific practice, for example, by replacing them with newly taught points. A sequential modification of individual path points of this type is not only very expensive and prone to errors, but also often leads to an undesired change of the remaining robot path in the vicinity of the respectively recently modified path point. Therefore, modifications of this type currently generally demand a high level of experience on the part of the user. 
       SUMMARY 
       [0005]    It is the object of the present invention to improve a modification of a specified robot path. 
         [0006]    A programming means in the sense of the present invention can be configured as hardware and/or software technology. It can, in particular, be a program, a program module, and/or a programming environment, which executes an inventive method or is directed to the execution thereof; if it is executed or is installed in a computer, it may have, in particular be, a data medium or a storage medium with a program, program module, or a programming environment of this type, and/or a computer with a memory, a processing unit, and input/output means, which is directed to the execution of an inventive method. 
         [0007]    According to one aspect of the present invention, for the modification of a robot path, which has a plurality of specified path points, a specification of a modification region, which has two or more path points of the robot path, a specification of a modification of a reference point of the modification region, and an automated modification of the modification region, in particular of path points of the modification region, is provided on the basis of the specified modification. 
         [0008]    For this purpose, the operator only has to modify one reference point in order to modify a modification region having a plurality of path points, instead of modifying the path points individually as previously. In addition, the modification of the modification region may be improved by the automated modification of the modification region on the basis of the specified modification of the reference point. For example, in an embodiment, a reaction to a modification of one path point is prevented in an adjacent path point, as this may occur during the previously applied sequential modification of individual path points. Stated more simply, the user may, for example, displace a reference point and by this means affect a corresponding displacement on further path points of the modification region. 
         [0009]    A robot path in the sense of the present invention has two or more specified path points and may, in particular, comprise a path regulation between path points P 1 , P 2 , . . . , for example the specification of a linear or circular movement between or through path points. In an embodiment, the robot path, in particular one or more of sections of the robot path, is specified by a spline function, in particular by a spline function of third or fifth degree or a b-spline function. A path point may in particular lie on the specified robot path. Similarly, the robot path may also have path points and be specified by these, which do not lie directly on said robot path, but instead are blended. 
         [0010]    A path point in the sense of the present invention may comprise one or more coordinates which define, at least partially, a pose of the robot. In particular, a path point in the working space of the robot may describe a location and/or orientation of a reference system linked to the robot, in particular the TCP. For example, a path point may consist of three, in particular Cartesian, cylindrical, or polar coordinates, which describe the location of the TCP so that path points and the corresponding robot path specified by them are three-dimensional. Additionally or alternatively, a path point may have three coordinates, in particular EULER or CARDAN angles, which describe the orientation of the TCP so that path points and the corresponding robot path specified by them are three- or six-dimensional. Similarly, a path point in the coordinate space of the robot may describe the position of one or more axes or joints of the robot, in particular the angular positions, or angular locations of pivot joints and/or the travel range of linear axes. For example, path points and the robot path specified by them for a six-axes robot may describe six axis positions thereof and thus are in turn six-dimensional. 
         [0011]    A modification region may be specified in an embodiment in that a path point of the robot path may be specified, in particular selected, as a start point and a further path point of the robot path may be specified as an end point of the modification region. Similarly, a segment or length of the robot path may be specified, around which a start point and/or end point of the modification region is located upstream or downstream of a specified, in particular selected, path point of the robot path in the execution direction. For example, a path point may be selected within the specified modification region and a start point of the modification region may be specified by a first segment, which start point is located by this segment upstream of the selected path point of the robot path, and an end point of the modification region may be specified by a second segment, which end point is located by this segment downstream of the selected path point of the robot path. 
         [0012]    Similarly, two path points of the robot path may also be selected and specified by a first and a second segment, at which distance to the one path point the start point is located, and at which distance to the other path point the end point of the modification region is located. A specified segment may be a real number, in particular also equal to zero, negative, and/or rational. A modification region may thus correspond in particular to the entire robot path or to proper subset or to a proper subsection of the same. 
         [0013]    In an embodiment of the present invention, a modification region may additionally also be specified, which only has this specified path point of the robot path, in particular by selection of a path point of the robot path and specification of a first and second segment for the start or end point of the modification region, which segments are smaller than the distance of the adjacent path points to this path point. In this way, the previous functionality of being able to modify a single path point may also be integrated. In this respect, a specification of a modification region, which has two or more path points of the robot path, is presently understood in particular to mean that the method or programming means has the possibility to (also) specify modification regions of this type using two or more path points, which are then jointly modified. 
         [0014]    Prior to, with, or after a specification of the modification region, a modification of a reference point of the modification region is specified. In an embodiment, this may include the specification, in particular selection, of a path point to be modified of the modification region, wherein the reference point may be identical to the specified path point to be modified, or may be arranged in a specified location to the same, in particular at a specified segment upstream or downstream of the same on the robot path. For example, in a refinement, a modification region may be specified by two adjacent path points of the robot path as start point or end point, and the middle of the robot path between these path points may be specified as a reference point, so that both path points are similarly modified by modification of said reference point. 
         [0015]    Prior to, with, or after a specification of the reference point, the modification of this reference point may be specified in an embodiment. This may be carried out in a refinement in that a modified path point is specified to which the reference point is to be displaced. For example, a user may specify a modified path point, in particular by means of a teaching or manual run up and saving of this modified path point, and specify that the reference point is to be displaced to this taught or modified path point. Similarly a modification operation may be parameterized for the reference point. For example, a direction and/or a segment may be specified by which the reference point is to be displaced. In a refinement, a plurality of modification operations are made available to the user, from which he may select and preferably parameterize one or more, for example, a (parameterizable) displacement on or parallel to the robot path, perpendicular or at a specifiable or parameterizable angle to the same, in a specified or specifiable or parameterizable direction in the working or coordinate space or the like. 
         [0016]    Additionally or alternatively, in an embodiment, a modification operation for the modification region, in particular path points thereof, may be specified, in particular parameterized, and/or selected from a number of a plurality of specified modification operations. A modification operation for the modification region in the sense of the present invention may describe, in particular, the modification of the modification region, in particular the path points thereof, on the basis of or as a function of a modification operation of the reference point. 
         [0017]    Thus, in an embodiment, the modification region, in particular the path points thereof, may be changed in parallel to a change of the reference point. A change is understood presently in particular as a displacement of a point in the working or coordinate space, and a parallel change as correspondingly in particular a parallel displacement. Figuratively stated, one or more, in particular all path points of the modification region, may be moved, in particular, displaced together with the reference point. 
         [0018]    In a refinement, in particular, a change of this type may be scalable, preferably parameterized or specifiable by specification of one or more parameters. A scalable or scaled change is understood presently in particular as a change of a path point of the modification region as a function of a change of the reference point and/or the distance between the path point and the reference point. Thus, for example, a displacement of the path point of the modification region may depend linearly or nonlinearly on the distance of the path point to the reference point and/or on a start point and/or end point, in particular according to a function which vanishes in the vicinity of a start point and an end point of the modification region, and is a maximum in the vicinity of the reference point. In this way, the modification region is not changed or only changed a little in the vicinity of the start point and end point, and maximally changed in the vicinity of the reference point, for example in the same way as the reference point. 
         [0019]    Additionally or alternatively, a multitude of selectable and/or parameterizable modification operations for the modification region, in particular of the path points thereof, may comprise a smoothing of the modification region. A smoothing is understood presently in particular in a customary way as a reduction of maximum gradients or directional changes of the modification region or of the robot path between the specified or modified path points, in particular thus a damping of oscillations of the robot path between the specified or modified path points. A smoothing of this type may, for example, be implemented by a low pass filtering of a FOURIER transformation of the modification region. Similarly, the modified robot path may be specified in the modification region, for example, by a spline or BEZIER curve, which is defined by the modified path points, generally thus the modification of a path regulation between path points of the modification region. 
         [0020]    Prior to, with, or after a specification of a modification region and a modification of a reference point of the modification region, the modification region is automatically modified on the basis of the specified modification. This is understood presently in particular to mean that path points of the modification region and/or path regulations between path points of the modification region are modified corresponding to the specified modification, in particular corresponding to a selected and/or parameterized modification operation. If, for example, a displacement of the path points of the modification region parallel to a displacement of the reference point is specified as a modification operation for the modification region, and a displacement perpendicular to the robot path is specified as a modification operation for the reference point, all path points of the modification region are automatically displaced parallel to the displacement of the reference point and perpendicular to the robot path. 
         [0021]    According to an embodiment, a region of the robot path which abuts the modification region remains at least substantially unchanged during the modification of the modification region. This can be achieved in particular in that a modification at the edge of the modification region, for example through a corresponding scaling, which may be weighted using a distance to an edge or start point or end point of the modification region, approaches zero or vanishes, so that the robot path abutting the modification region transitions unchanged into this unchanged edge of the modification region. Additionally or alternatively, for example by specification of a corresponding limiting condition, a “freezing”, or the like of the regions of the robot path abutting the modification region, a change to this region may be suppressed. 
         [0022]    According to an embodiment, the specification of the modification region and/or of the modification and/or the modifying of the modification region is carried out interactively. This is understood in particular to mean that a result of a corresponding specification is displayed, in particular displayed visually, to the user. For example, after a specification of the modification region, reference point, and a modification operation for the modification region, a change or modification of the modification region corresponding to a change of the reference point may be displayed; for example, a displacement by means of an input, a modification by dragging a visual presentation of the reference point using a mouse or the like may be displayed, so that the user obtains feedback or information about how the specified modification affects it. 
         [0023]    Specified, in particular, taught path points are used multiple times in some circumstances for the specification of a robot path. Thus, for example, the same path point may be specified or used as start point and end point of a robot path. According to an embodiment, during a modification of a modification region, a path point of this type used multiple times is to be modified on the one hand in its use for the specification of the modification region, on the other hand it is to remain unchanged in its use for the specification of the robot path outside of the modification region. If, for example, only the end of a robot path is to be modified, the start point and end point of which are specified by the same taught path point, on the one hand this path point is to be modified in its use as an end point in order to modify the end of the robot path, on the other hand it is not modified in its use as a start point in order to leave the start of the robot path unchanged. Therefore, in an embodiment, one or more path points of the modification region are duplicated and the duplicate(s) are automatically modified based on the specified modification, wherein the modification region is specified by the modified duplicate(s). In this way, the modification region may be modified—by the modification of the duplicates specified for it—while on the other hand the specified path points themselves remain unchanged by the specified remaining robot path. 
     
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         [0024]    Further advantages and features arise from the subclaims and the exemplary embodiments illustrated in the accompanying drawings. 
           [0025]      FIG. 1  shows a robot path modified by means of a method according to  FIG. 2 ; and 
           [0026]      FIG. 2  shows a method for the modification of a robot path according to an embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0027]      FIG. 1  shows a robot path B, which has been specified by the  10  specified, for example, taught points P 1 , . . . P 10  (compare  FIG. 2 : Step S 10 ). The points may, for example, represent Cartesian points in the working space and describe the location of the TCP of a robot. In this case, the three represented coordinate axes a, b, c, may be considered as three spatial directions of the working space. Similarly, the points may also represent the orientation or location and orientation of the TCP in the working space, or the joint positions of the robot in the coordinate space. These may, in particular, be six-dimensional, whereby for clarity and more compact representation, only three dimensions, a, b, c, are shown. 
         [0028]    A robot path is specified by the points by means of a path regulation, for example, by a spine function, approximately in the form: 
         [0000]    
       
         
               
               
             
               
               
             
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 ... 
               
               
                   
                 SPLINE 
               
             
          
           
               
                   
                 SPL P1 
               
               
                   
                 SPL P2 
               
               
                   
                 ... 
               
               
                   
                 SPL P10 
               
               
                   
                 SPL P1 
               
             
          
           
               
                   
                 ENDSPLINE 
               
               
                   
                 ... 
               
               
                   
                   
               
             
          
         
       
     
         [0029]    According to a method according to an embodiment of the present invention, which is represented in  FIG. 2 , or by means of a programming means which is directed to implementing this method, a user may initially specify a modification region M in a Step S 20 , shown in the embodiment exemplarily by selection of point P 2  as start point BA and point P 10  as end point BE. 
         [0030]    Previously, during, or afterwards, the user may select, in a Step S 30 , a path point to be modified of the modification region as reference point R, shown in the embodiment exemplarily by path point P 6  (R=P 6 ). 
         [0031]    Previously, during, or afterwards, the user may, in a Step S 40 , select and parameterize a modification operation v R  for the reference point, in the embodiment a displacement by a specified amount in a specified direction. Similarly, the user might also specify, for example teach, the modified path point R′ and thus specify modification operation v R  for the reference point. 
         [0032]    Previously, during, or afterwards, the user may, in a Step S 50 , select and parameterize a modification operation v i  for the modification region, in the embodiment a displacement by a specified amount in a specified direction. The amount of the displacement and the angle may thereby depend, for example, on a distance between the path point and the reference point, and may optionally be scaled to the entire length of the modification region. In the embodiment, segment s R7  between (not modified) reference point R and path point P 7  of the modification region is delineated for this purpose in  FIG. 1  exemplarily for point P 7 . From the exemplarily represented displacements of path points P 3  and P 9 , it is clear that the angle of the displacement, which is carried out perpendicular to a unit tangent vector t on the robot path in a direction that is rotated by an angle α+180° counter to a unit normal vector n at the robot path, thus varies, like the amount of the displacement, with the distance to reference point R, standardized to the total length of the modification region, that angle α and the amount [of displacement] vanish at the start and end of the modification region, and reach their maximum (according to amount) at reference point R. In this way, the robot path [R 10 , R 2 ], remains unchanged outside of modification region M. 
         [0033]    This modification operation v i =v i (s Ri , v R ), is purely exemplary. Similarly, a multitude of selectable and/or parameterizable modification operations for the modification region may include a displacement of all path points of the modification region parallel to the specified displacement of the reference point, optionally scaled to the distance between path point and reference point, optionally standardized to the total length or total segment of the modification region. Additionally or alternatively to a specification of a displacement in one direction, which is rotated by a specified angle α counter to the normal path of the robot path, a modification operation for the modification region may comprise a displacement of all path points by a specified amount along a specified curve, in particular, a straight section, in the working or coordinate space and/or in a direction perpendicular to this, which is rotated counter to the direction of the displacement of the reference point by a specified angle. This corresponds substantially to the modification operation represented in  FIG. 1 , wherein, however, the displacement direction is not specified relative to the robot path, but instead relative to the curve, in particular, the straight section in the working and coordinate space a, b, c; the angle is not specifiable, in particular parameterizable, with respect to the normal path, rather the displacement direction of the reference point, and additionally a displacement in the direction of these curves, in particular, straight sections. 
         [0034]    The parameterization may, for example, be carried out in that the user specifies a parameter μ, which describes the displacement amount |v| or the rotational angle a as a function of the section s Ri  between the respective path point P i  (i=2, . . . 10) and the reference point R, standardized to the length or segment s 2R  or s R10  of the partial modification region, on which the path point P 2 , . . . , P 10  is located: 
         [0000]      | v |, α=μ( s   Ri   , s   2R   , s   R10 ).
 
         [0000]    μis preferably configured hereby in such a way that μ vanishes at P 2  and P 10 , and assumes the maximum amount at P 6 =R, wherein μ preferably behaves conversely like in segment s Ri . 
         [0035]    After the modification region M has been specified with the path points P 2 =BA, P 3 , . . . , P 9 , P 10 =BE and the modification v R  of reference point R=P 6 , then in Step S 50 , the modification region M is automatically modified by the programming means, in particular path points P 2 , . . . , P 10  thereof, corresponding to the specified, in particular selected and parameterized, modification operation v i =v i (s Ri , v R ), and thus based on the specified modification. 
         [0036]    It is clear that even users with little training may, in this way, easily, in a fail-safe way, and quickly modify entire path regions M of robot path B, in that they only modify one path point R=P 6 . Advantageously, no undesired reactions arise within or outside of the modification region. 
       List of References 
       [0000]    
       
         B Robot path 
         M Modification region 
         P 1 , . . . , P 10  Path point 
         R Reference point 
         v Displacement (change, modification (operation)) 
         Segment between path points i, j 
         t Unit tangent vector 
         n Unit normal vector