WO2003045640A1 - An industrial robot system and a method for programming thereof - Google Patents

An industrial robot system and a method for programming thereof Download PDF

Info

Publication number
WO2003045640A1
WO2003045640A1 PCT/SE2002/002196 SE0202196W WO03045640A1 WO 2003045640 A1 WO2003045640 A1 WO 2003045640A1 SE 0202196 W SE0202196 W SE 0202196W WO 03045640 A1 WO03045640 A1 WO 03045640A1
Authority
WO
WIPO (PCT)
Prior art keywords
current task
waypoints
task
next waypoint
waypoint
Prior art date
Application number
PCT/SE2002/002196
Other languages
French (fr)
Inventor
Martin Strand
Kevin Dixon
Original Assignee
Abb Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Abb Ab filed Critical Abb Ab
Priority to AU2002359099A priority Critical patent/AU2002359099A1/en
Publication of WO2003045640A1 publication Critical patent/WO2003045640A1/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35444Gesture interface, controlled machine observes operator, executes commands
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39205Markov model
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40391Human to robot skill transfer
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40395Compose movement with primitive movement segments from database
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40435Extract minimum number of via points from a trajectory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40518Motion and task planning

Definitions

  • the present invention generally relates to improving programming of an industrial robot. More particularly, the invention relates to an industrial robot system comprising a manipulator, a control unit for controlling the manipulator, and a unit for manually programming the robot to perform a task comprising a set of successive waypoints, through which the robot should pass during performance of the task. The invention further relates to a method for programming an industrial robot, including program- ming said task. The invention also relates to a computer program product and a computer readable medium.
  • a task is a sequence of waypoints that accomplish some overall aim.
  • a waypoint comprises three-dimensional position and orientation information.
  • the robot is programmed to carry out the task along an operat- ing path comprising the waypoints, through which the robot should pass.
  • the robot is taught how to perform the task by being guided through the various waypoints along the desired operating path during the programming.
  • These waypoints are stored as instructions into a memory in the control unit. Other information, such as desired robot movement velocity, may also be stored in the memory.
  • the pro- gram instructions are executed, thereby making the robot operate as desired.
  • the robot is programmed to perform a task by an hu- man operator who manually jogs the robot to the desired positions along the path using a movable programming unit, a so- called teach pendant.
  • An industrial robot usually carries an end- effector such as a tool for performing a work, for instance a welding tool or a painting tool.
  • the operator has to position and orientate the end effector in each waypoint along the path.
  • the positioning of the end- effector is a very time consuming task.
  • the robot operator must rely on joysticks or push-buttons for this positioning.
  • Robot operators spend a great deal of their time during programming merely moving the end-effector to the next waypoint instead of transferring any real knowledge. Another problem during programming is that humans sometimes make mistakes.
  • An object of the present invention is to achieve an improved robot programming, which is faster, safer, and has a higher accuracy than the programming of today.
  • the object is achieved by a method for programming of an industrial robot, as initially described, which is characterized in that the method includes receiving information about waypoints specified during programming of a current task, predicting the next waypoint of the current task based on the received information about the way- points of the current task and a set of previously stored tasks, and suggesting the next waypoint of the current task according to said prediction.
  • the position and orientation of the end-effector for the next waypoint is predicted.
  • Many tasks contain repeated subtasks, and current product designs often contain many similarities to previous designs.
  • the method according to the invention makes it possible to reuse earlier robot programs or parts of them, even though they are not exactly similar.
  • the previous and the current task may differ by a translation or a rotation.
  • next waypoint is suggested. Before suggesting the next position, an appropriate translation and rotation is done. If the operator approves the suggested way- point, further waypoints are suggested until the task is programmed. Hence, the process of programming the rest of the waypoints of that task is almost automatic. This method makes it possible to assist the operator by predicting the movement of the end-effector and automatically positioning the robot at that waypoint.
  • the method includes predicting a command in connection to the next waypoint. Besides predicting the position and orientation of the end- effector, it is also possible to predict other commands, e.g. setting of specific process parameters or the performance of the robot between the waypoints, such as glue or weld. Thereby, the programming of the robot is further facilitated.
  • said predicting is based on information about a limited number of the most recent waypoints of the current task. It is advantageous to only consider the most recent waypoints from the current task be- cause then it will be possible to find repeated subtasks from previous tasks in the current task. Instead, if the aim is to find an entire repeated task, all of the waypoints for the current task should be considered.
  • the method includes describing the current task and the previously stored tasks as directed acyclic graphs (DAG), and predicting the next waypoint of the current task based on said directed acyclic graphs. Since the tasks are necessarily of a finite duration they should be described in an acyclic way. By describing the tasks as directed acyclic graphs the comparison between the current task and the prediction is simplified.
  • DAG directed acyclic graphs
  • the method includes assimilating the set of previously stored tasks into a statistical model and predicting the next waypoint based on the assimilated set of previously stored tasks and the statistical model.
  • the directed acyclic graphs of the previous stored tasks are assimilated into the statistical model and the next waypoint is predicted based on the assimilated set of pre- viously stored tasks and the directed acyclic graphs of the current task. Since humans are imprecise and make unintended actions, and workplaces are not perfectly calibrated, a model combining information under these conditions should be statistical in nature. Thanks to the use of a statistical model, a fast and a re- liable prediction is achieved.
  • said statistical model is an acyclic probability finite automata (APFA).
  • APFA acyclic probability finite automata
  • the method includes calculating the confidence of the prediction and makes the suggestion in dependence of the level of the calculated confidence.
  • the next waypoint is suggested. Otherwise, i.e. if the confidence is low, no suggestion is made. Thus, the operator does not need to waste time on considering suggestions which probably are not interesting to him.
  • said previ- ously stored tasks are previously created programs.
  • new created programs comprise a part or parts of previously created programs or are a pure translation or rotation of a previous program.
  • many sequences of waypoints and commands in future programs will resemble the sequences in previous programs.
  • the ability to predict next waypoint based on previous programs would simplify the robot programming.
  • the previously stored tasks could be tasks which have been created solely for the purpose of being used as bases for the prediction.
  • the method includes receiving information about the next waypoint specified during programming of the current task, comparing the received information about the next waypoint with said prediction of the next waypoint and indicating a potential programming error based on the comparison.
  • the prediction can also be used for correcting potential errors made by the operator during programming of the robot. By comparing the position and command programmed by the operator with a predicted position and command for that waypoint, deviations may be detected and reported to the operator.
  • the method includes describing the waypoints as relative coordinate transforms.
  • a relative coordinate transform describes how a waypoint has to change to become a second waypoint. It is advantageous to use relative transforms, since they provide translation and rotation independence. These independence properties mean that various sub-tasks can be repeated at different locations and poses in the work space and the prediction will recognize these patterns.
  • the object is achieved by a computer program product comprising a computer readable medium, having thereon a computer readable program means which makes a computer perform the method described in the above paragraph when run on the computer.
  • the object is achieved by a computer readable medium having a program recorded thereon, which program is to make a computer perform the method described above.
  • an industrial robot as initially described, which is characterized in that it comprises memory means for storing a set of previously created tasks, a waypoint receiver, receiving and storing information about waypoints specified during programming of a current task, a predictor predicting the next way- point of the current task based on the stored waypoints of the current task and said set of previously stored tasks, and a suggestion unit suggesting the next waypoint of the current task according to said prediction.
  • Fig. 1 shows an industrial robot during programming of a task.
  • Fig. 2 illustrates, by means of a flow diagram, a general method according to the invention.
  • Fig. 3 shows a graphical representation of four tasks.
  • Figs. 4a-4d show the task assimilation procedure according to the invention.
  • Fig. 5 shows waypoints of the current task.
  • Figs. 6a-6b show an example of how the next waypoint can be predicted according to the invention.
  • Figure 1 shows an industrial robot comprising a manipulator 1 , a control system 2 for controlling the manipulator, and a teach pendant 3 adapted for providing manual operation of the robot by a operator.
  • the manipulator comprises an end effector 4.
  • the control system comprises an internal memory and at least one processor.
  • the end effector is the outermost part of the manipulator and usually comprises a tool, such as a tool for welding or painting.
  • the robot comprises a number of joints, and each joint comprises a positioning means such as a shaft encoder providing an output signal defining the actual position of the joint.
  • the position and orientation of the end effector is determined, by first sensing the joint angles through the shaft encoders and then calculating the position and orientation of the end effector through forward kinematic equations.
  • a task is a sequence of waypoints that accomplishes some overall task, i.e. a task is an ordered set of waypoints.
  • a sub-task is a part of a main task and comprises a sub-set of successive way- points from the main task.
  • the robot can be programmed to accomplish a task. To create the robot program the operator must guide the end effector of the manipulator through the sequence of waypoints. During programming the operator moves the end effector 4 by means of normal online programming methods, such as joysticks or pushbuttons, to each waypoint 6 through which the robot should pass during the performance of the task.
  • a waypoint is a location in three dimensions with a complete orientation specification.
  • a waypoint comprises at least six real numbers ⁇ x, y, z, ⁇ , ⁇ , ⁇ , the triple x, y, z describing the location of the waypoint and the triple ⁇ , ⁇ , ⁇ describing the orientation of the end effector around the x-axis, y-axis, and z-axis, re- spectively. Since describing a point in three dimensions using only six points is ambiguous and can suffer from mathematical difficulties, it is advantageous to use more than six coordinates.
  • a 14-tuple ⁇ x, y, z, m, n, n R m ⁇ is used, where the triple x, y, z describes the location of the waypoint in frame m and n R m is the (3x3) rotation matrix that rotates objects in frame m into frame n.
  • the waypoints could be defined as a set of robot joint angles, six joints for the most general manipulators.
  • a waypoint describes an arbitrary location and orientation, it can be considered as a relative coordinate frame transform.
  • a relative coordinate transform describes how a first waypoint has to change to become a second waypoint.
  • the waypoints are stored as relative coordinate transforms and a comparison be- tween waypoints is computed with respect to these relative transforms. It is advantageous to use relative transforms, since they provide translation and rotation independence.
  • a model of the behavior of the operator is built by as- similating a number of previously created programs into a statistical model. To create one of these programs, the operator guides the manipulator through a sequence of waypoints which are observed and stored. The operator moves the end effector to each waypoint by normal on-line programming methods. The operator indicates that the current end effector position should be observed by, for example, pressing a first button.
  • a second step 1 1 the operator is observed when specifying the waypoints and/or commands of a current task and information about the specified waypoints are received. For each way- point, the relative transform between the waypoint and the previous waypoint is determined and stored in a memory. In a following step 12, the next position of the end effector, i.e. the next waypoint, is predicted based on the assimilated previous programs and the relative transforms of the waypoints of the current task.
  • step 13 the confidence of the prediction is calculated. If the prediction is sufficiently confident the next waypoint of the current task is suggested to the operator according to said prediction, in step 14. The operator can then allow the control system to move the robot to the predicted waypoint or ignore the suggestion. The operator can, for instance, approve the prediction by pressing a second button. The steps 1 1 -14 is repeated until the operator is ready.
  • the method comprises two stages.
  • the first stage comprises assimi- lating the previously created programs into the statistical model and the second stage uses the statistical model and observations from the current task to predict what the next observation will be.
  • the purpose of the first stage is to create a operator model that incorporates previous waypoints and can be used to predict future operator action.
  • examples from disparate tasks are taken, for example from the welding of a door frame, the assembly of a circuit-breaker, and the painting of a car body.
  • Acyclic Probabilistic Finite Automata The APFA-model is more closely described in an article by Dana Ron, Yoram Singer, and Naftali Tishby, "On the learnability and usage of Acyclic Probabilistic Finite Automata” published in Journal and Computer and System Science 56(2), 1998.
  • the waypoints of the tasks are calculated and stored as probability density function according to the Gaussian distribution. Before previous programs or tasks are assimilated into the statistical model, they are described as Directed Acyclic Graphs (DAG).
  • DAG Directed Acyclic Graphs
  • the graph comprises a number of nodes, each node defining a waypoint in the task.
  • the waypoints become nodes connected with arrows showing the direction between the nodes.
  • FIG 3 shows four different tasks 20-23 which have been described using Directed Acyclic Graphs.
  • Each node in the graph comprises a waypoint represented as a Gaussian probability density function, which is illustrated in the figure as a "bell- curve" in the node.
  • the lines connecting the nodes in the graphs are called edges and since they were created in a specific order, the edges are directed which is illustrated by a line with an arrow. Since the graphs are directed and have no loops therein, they are directed acyclic graphs.
  • the assimilated tasks should accomplish the same aim or be of the same length.
  • Completely disparate programs may be assimilated into a model that describes the repertoire of the operator. The model looks for patterns in the previously created programs and combines the waypoints responsible for the patterns.
  • Figures 4a-4d illustrate the assimilation procedure.
  • an APFA-graph in created by making all the nodes of all the tasks children of an epsilon node 25, as shown in figure 4a.
  • An epsilon node is a pure mathematical construction and is essentially a place holder.
  • An epsilon node does not output a waypoint like the other APFA nodes.
  • the first epsilon node is simply used to make all tasks children of one common node.
  • nodes in different tasks having the same depth index are at the same depth in the APFA-graph.
  • the first node 26, in the first task 20 is compared to all the other nodes, 27-29, of the other tasks 21-23 at the same depth, i.e. depth 0, and the divergences between the nodes are calculated. If the divergence between two nodes is sufficiently small, then the nodes are combined. In the example shown in figure 4a, two of the nodes, 26 and node 27, have a sufficiently small divergence at depth 0.
  • the nodes 26 and 27 are combined, as shown in figure 4b, into a new node 30 having two possible next nodes 31 ,33 to go to.
  • the divergence between the node and the other nodes at the same depth are calculated, and if the divergence between the nodes is sufficiently small the nodes are combined.
  • the last step in the algorithm includes creating a unique epsilon node 39 and make all nodes of the APFA-graph parents of the epsilon node 39.
  • the purpose of the final epsilon node 39 is to make all tasks terminate in a common node.
  • the epsilon node 39 does not output a waypoint like the other nodes.
  • Figure 4c shows the APFA-graph after the as- similation is finished.
  • An APFA-graph is what comes out after the APFA-model has been used on the previous tasks.
  • the resulting APFA-graph has no loops, i.e.
  • the underlying graph of the APFA-graph is a directed acyclic graph.
  • the divergence between the nodes is computed as the weighted Euclidean distance between Expected Values (EV) of the prob- ability density functions of two nodes in the APFA-graph.
  • This calculation method has the advantage of being a true distance metric.
  • Another possible method for computation of the divergence is the Kullback-Liebler (cross-entropy) divergence between the probability density functions of two nodes in the APFA-graph.
  • the combining procedure combines two similar nodes. The children of the two nodes become children of the combined node.
  • the probability density function of the combined node is a linear mixture of the probability density functions of the two similar nodes.
  • the probability density function of the combined node will be a Mixture of Gaussians (MoG).
  • MoG Mixture of Gaussians
  • the combined probability density functions is illustrated in figures 4c and 4d as a double or triple "bell-curve" in the node.
  • the nodes are combined by adding random variables of two distributions. This results in multiplying the power spectral densities of the two random variables.
  • the APFG-graph outputs a probability density function. But after the assimilation there are several nodes where there are more than one possible path out of the node, such as node 34 at depth 1 and node 35 at depth 3, as shown in figure 4d. This corresponds to a choice for the operator. This choice could be due to many things, e.g. the operator is performing two fundamentally different tasks but these tasks share some common subtasks, or the workspace of the robot has an obstacle in it. These choices are modeled as if the operator makes the choices entirely stochastically. Thus, the APFA-graph is a doubly stochastic Markov random process.
  • a transition probability mass function is calculated for each possible path out of a node, based on the relative usage frequency of the paths.
  • the probability of moving between nodes is estimated as probability mass functions.
  • the APFA-graph Once the APFA-graph has been created, it is possible to assimilate more tasks into it by repeating the algorithm previously de- scribed. The more tasks assimilated into the graph, the better the prediction. However, as more tasks are assimilated into the APFA-graph, the prediction will tend to take longer to execute.
  • the APFA-graph from the first phase and recent operator observations from a current task are used to perform a prediction of where the operator will move next, as well as a confidence measure. Since the object is to detect repeated sub-tasks from previous tasks in the current task, only the most recent observations from the current task are consid- ered. The number of observations considered is called the horizon. If the object were to look for an entirely repeated task, then the number of observations should be the entire length of the current task. Once a sufficient number of observations from the current task is received, the APFA-graph from the first phase is used to compute the expected value (EV) of the next observation, based on the APFA-graph and the current observations. The current observations can be incorporated into the APFA- graph during the second phase, according to the algorithm described previously, thereby improving future predictions.
  • EV expected value
  • Determining the expected value is a two-step procedure.
  • a first step for each node in the APFA-graph, the probability of being in that node is calculated, given the observation sequence. Since the APFA-graph has the Markov property, the Bellman ' s Optimality Principle (BOP) applies. Dynamic Programming (DP) is used for calculation of the probability of being in a certain node. More details about DP can be found in the book "Dynamic Programming", by Richard E Bellman, Princeton University Press, Princeton, NJ, 1957.
  • the expectation is determined by multiplying the expected value of each node in the APFA-graph by the probability of being in that node.
  • Figure 5 shows a number of waypoints 40-44 collected from the current task and described as a direct acyclic graph.
  • the position of the next waypoint will be predicted.
  • the horizon is set equal to three, i.e. only the three most recent waypoints 42,43,44 are considered for the purpose of the prediction.
  • the observations will be treated as if they were deterministic. For each three-node se- quence in the APFA graph, the likelihood that this three-node sequence produced the recently observed waypoints 12-14 are computed.
  • the likelihood that a specific node sequence generated the ob- served waypoints is proportional to the product of the likelihood that the nodes generated the waypoints and the probability of being in those nodes.
  • the likelihood that the nodes in the sequence generated the waypoints is calculated as the product of the likelihood that the first node in the sequence generated the waypoint 42, the likelihood that the second node in the sequence generated the waypoint 43, and the likelihood that the third node in the sequence generated the waypoint 44.
  • the probability of being in those nodes is calculated as the product of the probability of moving from the first node to the second node in the sequence, and the probability of moving from the second node to the third node in the sequence.
  • the likelihoods of generating the observed waypoints 42- 44 are computed for every possible three-node sequence in the APFA-graph.
  • Dynamic programming is a very efficient method for computing these likelihoods.
  • the likelihood of all three-node sequences in the APFA-graph is computed, it is possible to compute the probability that a specific node generated the most recent waypoint 44 from the current task. If more than one sequence end up in the same node, i.e. the node has more than one possible path leading to it, the probability that this node generated the final waypoint 14 is calculated by adding the likelihoods of these sequences and dividing the sum with the likelihood of ending up at all nodes.
  • a probability mass func- tion (pmf) that a node generated the final waypoint is obtained by computing, for all nodes in the APFA-graph, the probability that the node generated the final waypoint.
  • each node in the APFA graph has an expectation about where the next waypoint will occur, according to the probability density functions previ- ously described.
  • the expected value of the next waypoint is calculated by taking the waypoint that each node generates, multiply it by the probability that the node generates the next way point, and then sum over all nodes.
  • the result of the expectation operation over all the nodes in the APFA-graph is a candidate for being suggested as the next waypoint.
  • the confidence of the prediction is considered by measuring the internal uncertainty of the model, the entropy.
  • the entropy is calculated for the internal state of the APFA-graph, given the expected value of the next waypoint. If the entropy of the prediction is below a predetermined, or adaptive threshold, the next waypoint is suggested to the operator. Further, it is suggested that the operator follows the remainder of the branch in the APFA-graph until the entropy, due to branching in the APFA, rises above the threshold. Before proposing the next waypoint to the operator, it is appropriately translated and rotated.
  • the letters A, B, C, D, E, F, G represent stochastic notations of waypoints
  • the double ⁇ n, Inst ⁇ means that n% of the previous programs moved from the waypoint to the next waypoint using the instruction Inst, for example, the edge from F to G means that 50% of the previous programs moved from the waypoint F to somewhere near G using the command Move L.
  • Another potential usage of the method according to the invention involves correcting potential erroneous operator behavior. Assume that the previous tasks are visualized in the assimilated APFA-graph shown in figure 6a. If the operator programs the task shown in figure 6d, it is noticed from the APFA-graph that at waypoint C the operator always executes a command Arc L to waypoint D, not a Move L. This deviation could be pointed out to the operator in various ways, such as a synthesized voice, displaying the suggested correction in the program editor, or just correcting without notifying the operator.
  • all of the method steps, as well as any sub-sequence of steps, described above may be carried out by means of a computer program being directly loadable into the internal memory of a computer, which includes appropriate software for performing the necessary steps when the program is run on a com- puter.
  • the computer program is loaded into the internal memory of the control system of the robot and run on a processor in the control system of the robot. It is also possible to run the program on an external computer connected to the control system.
  • the computer program can likewise be recorded onto any arbitrary kind of computer readable medium or be provided over a network such as Internet.
  • the present invention is not limited to the embodiments disclosed but may be varied and modified within the scope of the following claims.
  • other possible prediction algorithms besides the Expected Value, are Maximum Likelihood (ML), Maximum A Posteriori (MAP), and Minimum Entropy (ME).
  • ML Maximum Likelihood
  • MAP Maximum A Posteriori
  • ME Minimum Entropy
  • computing the Expected Value is computationally much simpler than the other prediction algorithms, since many of the integrals of the Expected Value estimator can be computed in closed form for many distributions.
  • templates Another possibility instead of double stochastic random processes is the use of templates.
  • the main idea behind templates is to segment previously stored programs according to some type of canonical action.
  • systems try to fit operator actions according to the set of templates, and the prediction is based on the next likely template to use. For example, during arc welding, operators generally follow a fairly general routine of approach: begin welding, drag, stop welding, and depart. These four steps would become the four templates of a simple arc welding system.
  • the system could derive a model of how operators perform each template.
  • templates can be temporarily constrained, and can yield better predictive results. For example, the "begin welding" template always becomes before the "drag" template, which precedes the "stop welding” template and so forth.
  • the system tries to fit current observations according to templates and predicts what the next template should be.
  • the entropy is not the only possible measure of confidence.
  • Other confidence computations could include the likelihood of the prediction given the model, the conjunctive probability of the most likely node sequence through the APFA-graph, the gradient of the prediction, or the differential prediction likelihood found by perturbing the observations.
  • shaft encoders are currently used indirectly to sense a position of the end effector, any conceivable sensor or transducer could be used as a possible position detection means.
  • Another likely substitute could be a stereoscopic vision system, such as cameras.

