Method, device and system for programming a robot
TECHNICAL AREA
This invention relates to a device and method for determining coordinates of a point of an object in a reference system of coordinates and the orientation of the object in the space in a measuring position assumed by the object. The object being adapted to be moved from a start position having known coordinates and orientation to several measuring positions in a sequence, and this process repeated many times. The invention relates in particular, but not exclusively, to such devices used for programming of robots, such as welding robots or robots for application of paint, which for example are used to spray-paint vehicle bodies .
TECHNICAL BACKGROUND
The device is usually in the form of a hand tool that is moved by hand by a person between different positions along an object in the form of a work piece, such as a vehicle body, for storing the coordinates and the direction of a tool of the robot in these positions. The control unit for the robot processes successively the different positions stored so as to obtain a path along which the robot is directed to move the tool, such as a paint spray- gun, of the robot as desired.
Known coordinates in one position, such as a start position, and a measurement position have been obtained by using one or more cameras to record different optical points of an object, and the real coordinates and orientation of the object in said start
position are determined through information obtained from the camera or the cameras. However, it is sometimes necessary to move the object along the path of movement of the tool of the robot, to parts of a workpiece which are hidden from a camera. This occurs often for example in the case with positions located inside a vehicle body or other relatively enclosed space.
It is known to use the robot itself for storing such positions and by measuring the rotation of the different robot arms about their axes. The robot tool is moved from point to point along a desired path and the positions stored, and then converted into a path with smooth movement. However, this is a very cumbersome, time consuming and expensive way to calculate coordinates and orientation in a measuring position.
It is known for example from DE 19626459-A1 and BE-1010211-A6 that an object may be moved in the way mentioned above for storing the movement of path of a robot between different positions. It is also known from US 6,584,378 entitled Device and a method for determining coordinates and orientation, to measure acceleration and retardation of the object during the movement, so that coordinates and orientation of the object in the measuring position may be calculated from information about this measuring. This device provides greatly increased accuracy in the measurement of coordinates. However the registration of a path for programming is still a lengthy process . The use of cameras and optical registration on the device also places high demands on the skill and training of an operator to record a path for programming a trajectory accurately and effectively. In particular, it is difficult for operators or programmers to carry out registration in a short time and maintain accuracy in
situations where the device must be moved out of line of sight to the one or more cameras used.
SUMMARY OF THE INVENTION The present invention solves one or more of the above problems . An aim of the invention is achieved according to the invention by a robot programming device according independent claims 1 and by a calibration device for the robot programming device according to independent claim 12 , by a system according to independent claim 24 and by a method according to independent claim 31. Preferred embodiments are described in the dependent claims .
According to a first aspect of the invention these and more aims are met by the invention in the form of a robot programming device comprising a probe and a sensor for acceleration, which further comprises an inertial navigation device as means for estimating the position and orientation of said device with 6 DOF with respect to a predefined coordinate system.
In another facet of the first aspect of the invention the aims are met by a calibration device for the robot programming device for which a fixed reference point is pre-determined. The programming device may be re-calibrated simply and quickly at one or more intervals during a programming operation. Miniature inertial navigation devices of the type used in the robot programming device are known to have a drift in accuracy over time, and the calibration device is provided so that re- calibration can be carried out simply and relatively frequently.
In a second aspect of the invention the aims are met by a system for programming a robot comprising at least the robot programming device, and the calibration device according to the invention.
In an another aspect of the invention the aims are met by a method for programming an industrial robot or manipulator, using at least the programming device and the calibration device described above.
The principle advantage provided by the invention is that it provides an accurate system and easily used device and methods to produce a trajectory path from which an industrial robot or other manipulator may be programmed. In particular it is simple to operate, primarily a task for an operator to hold a portable pointing device in his/her hand and "point-and-shoot" at each suitable point in turn of a series of points along a painting stroke, seam to be welded, etc. In an advantageous embodiment, the operator may activate continuous sampling so as to record a continuous movement from one point to another. This requirement to simply point-and-shoot a hand-held pointing device means that no knowledge of programming or camera technique is required and that the operator may concentrate on incorporating any process knowledge he or she has regarding painting or welding techniques in the programmed trajectory. The capture of the orientation of the handheld programming device at each waypoint is carried out effectively and easily, thus capturing process information that is known by the operator for such operations as welding, painting, de-burring for example.
According to another aspect of the invention, the object is achieved by a computer program directly loadable into the internal memory of a computer, comprising software code portions for performing the steps of the method according to the invention, when said program is run on a computer. The computer program provided either on a computer readable medium, as a
computer program product or through a network, such as the Internet .
BRIEF DESCRIPTION OF THE DRAWINGS Embodiments of the invention will now be described, by way of example only, with particular reference to the accompanying drawings in which:
FIGURE 1 is a schematic diagram of a robot programming device, an object to be worked on and a calibration device arranged according to an embodiment of the invention;
Figure 2 is a block diagram for a pointing device according to one aspect of the invention;
Figure 3 is a flowchart for carrying out a method to program a robot according to an embodiment of the invention;
Figure 4 is a block diagram showing other elements of method to program a robot;
Figure 5 is a second schematic diagram of the robot programming device showing an arrangement with a plurality of calibration devices;
Figure 6 is a flowchart for carrying out a method to program a robot;
Figure 7 is a block diagram of components of a calibration device according to another aspect of the invention; Figure 8 is a block diagram for a wireless calibration device according to another embodiment of the invention.
DETAILED DESCRIPTION OF THE EMBODIMENTS
Figure 1 shows an arrangement to illustrate the principle of an embodiment of the invention. Figure 1 shows a somewhat complex- shaped object 1 to be worked on, in this exemplary example spray- painted, and a robot programming device 2. The object 1 is placed
on a working surface, which is shown here as a table 5. A calibration device 3 is shown arranged in a fixed position on table 5. The calibration device 3 is shown connected to a computer 6, by a communication channel 4. Computer 6 may comprise memory storage hardware and functions as well as computer or processor computing hardware and functions .
The robot programming device 2 shown symbolically in Figure 1 is a hand-held pointing device. This portable device comprises an Inertial Navigation Device (IND) , for estimating position and orientation of the robot programming device.
The accelerometers and gyroscopes are .preferably very small but accurate devices, built for example using microelectromechanical systems (MEMS) technology applied, for example, in chip or wafer- type fabrication processes for silicon components. Additional accuracy may be obtained by adding a magnetometer or three-axis magnetometer. As an alternative Piezo based gyros may alternatively be used when combined with due care and adaption to take account of the relatively lesser accuracy of those devices, as compared to MEMS devices .
The IND typically comprises three accelerometers adapted to detect acceleration and retardation in three planes, preferably being orthogonal with respect to each other, as well as three gyros to give rotation about three orthogonal axes . This linear and angular data is fed into the IND processor and memory unit for estimation of position and orientation of the IND in 6 degrees of freedom.
The robot programming device is used in the following way. The robot programming device 2, or pointer 2 for short, is moved from
a fixed, known position to a first new measuring position relative to the surface of the object 1 and pointed at the new measuring position on the object 1 surface. The Inertial Navigation Device produces continuous estimates of the position and orientation of the pointing device in 6 degrees of freedom. To record a point, or trigger (sample) at the point, a button is pushed or a trigger is pressed, or a gesture is made by the operator, etc.. A sample reading is recorded from the inertial navigation device at that measuring point upon the pressing of a button or trigger etc by the operator. A method for input by gestures such as that described in Swedish patent application SE 0303178-8, A method and a system for programming an industrial robot, (ABB) may be employed to capture and interpret gestures as commands .
In another embodiment, instead or as well as intermittent spatial sampling the system may be operated to capture a trajectory recording by means of a section of continuous recording. This is advantageous for recording process information. In order to do a continuous sweep we take all those continuously recorded samples and record them for that period of time, between those points on the object. An operator for example presses a button at the beginning and then at the end of a sweep, or press and hold a button to start recording, then release to stop recording and so on.
Figure 2 shows an embodiment of the pointing device 2 in the form of a simplified block diagram. It shows a pointer 2a, accelerometers 2b, gyroscopes 2c, a processor 2d with integrated memory storage or separate memory storage 2e function, a battery
2f or other power supply member, and I/O hardware. Blocks 2b-e,
which may be comprised in one single device, form the Inertial Navigation Device .
Figure 3 shows steps of a method or part method of the process of determining way points on a trajectory for programming a robot. The method may begin at 32 by reading a start position. The processor samples the accelerometers 35 and gyroscopes 37 at suitable sampling frequency, and the sensor measurements are stored in the memory. Input 38, such as pressing a button or operating a switch, or making a gesture with a hand, is provided to signal that a waypoint should be sampled and stored. The stored sensor data is retrieved 39 and the position of a new waypoint calculated or retrieved from the stored sensor data. Alternatively, if a part of a path, or a continuous movement is to be sampled, then sensor data for the elapsed period of time or trajectory traveled is used to calculate the end point of that movement; and of the path traveled. Alternatively, the method may begin by jumping to straight to step 33 if there is a recent position already in a memory of the pointing device or a memory associated in some way with it. Thus in use, the last sampled position may be used as the "start" position of step 32. Such a recently sampled position has, typically, been sampled within a current time limit for calibrating the pointing device.
Thus an industrial robot or manipulator may be programmed to move along a trajectory based on a path generated by means of moving the pointer 2 between different positions along a desired path of movement for the robot end effecter, including a measured orientation of said end effecter part of the robot in these posi- tions .
A path of movement for a robot end effecter or tool centre point (TCP) may by this device, system and these methods be stored in a rapid and efficient way and with a high accuracy. The speed, efficiency and accuracy is also achieved for positions not in direct line-of-sight of the work object 1. It is advantageous that the calculating member may be adapted to calculate coordinates for a tool centre point (TCP) of a robot in said measuring position, in which this centre point for example in the case of a robot for spray application of paint corresponds to the desired position and orientation of the tip of the nozzle. In the case of a robot for spot welding or seam welding the measuring position corresponds to the desired position and orientation for the tip of the welding electrode of the robot relative the object 1.
The calibration device 3 shown symbolically in Figure 1 may be embodied as a docking station. While the robot programming device or pointer 2 is being used to record position coordinates of a plurality of points, it is also calibrated from time to time by placing it in one or one or more docking stations (to receive calibration data) . The calibration data may comprise the coordinates in 6 DOF at the fixed point. At the same time, position coordinates data stored in the pointer 2 may be uploaded to the docking station for storage and subsequent processing.
A pointer 2 may preferably have autonomous operation, and may be for example battery operated (see figure 2, 2f) and may provide local storage of position and orientation information, at least on a temporary basis. Sampling of measured position- and orientation points provided by the inertial navigation device may be carried out by manual triggering, gestures, or other means. Due to the finite stability of the built in inertial navigation
device periodical calibration is required, provided by the calibration device 3 described above. Calibration may be provided by the use of one or one of a plurality of Docking Stations in known relation to the system origin, or known start position or known fixed reference point and providing electrical and/or mechanical calibration input to the pointer.
Figure 4 shows an embodiment of a method in the form of a block diagram. It shows the pointer (2) being moved by hand 43 by the operator, gesture input 44 to the system, sampling taking place in the inertial navigation device 45 as a result of the gesture input, and sensor data 46 being sent for calculation 47 to a processor in the pointer (such as 2d shown in Figure 2) . Position is calculated 47 and an estimated position 48 produced and evaluated 49. If the pointer is till within the time for accurate measurement, data may be uploaded 55'. The accuracy of the position and orientation estimates from the inertial navigation device decreases with time due to the drifts of one or more component. Hence, for a given accuracy the operation time is limited by the drift. When the operation time for accurate measurements has been exceeded, a signal may be generated so that the pointer is signaled for docking at 51, for calibration. At the time of docking for calibration 51, a docking position and orientation update 53 may be transferred 52 to the pointer device 2.
Also, at the time of docking for calibration 51, measurement data stored by the pointer 2 may be uploaded 55'' via the docking station 3, 3' to the computer system 6 (not shown) .
Figure 5 shows another arrangement to illustrate the principle of an embodiment of the invention. It shows an object to be painted
1', a pointing device 2' and a work table 5' or programming environment table. It also shows a plurality of calibration members in the form of docking stations 3 ' . A first communication channel 4' between the docking stations and a computer system 6' is shown, and a second communication channel 9 between all of the docking stations 3' is shown.
The pointer 2, 2' may typically be in the shape of a manual paint gun offering a trigger button for spatial point sampling and a connector for data exchange when parked in the docking station, see for example Figure 5. The pointer 2 may also contain a timer member which will trigger an alarm when it is time for re- calibration. No new points can be sampled before re-calibration is done after an alarm has occurred. The timer may be reset after calibration is completed by a Docking Station 3 or 3 ' . Since the 6 DOF accuracy of the pointer will decay as a function of time due to the sensor (gyro, accelerometer) drift, there is a need for a periodic calibration. The calibration device 3, 3' is located in a fixed position on the table 5, 5'. One of the docking stations will function as the system origin. The calibration may be performed by parking the Pointing Device 2 in the Docking Station 3 for a short time. During this moment the Docking Station will provide electrical and/or mechanical calibration input to the Pointing Device.
When the spatial sampling is complete, the 6 DOF data points can be transmitted from the Pointing Device via the calibration device to one or more computers . A computer running a computer program may handle the communication with the pointer 2. The communication comprises transfer and storing of the raw data and may also comprise conversion of raw data to robot trajectory data.
Figure 6 is a flowchart for carrying out a method to program a robot. It begins with a step to read a new position 61 (which may also be an instruction to determine a path or trajectory travelled by the pointer, ie a plurality of points) . The operation time may be calculated beforehand based on the accuracy of one or more components and the improvements obtained by error modelling and Kalman filtering. If the operation time, checked at 62 is found to have exceeded the set operation time limit at step 63, yes 66, then a signal to calibrate 67 the pointer 2 is generated. The pointer is docked 68 and receives a position update 69 by docking in the docking station. Optionally, sensor and/or measurement data may be uploaded 70 via the docking station at the same time and transmitted to the computer 6, 6'. If the accuracy or time to drift 62 is acceptable as in step No, 64, then position data is stored 65 in the programming device memory.
Preferably three accelerometers and three gyroscopes are used in the above embodiment, but other combinations of a number of accelerometers and gyros are also possible within the principles disclosed by this invention. Computational power by means of a microprocessor, a computer or likewise is required in order to perform signal processing and utilize estimation algorithms. This computational power may be distributed between the calibration device and a computer or control system with computer.
Figure 7 shows an embodiment of a calibration device in a simplified block diagram, and in the form of a docking station 73. It shows a docking member 3a, I/O hardware 3b, a processor 3c with integrated or separate memory storage function, and a power supply member 3d.
In the most preferred use of the invention, a docking station operates simply as a switch when calibrating the pointer. Instead of passing coordinates for a point in space or a position with 6 DOF, the docking station is simply gives a pulse that signals that the pointer is "home" . When more than one docking station is used, as in Figure 4 for example, then a different stored position for each docking station is used. In another embodiment, calibration device 3 may be embodied such that it is not a docking station, and provides calibration and/or uploading of measured path data by data communication carried out by wireless means .
Figure 8 shows an embodiment of a wireless calibration device 83 in a block diagram. It shows a processor with integrated or separate memory 3'c, an interface to the processor, I/O hardware 3'b, a power supply 3'd and wireless hardware 3'e for providing wireless signals. In this embodiment, the pointer is not docked in the docking station so as to make electrical contact with the docking station. In this embodiment, the pointer 2 may also comprise at least a wireless transmitter (not shown) incorporated in the I/O hardware 2g of Figure 2, the pointer is placed in a predetermined position relative the wireless docking station and a "home" signal is sent wirelessly to the pointer by the calibration device or docking station to calibrate it by updating the pointer position. Raw sensor data or position information may be uploaded wirelessly from the pointer to the docking station for communication to the computer 6 or computer system 6'. In another optional version, the wireless station may transmit position coordinate information instead of a home signal. The pointing device 2 used with the wireless docking station may also comprise wireless communication means to receive the position update signal from the wireless docking station.
The methods of the invention may be carried out by means of one or more computer programs comprising computer program code or software portions running on a computer such as 6, 6' or a processor such as 2d, 5c, 5'c. The microprocessor (or processors) comprises a central processing unit CPU performing the steps of the method according to one or more facets of the invention, such as the methods shown in Figures 3, 4, 6. The methods are performed with the aid of one or more said computer programs, which are stored at least in part in memory accessible by the one or more processors. For example a program or part-program that carries out some or all of the steps 61-71 shown and described in relation in Figure 6 may be run by the processor 2d of the pointing device 2. At least one of the or each processors may be in a central object oriented control system in a local or distributed computerised control system. It is to be understood that said computer programs may also be run on one or more general purpose industrial microprocessors or computers instead of one or more specially adapted computers or processors.
The computer program comprises computer program code elements or software code portions that make the computer perform the method using equations, algorithms, data, stored values and calculations previously described. A part of the program may be stored in a processor as above, but also in a ROM, RAM, PROM, EPROM, or EEPROM chip or similar memory means. The program in part or in whole may also be stored on, or in, other suitable computer readable medium such as a magnetic disk, CD-ROM or DVD disk, hard disk, magneto-optical memory storage means, in volatile memory, in flash memory, as firmware, stored on a data server or on one or more arrays of data servers. Other known and suitable media, including removable memory media such as Sony memory stick (TM)
and other removable flash memories, hard drives etc. may also be used.
Wireless communications may be carried out using any suitable protocol. Short range radio communication is the preferred technology, using a protocol compatible with, standards issued by the Bluetooth Special Interest Group (SIG) , any variation of IEEE-802.11, WiFi, Ultra Wide Band (UWB) , ZigBee or IEEE- 802.15.4, IEEE-802.13 or equivalent or similar. More generally a radio technology working in the ISM band with significant interference suppression means such as spread spectrum technology is preferred. For example a broad spectrum wireless protocol in which each or any data packet may be re-sent at other frequencies of a broad spectrum 7 times per millisecond, for example, may be used, such as in a protocol from ABB called Wireless interface for sensors and actuators (Wisa) . Wireless communication may also be carried out using Infra Red (IR) means and protocols such as IrDA, IrCOMM or similar. Wireless communication may also be carried out using sound or ultrasound transducers, through the air or via work object construction, pure magnetic or electric fields (capacitive or inductive communication) or other types of light, such as for example LED, laser, as communication media with standard or proprietary protocols.
The computer programs described above may also be arranged in part as a distributed application capable of running on several different computers or computer systems at more or less the same time. Programs as well as data such as energy related information may each be made available for retrieval, delivery or, in the case of programs, execution over the Internet.
Data may be accessed by means of any of: OPC, OPC servers, an Object Request Broker such as COM, DCOM or CORBA, a web service.
It is also noted that while the above describes exemplifying embodiments of the invention, there are several variations and modifications which may be made to the disclosed solution without departing from the scope of the present invention as defined in the appended claims .