[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

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 PDF

Info

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
Application number
PCT/EP2008/061719
Other languages
French (fr)
Inventor
Peng KONG
Du Li
Original Assignee
Abb Technology 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 Technology Ab filed Critical Abb Technology Ab
Priority to PCT/EP2008/061719 priority Critical patent/WO2010025768A1/en
Publication of WO2010025768A1 publication Critical patent/WO2010025768A1/en

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical 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/409Numerical 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
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36043Correction or modification of program
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36045Skip of program blocks, jump over certain blocks
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36075Set 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.
PCT/EP2008/061719 2008-09-04 2008-09-04 A device and a method for facilitating editing of a robot program WO2010025768A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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