Abstract

A method for programming an industrial robot, including pro-gramming a task comprising a set of successive waypoints through which the robot should pass during performance of the task. The method includes receiving information about way-points specified during programming of a current task, predicting the next waypoint of the current task based on the received in-formation about the waypoints of the current task and a set of previously stored tasks, and suggesting the next waypoint of the current task according to said prediction.An industrial robot system comprising a manipulator, a control unit for controlling the manipulator, and a unit for manually pro-gramming the robot to perform a task comprising a set of suc-cessive waypoints through which the robot should pass during performance of the task. The robot system comprises memory means for storing a set of previously created tasks, a waypoint receiver, receiving and storing information about waypoints specified during programming of a current task, a predictor, pre-dicting the next waypoint of the current task based on the stored waypoints of the current task and said set of previously stored tasks, and a suggestion unit, suggesting the next waypoint of the current task according to said prediction.

Description

AN INDUSTRIAL ROBOT SYSTEM AND A METHOD FOR PROGRAMMING THEREOF
DESCRIPTION
FIELD OF THE INVENTION
The present invention generally relates to improving programming of an industrial robot. More particularly, the invention relates to an industrial robot system comprising a manipulator, a control unit for controlling the manipulator, and a unit for manually programming the robot to perform a task comprising a set of successive waypoints, through which the robot should pass during performance of the task. The invention further relates to a method for programming an industrial robot, including program- ming said task. The invention also relates to a computer program product and a computer readable medium.
PRIOR ART
Robots are used to carry out repetitious and precise tasks, such as welding or painting of components. A task is a sequence of waypoints that accomplish some overall aim. A waypoint comprises three-dimensional position and orientation information. The robot is programmed to carry out the task along an operat- ing path comprising the waypoints, through which the robot should pass. The robot is taught how to perform the task by being guided through the various waypoints along the desired operating path during the programming. These waypoints are stored as instructions into a memory in the control unit. Other information, such as desired robot movement velocity, may also be stored in the memory. During operation of the robot, the pro- gram instructions are executed, thereby making the robot operate as desired.
Generally, the robot is programmed to perform a task by an hu- man operator who manually jogs the robot to the desired positions along the path using a movable programming unit, a so- called teach pendant. An industrial robot usually carries an end- effector such as a tool for performing a work, for instance a welding tool or a painting tool. During programming of the path, the operator has to position and orientate the end effector in each waypoint along the path. The positioning of the end- effector is a very time consuming task. The robot operator must rely on joysticks or push-buttons for this positioning. Robot operators spend a great deal of their time during programming merely moving the end-effector to the next waypoint instead of transferring any real knowledge. Another problem during programming is that humans sometimes make mistakes.
SUMMARY OF THE INVENTION
An object of the present invention is to achieve an improved robot programming, which is faster, safer, and has a higher accuracy than the programming of today.
According to one aspect of the invention, the object is achieved by a method for programming of an industrial robot, as initially described, which is characterized in that the method includes receiving information about waypoints specified during programming of a current task, predicting the next waypoint of the current task based on the received information about the way- points of the current task and a set of previously stored tasks, and suggesting the next waypoint of the current task according to said prediction. Preferably, the position and orientation of the end-effector for the next waypoint is predicted. Many tasks contain repeated subtasks, and current product designs often contain many similarities to previous designs. The method according to the invention makes it possible to reuse earlier robot programs or parts of them, even though they are not exactly similar. The previous and the current task may differ by a translation or a rotation. By observing the operator of the robot during programming of the robot, receiving information about the waypoints specified by the operator and comparing the specified waypoints with previously stored tasks, the intent of the operator, i.e. which task he is about to do, is predicted.
When it is identified that the operator is about to program a certain sequence of waypoints, the next waypoint is suggested. Before suggesting the next position, an appropriate translation and rotation is done. If the operator approves the suggested way- point, further waypoints are suggested until the task is programmed. Hence, the process of programming the rest of the waypoints of that task is almost automatic. This method makes it possible to assist the operator by predicting the movement of the end-effector and automatically positioning the robot at that waypoint.
According to an embodiment of the invention, the method includes predicting a command in connection to the next waypoint. Besides predicting the position and orientation of the end- effector, it is also possible to predict other commands, e.g. setting of specific process parameters or the performance of the robot between the waypoints, such as glue or weld. Thereby, the programming of the robot is further facilitated.
According to a further embodiment of the invention said predicting is based on information about a limited number of the most recent waypoints of the current task. It is advantageous to only consider the most recent waypoints from the current task be- cause then it will be possible to find repeated subtasks from previous tasks in the current task. Instead, if the aim is to find an entire repeated task, all of the waypoints for the current task should be considered.
According to a further embodiment of the invention, the method includes describing the current task and the previously stored tasks as directed acyclic graphs (DAG), and predicting the next waypoint of the current task based on said directed acyclic graphs. Since the tasks are necessarily of a finite duration they should be described in an acyclic way. By describing the tasks as directed acyclic graphs the comparison between the current task and the prediction is simplified.
According to a further embodiment of the invention, the method includes assimilating the set of previously stored tasks into a statistical model and predicting the next waypoint based on the assimilated set of previously stored tasks and the statistical model. Preferably, the directed acyclic graphs of the previous stored tasks are assimilated into the statistical model and the next waypoint is predicted based on the assimilated set of pre- viously stored tasks and the directed acyclic graphs of the current task. Since humans are imprecise and make unintended actions, and workplaces are not perfectly calibrated, a model combining information under these conditions should be statistical in nature. Thanks to the use of a statistical model, a fast and a re- liable prediction is achieved.
According to a further embodiment of the invention, said statistical model is an acyclic probability finite automata (APFA). This a statistical model, which models the operator as an automaton and has an underlying acyclic graph. The optimal structure of an APFA can be determined in finite time, given stochastic examples. Thus, it is advantageous to use the APFA for the prediction.
According to a further embodiment of the invention, the method includes calculating the confidence of the prediction and makes the suggestion in dependence of the level of the calculated confidence. When it has been identified that the operator is about to program a certain sequence with a high confidence, the next waypoint is suggested. Otherwise, i.e. if the confidence is low, no suggestion is made. Thus, the operator does not need to waste time on considering suggestions which probably are not interesting to him.
According to a further embodiment of the invention, said previ- ously stored tasks are previously created programs. Commonly, new created programs comprise a part or parts of previously created programs or are a pure translation or rotation of a previous program. For example, many industries make incremental changes to their products. Accordingly, many sequences of waypoints and commands in future programs will resemble the sequences in previous programs. Thereby, the ability to predict next waypoint based on previous programs would simplify the robot programming. According to another embodiment, the previously stored tasks could be tasks which have been created solely for the purpose of being used as bases for the prediction.
According to a further embodiment of the invention, the method includes receiving information about the next waypoint specified during programming of the current task, comparing the received information about the next waypoint with said prediction of the next waypoint and indicating a potential programming error based on the comparison. The prediction can also be used for correcting potential errors made by the operator during programming of the robot. By comparing the position and command programmed by the operator with a predicted position and command for that waypoint, deviations may be detected and reported to the operator.
According to a further embodiment of the invention, the method includes describing the waypoints as relative coordinate transforms. A relative coordinate transform describes how a waypoint has to change to become a second waypoint. It is advantageous to use relative transforms, since they provide translation and rotation independence. These independence properties mean that various sub-tasks can be repeated at different locations and poses in the work space and the prediction will recognize these patterns.
According to a further aspect of the invention, the object is achieved by a computer program product comprising a computer readable medium, having thereon a computer readable program means which makes a computer perform the method described in the above paragraph when run on the computer.
According to a further aspect of the invention, the object is achieved by a computer readable medium having a program recorded thereon, which program is to make a computer perform the method described above.
According to still another aspect of the invention, the object is achieved by an industrial robot, as initially described, which is characterized in that it comprises memory means for storing a set of previously created tasks, a waypoint receiver, receiving and storing information about waypoints specified during programming of a current task, a predictor predicting the next way- point of the current task based on the stored waypoints of the current task and said set of previously stored tasks, and a suggestion unit suggesting the next waypoint of the current task according to said prediction.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention will now be explained more closely by the description of different embodiments thereof and with reference to the appended drawings.
Fig. 1 shows an industrial robot during programming of a task. Fig. 2 illustrates, by means of a flow diagram, a general method according to the invention.
Fig. 3 shows a graphical representation of four tasks.
Figs. 4a-4d show the task assimilation procedure according to the invention.
Fig. 5 shows waypoints of the current task.
Figs. 6a-6b show an example of how the next waypoint can be predicted according to the invention.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS OF THE INVENTION
Figure 1 shows an industrial robot comprising a manipulator 1 , a control system 2 for controlling the manipulator, and a teach pendant 3 adapted for providing manual operation of the robot by a operator. The manipulator comprises an end effector 4. The control system comprises an internal memory and at least one processor. The end effector is the outermost part of the manipulator and usually comprises a tool, such as a tool for welding or painting. The robot comprises a number of joints, and each joint comprises a positioning means such as a shaft encoder providing an output signal defining the actual position of the joint. In this embodiment of the invention, the position and orientation of the end effector is determined, by first sensing the joint angles through the shaft encoders and then calculating the position and orientation of the end effector through forward kinematic equations.
The position of the end effector is specified by a waypoint. A task is a sequence of waypoints that accomplishes some overall task, i.e. a task is an ordered set of waypoints. A sub-task is a part of a main task and comprises a sub-set of successive way- points from the main task. The robot can be programmed to accomplish a task. To create the robot program the operator must guide the end effector of the manipulator through the sequence of waypoints. During programming the operator moves the end effector 4 by means of normal online programming methods, such as joysticks or pushbuttons, to each waypoint 6 through which the robot should pass during the performance of the task.
A waypoint is a location in three dimensions with a complete orientation specification. Thus, a waypoint comprises at least six real numbers {x, y, z, α, β, γ}, the triple x, y, z describing the location of the waypoint and the triple α,β,γ describing the orientation of the end effector around the x-axis, y-axis, and z-axis, re- spectively. Since describing a point in three dimensions using only six points is ambiguous and can suffer from mathematical difficulties, it is advantageous to use more than six coordinates. In a preferred embodiment of the invention, a 14-tuple {x, y, z, m, n, nRm} is used, where the triple x, y, z describes the location of the waypoint in frame m and nRm is the (3x3) rotation matrix that rotates objects in frame m into frame n. Alternatively, the waypoints could be defined as a set of robot joint angles, six joints for the most general manipulators.
Since a waypoint describes an arbitrary location and orientation, it can be considered as a relative coordinate frame transform. A relative coordinate transform describes how a first waypoint has to change to become a second waypoint. The waypoints are stored as relative coordinate transforms and a comparison be- tween waypoints is computed with respect to these relative transforms. It is advantageous to use relative transforms, since they provide translation and rotation independence.
A method according to the invention will now be generally de- scribed with reference to a flow diagram in figure 2. In a first step 10, a model of the behavior of the operator is built by as- similating a number of previously created programs into a statistical model. To create one of these programs, the operator guides the manipulator through a sequence of waypoints which are observed and stored. The operator moves the end effector to each waypoint by normal on-line programming methods. The operator indicates that the current end effector position should be observed by, for example, pressing a first button.
In a second step 1 1 , the operator is observed when specifying the waypoints and/or commands of a current task and information about the specified waypoints are received. For each way- point, the relative transform between the waypoint and the previous waypoint is determined and stored in a memory. In a following step 12, the next position of the end effector, i.e. the next waypoint, is predicted based on the assimilated previous programs and the relative transforms of the waypoints of the current task.
In a step 13, the confidence of the prediction is calculated. If the prediction is sufficiently confident the next waypoint of the current task is suggested to the operator according to said prediction, in step 14. The operator can then allow the control system to move the robot to the predicted waypoint or ignore the suggestion. The operator can, for instance, approve the prediction by pressing a second button. The steps 1 1 -14 is repeated until the operator is ready.
In the following, the method will be described in more detail. The method comprises two stages. The first stage comprises assimi- lating the previously created programs into the statistical model and the second stage uses the statistical model and observations from the current task to predict what the next observation will be. The purpose of the first stage is to create a operator model that incorporates previous waypoints and can be used to predict future operator action. During the first phase, examples from disparate tasks are taken, for example from the welding of a door frame, the assembly of a circuit-breaker, and the painting of a car body.
The following assumptions are made: the operator is assumed to make positioning errors according to some probability density function, the operator is assumed to move to the next waypoint based solely on the current waypoint, e.g. the Markov property, and the tasks have a finite duration. These assumptions naturally lead to a statistic model called Acyclic Probabilistic Finite Automata (APFA). The APFA-model is more closely described in an article by Dana Ron, Yoram Singer, and Naftali Tishby, "On the learnability and usage of Acyclic Probabilistic Finite Automata" published in Journal and Computer and System Science 56(2), 1998.
The above assumptions serve to simplify the mathematical derivations. In this embodiment, a first-order Markov property is assumed with respect to the operator's action. The probability density function used is a Gaussian distribution. The assumption that the operator makes positioning errors according to a Gaussian distribution, is purely for mathematical convenience. In other embodiments, it is possible to use semi-parametric or non- parametric methods, such as linear mixture models or artificial neural networks, to represent operator positioning likelihood.
The waypoints of the tasks are calculated and stored as probability density function according to the Gaussian distribution. Before previous programs or tasks are assimilated into the statistical model, they are described as Directed Acyclic Graphs (DAG). The graph comprises a number of nodes, each node defining a waypoint in the task. When a task is converted into graphical form, the waypoints become nodes connected with arrows showing the direction between the nodes.
Figure 3 shows four different tasks 20-23 which have been described using Directed Acyclic Graphs. Each node in the graph comprises a waypoint represented as a Gaussian probability density function, which is illustrated in the figure as a "bell- curve" in the node. The lines connecting the nodes in the graphs are called edges and since they were created in a specific order, the edges are directed which is illustrated by a line with an arrow. Since the graphs are directed and have no loops therein, they are directed acyclic graphs. There is no restriction that the assimilated tasks should accomplish the same aim or be of the same length. Completely disparate programs may be assimilated into a model that describes the repertoire of the operator. The model looks for patterns in the previously created programs and combines the waypoints responsible for the patterns.
The following algorithm is used for assimilating the tasks into the APFA-model. Figures 4a-4d illustrate the assimilation procedure. In a first step an APFA-graph in created by making all the nodes of all the tasks children of an epsilon node 25, as shown in figure 4a. An epsilon node is a pure mathematical construction and is essentially a place holder. An epsilon node does not output a waypoint like the other APFA nodes. The first epsilon node is simply used to make all tasks children of one common node.
For each task, all the nodes are given successive numbers, de- noted depth index. Thus, nodes in different tasks having the same depth index are at the same depth in the APFA-graph. The first node in all of the tasks have a depth index = 0, and the second node in all the tasks have a depth index = 1 . In a second step, the first node 26, in the first task 20 is compared to all the other nodes, 27-29, of the other tasks 21-23 at the same depth, i.e. depth 0, and the divergences between the nodes are calculated. If the divergence between two nodes is sufficiently small, then the nodes are combined. In the example shown in figure 4a, two of the nodes, 26 and node 27, have a sufficiently small divergence at depth 0. The nodes 26 and 27 are combined, as shown in figure 4b, into a new node 30 having two possible next nodes 31 ,33 to go to. Thus, for each of the nodes at depth 0, the divergence between the node and the other nodes at the same depth are calculated, and if the divergence between the nodes is sufficiently small the nodes are combined.
This algorithm is repeated through each depth of the APFA- graph until all the nodes have been compared with the other nodes at the same depth and if the divergence between the nodes is sufficiently small they have been combined. Figure 4c shows the APFA-graph before the final step in the algorithm. The number of nodes has been reduced and the graph now comprises several possible path through the graph.
The last step in the algorithm includes creating a unique epsilon node 39 and make all nodes of the APFA-graph parents of the epsilon node 39. The purpose of the final epsilon node 39 is to make all tasks terminate in a common node. As the previous epsilon node, the epsilon node 39 does not output a waypoint like the other nodes. Figure 4c shows the APFA-graph after the as- similation is finished. An APFA-graph is what comes out after the APFA-model has been used on the previous tasks. The resulting APFA-graph has no loops, i.e. it is acyclic and all of the edges in the APFA-graph are still directed. Accordingly, the underlying graph of the APFA-graph is a directed acyclic graph. There is a finite number of nodes in the graph and it can be considered to be an automaton.
The divergence between the nodes is computed as the weighted Euclidean distance between Expected Values (EV) of the prob- ability density functions of two nodes in the APFA-graph. This calculation method has the advantage of being a true distance metric. Another possible method for computation of the divergence is the Kullback-Liebler (cross-entropy) divergence between the probability density functions of two nodes in the APFA-graph. The combining procedure combines two similar nodes. The children of the two nodes become children of the combined node. The probability density function of the combined node is a linear mixture of the probability density functions of the two similar nodes. Since a Gaussian distribution is used to model the errors of the operator, the probability density function of the combined node will be a Mixture of Gaussians (MoG). The combined probability density functions is illustrated in figures 4c and 4d as a double or triple "bell-curve" in the node. Alternatively, the nodes are combined by adding random variables of two distributions. This results in multiplying the power spectral densities of the two random variables.
At each node, excluding the epsilon nodes, the APFG-graph outputs a probability density function. But after the assimilation there are several nodes where there are more than one possible path out of the node, such as node 34 at depth 1 and node 35 at depth 3, as shown in figure 4d. This corresponds to a choice for the operator. This choice could be due to many things, e.g. the operator is performing two fundamentally different tasks but these tasks share some common subtasks, or the workspace of the robot has an obstacle in it. These choices are modeled as if the operator makes the choices entirely stochastically. Thus, the APFA-graph is a doubly stochastic Markov random process. It is doubly stochastic because there are two random processes being executed, the positioning of each waypoint and the outcome of the decision of the operator. A transition probability mass function is calculated for each possible path out of a node, based on the relative usage frequency of the paths. Thus, the probability of moving between nodes is estimated as probability mass functions.
Once the APFA-graph has been created, it is possible to assimilate more tasks into it by repeating the algorithm previously de- scribed. The more tasks assimilated into the graph, the better the prediction. However, as more tasks are assimilated into the APFA-graph, the prediction will tend to take longer to execute.
In the second phase, the APFA-graph from the first phase and recent operator observations from a current task are used to perform a prediction of where the operator will move next, as well as a confidence measure. Since the object is to detect repeated sub-tasks from previous tasks in the current task, only the most recent observations from the current task are consid- ered. The number of observations considered is called the horizon. If the object were to look for an entirely repeated task, then the number of observations should be the entire length of the current task. Once a sufficient number of observations from the current task is received, the APFA-graph from the first phase is used to compute the expected value (EV) of the next observation, based on the APFA-graph and the current observations. The current observations can be incorporated into the APFA- graph during the second phase, according to the algorithm described previously, thereby improving future predictions.
Determining the expected value is a two-step procedure. In a first step, for each node in the APFA-graph, the probability of being in that node is calculated, given the observation sequence. Since the APFA-graph has the Markov property, the Bellman 's Optimality Principle (BOP) applies. Dynamic Programming (DP) is used for calculation of the probability of being in a certain node. More details about DP can be found in the book "Dynamic Programming", by Richard E Bellman, Princeton University Press, Princeton, NJ, 1957. In the second step, the expectation is determined by multiplying the expected value of each node in the APFA-graph by the probability of being in that node.
Figure 5 shows a number of waypoints 40-44 collected from the current task and described as a direct acyclic graph. In the following, the position of the next waypoint, will be predicted. In this example, the horizon is set equal to three, i.e. only the three most recent waypoints 42,43,44 are considered for the purpose of the prediction. Hereafter, the observations will be treated as if they were deterministic. For each three-node se- quence in the APFA graph, the likelihood that this three-node sequence produced the recently observed waypoints 12-14 are computed.
The likelihood that a specific node sequence generated the ob- served waypoints is proportional to the product of the likelihood that the nodes generated the waypoints and the probability of being in those nodes. The likelihood that the nodes in the sequence generated the waypoints is calculated as the product of the likelihood that the first node in the sequence generated the waypoint 42, the likelihood that the second node in the sequence generated the waypoint 43, and the likelihood that the third node in the sequence generated the waypoint 44. The probability of being in those nodes is calculated as the product of the probability of moving from the first node to the second node in the sequence, and the probability of moving from the second node to the third node in the sequence.
Thus, the likelihoods of generating the observed waypoints 42- 44 are computed for every possible three-node sequence in the APFA-graph. Dynamic programming (DP) is a very efficient method for computing these likelihoods. When the likelihood of all three-node sequences in the APFA-graph is computed, it is possible to compute the probability that a specific node generated the most recent waypoint 44 from the current task. If more than one sequence end up in the same node, i.e. the node has more than one possible path leading to it, the probability that this node generated the final waypoint 14 is calculated by adding the likelihoods of these sequences and dividing the sum with the likelihood of ending up at all nodes. A probability mass func- tion (pmf) that a node generated the final waypoint is obtained by computing, for all nodes in the APFA-graph, the probability that the node generated the final waypoint.
Since the probability of each node generating the last observed waypoint and the probability of moving between the nodes are now known, then the probability that each node will generate the next waypoint in the current task is known. Each node in the APFA graph has an expectation about where the next waypoint will occur, according to the probability density functions previ- ously described. The expected value of the next waypoint is calculated by taking the waypoint that each node generates, multiply it by the probability that the node generates the next way point, and then sum over all nodes.
The result of the expectation operation over all the nodes in the APFA-graph is a candidate for being suggested as the next waypoint. Before suggesting the next waypoint the confidence of the prediction is considered by measuring the internal uncertainty of the model, the entropy. The entropy is calculated for the internal state of the APFA-graph, given the expected value of the next waypoint. If the entropy of the prediction is below a predetermined, or adaptive threshold, the next waypoint is suggested to the operator. Further, it is suggested that the operator follows the remainder of the branch in the APFA-graph until the entropy, due to branching in the APFA, rises above the threshold. Before proposing the next waypoint to the operator, it is appropriately translated and rotated.
In another embodiment of the invention, it is possible to predict more than just waypoints by including the various commands that comprise a program. The prediction of movement commands, in addition to waypoints, could be a substantial benefit to operators and it appears that this information could easily be included in the prediction algorithms. The prediction of waypoints and commands will now be explained in connection with a further example shown in figure 6a- 6c. A number of previous tasks have been assimilated into an APFA-graph, as shown in figure 6a, using the previously de- scribed algorithm. The letters A, B, C, D, E, F, G represent stochastic notations of waypoints, the double {n, Inst} means that n% of the previous programs moved from the waypoint to the next waypoint using the instruction Inst, for example, the edge from F to G means that 50% of the previous programs moved from the waypoint F to somewhere near G using the command Move L.
Now, during programming, suppose that it has been observed that the operator has performed the program sequence shown in figure 6b. The program sequence of the operator is described using a directed acyclic graph. The question is now, what is the operator likely to do given the current directed acyclic graph? According to the assimilated APFA-graph in figure 6a, the operator always executes a command Arc L and moves to the waypoint D when the operator is at waypoint C. Thereafter, it has to be considered what the operator will do at waypoint D. From the APFA-graph, it is possible to note that the operator almost always (90%) executes a command Move J to waypoint E. At waypoint E, one cannot say with confidence what the op- erator will typically do, since the operator executes a command Move L to F (44%) or executes a command Arc L to G (56%). Thus, the program sequence shown in figure 6c, is suggested to the operator. The waypoint positions can come directly from the shaft encoders, and the commands from the teach pendent or GBP system (GBP = Gesture-Based Programming.) The suggestion is shown to the operator either by letting the manipulator perform the suggestions or displaying the suggestions in a simulation program, such as RobotStudio Light.
Another potential usage of the method according to the invention involves correcting potential erroneous operator behavior. Assume that the previous tasks are visualized in the assimilated APFA-graph shown in figure 6a. If the operator programs the task shown in figure 6d, it is noticed from the APFA-graph that at waypoint C the operator always executes a command Arc L to waypoint D, not a Move L. This deviation could be pointed out to the operator in various ways, such as a synthesized voice, displaying the suggested correction in the program editor, or just correcting without notifying the operator.
Naturally, all of the method steps, as well as any sub-sequence of steps, described above may be carried out by means of a computer program being directly loadable into the internal memory of a computer, which includes appropriate software for performing the necessary steps when the program is run on a com- puter. Preferably, the computer program is loaded into the internal memory of the control system of the robot and run on a processor in the control system of the robot. It is also possible to run the program on an external computer connected to the control system.
The computer program can likewise be recorded onto any arbitrary kind of computer readable medium or be provided over a network such as Internet.
The present invention is not limited to the embodiments disclosed but may be varied and modified within the scope of the following claims. For example other possible prediction algorithms, besides the Expected Value, are Maximum Likelihood (ML), Maximum A Posteriori (MAP), and Minimum Entropy (ME). However, computing the Expected Value is computationally much simpler than the other prediction algorithms, since many of the integrals of the Expected Value estimator can be computed in closed form for many distributions.
Another possibility instead of double stochastic random processes is the use of templates. Roughly, the main idea behind templates is to segment previously stored programs according to some type of canonical action. During the prediction phase, systems try to fit operator actions according to the set of templates, and the prediction is based on the next likely template to use. For example, during arc welding, operators generally follow a fairly general routine of approach: begin welding, drag, stop welding, and depart. These four steps would become the four templates of a simple arc welding system. By analyzing previously created programs, the system could derive a model of how operators perform each template. Also, templates can be temporarily constrained, and can yield better predictive results. For example, the "begin welding" template always becomes before the "drag" template, which precedes the "stop welding" template and so forth. During prediction, the system tries to fit current observations according to templates and predicts what the next template should be.
The entropy is not the only possible measure of confidence. Other confidence computations could include the likelihood of the prediction given the model, the conjunctive probability of the most likely node sequence through the APFA-graph, the gradient of the prediction, or the differential prediction likelihood found by perturbing the observations.
While shaft encoders are currently used indirectly to sense a position of the end effector, any conceivable sensor or transducer could be used as a possible position detection means. Another likely substitute could be a stereoscopic vision system, such as cameras.
There are ways to achieve translation and rotation independence without using relative coordinate transforms. Additionally, scale invariance can be implemented. In a further embodiment, it is possible to let the operator know where the position of the predicted waypoint is without physically moving the end effector, such as virtual reality programs.

