WO2010025768A1 - A device and a method for facilitating editing of a robot program - Google Patents
A device and a method for facilitating editing of a robot program Download PDFInfo
- Publication number
- WO2010025768A1 WO2010025768A1 PCT/EP2008/061719 EP2008061719W WO2010025768A1 WO 2010025768 A1 WO2010025768 A1 WO 2010025768A1 EP 2008061719 W EP2008061719 W EP 2008061719W WO 2010025768 A1 WO2010025768 A1 WO 2010025768A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- robot
- robot program
- instructions
- instruction
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 25
- 229940036310 program Drugs 0.000 claims 1
- 230000008449 language Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000012432 intermediate storage Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 241000270730 Alligator mississippiensis Species 0.000 description 1
- 102100021243 G-protein coupled receptor 182 Human genes 0.000 description 1
- 101001040797 Homo sapiens G-protein coupled receptor 182 Proteins 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006854 communication Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/409—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using manual data input [MDI] or by using control panel, e.g. controlling functions with the panel; characterised by control panel details or by setting parameters
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/36—Nc in input of data, input key till input tape
- G05B2219/36043—Correction or modification of program
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/36—Nc in input of data, input key till input tape
- G05B2219/36045—Skip of program blocks, jump over certain blocks
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/36—Nc in input of data, input key till input tape
- G05B2219/36075—Set certain command codes, discriminate codes and display in different colour
Definitions
- the present invention relates to a device for editing a robot program designed to control an industrial robot to carry out work along an operating path.
- the invention also relates to a method for facilitating editing of a robot program.
- An industrial robot is programmed to carry out work along an operating path.
- the robot In order to program the robot the path, the robot is manipulated to positions along the desired operating path. These positions are stored as instructions in a memory in the robot controller.
- a robot program includes a sequence of program instructions for controlling the robot to carry out the work along the path. Some of the instructions are motion instructions having modifiable position arguments specifying poses on the operating path. A pose defines a position and often also an orientation of a tool or a work object hold by the robot when carrying out the work.
- the position arguments are modified until the programmer is satisfied with the path.
- the program instructions are executed, thereby making the robot work as desired.
- a portable operator control device When the robot is operated in manual mode, the robot is controlled by means of a portable operator control device, generally denoted a Teach Pendant Unit, and called hereafter a TPU.
- a robot operator uses a TPU for manually controlling the robot, for example to program the robot to follow an operating path.
- the TPU may also be used for monitoring a robot program, changing certain variables in the program, starting, stopping and editing the program.
- a TPU normally comprises operator control means, for example a joystick, for manually jogging the robot, a visual display screen, and safety equipment including an enabling device and an emergency stop button.
- the TPU comprises a program editor for editing the robot program and in particular for editing modifiable position arguments.
- the program editor includes a navigator configured to enable a user to navigate up and down among the instructions of the robot program.
- the process of editing position includes the following steps: a) Locate the program instruction in the robot program, which position argument is to be modified. b) Jog the robot by means of the TPU to the desired new position. c) Teach the new position, and the position argument of the program instruction will be automatically modified. d) Run the robot program and decide if the new position is ok.
- the object of the present invention is improving the efficiency of the process of teaching positions. According to one aspect of the invention this object is achieved by a device as defined in claim 1 .
- the device according to the invention is characterized in that the device comprises a program editor configured to enable a user to select between navigating up and down among all of the instructions of the robot program, and navigating only among the instructions of the robot program which have modifiable position arguments.
- this object is achieved by a method as defined in claim 10.
- the method according to the invention is characterized in that it comprises enabling a user to select between navigating up and down among all of the instructions of the robot program and only navigating among the instructions of the robot program which have modifiable position arguments.
- the invention provides a fast way for the operator to locate the modifiable positions in the robot program. Thereby the efficiency of the teaching process is improved.
- a modifiable position argument is meant any type of representation of a programmed pose, i.e. position and/or orientation, of the robot, which is possible to modify, for example by teaching a new pose of the robot, or by editing the representation.
- the device is a Teach Pendant Unit.
- the TPU is a handheld device for programming and teaching the robot positions along an operating path, and accordingly it is very advantageous to provide the TPU with the possibility to navigate among only the instructions of with modifiable position argu- ments.
- the device further comprises a switching means that enables a user to select between a normal editing mode, in which the robot program is navigated up and down among all of the instructions of the robot program, and a teach editing mode, in which the robot program is only navigated among the instructions which has modifiable position arguments. This embodiment enables a user to select between normal editing mode and teach editing mode.
- the device comprises a display screen configured to display the robot program and a program cursor pointing at an instruction in the robot program
- the program editor is configured to upon receiving a user command about moving the cursor up or down in the robot program automatically move the cursor to the next instruction of the robot program in the specified direction if normal editing mode is selected, and if teach editing mode is selected automatically move the cursor to the next instruction in the specified direction having modifiable position arguments.
- normal editing mode it is possible for the user to move the curser up and down line by line in the program.
- teach editing mode it is possible for the user to move the curser up and down among the instructions of the program having modifiable position arguments.
- the program curser will automatically jump to the next program line which has a modifiable position argument.
- program editor comprises a search module configured to search for the next or previous instruction of the robot program which has a modifiable position argument starting from the program cursor.
- the program editor comprises a syntax parser configured to parse the robot program and create a structural representation of the robot program, and the search module is configured to search the structural representation of the robot program to find the previous or next program instruction.
- the search module is configured to search the structural representation of the robot program to find the previous or next program instruction according to the currently selected navigation mode.
- the program editor includes one single search module configured to carry out searches for the next or previous program line in the robot program when normal editing mode is selected, and to searches for the next or previous instruction of the program having a modifiable position argument when teach editing mode is selected.
- a language syntax parser and an object-oriented representation can give the editor many advanced editing functionality, e.g. display syntax color, generating syntax error-proof program. So most of Industrial robot manufacturers have their own parsers in their TPU.
- the search module can also benefit from it.
- the search result can be very precise no matter how complex the program is. And even if the language is extended in the future, e.g. adding a new instruction with modifiable position argument, only the parser needs to be updated but the search module doesn't need to be modified.
- the program editor includes a first navigator configured to enable the user to navigate up and down among all of the instructions of the robot program and a second navigator configured to enable a user to only navigate among the instructions of the robot program which has modifiable position arguments.
- the first navigator is configured to search for the next or previous instruction of the robot program
- the second navigator comprises a search module configured to search for the next or previous instruction of the robot program which has a modifiable position argument starting from the program cursor.
- Most of the robot languages are proprietary languages and used in very narrow area. That means the robot language syntax parsers are not off-the-shelf and need to be developed by the robot manufacturer, which makes the development costs very high.
- a text search module for the specific string e.g. "moveL”
- a text search module for the specific string e.g. "moveL”
- many advanced program language e.g. C, C#
- these solution requires less memory and lower computation capacity than the first solution. So, in the case when a robot lan- guage parser is not available, a simple text search module is a good enough quick alternative.
- Fig. 1 shows an industrial robot system including an example of a teach pendant according to the invention.
- Fig. 2 shows a program editor according to a first embodiment of the invention.
- Fig. 3 shows a program editor according to a second embodiment of the invention.
- FIG. 1 shows an industrial robot system comprises a manipu- lator 1 , a robot controller 2 for controlling the manipulator 1 , and a portable operator control device 3, denoted a Teach Pendant Unit (TPU) for teaching and manually operating the manipulator.
- the robot controller 2 comprises storage for storing robot control programs.
- the TPU 3 communicates with the robot controller 2 via a data link, for example an Ethernet link 4.
- the TPU 3 comprises a display screen 5, input interfaces, for example a matrix of function keys 6 or a touch functionality of the screen 5, and means for controlling the movements of the manipulator when the robot is manually operated, such as four directions navigator keys 7 or a joystick.
- the TPU further comprises safety equipment, such as an emergency stop button and an enabling device, which are not shown in the figure.
- the TPU comprises appropriate hardware and software for carrying out normal teach pendant functionality, such as communi- cation equipment for communicating with the robot controller, storage means for storing control programs read from the robot controller, and a data processor unit, such as a central processing unit (CPU).
- the software of the TPU includes a program editor for navigating and editing robot programs, which are read from the robot controller 2.
- the program editor is configured to enable a user to navigate up and down among all of the instructions of the robot programs.
- the robot program to be edited is displayed on the display screen 5.
- a user controlled cursor 8 marks one of the instructions in the program, for example, by highlighting the instruction. The user can move the cursor up and down in the program, for example, by means of the function keys 6a-b. If an instruction is to be edited, the user positions the cursor on the instruction to be edited.
- a robot control program includes a sequence of program instructions for controlling the robot to carry out the work along the path. Some of the instructions are motion instructions having modifiable position arguments specifying poses on the operating path. This is an example of a part of a robot control program in- eluding a plurality of instructions 10-16: 10 MoveL p1
- Instructions 10, 12 and 15 have modifiable position arguments p1 -p3 specifying three poses on the operating path.
- the program editor is provided with a selection means 6c, for example one of the function keys, that enables a user to select between a normal editing mode, in which the robot program is navigated up and down among all instruction of the robot program, and teach editing mode, in which the robot program is navigated up and down only among the instructions having modifiable position arguments.
- a normal editing mode in which the robot program is navigated up and down among all instruction of the robot program
- teach editing mode in which the robot program is navigated up and down only among the instructions having modifiable position arguments.
- the selection means can be a toggle key or a menu button to switch the program editor between normal editing mode and teach editing mode.
- the same buttons 6a-b are used to navigate in normal as well as teach editing mode. In normal editing mode the program is navigated line-byline, and in teach editing mode instructions with modifiable position arguments are navigated one by one.
- the TPU can be provided with two separate buttons for navigating in the teach mode, for example, one button denoted “next modifiable position” and another button denoted “previous modifiable position”.
- button is meant software buttons, such as menu buttons or icons, as well as hardware buttons.
- the editing mode is selected by using different sets of buttons, one set of buttons for navigating in the teach editing mode and another set of buttons for navigating in normal editing mode. Accordingly, the selection means in this embodiment is two different sets of buttons.
- Figure 2 shows a program editor 10 according to a first embodiment of the invention.
- the program editor 10 comprises a text editor 6, a search module 12, a language syntax parser 13, and an intermediate storage 14 for the parsing result.
- the text editor 6 generates the interfaces to the user for displaying, modifying and navigating the program, which interfaces are displayed on the screen 5.
- the text editor generates the curser 8.
- the language syntax parser 13 reads the control program from the robot controller 2, parses the control program, and creates a document object model of the program. For example, the parser parses the program into a tree structure to reflect the whole structure of the robot program according to the syntax.
- a robot language parser is language syntax dependent, and since syntax extension is needed for robot programming there is no standard parser available. Normally, the robot parser is developed by the robot manufacturer. However, some open source parsers, e.g. Crystal syntax parser, C/C# parser, XML parser, could be used as reference. Thus, preferably the language syntax parser of the robot is used.
- the document object model is a structural representation of the program, for example, a tree structure as shown in the figure.
- the tree structure includes a plurality of nodes 16a-c, each node representing modules, sub- routines, and instructions in the control program.
- Each program line and accordingly each instruction in the control program is represented by a node.
- the document object model of the program is stored in the intermediate storage 14. All the instructions of the control program are parsed since this function is re- quired for normal program generation and editing.
- the document object model is resynchronized when any part of the program in the robot controller is changed, including inserting, deleting and replacing.
- the text editor 1 1 displays the control program while maintain- ing the mapping between the cursor and a selected node of the document object model.
- the search module 12 includes a simple searching algorithm, which is configured to search for the next or previous instruction with modifiable position argument starting from the current position 16c of the cursor in the docu- ment object model.
- all the elements including arguments are represented as objects, that means the number and the type of arguments belonging to an instruction node are visible for the visitor. That makes it easy to search for a certain type of argument. Accordingly, it is easy for the search module to search for modifiable position arguments.
- the search algorithm 12 is called to find the previous/next instruction according to the current navigation mode. For normal editing mode, the next instruction in the specified direction is returned. For teach editing mode, the instruction in the specified direction having modifiable position arguments is returned by searching the document object model.
- Figure 3 shows a program editor 20 according to another embodiment of the invention.
- the program editor 20 includes a text editor 1 1 of the same type as described with reference to figure 2, a first navigator 22, and a second navigator 24.
- the first navi- gator 22 is configured to navigate up and down among all of the instructions of the robot program
- the second navigator 24 is configured to only navigate among the instructions of the robot program which have modifiable position arguments.
- the first navigator is configured to search for the next or previous in- struction of the robot program, and does not necessarily have a search module for moving the cursor to the next or previous line.
- the second navigator comprises a search module configured to search for the next or previous instruction of the robot program which have a modifiable position argument starting from the program cursor.
- the first navigator moves the cursor line-by-line in the program and the second navigator searches a specific pattern in the text.
- the first navigator 22 is used and the cursor is moved line by line according to the user command.
- the second navigator 24 is used, and when user command of moving cursor up/down is received, a specific search pattern is used to find the next matched instruction in the specified direction having modifiable position arguments, and then the cursor is moved to the found instruction.
- This embodiment does not include any parser or object model, instead text finding functions or APIs are used for searching the modifiable position arguments.
- the present invention is not limited to the embodiments disclosed but may be varied and modified within the scope of the following claims.
- the invention mainly relates to software, it can also be implemented on another platform than the TPU, e.g. robot simulation software. It is possible to implement the editor on a personal computer (PC) or on another external unit communicating with the robot controller, or even on the robot controller itself.
- PC personal computer
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
The present invention relates to a device for editing a robot program designed to control an industrial robot to carry out work along an operating path, the robot program including a sequence of program instructions, and some of the instructions are instructions having modifiable position arguments specifying poses on the operating path. The device comprises a program editor (10;20) configured to enable a user to select between navigating up and down among all of the instructions of the robot program, and navigating only among the instructions of the robot program which have modifiable position arguments.
Description
Reference: 400801 PCT/AM R Applicant: ABB Technology AB
A DEVICE AND A METHOD FOR FACILITATING EDITING OF A ROBOT PROGRAM
FIELD OF THE INVENTION
The present invention relates to a device for editing a robot program designed to control an industrial robot to carry out work along an operating path. The invention also relates to a method for facilitating editing of a robot program.
PRIOR ART
An industrial robot is programmed to carry out work along an operating path. In order to program the robot the path, the robot is manipulated to positions along the desired operating path. These positions are stored as instructions in a memory in the robot controller. A robot program includes a sequence of program instructions for controlling the robot to carry out the work along the path. Some of the instructions are motion instructions having modifiable position arguments specifying poses on the operating path. A pose defines a position and often also an orientation of a tool or a work object hold by the robot when carrying out the work. During programming of the robot, the position arguments are modified until the programmer is satisfied with the path. During operation of the robot, the program instructions are executed, thereby making the robot work as desired.
When the robot is operated in manual mode, the robot is controlled by means of a portable operator control device, generally denoted a Teach Pendant Unit, and called hereafter a TPU. A robot operator uses a TPU for manually controlling the robot, for example to program the robot to follow an operating path. The
TPU may also be used for monitoring a robot program, changing certain variables in the program, starting, stopping and editing the program. A TPU normally comprises operator control means, for example a joystick, for manually jogging the robot, a visual display screen, and safety equipment including an enabling device and an emergency stop button.
During teaching of positions on an operating path, there is a need to edit the taught positions. Nowadays, a TPU provides rich functionalities of robot programming editing. The TPU comprises a program editor for editing the robot program and in particular for editing modifiable position arguments. The program editor includes a navigator configured to enable a user to navigate up and down among the instructions of the robot program. However, to edit positions in a large robot program is time consuming and of low efficiency. The process of editing position includes the following steps: a) Locate the program instruction in the robot program, which position argument is to be modified. b) Jog the robot by means of the TPU to the desired new position. c) Teach the new position, and the position argument of the program instruction will be automatically modified. d) Run the robot program and decide if the new position is ok.
Sometimes it is necessary to repeat the editing process many times in order to achieve the correct position. If many positions are to be modified, the process has to be repeated a great number of times. Therefore, there is a desire to improve the effi- ciency of the process of editing positions during teaching of positions on an operating path.
OBJECTS AND SUMMARY OF THE INVENTION
The object of the present invention is improving the efficiency of the process of teaching positions.
According to one aspect of the invention this object is achieved by a device as defined in claim 1 .
The device according to the invention is characterized in that the device comprises a program editor configured to enable a user to select between navigating up and down among all of the instructions of the robot program, and navigating only among the instructions of the robot program which have modifiable position arguments.
According to another aspect of the invention this object is achieved by a method as defined in claim 10.
The method according to the invention is characterized in that it comprises enabling a user to select between navigating up and down among all of the instructions of the robot program and only navigating among the instructions of the robot program which have modifiable position arguments.
The invention provides a fast way for the operator to locate the modifiable positions in the robot program. Thereby the efficiency of the teaching process is improved.
By a modifiable position argument is meant any type of representation of a programmed pose, i.e. position and/or orientation, of the robot, which is possible to modify, for example by teaching a new pose of the robot, or by editing the representation.
Suitably, the device is a Teach Pendant Unit. The TPU is a handheld device for programming and teaching the robot positions along an operating path, and accordingly it is very advantageous to provide the TPU with the possibility to navigate among only the instructions of with modifiable position argu- ments.
According to an embodiment of the invention, the device further comprises a switching means that enables a user to select between a normal editing mode, in which the robot program is navigated up and down among all of the instructions of the robot program, and a teach editing mode, in which the robot program is only navigated among the instructions which has modifiable position arguments. This embodiment enables a user to select between normal editing mode and teach editing mode.
According to an embodiment of the invention, the device comprises a display screen configured to display the robot program and a program cursor pointing at an instruction in the robot program, and the program editor is configured to upon receiving a user command about moving the cursor up or down in the robot program automatically move the cursor to the next instruction of the robot program in the specified direction if normal editing mode is selected, and if teach editing mode is selected automatically move the cursor to the next instruction in the specified direction having modifiable position arguments. During normal editing mode it is possible for the user to move the curser up and down line by line in the program. During teach editing mode it is possible for the user to move the curser up and down among the instructions of the program having modifiable position arguments. When the user moves the curser up or down in the program during teach editing mode, the program curser will automatically jump to the next program line which has a modifiable position argument.
According to an embodiment of the invention, program editor comprises a search module configured to search for the next or previous instruction of the robot program which has a modifiable position argument starting from the program cursor. Further, the program editor comprises a syntax parser configured to parse the robot program and create a structural representation of the robot program, and the search module is configured to search
the structural representation of the robot program to find the previous or next program instruction.
According to an alternative embodiment of the invention, the search module is configured to search the structural representation of the robot program to find the previous or next program instruction according to the currently selected navigation mode. In this embodiment, the program editor includes one single search module configured to carry out searches for the next or previous program line in the robot program when normal editing mode is selected, and to searches for the next or previous instruction of the program having a modifiable position argument when teach editing mode is selected. A language syntax parser and an object-oriented representation can give the editor many advanced editing functionality, e.g. display syntax color, generating syntax error-proof program. So most of Industrial robot manufacturers have their own parsers in their TPU. The search module can also benefit from it. The search result can be very precise no matter how complex the program is. And even if the language is extended in the future, e.g. adding a new instruction with modifiable position argument, only the parser needs to be updated but the search module doesn't need to be modified.
According to another alternative embodiment of the invention, the program editor includes a first navigator configured to enable the user to navigate up and down among all of the instructions of the robot program and a second navigator configured to enable a user to only navigate among the instructions of the robot program which has modifiable position arguments. The first navigator is configured to search for the next or previous instruction of the robot program, and the second navigator comprises a search module configured to search for the next or previous instruction of the robot program which has a modifiable position argument starting from the program cursor. Most of the robot languages are proprietary languages and used in very narrow area. That means the robot language syntax parsers are not
off-the-shelf and need to be developed by the robot manufacturer, which makes the development costs very high. Compared with developing a parser and creating an object-oriented representation, a text search module for the specific string, e.g. "moveL", is much easy and low-cost. In many advanced program language, e.g. C, C#, there are many standard functions / APIs for finding string, which can be used in this case. Furthermore, this solution requires less memory and lower computation capacity than the first solution. So, in the case when a robot lan- guage parser is not available, a simple text search module is a good enough quick alternative.
Further developments of the device are characterized by the features of the additional claims.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention will now be explained more closely by the description of different embodiments of the invention and with reference to the appended figures.
Fig. 1 shows an industrial robot system including an example of a teach pendant according to the invention.
Fig. 2 shows a program editor according to a first embodiment of the invention.
Fig. 3 shows a program editor according to a second embodiment of the invention.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS OF THE INVENTION
Figure 1 shows an industrial robot system comprises a manipu- lator 1 , a robot controller 2 for controlling the manipulator 1 , and a portable operator control device 3, denoted a Teach Pendant
Unit (TPU) for teaching and manually operating the manipulator. The robot controller 2 comprises storage for storing robot control programs. The TPU 3 communicates with the robot controller 2 via a data link, for example an Ethernet link 4. The TPU 3 comprises a display screen 5, input interfaces, for example a matrix of function keys 6 or a touch functionality of the screen 5, and means for controlling the movements of the manipulator when the robot is manually operated, such as four directions navigator keys 7 or a joystick. The TPU further comprises safety equipment, such as an emergency stop button and an enabling device, which are not shown in the figure.
The TPU comprises appropriate hardware and software for carrying out normal teach pendant functionality, such as communi- cation equipment for communicating with the robot controller, storage means for storing control programs read from the robot controller, and a data processor unit, such as a central processing unit (CPU). The software of the TPU includes a program editor for navigating and editing robot programs, which are read from the robot controller 2. The program editor is configured to enable a user to navigate up and down among all of the instructions of the robot programs. The robot program to be edited is displayed on the display screen 5. A user controlled cursor 8 marks one of the instructions in the program, for example, by highlighting the instruction. The user can move the cursor up and down in the program, for example, by means of the function keys 6a-b. If an instruction is to be edited, the user positions the cursor on the instruction to be edited.
A robot control program includes a sequence of program instructions for controlling the robot to carry out the work along the path. Some of the instructions are motion instructions having modifiable position arguments specifying poses on the operating path. This is an example of a part of a robot control program in- eluding a plurality of instructions 10-16:
10 MoveL p1
1 1 Anotherlnstr
12 MoveL p2
13 Anotherlnstr
14 Anotherlnstr
15 MoveL p3
16 Anotherlnstr
Instructions 10, 12 and 15 have modifiable position arguments p1 -p3 specifying three poses on the operating path.
The program editor is provided with a selection means 6c, for example one of the function keys, that enables a user to select between a normal editing mode, in which the robot program is navigated up and down among all instruction of the robot program, and teach editing mode, in which the robot program is navigated up and down only among the instructions having modifiable position arguments. In the example shown above it is possible for the user to navigate among all the instructions 10- 16 if normal editing mode is selected and to only navigate among the instructions 10, 12 and 13 if teach editing mode is selected. The selection means can be a toggle key or a menu button to switch the program editor between normal editing mode and teach editing mode. In this embodiment the same buttons 6a-b are used to navigate in normal as well as teach editing mode. In normal editing mode the program is navigated line-byline, and in teach editing mode instructions with modifiable position arguments are navigated one by one.
Alternatively, the TPU can be provided with two separate buttons for navigating in the teach mode, for example, one button denoted "next modifiable position" and another button denoted "previous modifiable position". With button is meant software buttons, such as menu buttons or icons, as well as hardware buttons. In this embodiment the editing mode is selected by using different sets of buttons, one set of buttons for navigating in
the teach editing mode and another set of buttons for navigating in normal editing mode. Accordingly, the selection means in this embodiment is two different sets of buttons.
In the following the program editor is described in more detail. Figure 2 shows a program editor 10 according to a first embodiment of the invention. The program editor 10 comprises a text editor 6, a search module 12, a language syntax parser 13, and an intermediate storage 14 for the parsing result. The text editor 6 generates the interfaces to the user for displaying, modifying and navigating the program, which interfaces are displayed on the screen 5. The text editor generates the curser 8.
The language syntax parser 13 reads the control program from the robot controller 2, parses the control program, and creates a document object model of the program. For example, the parser parses the program into a tree structure to reflect the whole structure of the robot program according to the syntax. There are several existing techniques of program language parsing. A robot language parser is language syntax dependent, and since syntax extension is needed for robot programming there is no standard parser available. Normally, the robot parser is developed by the robot manufacturer. However, some open source parsers, e.g. Crystal syntax parser, C/C# parser, XML parser, could be used as reference. Thus, preferably the language syntax parser of the robot is used. The document object model is a structural representation of the program, for example, a tree structure as shown in the figure. The tree structure includes a plurality of nodes 16a-c, each node representing modules, sub- routines, and instructions in the control program. Each program line and accordingly each instruction in the control program is represented by a node. The document object model of the program is stored in the intermediate storage 14. All the instructions of the control program are parsed since this function is re- quired for normal program generation and editing. The document object model is resynchronized when any part of the program in
the robot controller is changed, including inserting, deleting and replacing.
The text editor 1 1 displays the control program while maintain- ing the mapping between the cursor and a selected node of the document object model. The search module 12 includes a simple searching algorithm, which is configured to search for the next or previous instruction with modifiable position argument starting from the current position 16c of the cursor in the docu- ment object model. In a document object model, all the elements including arguments are represented as objects, that means the number and the type of arguments belonging to an instruction node are visible for the visitor. That makes it easy to search for a certain type of argument. Accordingly, it is easy for the search module to search for modifiable position arguments. When the user is going to move the cursor up/down, the search algorithm 12 is called to find the previous/next instruction according to the current navigation mode. For normal editing mode, the next instruction in the specified direction is returned. For teach editing mode, the instruction in the specified direction having modifiable position arguments is returned by searching the document object model.
A method for facilitating editing of a robot program according to an embodiment of the invention comprises:
- parsing the robot program and based thereon creating a structural representation of the robot program, for example, a tree structure,
- displaying to a user at least some of the instructions of the ro- bot program,
- providing a cursor pointing out one of the displayed instructions,
- enabling the user to select between normal editing mode and teach editing mode, - receiving a selected editing mode,
- receiving a user command about moving the cursor up or down in the robot program,
- if teach editing mode is selected: searching the structural representation of the robot program to find the previous or next, in dependence on specified direction, program instruction having a modifiable position argument starting from the current position of the cursor, and moving the cursor to the found instruction, and
- if normal editing mode is selected: - searching the structural representation of the robot program to find the next program instruction in the specified direction, i.e. up or down in the program, starting from the current position of the cursor, and
- moving the cursor to the next program instruction.
Figure 3 shows a program editor 20 according to another embodiment of the invention. The program editor 20 includes a text editor 1 1 of the same type as described with reference to figure 2, a first navigator 22, and a second navigator 24. The first navi- gator 22 is configured to navigate up and down among all of the instructions of the robot program, and the second navigator 24 is configured to only navigate among the instructions of the robot program which have modifiable position arguments. The first navigator is configured to search for the next or previous in- struction of the robot program, and does not necessarily have a search module for moving the cursor to the next or previous line. The second navigator comprises a search module configured to search for the next or previous instruction of the robot program which have a modifiable position argument starting from the program cursor. The first navigator moves the cursor line-by-line in the program and the second navigator searches a specific pattern in the text. In normal editing mode, the first navigator 22 is used and the cursor is moved line by line according to the user command. In teach editing mode, the second navigator 24 is used, and when user command of moving cursor up/down is received, a specific search pattern is used to find the next
matched instruction in the specified direction having modifiable position arguments, and then the cursor is moved to the found instruction. This embodiment does not include any parser or object model, instead text finding functions or APIs are used for searching the modifiable position arguments.
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, since the invention mainly relates to software, it can also be implemented on another platform than the TPU, e.g. robot simulation software. It is possible to implement the editor on a personal computer (PC) or on another external unit communicating with the robot controller, or even on the robot controller itself.
Claims
1 . A device for editing a robot program designed to control an industrial robot to carry out work along an operating path, the robot program including a sequence of program instructions, and some of the instructions are instructions having modifiable position arguments specifying poses on the operating path, characterized in that the device comprises a program editor (10;20) configured to enable a user to select between navigating up and down among all of the instructions of the robot program, and navigating only among the instructions of the robot program which have modifiable position arguments.
2. The device according to claim 1 , wherein the teach pendant unit further comprises a switching means (6c) that enables a user to select between a normal editing mode, in which the robot program is navigated up and down among all of the instructions of the robot program, and a teach editing mode, in which the robot program is only navigated among the instructions which have modifiable position arguments.
3. The device according to claim 2, wherein the teach pendant unit comprises a display screen (5) configured to display the robot program and a program cursor (8) pointing at an instruction in the robot program, and the program editor is configured to upon receiving a user command about moving the cursor up or down in the robot program automatically move the cursor to the next instruction of the robot program in the specified direction if normal editing mode is selected, and automatically move the cursor to the next instruction in the specified direction having modifiable position arguments if teach editing mode is selected.
4. The device according to any of the previous claims, wherein the program editor comprises a search module (12) configured to search for the next or previous instruction of the robot pro- gram which have a modifiable position argument starting from the program cursor.
5. The device according to claim 4, wherein the program editor (10) comprises a syntax parser (13) configured to parse the robot program and create a structural representation of the robot program, and the search module is configured to search the structural representation of the robot program to find the previous or next program instruction.
6. The device according to claim 2 and 5, wherein the search module (12) is configured to search the structural representation of the robot program to find the previous or next program instruction according to the currently selected navigation mode.
7. The device according to any of the previous claims, wherein the program editor (20) includes a first navigator (22) configured to enable the user to navigate up and down among all of the instructions of the robot program and a second navigator (24) con- figured to enable a user to only navigate among the instructions of the robot program which have modifiable position arguments.
8. The device according to claim 7, wherein the first navigator (22) is configured to search for the next or previous instruction of the robot program, and the second navigator (24) comprises a search module configured to search for the next or previous instruction of the robot program which have a modifiable position argument starting from the program cursor.
9. The device according to any of the previous claims, wherein the device is a teach pendant unit.
10. A method for facilitating editing of a robot program designed to control an industrial robot to carry out work along an operat- ing path, the robot program including a sequence of program instructions, some of the program instructions are instructions having modifiable position arguments specifying poses on the operating path, wherein the method comprises enabling a user to select between navigating up and down among all of the instructions of the robot program and only navigating among the instructions of the robot program which have modifiable position arguments.
1 1 . The method according to claim 10, wherein the method further comprises: enabling a user to select between a normal editing mode, in which the robot program is navigated up and down among all of the instructions of the robot program, and a teach editing mode, in which the robot program is only navigated among the instructions which have modifiable position arguments, receiving a user selection regarding the editing mode, and navigating the robot program according to the selected editing mode.
12. The method according to claim 10 or 1 1 , wherein the method further comprises: displaying the instructions of the robot program, providing a program cursor pointing at an instruction in the robot program, receiving a user command about moving the cursor up or down in the robot program, if normal editing mode is selected, moving the cursor to the next program instruction in the specified direction, and if teach editing mode is selected, moving the cursor to the next instruction having modifiable position arguments in the specified direction.
13. The method according to claim 12, wherein if teach editing mode is selected the method further comprises: searching for the next or previous, in dependence on the specified direction, instruction of the robot program which have a modifiable position argument starting from the program cursor.
14. The method according to claim 1 1 and 13, wherein the method further comprises parsing the robot program and based thereon create a structural representation of the robot program, and searching the structural representation of the robot program to find the previous or next program instruction according to the current navigation mode.
15. The method according to any of the claims 10 - 14, wherein the method further comprises: displaying the robot program on a teach pendant unit of the robot, and perform the navigation on the teach pendant unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2008/061719 WO2010025768A1 (en) | 2008-09-04 | 2008-09-04 | A device and a method for facilitating editing of a robot program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2008/061719 WO2010025768A1 (en) | 2008-09-04 | 2008-09-04 | A device and a method for facilitating editing of a robot program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2010025768A1 true WO2010025768A1 (en) | 2010-03-11 |
Family
ID=40491072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2008/061719 WO2010025768A1 (en) | 2008-09-04 | 2008-09-04 | A device and a method for facilitating editing of a robot program |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2010025768A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015153467A1 (en) * | 2014-04-01 | 2015-10-08 | Bot & Dolly, Llc | Runtime controller for robotic manufacturing system |
EP3003650A4 (en) * | 2013-05-28 | 2017-01-25 | ABB Technology Ltd. | Method and apparatus for managing laser process parameters in a robotic laser cell |
CN109848960A (en) * | 2018-12-17 | 2019-06-07 | 珠海格力电器股份有限公司 | Hot plug circuit for industrial robot demonstrator and control method thereof |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58119006A (en) * | 1982-01-08 | 1983-07-15 | Yamazaki Mazak Corp | Program control method of numerical control machine tool |
EP1262847A1 (en) * | 2000-02-10 | 2002-12-04 | Kabushiki Kaisha Yaskawa Denki | Robot controller |
-
2008
- 2008-09-04 WO PCT/EP2008/061719 patent/WO2010025768A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58119006A (en) * | 1982-01-08 | 1983-07-15 | Yamazaki Mazak Corp | Program control method of numerical control machine tool |
EP1262847A1 (en) * | 2000-02-10 | 2002-12-04 | Kabushiki Kaisha Yaskawa Denki | Robot controller |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3003650A4 (en) * | 2013-05-28 | 2017-01-25 | ABB Technology Ltd. | Method and apparatus for managing laser process parameters in a robotic laser cell |
WO2015153467A1 (en) * | 2014-04-01 | 2015-10-08 | Bot & Dolly, Llc | Runtime controller for robotic manufacturing system |
US9841749B2 (en) | 2014-04-01 | 2017-12-12 | Bot & Dolly, Llc | Runtime controller for robotic manufacturing system |
US10509392B2 (en) | 2014-04-01 | 2019-12-17 | X Development Llc | Runtime controller for robotic manufacturing system |
US11409260B2 (en) | 2014-04-01 | 2022-08-09 | Intrinsic Innovation Llc | Runtime controller for robotic manufacturing system |
CN109848960A (en) * | 2018-12-17 | 2019-06-07 | 珠海格力电器股份有限公司 | Hot plug circuit for industrial robot demonstrator and control method thereof |
CN109848960B (en) * | 2018-12-17 | 2020-09-22 | 珠海格力电器股份有限公司 | Hot plug circuit for industrial robot demonstrator and control method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Akan et al. | Intuitive industrial robot programming through incremental multimodal language and augmented reality | |
Finucane et al. | LTLMoP: Experimenting with language, temporal logic and robot control | |
US7643907B2 (en) | Method and apparatus for developing a metadata-infused software program for controlling a robot | |
WO2011080945A1 (en) | Program creation support device | |
US6981226B2 (en) | Flowchart programming for industrial controllers, in particular motion controllers | |
US20040267515A1 (en) | Programming automation by demonstration | |
CN100424600C (en) | Development aid device | |
Stenmark et al. | Simplified programming of re-usable skills on a safe industrial robot: Prototype and evaluation | |
EP1724676A1 (en) | Method and apparatus for developing a software program | |
CN103238124A (en) | Numerical control device | |
Nilsson | Industrial robot programming | |
JP5994862B2 (en) | Development support device and development support program | |
Bärmann et al. | Incremental learning of humanoid robot behavior from natural interaction and large language models | |
CN111993419B (en) | PDPS-based robot offline manufacturing method and device and computer terminal equipment | |
WO2010025768A1 (en) | A device and a method for facilitating editing of a robot program | |
US7631290B1 (en) | Enhanced navigation for visual design editing | |
JP4242361B2 (en) | Development support equipment | |
US10618169B2 (en) | Robot | |
JP2007193425A (en) | Screen data preparation device, screen data edition method, and screen data edition program | |
JP4964036B2 (en) | Editor device and editor program | |
JPH08137532A (en) | Generating method for operation program of robot and teaching method for robot | |
Kazi et al. | Next generation teach pendants for industrial robots | |
JP7217821B1 (en) | Robot teaching system | |
JPH07302107A (en) | Numerical controller | |
JP7526909B2 (en) | PROGRAM CREATION METHOD, PROGRAM CREATION ASSISTANCE DEVICE, AND PROGRAMMABLE CONTROLLER |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 08803689 Country of ref document: EP Kind code of ref document: A1 |
|
DPE1 | Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101) | ||
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 08803689 Country of ref document: EP Kind code of ref document: A1 |