Claims

1 . A method for programming an industrial robot, including programming a task comprising a set of successive waypoints through which the robot should pass during performance of the task, characterized in that the method includes: receiving information about waypoints specified during programming of a current task, predicting the next waypoint of the current task based on the received information about the waypoints of the current task and a set of previously stored tasks, and suggesting the next waypoint of the current task according to said prediction.
2. A method according to claim 1 , whereby the robot comprises an end-effector, characterized in the method includes predicting the position and orientation of the end-effector for the next waypoint.
3. A method according to claim 1 or 2, whereby the task comprises commands to be executed by the robot in connection with the waypoints, characterized in that the method includes predicting a commands in connection with the next waypoint.
4. A method according to any of the previous claims, characterized in that it includes describing the current task and the previously stored tasks as directed acyclic graphs, and predicting the next waypoint of the current task based on said directed acyclic graphs.
5. A method according to any of the previous claims, characterized in that it includes assimilating the set of previously stored tasks into a statistical model and predicting the next waypoint based on the assimilated set of previously stored tasks and the statistical model.
6. A method according to claim 4 and 5, characterized in that the directed acyclic graphs of the previous stored tasks are assimilated into the statistical model and the next waypoint is predicted based on the assimilated set of previously stored tasks and the directed acyclic graphs of the current task.
7. A method according to claim 5 or 6, characterized in that said statistical model is an acyclic probabilistic finite automata.
8. A method according to any of the previous claims, characterized in that it includes calculating the confidence of the prediction and make the suggestion in dependence of the level of the calculated confidence.
9. A method according any of the previous claims, characterized in that said previously stored tasks are previously created programs.
10. A method according to any of the previous claims, charac- terized in that it includes receiving information about the next waypoint specified during programming of the current task, comparing the received information about the next waypoint with said prediction of the next waypoint and indicating a potential programming error based on the comparison.
1 1 . A method according to any of the previous claims, characterized in that said predicting is based on information about a limited number of the most recent waypoints of the current task.
12. A method according to any of the previous claims, characterized in that it comprises describing the waypoints as relative coordinate transforms.
13. A computer program product comprising a computer read- able medium, having thereon a computer readable program means which, when run on a computer, makes the computer perform the steps of any of the claims 1 -12.
14. A computer readable medium having a program recorded thereon, where the program is to make a computer perform the steps of any of the claims 1-12.
15. An industrial robot system comprising a manipulator (1 ), a control unit (2) for controlling the manipulator, and a unit (3) for manually programming the robot to perform a task comprising a set of successive waypoints (6) through which the robot should pass during performance of the task characterized in that it comprises: memory means for storing a set of previously created tasks, - a waypoint receiver, receiving and storing information about waypoints specified during programming of a current task, a predictor, predicting the next waypoint of the current task based on the stored waypoints of the current task and said set of previously stored tasks, and - a suggestion unit, suggesting the next waypoint of the current task according to said prediction.
16. An industrial robot system according to claim 15, wherein the robot comprises an end-effector (4), characterized in that the predictor is arranged for predicting the position and orientation of the end-effector for the next waypoint.
17. An industrial robot system according to claim 15 or 16, wherein the task comprises instructions to be executed by the robot in connection with the waypoints, characterized in that the predictor is arranged for predicting a command in connection with the next waypoint.
18. An industrial robot system according to any of the claims 15-17, characterized in that it comprises means for describing the previously created tasks and the current task as directed acyclic graphs and the predictor is arranged for predicting the next waypoint of the current task based on said directed acyclic graphs.
19. An industrial robot system according to any of the claims 15-18, characterized in that it comprises means for assimilating the set of previously stored tasks into a statistical model and the predictor is adapted for predicting the next waypoint based on the assimilated set of previously stored tasks and the statistical model.
20. An industrial robot system according to claim 19, characterized in that said statistical model is an acyclic probabilistic finite automata.
21 . An industrial robot system according to any of the claims 15-20, characterized in that it comprises means for calculating the confidence of the prediction and the suggestion unit is adapted to make the suggestion in dependence of whether the cal- culated confidence is above a threshold.
22. An industrial robot system according to any of the claims 15-21 , characterized in that it comprises an error indication unit, indicating a potential programming error based on a comparison between received information about the next waypoint and said prediction of the next waypoint.
PCT/SE2002/002196 2001-11-29 2002-11-28 An industrial robot system and a method for programming thereof WO2003045640A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2002359099A AU2002359099A1 (en) 2001-11-29 2002-11-28 An industrial robot system and a method for programming thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE0103994-0 2001-11-29
SE0103994A SE0103994L (en) 2001-11-29 2001-11-29 An industrial robot system and a method for programming it

Publications (1)

Publication Number Publication Date
WO2003045640A1 true WO2003045640A1 (en) 2003-06-05

Family

ID=20286136

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SE2002/002196 WO2003045640A1 (en) 2001-11-29 2002-11-28 An industrial robot system and a method for programming thereof

Country Status (3)

Country Link
AU (1) AU2002359099A1 (en)
SE (1) SE0103994L (en)
WO (1) WO2003045640A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102069500A (en) * 2009-11-20 2011-05-25 库卡罗伯特有限公司 Method and apparatus for planning and/or control of a robot application
WO2013192492A1 (en) * 2012-06-21 2013-12-27 Rethink Robotics, Inc. Vision-guided robots and methods of training them
US9916506B1 (en) 2015-07-25 2018-03-13 X Development Llc Invisible fiducial markers on a robot to visualize the robot in augmented reality
US9919427B1 (en) 2015-07-25 2018-03-20 X Development Llc Visualizing robot trajectory points in augmented reality
CN112008732A (en) * 2020-09-09 2020-12-01 中科新松有限公司 Robot reverse running method, device, terminal and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4907169A (en) * 1987-09-30 1990-03-06 International Technical Associates Adaptive tracking vision and guidance system
US5323470A (en) * 1992-05-08 1994-06-21 Atsushi Kara Method and apparatus for automatically tracking an object
JPH09254064A (en) * 1996-03-15 1997-09-30 Yaskawa Electric Corp Instruction point adding method in industrial robot
JPH10247102A (en) * 1997-03-05 1998-09-14 Mitsubishi Electric Corp Learning control method
JPH11175132A (en) * 1997-12-15 1999-07-02 Omron Corp Robot, robot system, learning method for robot, learning method for robot system, and recording medium
JP2000129992A (en) * 1998-10-23 2000-05-09 Nec Eng Ltd Hinge

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4907169A (en) * 1987-09-30 1990-03-06 International Technical Associates Adaptive tracking vision and guidance system
US5323470A (en) * 1992-05-08 1994-06-21 Atsushi Kara Method and apparatus for automatically tracking an object
JPH09254064A (en) * 1996-03-15 1997-09-30 Yaskawa Electric Corp Instruction point adding method in industrial robot
JPH10247102A (en) * 1997-03-05 1998-09-14 Mitsubishi Electric Corp Learning control method
JPH11175132A (en) * 1997-12-15 1999-07-02 Omron Corp Robot, robot system, learning method for robot, learning method for robot system, and recording medium
JP2000129992A (en) * 1998-10-23 2000-05-09 Nec Eng Ltd Hinge

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
PATENT ABSTRACTS OF JAPAN vol. 1998, no. 1 30 January 1998 (1998-01-30) *
PATENT ABSTRACTS OF JAPAN vol. 1998, no. 14 31 December 1998 (1998-12-31) *
PATENT ABSTRACTS OF JAPAN vol. 1999, no. 12 29 October 1999 (1999-10-29) *
PATENT ABSTRACTS OF JAPAN vol. 2000, no. 7 29 September 2000 (2000-09-29) *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102069500A (en) * 2009-11-20 2011-05-25 库卡罗伯特有限公司 Method and apparatus for planning and/or control of a robot application
EP2324966A1 (en) * 2009-11-20 2011-05-25 KUKA Laboratories GmbH Device and method for controlling and/or planning a robot application
WO2013192492A1 (en) * 2012-06-21 2013-12-27 Rethink Robotics, Inc. Vision-guided robots and methods of training them
US8958912B2 (en) 2012-06-21 2015-02-17 Rethink Robotics, Inc. Training and operating industrial robots
US8965576B2 (en) 2012-06-21 2015-02-24 Rethink Robotics, Inc. User interfaces for robot training
US8965580B2 (en) 2012-06-21 2015-02-24 Rethink Robotics, Inc. Training and operating industrial robots
US8996174B2 (en) 2012-06-21 2015-03-31 Rethink Robotics, Inc. User interfaces for robot training
US8996175B2 (en) 2012-06-21 2015-03-31 Rethink Robotics, Inc. Training and operating industrial robots
US9092698B2 (en) 2012-06-21 2015-07-28 Rethink Robotics, Inc. Vision-guided robots and methods of training them
US9434072B2 (en) 2012-06-21 2016-09-06 Rethink Robotics, Inc. Vision-guided robots and methods of training them
US9669544B2 (en) 2012-06-21 2017-06-06 Rethink Robotics, Inc. Vision-guided robots and methods of training them
US9916506B1 (en) 2015-07-25 2018-03-13 X Development Llc Invisible fiducial markers on a robot to visualize the robot in augmented reality
US9919427B1 (en) 2015-07-25 2018-03-20 X Development Llc Visualizing robot trajectory points in augmented reality
CN112008732A (en) * 2020-09-09 2020-12-01 中科新松有限公司 Robot reverse running method, device, terminal and storage medium
CN112008732B (en) * 2020-09-09 2021-12-10 中科新松有限公司 Robot reverse running method, device, terminal and storage medium

Also Published As

Publication number Publication date
SE0103994L (en) 2003-05-30
AU2002359099A1 (en) 2003-06-10

Similar Documents

Publication Publication Date Title
CN109002012B (en) Control device and machine learning device
US6526373B1 (en) Optimization tool for robot placement
US20190291271A1 (en) Controller and machine learning device
EP3767555A1 (en) Calculation device, calculation method, and program
US10649441B2 (en) Acceleration and deceleration controller
US20190196454A1 (en) Chip removal apparatus and information processing apparatus
US10908572B2 (en) Programmable controller and machine learning device
CN110501973B (en) Simulation device
JP5137537B2 (en) Robot work motion optimization device
US20220382253A1 (en) Machining program conversion device, numerical control device, and machining program conversion method
WO2003045640A1 (en) An industrial robot system and a method for programming thereof
Liu et al. Guarantees for real robotic systems: Unifying formal controller synthesis and reachset-conformant identification
CN111984000A (en) Method and device for automatically influencing an actuator
LaValle et al. An objective-based stochastic framework for manipulation planning
JP6792184B1 (en) Simulation systems, simulation methods, simulation programs, robot manufacturing methods, and robot systems
Wittmann et al. Time-optimization of trajectories using zero-clamped cubic splines and their analytical gradients
Brooks et al. The Predictive Kinematic Control Tree: Enhancing Teleoperation of Redundant Robots through Probabilistic User Models
US20230141876A1 (en) Planning system, planning method, and non-transitory computer readable storage medium
JP2966076B2 (en) Learning device self-learning method
US20240069501A1 (en) System and Method for Controlling an Entity
WO2022123660A1 (en) Numerical control device
Lima et al. Performance improvement of intelligent machines through feedback
JP2023058044A (en) Hull control device, hull control method, and hull control program
Jacak et al. Distributed intelligent control of an autonomous robotic cell
Kakiuchi et al. Evaluation-controlling mechanism of perception, planning, and execution for a life-sized humanoid robot

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP