EP2122424A2 - Industrieroboter und verfahren zum bestimmen der lage eines industrieroboters relativ zu einem objekt - Google Patents

Industrieroboter und verfahren zum bestimmen der lage eines industrieroboters relativ zu einem objekt

Info

Publication number
EP2122424A2
EP2122424A2 EP08708188A EP08708188A EP2122424A2 EP 2122424 A2 EP2122424 A2 EP 2122424A2 EP 08708188 A EP08708188 A EP 08708188A EP 08708188 A EP08708188 A EP 08708188A EP 2122424 A2 EP2122424 A2 EP 2122424A2
Authority
EP
European Patent Office
Prior art keywords
model
industrial robot
images
relative
camera
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
EP08708188A
Other languages
English (en)
French (fr)
Inventor
Johannes Kurth
Andreas Sedlmayr
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KUKA Deutschland GmbH
Original Assignee
KUKA Roboter GmbH
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 KUKA Roboter GmbH filed Critical KUKA Roboter GmbH
Publication of EP2122424A2 publication Critical patent/EP2122424A2/de
Ceased legal-status Critical Current

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/408Numerical 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 data handling or data format, e.g. reading, buffering or conversion of data
    • G05B19/4083Adapting programme, configuration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35506Camera images overlayed with graphics, model
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37572Camera, tv, vision
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39393Camera detects projected image, compare with reference image, position end effector

Definitions

  • the invention relates to industrial robots and methods for determining the location of an industrial robot relative to an object.
  • DE 102 49 786 A1 discloses a method for referencing a robot to a patient, from which an image is created at least from two positions with at least one camera attached to the robot.
  • a reference point of the patient is selected in one of the images, a relation of the selected reference point in three-dimensional space is established via position data of the reference point of both images, and the position of the robot is correlated to the patient.
  • WO 2004/071717 A1 discloses a plurality of measuring points on the surface of the object to register and store the orientation and position of a CAD model of the object relative to a coordinate system of the object Determine the industrial robot by correlating the measurement points in relation to the model and to determine a resulting deviation for at least some of the measurement points and the corresponding points in the model.
  • the industrial robot moves the measuring points with a measuring tip, which is e.g. a contactless sensor comprises.
  • Determining the position of an industrial robot relative to an object based on the registration of the measurement points on the surface of the object can be relatively difficult if, for example, required measurement points are relatively difficult or impossible. can also be achieved with the industrial robot.
  • the object of the present invention is therefore to specify a simpler method for determining the position of an industrial robot relative to an object and a corresponding industrial robot.
  • the object of the invention is achieved by a method for determining the position of an industrial robot relative to an object, comprising the following method steps:
  • graphical model is at least a partial model of the object and described in coordinates relative to coordinates of the industrial robot, - manually assigning model points of the graphical model to corresponding pixels in the two images and
  • the industrial robot When processing the object, eg a workpiece, with the industrial robot is the knowledge of the location of the object as regards the industrial robot, eg with regard to its base.
  • the position of the industrial robot relative to the object is in particular its position and orientation to the industrial robot.
  • images of the object are generated from at least two different positions of the industrial robot, i. At least two different image data records assigned to the object are generated by means of the 2D camera.
  • the images can only partially or completely depict the object.
  • more than two images of the object with the camera can be generated from different positions.
  • the 2D camera is on the industrial robot, e.g. attached to the flange or an axis of the industrial robot and is thus moved by moving the industrial robot, i. by moving its axes, brought into the at least two positions.
  • the placement of the camera on the industrial robot is known, so that due to the axis positions of the axes of the industrial robot at the positions of the coordinates of the camera related to the industrial robot are also known or can be calculated.
  • the corresponding images are displayed with the display device and the graphic model of the object is displayed in the images. It is possible that initially only one of the images displayed and in this image, the model is displayed. It But it is also possible to display all images at the same time and to show the model in all images.
  • the graphical model may or may not necessarily be a complete model of the object.
  • the model can also be only a partial model of the object.
  • the model may also be a so-called graphical wireframe model or a partial graphical wireframe model of the object.
  • a wireframe model in English as
  • Wireframe model is modeled in CAD especially three-dimensional objects, with surfaces of the object in the wireframe model are shown as lines and it is also possible to visualize especially only edges. Is the wireframe model merely a partial wireframe model , then this includes eg only some of these lines and in particular particularly prominent lines, such as prominent edges or corners of the object.
  • model points of the model are assigned to corresponding pixels in the images.
  • the assignment of the model and pixels can be done, for example, by means of a pointing device with which, for example, a corner point of the wire or partial wire mesh model is selected.
  • the selection is made, for example, by means of the "object snap" method known from CAD techniques.
  • the pointing device is for example a computer mouse. If the model point is selected in the model, then it can be manually dragged with the pointing device to the corresponding pixel in one of the images.
  • a manual actuation has the advantage that a human, in particular in the images depicted corner points, for example, on the basis of tapered edges or shades can detect relatively easily.
  • the possibility of enlarging a picture section comprising the relevant picture element or highlighting picture edges can support the accuracy of the assignment, as a result of which a possibly occurring error in the assignment can be reduced.
  • the assignment of the model and pixels can also be done with a so-called six-dimensional mouse (Spacemouse).
  • a space mouse is an input device that can be used to change six degrees of freedom simultaneously. It can be used in the assignment of the model and pixels, for example, to move the position of the displayed model relative to the image of the object until a desired coverage is achieved.
  • At least four different pixels are necessary if the industrial robot has six degrees of freedom and the distances between the camera and the object at the two positions are not known, which will usually be the case. However, it is necessary to assign at least two different pixels in at least two images to the model, it being preferred to use an equal number of pixels per image. It can be made more than the mathematically least necessary number of point assignments. If an operator communicates the required accuracy of the relative position of the object to be determined, then for each additional point assignment be checked and reported until the required accuracy can be met.
  • the position of the industrial robot can be determined relative to the object, since in addition the positions of the camera and the position of the camera relative to the industrial robot are known.
  • the location of the object relative to the industrial robot may then be e.g. by solving a regular or overdetermined system of equations with full rank, by means of which a so-called 6 DOF ("6 degrees of freedom", six degrees of freedom) transformation can be performed. Then the model in the images can also be displayed according to the solved transformation.
  • 6 DOF six degrees of freedom
  • the model can be positioned in the images in such a way that it coincides with the overlapping points.
  • the transformation can be done, for example, as follows:
  • Em selected pixel B 1 can be represented in the two-dimensional coordinate system of the camera in homogeneous coordinate notation as follows:
  • the corresponding model point P 1 in the three-dimensional coordinate system of the model can be represented in homogeneous coordinate notation as follows:
  • the transformation matrix for a transformation from the coordinate system of the object to the coordinate system of the image in the ith position of the camera is:
  • PrOj 1 0 0 1 0
  • d z is a camera-position-dependent distance parameters of the position of the camera at the i-th position.
  • the distance parameter d z corresponds to the distance between the focal point of the camera and the projection plane (image plane) of the perspective projection, as described, for example, in James D. Foley et. al., "Computer Graphics Principles and Practice", Addison-Wesley Publishing Company, Reading, Massachusetts, 1992, p.
  • k is the vector of the fourth row of the projection matrix PrOj 1 and k 4 corresponds to the distance parameter d 2 .
  • the position of the object to the industrial robot can finally by means of optimization, in particular non-linear optimization, such as Gauss Newton or Levenberg Marquardt be performed.
  • nonlinear optimization for example, the following objective function f (x) can be established:
  • this additionally has the following method steps:
  • the two first points are assigned and subsequently the model displayed in the picture is in particular automatically shifted such that the two first points coincide.
  • a displacement is in particular a translatory displacement, a tilting or a rotation of the superimposed model.
  • the two overlapping dots are locked.
  • the locking ensures that the superimposed model in the image can at most be rotated or tilted around the locked points.
  • the next pair of points ie a model point of the displayed model and the corresponding pixel in one of the images
  • the displayed model is shifted in such a way that this pair of points also coincides.
  • This pair of points is in turn locked. Again, it may be provided to move the displayed model in all images.
  • the assignment of pairs of points is then continued until the position of the industrial robot relative to the object can be determined. This is possible, for example, if the displayed model covers all images of the object.
  • an automatic large adaptation of the displayed model is carried out on the basis of a manual allocation of one of the image points. This is necessary when the sizes of the displayed model differ from the sizes of the imaged object, which will usually be the case.
  • lines and / or surfaces of the model can also be manually assigned to corresponding lines or surfaces in at least one of the images.
  • a line eg an edge
  • a line can for example be selected in the model, in particular in the wire frame model or in the partial wire frame model, with the pointing device using the "object snap" method known from the CAD world.
  • the selected Edge can then be dragged to the corresponding edge in the image.
  • the edges in the image are identified, for example, with the image data processing method "edge extraction”. If the pointer of the pointing device is brought near such an edge, the "snap-to-line" function known from the CAD world can assist the operator.
  • the inventive method is not the 2D camera on the industrial robot, but the object attached to the industrial robot.
  • the 2D camera is then immovable relative to a base coordinate system of the industrial robot and the object is moved by means of the industrial robot m at least two mutually different positions.
  • the position of the industrial robot relative to the object can then be determined on the basis of the assigned model points of the model to the corresponding pixels in the images, the positions of the object assigned to the images and the position of the camera relative to the basic coordinate system of the industrial robot.
  • the position of the flange of the industrial robot relative to the object can be determined. Since the position of the flange relative to the base coordinate system of the industrial robot is known, the position of the industrial robot relative to the object can be determined via the relative position of the flange to the object.
  • the object is arranged on a table top, which is movable with respect to a relative to the environment of the industrial robot reference point movable.
  • the camera is attached to the industrial robot or set immobile relative to a basic coordinate system of the industrial robot. Moving the industrial robot or the tabletop results in the two positions for which the two two-dimensional image data sets are generated.
  • To the location of To determine object relative to the industrial robot first the position of the object relative to the table top due to the assigned model points of the model to the corresponding pixels in the images, the images of the associated positions of the tabletop relative to the industrial robot and the position of the camera relative to the industrial robot determined.
  • Intuitive, interactive, flexible, semi-automatic orientation detection system relatively independent of the object's shape, using a simple 2D camera.
  • the method according to the invention requires no learning of object features, as is necessary in conventional image processing solutions. This is associated with a disproportionately large amount of time, especially in the small series production of many different parts.
  • the inventive method uses the human spatial imagination over the object to be measured.
  • the operator can communicate his knowledge of the 3D geometry of the object to the transformation calculation algorithm.
  • the object of the invention is also achieved by an industrial robot, comprising
  • control device for controlling the drives, a 2D camera for producing a two-dimensional image data set, wherein the camera is attached to the industrial robot in such a way that it can be moved by the industrial robot,
  • a graphical model stored in the control device comprising at least a partial model of an object and in
  • a display device for displaying images associated with the image data sets generated by the camera and for fading the model into the displayed images
  • an input device for manually assigning points of the graphical model to points in the images
  • the industrial robot is arranged such that with it the inventive method is feasible to determine the position of the object relative to the industrial robot, when the object with respect to the environment of the industrial robot immovable or arranged on a table top, with respect to a respect to the environment Movable industrial robot immovable reference point.
  • the object of the invention is also achieved by an industrial robot, comprising
  • a 2D camera for generating a two-dimensional image data set, the camera being immovable with respect to a base coordinate system of the industrial robot; a graphical model stored in the control device, which is described at least a partial model of an object and in coordinates relative to coordinates of the industrial robot, a display device for displaying images associated with the image data sets generated by the camera, and for fading the model into the displayed images and
  • an input device for manually assigning points of the graphic model to points in the images
  • the industrial robot is set up such that the method according to the invention can be carried out with it in order to determine the position of the physical object relative to the industrial robot when the physical object is fastened to the industrial robot and can be moved therewith.
  • the input device is, for example, a pointing device or a space mouse.
  • FIGs. 5-7 further pictures of the engine block of Fig. 1 and
  • FIG. 8-10 more industrial robots.
  • Fig. 1 shows a 6-axis industrial robot 1 with a kinematics for movements of the six degrees of freedom and a reference to the environment of the industrial robot 1 immovable object, which is an engine block M in the case of the present embodiment.
  • the industrial robot 1 has joints 2 - 4, levers 5 - 6, six movement axes Al - A6 and a flange F in a generally known manner. Each of the axes Al - A6 is moved by a drive.
  • the drives are electric drives, each having an electric motor 7-12.
  • the motor 7 moves the axis Al, the motor 8, the axis A2, the motor 9, the axis A3 and the motors 10-12, the axes A4 - A6 on in Fig. 1 not near, but the skilled person well known transmission.
  • the electric drives or the electric motors 7 - 12 are connected in a manner not shown with a control computer 15 on which a suitable and the skilled worker in principle known computer program runs, which controls the movements of the industrial robot 1.
  • the term "taxes” should also include a regulation in this context.
  • a CAD (Computer Aided Design) model 16 of the engine block M is stored in the control computer 15, as shown in FIGS.
  • the model 16 was created in the case of the present exemplary embodiment in a generally known manner by means of a CAD program and can be viewed by a person not closer in the figures by means of a connected to the control computer 15 monitor 14.
  • the model 16 is a partial model of the engine block M and especially a partial wire mesh model.
  • a wireframe model which is referred to in English as a "wireframe" model, in particular models three-dimensional objects in CAD. te, as in the case of the present embodiment, the engine block M.
  • surfaces of the object in the wireframe model are shown as lines, in the present exemplary embodiment, only some corners and edges of the engine block M are modeled by means of the model 16.
  • the industrial robot 1 For machining the engine block M by means of the industrial robot 1, the industrial robot 1 must be calibrated for the engine block M so that the coordinate system of the model 16 coincides with respect to the coordinate system of the engine block M, i. the position of the engine block M relative to the industrial robot 1 is determined.
  • the determination of the position of the engine block M with respect to the industrial robot 1 is illustrated by means of a flow chart shown in FIG. 4.
  • a 2D camera 17 connected in a manner not shown to the control computer 15 is fastened to the flange F of the industrial robot 1.
  • the 2D camera 17 is, for example, a CCD sensor or a well-known digital camera.
  • the position of the camera 17 on the industrial robot 1 is known.
  • the purpose of the camera 17 is to provide at least two 2D images of the
  • the camera 17 If the camera 17 is in the respective position, then it generates in each case an image data record whose associated images 20, 30 are shown in FIGS. 2 and 3, Step S2 of the flowchart.
  • the images 20, 30 are images of the engine block M, wherein in the case of the present embodiment, substantially all of the engine block M is depicted in each of the images 20, 30. However, this is not absolutely necessary; In at least one of the images, only a part of the engine block M can be shown.
  • the images 20, 30 are generated, they are simultaneously displayed on the monitor 14 in the case of the present embodiment.
  • the model 16 is displayed in each of the images 20, 30, step S3 of the flowchart.
  • the input device is a pointing device in the form of a computer mouse 13
  • the point 2 IA of the model 16 represents an edge of the motor block M.
  • the point 2IA becomes the one known from computer graphics so-called "object snap" method. Subsequently, the person selects the point 21B corresponding to the point 21A in the first image 20 of the engine block M.
  • a computer program running on the control computer 15 automatically moves the model 16 displayed in the images 20, 30 such that the points 21A, 21B in both images 20, 30 cover what is indicated by an arrow A.
  • step S5 of the flowchart At- closing the overlapping points 21A, 21B are locked, step S5 of the flowchart.
  • Model 16 and a point 22A corresponding to the selected point 22A of the model 16 in the first image 20 The computer program running on the control computer 15 then automatically moves the model 16 displayed in the images 20, 30 such that the points 22A, 22B overlap in both images 20, 30, which is indicated by an arrow B.
  • the model 16 displayed in the images 20, 30 is now shifted such that the points 21A and 21B and the points 22A and 22B overlap and are also locked, step S6 of the flow chart.
  • the person selects in the second image 30 further corresponding points 31A, 31B and 32A, 32B.
  • the computer program running on the control computer 15 again moves the model 16 shown in FIGS. 20, 30 in such a way that the points pairs 31A and 31B overlap and the pair of points comprising points 32A and 32B overlap, which is indicated by arrows C, D is indicated.
  • the computer program running on the control computer 15 is designed such that it automatically automatically adapts the size of the model 16 displayed in the images 20, 30, if this is necessary due to an assignment of a pair of points. is agile so that the selected pairs of points can overlap.
  • the industrial robot 1 has six degrees of freedom.
  • the respective distances between the camera 17 and the engine block M are unknown at the two positions. Accordingly, at least four different pairs of points in the two images 20, 30 must be assigned to the calculation of the position of the engine block M relative to the industrial robot 1.
  • the layer can then be e.g. by solving a regular, if there are exactly four different (BiId) pairs of points, or by means of a certain system of equations, if there are more than four different pairs of points, with full rank, by means of which a so-called 6 DOF ("6 degrees of freedom", six degrees of freedom) transformation can be performed.
  • 6 DOF 6 degrees of freedom
  • the transformation can be done, for example, as follows:
  • a selected pixel B 1 can be represented in the two-dimensional coordinate system of the camera 17 in homogeneous coordinate notation as follows:
  • the corresponding model point Px in the three-dimensional coordinate system of the model 16 can be represented in homogeneous coordinate notation as follows:
  • the transformation matrix for a transformation from the coordinate system of the engine block M to the coordinate system of the first image 20 in the first position of the camera 17 is:
  • the projection matrix for the projection of the coordinates of the i-th pixel onto the coordinates of the model 16 is e.g. as follows:
  • d ⁇ is a camera position-dependent distance parameter of the position of the camera 17 at the i-th position
  • ie Ci 1 is the distance parameter associated with the distance between the camera 17 and the engine block M in the first position
  • d ⁇ is that of the distance between the camera 17 and the engine block M associated distance parameter in the second position.
  • the distance parameter d ⁇ corresponds, for example, to the distance between the focal point of the camera 17 and the projection plane (image plane) of the perspective projection.
  • k is the vector of the fourth row of the projection matrix Proji and k 4 corresponds to the distance parameter d ⁇ .
  • the position of the engine block M relative to the industrial robot 1 is finally carried out by means of optimization, in particular non-linear optimization, such as Gauss Newton or Levenberg Marquardt.
  • non-linear optimization e.g. set up the following objective function f (x):
  • the input device used was a pointing device in the form of the computer mouse 13.
  • other input devices may also be used, such as a space mouse.
  • lines or areas of the model 16 can be assigned to corresponding lines or areas in the images of the object.
  • FIGS. 5 and 6 show, by way of example, two images 50, 60 taken from the two positions by means of the camera 17, into which, in turn, a model 16a of the engine block M is superimposed.
  • the image 50 corresponds to the image 20 and the image 60 corresponds to the image 30.
  • the model 16a is also a partial wireframe model of the engine block M and differs slightly in the case of the present embodiment of the model 16 of Figures 2 and 3.
  • the person with the computer mouse 13 in the model l ⁇ a does not select individual points 21A, 22A, 31A, 31A, but lines 51A and 52A in the first image 50 and a line 61A in the second image 60.
  • Lines 51A, 52B and 61A in the case of the present embodiment correspond to edges 51B, 52B and 61B of the engine block M which selects the person in the images 50, 60.
  • Suitable image processing algorithms are e.g. Edge extraction or Sobel operator. Detected edges can also be divided into straight sections.
  • a relevant line 51A, 52B and 61A in the model 16a is selected with the computer mouse 13 using the "object catching" method known from the CAD world.
  • the selected line 51A, 52B, 61A, 62A and 63A is then drawn onto the corresponding edges 51B, 52B and 61B in the images 50, 60.
  • the edges 51B, 52B and 61B in the images 50, 60 are e.g. identified with the image data processing method "edge extraction". If a pointer moved by means of the computer mouse 13 is brought near such an edge, then the "snap-to-line" function known from the CAD world can support the person.
  • the model l ⁇ b is a partial model of the engine block M and shows in particular surfaces 71A, 72A, the surfaces 71B and 72B of the engine block M. assigned.
  • the surfaces 71B and 72B of the engine block M are recesses of the engine block M in the case of the present embodiment.
  • the camera 17 is attached to the flange F of the industrial robot 1.
  • the camera 17 may also be attached to one of the axes Al-A ⁇ , as long as it is moved by the industrial robot 1.
  • FIG. 8 shows another industrial robot 81. Unless expressly mentioned, functionally equivalent components of the industrial robot 1 shown in FIG. 1 are provided with the same reference numerals as components of the industrial robot 81 shown in FIG.
  • the two industrial robots 1 and 81 are essentially identical. Instead of the camera 17, however, an object 82 is fastened to the flange F of the industrial robot 81, the position of which, in particular its orientation relative to the industrial robot 81, is to be determined. To achieve this is in the case of the present exemplary embodiment, a camera 83 is placed on the ground, for example on a stand 84, immovably with respect to the surroundings of the industrial robot 81 and connected in a manner not shown to the control computer 15 of the industrial robot 81.
  • the object 81 is brought into at least two different positions by means of the industrial robot 81 and a 2D image of the object 81 is generated for each position.
  • the images are then displayed on the monitor 14.
  • a model of the object 82 is superimposed on the images, and then, as for the first embodiments, the position of the object 82 relative to the industrial robot 81 is calculated.
  • FIG. 9 again shows the industrial robot 1.
  • the engine block M rests on a table top P of a table 90.
  • the table foot 91 of the table 90 is pivotable relative to an axis 92 by means of a motor, not shown.
  • the motor of the table 90 is connected in a manner not shown to the control computer 15 and is also controlled by this, so that the position of the table top P relative to the table foot 91 is known. Furthermore, the position of the table 90 or its table foot 91 relative to the industrial robot 1 is known. Information about this position is stored in the control computer 15.
  • the position of the motor block M on the table top P is unknown, since the motor block M has been placed essentially arbitrarily on the table top P.
  • the position of the motor block M is initially determined relative to the tabletop P. If this is determined, the position of the engine block M relative to the industrial robot 1 can also be determined, since the position of the table top P relative to the table foot 91 and the position of the table foot 91 relative to the industrial robot 1 are known.
  • images are taken with the camera 17 from two different positions.
  • the two positions result from a movement of the industrial robot 1 or its flange F and / or by a pivoting of the table top P with respect to the axis 92.
  • the model 16 of the engine block M is superimposed in the recorded images and points of the model 16 points of the image of the engine block M are assigned. Based on this assignment, which is carried out analogously to the assignment of the pairs of points shown in FIGS. 2 and 3, the position of the motor block M relative to the table top P can subsequently be calculated. This calculation is carried out analogously to the calculation of the position of the engine block M relative to the industrial robot 1 according to the scenario shown in FIG. 1.
  • the camera may also be fixedly mounted on a stand 84, similar to the scenario illustrated in FIG. 8.
  • a scenario is shown in FIG. 10, in which the camera has the reference numeral 83.
  • the table top P By pivoting the table top P about the axis 92, two different positions can be set for which the camera 83 takes pictures of the engine block M. Subsequently, the position of the engine block M relative to the table top P can be determined according to the scenario shown in FIG. 9.

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

Die Erfindung betrifft Verfahren zum Bestimmen der Lage eines Industrieroboters (1, 81) relativ zu einem Objekt (M, 82) und entsprechend eingerichtete Industrieroboter (1, 81). Im Rahmen eines dieser Verfahren wird eine am Industrieroboter (1) befestigte 2D Kamera (17) in wenigstens zwei unterschiedliche Position bewegt, in jeder der Positionen ein Bild (20, 30) von einem bezüglich der Umgebung des Industrieroboters (1) unbeweglichen Objekt (M) erzeugt, die Bilder (20, 30) angezeigt, in die Bilder (20, 30) ein grafisches Modell (16) des Objekts (M) eingeblendet, Punkte (21A, 22A, 31A, 32A) des grafischen Modells (16) zu entsprechenden Punkten (21A, 21B, 31A, 31B) in den beiden Bildern (20, 30) manuell zugeordnet und die Lage des Industrieroboters (1) relativ zum Objekt (M) aufgrund der zugeordneten Punkte (21A, 22A, 31A, 32A) des Modells (16) zu den entsprechenden Punkten (21B, 22B, 31B, 32B) ermittelt.

Description

Industrieroboter und Verfahren zum Bestimmen der Lage eines Industrieroboters relativ zu einem Objekt
Die Erfindung betrifft Industrieroboter und Verfahren zum Bestimmen der Lage eines Industrieroboters relativ zu einem Objekt.
Die DE 102 49 786 Al offenbart ein Verfahren zur Referenzie- rung eines Roboters zu einem Patienten, von dem zumindest aus zwei Positionen mit zumindest einer am Roboter befestigten Kamera jeweils ein Bild erstellt wird. Im Rahmen dieses Verfahrens wird ein Referenzpunkt des Patienten in einem der Bilder ausgewählt, eine Relation des ausgewählten Referenzpunktes im dreidimensionalen Raum über Positionsdaten des Referenzpunktes beider Bilder hergestellt und die Position des Roboters zum Patienten korreliert.
Um die Lage eines Industrieroboters relativ zu einem Objekt zu bestimmen, offenbart die WO 2004/071717 Al eine Mehrzahl von Messpunkten auf der Oberfläche des Objekts zu registrieren und zu speichern, die Orientierung und die Position eines CAD-Modells des Objekts relativ zu einem Koordinatensystem des Industrieroboters durch Korrelation der Messpunkte in Bezug zum Modell zu bestimmen und für zumindest einige der Messpunkte und den entsprechenden Punkten im Modell eine sich ergebende Abweichung zu ermitteln. Für die Registrierung der Messpunkte fährt der Industrieroboter die Messpunkte mit einer Messspitze, die z.B. einen kontaktlosen Sensor umfasst, an.
Eine Bestimmung der Lage eines Industrieroboters relativ zu einem Objekt basierend auf dem Registrieren der Messpunkte auf der Oberfläche des Objekts kann jedoch relativ schwierig sein, wenn z.B. benötigte Messpunkte relativ schwer oder e- ventuell auch gar nxcht mit dem Industrieroboter erreicht werden können.
Die Aufgabe der vorliegenden Erfindung ist es daher, ein einfacheres Verfahren zum Bestimmen der Lage eines Industrieroboters relativ zu einem Objekt und einen entsprechenden Industrieroboter anzugeben.
Die Aufgabe der Erfindung wird gelost durch ein Verfahren zum Bestimmen der Lage eines Industrieroboters relativ zu einem Objekt, aufweisend folgende Verfahrensschritte:
- Bewegen einer an einem Industrieroboter befestigten 2D Kamera mittels des Industrieroboters in wenigstens zwei un- terschiedliche Positionen,
- m jeder der Positionen, Erzeugen eines einem Bild von einem Objekt zugeordneten zweidimensionalen Bilddatensatzes mittels der Kamera, wobei das Objekt bezüglich der Umgebung des Industrieroboters unbeweglich ist, - Anzeigen der Bilder mittels einer Anzeigevorrichtung und Einblenden eines grafischen Modells in die angezeigten Bilder, wobei das grafische Modell zumindest ein Teilmodell des Objekts ist und in Koordinaten relativ zu Koordinaten des Industrieroboters beschrieben ist, - manuelles Zuordnen von Modellpunkten des grafischen Modells zu entsprechenden Bildpunkten in den beiden Bildern und
- Ermitteln der Lage des Industrieroboters relativ zum Objekt aufgrund der zugeordneten Modellpunkte des Modells zu den entsprechenden Bildpunkten m den Bildern, der den
Bildern zugeordneten Positionen der Kamera und der Position der Kamera relativ zum Industrieroboter.
Bei der Bearbeitung des Objekts, z.B. eines Werkstucks, mit dem Industrieroboter ist die Kenntnis der Lage des Objekts bezuglich des Industrieroboters, z.B. bezüglich dessen Fuss- punktes notwendig. Die Lage des Industrieroboters relativ zum Objekt ist insbesondere dessen Position und Orientierung zum Industrieroboter.
Um diese Lage zu ermitteln, werden erfindungsgemaß jeweils Bilder des Objekts aus wenigstens zwei unterschiedlichen Positionen des Industrieroboters erzeugt, d.h. es werden wenigstens zwei unterschiedliche dem Objekt zugeordnete BiId- datensatze mittels der 2D-Kamera erzeugt. Die Bilder können das Objekt nur teilweise oder auch komplett abbilden. Des Weiteren können auch mehr als zwei Bilder vom Objekt mit der Kamera aus verschiedenen Positionen erzeugt werden. Durch die Verwendung lediglich einer 2D-Kamera, die z.B. ein CCD- Sensor oder eine digitale Kamera sein kann, kann das erfin- dungsgemaße Verfahren relativ preisgünstig durchgeführt werden .
Die 2D-Kamera ist am Industrieroboter, z.B. am Flansch oder einer Achse des Industrieroboters befestigt und wird demnach durch Bewegen des Industrieroboters, d.h. durch Bewegen seiner Achsen, in die wenigstens zwei Positionen gebracht.
Die Platzierung der Kamera am Industrieroboter ist bekannt, sodass aufgrund der Achsenstellungen der Achsen des Industrieroboters bei den Positionen die Koordinaten der Kamera bezuglich des Industrieroboters ebenfalls bekannt sind oder berechnet werden können.
Sind die Bilddatensatze erzeugt, werden die entsprechenden Bilder mit der Anzeigevorrichtung angezeigt und das grafische Modell vom Objekt in die Bilder eingeblendet. Dabei ist es möglich, dass zunächst lediglich eines der Bilder angezeigt und in dieses Bild das Modell eingeblendet wird. Es ist aber auch möglich, alle Bilder gleichzeitig anzuzeigen und in alle Bilder das Modell einzublenden.
Das grafische Modell kann, muss jedoch nicht notwendigerwei- se ein komplettes Modell des Objekts sein. Das Modell kann auch nur ein Teilmodell des Objekts sein.
Das Modell kann ferner ein sogenanntes grafisches Drahtgittermodell oder ein grafisches Teil-Drahtgittermodell des Ob- jekts sein. Ein Drahtgittermodell, das im Englischen als
"Wireframe" Modell bezeichnet wird, modelliert im CAD insbesondere dreidimensionale Objekte, wobei Oberflächen des Objekts im Drahtgittermodell als Linien dargestellt werden und es auch möglich ist, insbesondere nur Kanten zu visualisie- ren. Handelt es sich bei dem Drahtgittermodell lediglich um ein Teil-Drahtgittermodell, dann umfasst dieses z.B. lediglich einige dieser Linien und insbesondere besonders markante Linien, wie beispielsweise markante Kanten oder Ecken des Objekts.
Anschließend werden erfindungsgemäß manuell Modellpunkte des Modells zu entsprechenden Bildpunkten in den Bildern zugeordnet .
Des Weiteren brauchen nicht dieselben Modellpunkte des Modells in beiden Bildern entsprechenden Bildpunkten zugeordnet werden.
Die Zuordnung der Modell- und Bildpunkte kann z.B. mittels eines Zeigegerätes erfolgen, mit dem beispielsweise ein Eckpunkt des Draht- oder Teil-Drahtgittermodells ausgewählt wird. Die Auswahl erfolgt beispielsweise mittels der bei CAD Techniken bekannten "Objektfang" Methode. Das Zeigegerät ist beispielsweise eine Rechnermaus. Ist der Modellpunkt im Modell ausgewählt, dann kann dieser mit dem Zeigegerät auf den korrespondierenden Bildpunkt in einem der Bilder manuell gezogen werden. Ein manuelles Betätigen hat den Vorteil, dass ein Mensch insbesondere in den Bildern abgebildete Eckpunkte beispielsweise anhand zulaufender Kanten oder Schattierungen relativ einfach erkennen kann. Die Möglichkeit der Vergrößerung eines den relevanten Bildpunkt umfassenden Bildausschnitts oder einer Hervorhebung von Bildkanten können die Genauigkeit der Zuordnung un- terstützen, wodurch ein eventuell entstehender Fehler bei der Zuordnung verkleinert werden kann.
Die Zuordnung der Modell- und Bildpunkte kann auch mit einer sogenannten sechsdimensionalen Maus (Spacemouse) erfolgen. Eine Spacemouse ist ein Eingabegerät, mit dem sechs Freiheitsgrade gleichzeitig verändert werden können. Sie kann bei der Zuordnung der Modell- und Bildpunkte eingesetzt werden, um beispielsweise die Lage des eingeblendeten Modells relativ zum Bild des Objekts zu verschieben, bis eine ge- wünschte Überdeckung erzielt ist.
Für die Ermittlung der Lage des Objekts relativ zum Industrieroboter sind wenigstens vier verschiedene Bildpunkte notwendig, wenn der Industrieroboter sechs Freiheitsgrade hat und die Entfernungen zwischen der Kamera und dem Objekt an den beiden Positionen nicht bekannt sind, was in der Regel der Fall sein wird. Es ist jedoch notwendig, wenigstens zwei verschiedene Bildpunkte in wenigstens zwei Bildern dem Modell zuzuordnen, wobei es bevorzugt wird, eine gleiche An- zahl Bildpunkte pro Bild zu verwenden. Es können mehr als die mathematisch mindestens notwendige Anzahl von Punktezuordnungen vorgenommen werden. Teilt eine Bedienperson die geforderte Genauigkeit der zu ermittelnden relativen Lage des Objekts mit, so kann bei jeder weiteren Punktezuordnung überprüft und gemeldet werden, bis die geforderte Genauigkeit erfüllt werden kann.
Sind genügend Modell- und Bildpunkte zugeordnet, dann kann die Lage des Industrieroboters relativ zum Objekt ermittelt werden, da zudem die Positionen der Kamera und die Position der Kamera relativ zum Industrieroboter bekannt sind.
Bei einem Industrieroboter mit sechs Freiheitsgraden und bei Unkenntnis der Entfernung zwischen dem Objekt und der Kamera benötigt man, wie bereits erwähnt, zumindest vier zugeordnete Bildpunkte, die sich über die wenigstens zwei Bilder verteilen .
Die Lage des Objekts relativ zum Industrieroboter kann dann z.B. durch Losen eines regulären oder uberbestimmten Gleichungssystems mit vollem Rang erfolgen, mittels dessen eine so genannte 6 DOF ("6 degrees of freedom", sechs Freiheitsgrade) Transformation durchgeführt werden kann. Dann kann das Modell in den Bildern auch entsprechend der gelosten Transformation angezeigt werden.
Ist die Anzahl zugeordneter Punkte noch nicht ausreichend, dann kann das Modell derart in den Bildern positioniert wer- den, dass es zur Uberdeckung an den zugeordneten Punkten kommt .
Die Transformation kann beispielsweise wie folgt erfolgen:
Em ausgewählter Bildpunkt B1 kann im zweidimensionalen Koordinatensystem der Kamera in homogener Koordinatenschreibweise wie folgt dargestellt werden:
Der dazu korrespondierende Modellpunkt P1 im dreidimensionalen Koordinatensystem des Modells kann in homogener Koordi- natenschreibweise wie folgt dargestellt werden:
Die Transformationsmatrix für eine Transformation vom Koor- dinatensystem des Objekts zum Koordinatensystem des Bildes in der i-ten Position der Kamera lautet:
T1
Werden z.B. Bilder aus zwei Positionen aufgenommen, dann lautet die Transformationsmatrix für die Transformation vom Koordinatensystem des Objekts zum Koordinatensystem des Bildes in der 1. Position
T1
und die Transformationsmatrix für die Transformation vom Koordinatensystem des Objekts zum Koordinatensystem des Bildes in der 2. Position
T2 Die Projektionsmatrix für die Projektion der Koordinaten des i-ten Bildpunkts auf die Koordinaten des Modells lautet z.B. wie folgt :
1 0 0 0 0 1 0 0
PrOj1 = 0 0 1 0
wobei dz ein kamerapositionsabhängige Distanzparameter der Position der Kamera bei der i-ten Position ist. Der Distanzparameter dz entspricht beispielsweise der Distanz zwischen dem Brennpunkt der Kamera und der Projektionsebene (Bildebene) der perspektivischen Projektion, wie es z.B. in James D. Foley et. al., "Computer Graphics Principles and Practice", Addison-Wesley Publishing Company, Reading, Massachusetts, 1992, S. 255 beschrieben ist.
Für die weitere Berechnung der Lage des Objekts zum Industrieroboter kann eine Normierung der homogenen Koordinate erfolgen, sodass der Distanzparameter dλ der Projektionsmatrix PrOj1 den Wert "1" erhält. Dies lässt sich mathematisch wie folgt ausdrücken:
- k norm(k) = —
Jc4
wobei k der Vektor der vierten Zeile der Projektionsmatrix PrOj1 ist und k4 dem Distanzparameter d2 entspricht.
Die Lage des Objekts zum Industrieroboter kann schließlich mittels Optimierung, insbesondere nichtlinearer Optimierung, wie beispielsweise Gauss Newton oder Levenberg Marquardt durchgeführt werden. Für die nichtlineare Optimierung kann z.B. folgende Zielfunktion f(x) aufgestellt werden:
f(x) = ∑ JB1 - norm(Pr OJ1 T1 (X) P1
mit dem Parametervektor x
Zusätzliche unbekannte Parameter sind die Distanzparameter da.
Nach einer Variante des erfindungsgemäßen Verfahrens weist dieses zusätzlich folgende Verfahrensschritte auf:
manuelles Zuordnen eines ersten Modellpunktes der Modellpunkte des Modells zu einem entsprechenden ersten Bildpunkt eines der beiden Bilder,
Verschieben des in den Bildern eingeblendeten Modells, sodass der erste Modellpunkt und der erste Bildpunkt sich decken,
Verriegeln der beiden sich deckenden ersten Modell- und Bildpunkte, manuelles Zuordnen eines zweiten Modellpunktes der Modellpunkte des Modells zu einem entsprechenden zweiten Bildpunkt eines der beiden Bilder,
Verschieben des in den Bildern eingeblendeten Modells, sodass der zweite Modellpunkt und der zweite Bildpunkt sich ebenfalls decken, Verriegeln der beiden sich deckenden zweiten Modell- und Bildpunkte und manuelles Zuordnen weiterer einzelner Modellpunkte des Modells zu entsprechenden Bildpunkten in den Bildern, bis die Lage des Industrieroboters relativ zum Objekt ermittelbar ist.
Gemäß dieser Variante des erfindungsgemäßen Verfahrens werden zunächst die beiden ersten Punkte zugeordnet und an- schließend das im Bild angezeigte Modell insbesondere derart automatisch verschoben, dass sich die beiden ersten Punkte decken. Eine Verschiebung ist insbesondere eine translatorische Verschiebung, ein Kippen oder eine Drehung des eingeblendeten Modells. Auch wenn die manuelle Zuordnung nur in einem der Bilder erfolgt, kann eine insbesondere automatische Verschiebung des eingeblendeten Modells in allen Bildern erfolgen. Durch die Verschiebung kann auch eine Teillagebestimmung des Models erfolgen z.B. durch eine Teilberechnung der oben beschriebenen Transformation.
Nach dem Verschieben des Modells in dem Bild bzw. den Bildern werden die beiden sich deckenden Punkte verriegelt. Durch die Verriegelung wird insbesondere erreicht, dass das eingeblendete Modell im Bild höchstens noch um die verrie- gelten Punkte gedreht oder gekippt werden kann.
Anschließend wird das nächste Punktepaar, also ein Modellpunkt des angezeigten Modells und des entsprechenden Bildpunktes in einem der Bilder, ausgewählt und das eingeblende- te Modell derart verschoben, dass sich auch dieses Punktepaar deckt. Dieses Punktepaar wird wiederum verriegelt. Auch hier kann es vorgesehen sein, das eingeblendete Modell in allen Bildern zu verschieben. Das Zuordnen von Punktepaaren wird dann solange fortgesetzt, bis die Lage des Industrieroboters relativ zum Objekt ermittelbar ist. Dies ist z.B. dann möglich, wenn sich das eingeblendete Modell in allen Bildern des Objekts deckt.
Nach einer Ausfuhrungsform des erfindungsgemaßen Verfahrens wxrd eine automatische Großenanpassung des eingeblendeten Modells aufgrund einer manuellen Zuordnung eines der BiId- punkte durchgeführt. Dies ist dann notig, wenn sich die Gro- ßen des eingeblendeten Modells von den Großen des abgebildeten Objekts unterscheiden, was in der Regel der Fall sein wird.
Zusatzlich zur Zuordnung von Punkten können auch manuell Li- nien und/oder Flachen des Modells zu entsprechenden Linien bzw. Flachen in wenigstens einem der Bilder zugeordnet werden. Alternativ ist es auch möglich, anstelle von Punkten manuell Linien und/oder Flachen des Modells zu entsprechenden Linien bzw. Flachen in den Bildern zuzuordnen.
Im Gegensatz zur Punktezuordnung werden bei der Linienzuordnung andere Freiheitsgrade festgelegt (Rotation in Bildebene, Translation entlang Verschiebungsvektor) . Bei der Punktezuordnung hingegen werden zwei Freiheitsgrade festgelegt (Translation in x und y der Bildkoordinaten)
Bei der Linienzuordnung können zwar nicht mehr Freiheitsgrade festgelegt werden, jedoch ist es je nach Form und Bild des Objekts, z.B. des Werkstucks manchmal gunstiger, Linien zur Uberdeckung zu bringen als einzelne Punkte.
Eine Line, z.B. eine Kante, kann z.B. im Modell, insbesondere im Drahtgittermodell oder im Teil-Drahtgittermodell, mit dem Zeigegerat unter Verwendung der aus der CAD Welt bekann- ten "Objektfang"-Methode ausgewählt werden. Die ausgewählte Kante kann dann auf die korrespondierende Kante im Bild gezogen werden. Die Kanten im Bild werden z.B. mit der Bildda- tenverarbeitenden Methode "Kantenextraktion" identifiziert. Wird der Zeiger des Zeigegerates in die Nahe einer solchen Kante gebracht, kann die aus der CAD-Welt bekannte "Snap-to- line" Funktion den Bediener unterstutzen.
Gemäß einer weiteren Ausfuhrungsform des erfmdungsgemaßen Verfahrens ist nicht die 2D-Kamera am Industrieroboter, son- dern das Objekt am Industrieroboter befestigt. Die 2D-Kamera ist dann bezuglich eines Basiskoordinatensystems des Industrieroboters unbeweglich und das Objekt wird mittels des Industrieroboters m wenigstens zwei voneinander unterschiedliche Positionen bewegt. Die Lage des Industrieroboters re- lativ zum Objekt kann dann aufgrund der zugeordneten Modellpunkte des Modells zu den entsprechenden Bildpunkten in den Bildern, der den Bildern zugeordneten Positionen des Objekts und der Position der Kamera relativ zum Basiskoordmatensys- tem des Industrieroboters ermittelt werden. Alternativ kann auch die Lage des Flansches des Industrieroboters relativ zum Objekt ermittelt werden. Da die Lage des Flansches relativ zum Basiskoordinatensystem des Industrieroboters bekannt ist, kann über die relative Lage des Flansches zum Objekt die Lage des Industrieroboters relativ zum Objekt ermittelt werden.
Gemäß einer Ausfuhrungsform des erfmdungsgemaßen Verfahrens ist das Objekt auf einer Tischplatte angeordnet, die bezüglich eines bezüglich der Umgebung des Industrieroboters un- beweglichen Bezugspunkt bewegbar ist. Die Kamera ist am Industrieroboter befestigt oder bezuglich eines Basiskoordinatensystems des Industrieroboters unbeweglich aufgestellt. Durch Bewegen des Industrieroboters oder der Tischplatte ergeben sich die beiden Positionen, für die die beiden zweidi- mensionalen Bilddatensatze erzeugt werden. Um die Lage des Objekts relativ zum Industrieroboter zu ermitteln, wird zunächst die Lage des Objekts relativ zur Tischplatte aufgrund der zugeordneten Modellpunkte des Modells zu den entsprechenden Bildpunkten in den Bildern, der den Bildern zugeord- neten Positionen der Tischplatte relativ zum Industrieroboter und der Position der Kamera relativ zum Industrieroboter ermittelt .
Vorteile des erfindungsgemäßen Verfahrens können u.A. fol- gende sein:
Intuitives, interaktives, flexibles, von der Form des Objekts relativ unabhängiges, halbautomatisches Einmessverfahren zur Lagebestimmung unter Verwendung einer einfachen 2D Kamera.
Das erfindungsgemäße Verfahren benötigt kein Einlernen von Objektfeatures, wie es bei konventionellen Bildverarbeitungslösungen notwendig ist. Dies ist vor allem bei der Kleinserienproduktion vieler unterschiedlicher Teile mit unverhältnismäßig großem Zeitaufwand verbunden.
Das erfindungsgemäße Verfahren nutzt das menschliche räumliche Vorstellungsvermögen über das einzumessende Objekt. Mit Hilfe einer graphischen Oberfläche zur Benutzerinteraktion kann der Bediener sein Wissen über die 3D-Geometrie des Objekts dem Algorithmus zur Berechnung der Transformation mitteilen.
Die Aufgabe der Erfindung wird auch gelöst durch einen Industrieroboter, aufweisend
- mehrere mittels Antriebe bewegbarer Achsen,
- eine Steuerungsvorrichtung zum Ansteuern der Antriebe, - eine 2D-Kamera zum Erzeugen eines zweidimensionalen Bilddatensatz, wobei die Kamera am Industrieroboter derart befestigt ist, dass sie vom Industrieroboter bewegbar ist,
- ein in der Steuerungsvorrichtung gespeichertes grafisches Modell, das zumindest ein Teilmodell eines Objekts und in
Koordinaten relativ zu Koordinaten des Industrieroboters beschrieben ist,
- eine Anzeigevorrichtung zum Anzeigen von mit der Kamera erzeugten Bilddatensätzen zugeordneten Bildern und zum Einblenden des Modells in die angezeigten Bilder und
- ein Eingabegerät zum manuellen Zuordnen von Punkten des grafischen Modells zu Punkten in den Bildern,
wobei der Industrieroboter derart eingerichtet ist, dass mit ihm das erfindungsgemäße Verfahren durchführbar ist, um die Lage des Objekts relativ zum Industrieroboter zu bestimmen, wenn das Objekt bezüglich der Umgebung des Industrieroboters unbeweglich oder auf einer Tischplatte angeordnet ist, die bezüglich eines bezüglich der Umgebung des Industrieroboters unbeweglichen Bezugspunkts bewegbar ist.
Die Aufgabe der Erfindung wird auch gelöst durch einen Industrieroboter, aufweisend
- mehrere mittels Antriebe bewegbarer Achsen,
- eine Steuerungsvorrichtung zum Ansteuern der Antriebe,
- eine 2D-Kamera zum Erzeugen eines zweidimensionalen Bilddatensatz, wobei die Kamera bezüglich eines Basiskoordinatensystems des Industrieroboters unbeweglich ist; - ein in der Steuerungsvorrichtung gespeichertes grafisches Modell, das zumindest ein Teilmodell eines Objekts und in Koordinaten relativ zu Koordinaten des Industrieroboters beschrieben ist, - eine Anzeigevorrichtung zum Anzeigen von mit der Kamera erzeugten Bilddatensatzen zugeordneten Bildern und zum Einblenden des Modells in die angezeigten Bilder und
- ein Eingabegerat zum manuellen Zuordnen von Punkten des grafischen Modells zu Punkten in den Bildern,
wobei der Industrieroboter derart eingerichtet ist, dass mit ihm das erfindungsgemaße Verfahren durchfuhrbar ist, um die Lage des physikalischen Objekts relativ zum Industrieroboter zu bestimmen, wenn das physikalische Objekt am Industrieroboter befestigt und mittels diesem bewegbar ist.
Die Eingabevorrichtung ist beispielsweise ein Zeigegerat o- der eine Spacemouse.
Ausfuhrungsbeispiele der Erfindung sind exemplarisch in den beigefügten schematischen Zeichnungen dargestellt. Es zeigen:
Fig. 1 einen Industrieroboter und einen Motorblock,
Fig. 2, 3 Bilder des Motorblocks der Fig. 1
Fig. 4 ein Flussdiagramm,
Figs. 5-7 weitere Bilder des Motorblocks der Fig. 1 und
Figs. 8-10 weitere Industrieroboter.
Die Fig. 1 zeigt einen 6-Achs Industrieroboter 1 mit einer Kinematik für Bewegungen der sechs Freiheitsgrade und ein bezuglich der Umgebung des Industrieroboters 1 unbewegliches Objekt, das im Falle des vorliegenden Ausführungsbeispieles ein Motorblock M ist. Der Industrieroboter 1 weist in allgemein bekannter Weise Gelenke 2 - 4, Hebel 5 - 6, sechs Bewegungsachsen Al - A6 und einen Flansch F auf. Jeder der Achsen Al - A6 wird von einem Antrieb bewegt.
Im Falle des vorliegenden Ausfuhrungsbeispiels sind die Antriebe elektrische Antriebe, die jeweils einen elektrischen Motor 7 - 12 aufweisen. Dabei bewegt der Motor 7 die Achse Al, der Motor 8 die Achse A2, der Motor 9 die Achse A3 und die Motoren 10 - 12 die Achsen A4 - A6 über in der Fig. 1 nicht naher, dem Fachmann jedoch allgemein bekannte Getriebe.
Die elektrischen Antriebe bzw. die elektrischen Motoren 7 - 12 sind in nicht näher dargestellter Weise mit einem Steuerrechner 15 verbunden, auf dem ein geeignetes und dem Fachmann im Grundsatz bekanntes Rechnerprogramm lauft, das die Bewegungen des Industrieroboters 1 steuert. Der Begriff "Steuern" soll in diesem Zusammenhang auch eine Regelung um- fassen.
Im Falle des vorliegenden Ausfuhrungsbeispiels ist im Steuerrechner 15 ein in den Figuren 2 und 3 dargestelltes CAD (Computer Aided Design) Modell 16 des Motorblocks M gespei- chert . Das Modell 16 wurde im Falle des vorliegenden Ausfuhrungsbeispiels in allgemein bekannter Weise mittels eines CAD-Programms erstellt und kann von einer in den Figuren nicht naher dargestellten Person mittels eines mit dem Steuerrechner 15 verbundenen Monitors 14 betrachtet werden.
Im Falle des vorliegenden Ausführungsbeispieles handelt es sich bei dem Modell 16 um ein Teilmodell des Motorblocks M und speziell um ein Teil-Drahtgittermodell. Ein Drahtgittermodell, das im Englischen als "Wireframe"-Modell bezeichnet wird, modelliert im CAD insbesondere dreidimensionale Objek- te, wie im Falle des vorliegenden Ausführungsbeispiels den Motorblock M. Dabei werden Oberflachen des Objekts im Drahtgittermodell als Linien dargestellt, wobei im vorliegenden Ausfuhrungsbeispiel nur einige Ecken und Kanten des Motor- blocks M mittels des Modells 16 modelliert sind.
Für die Bearbeitung des Motorblocks M mittels des Industrieroboters 1 muss der Industrieroboter 1 bezuglich des Motorblocks M eingemessen werden, so dass das Koordinatensystem des Modells 16 in Bezug auf das Koordinatensystem des Motorblocks M übereinstimmt, d.h. dass die Lage des Motorblocks M relativ zum Industrieroboter 1 ermittelt wird.
Die Bestimmung der Lage des Motorblocks M bezuglich des In- dustrieroboters 1 wird mittels eines in der Fig. 4 dargestellten Flussdiagramms veranschaulicht.
Im Falle des vorliegenden Ausfuhrungsbeispieles ist am Flansch F des Industrieroboters 1 eine in nicht dargestell- ter Weise mit dem Steuerrechner 15 verbundene 2D-Kamera 17 befestigt. Die 2D-Kamera 17 ist beispielsweise ein CCD- Sensor oder eine allgemein bekannte digitale Kamera. Die Position der Kamera 17 am Industrieroboter 1 ist bekannt.
Zweck der Kamera 17 ist es, wenigstens zwei 2D-Bilder des
Motorblocks M aus zwei verschiedenen Positionen zu erzeugen. Die wenigstens zwei Positionen werden dadurch realisiert, dass der Industrieroboter 1 die Kamera 17 in die beiden unterschiedlichen Positionen bewegt, in dem dessen Achsen Al - A6 in allgemein bekannter Weise bewegt werden, Schritt Sl des Flussdiagramms der Fig. 4.
Befindet sich die Kamera 17 in der jeweiligen Position, dann erzeugt sie jeweils einen Bilddatensatz, deren zugeordnete Bilder 20, 30 in den Figuren 2 und 3 dargestellt sind, Schritt S2 des Flussdiagramms. Die Bilder 20, 30 sind Bilder des Motorblocks M, wobei im Falle des vorliegenden Ausführungsbeispiels im Wesentlichen der gesamte Motorblock M in jedem der Bildern 20, 30 abgebildet ist. Dies ist jedoch nicht zwingend notwendig; in wenigstens einem der Bilder kann auch nur ein Teil des Motorblocks M abgebildet sein.
Nachdem die Bilder 20, 30 erzeugt sind, werden sie im Falle des vorliegenden Ausführungsbeispiels gleichzeitig am Moni- tor 14 angezeigt. Gleichzeitig wird in jedes der Bilder 20, 30 das Modell 16 eingeblendet, Schritt S3 des Flussdiagramms .
Anschließend wählt eine in den Figuren nicht dargestellte Person mittels einer Eingabevorrichtung des Steuerrechners
15 einen Punkt 21A des Modells 16 aus, Schritt S4 des Flussdiagramms .
Im Falle des vorliegenden Ausführungsbeispieles handelt es sich bei der Eingabevorrichtung um ein Zeigegerät in Form einer Rechnermaus 13 und der Punkt 2 IA des Modells 16 stellt eine Kante des Motorblocks M dar. Im Falle des vorliegenden Ausführungsbeispiels wird der Punkt 2IA mit der aus der Computergrafik bekannten so genannten "Objektfang"-Methode aus- gewählt. Anschließend wählt die Person den zum Punkt 21A korrespondierenden Punkt 21B im ersten Bild 20 des Motorblocks M aus.
Im Falle des vorliegenden Ausführungsbeispieles bewegt nach der Zuordnung des die Punkte 21A, 21B umfassenden Punktepaares ein auf dem Steuerrechner 15 laufendes Rechnerprogramm automatisch das in die Bilder 20, 30 eingeblendete Modell 16 derart, dass sich die Punkte 21A, 21B in beiden Bildern 20, 30 überdecken, was mit einem Pfeil A angedeutet ist. An- schließend werden die sich überdeckenden Punkte 21A, 21B verriegelt, Schritt S5 des Flussdiagramms .
Aufgrund der Zuordnung des die Punkte 21A, 21B umfassenden Punktepaars und der Bewegung des Modells 16 in den Bildern 20, 30 derart, dass sich die beiden Punkte 21A, 21B überdecken, ergibt sich bereits eine Teilberechnung zur Bestimmung der Lage des Motorblocks M relativ zum Industrieroboter 1.
Anschließend wählt die Person einen weiteren Punkt 22A des
Modells 16 und ein dem ausgewählten Punkt 22A des Modells 16 korrespondierenden Punkt 22A im ersten Bild 20 aus. Daraufhin bewegt wieder automatisch das auf dem Steuerrechner 15 laufende Rechnerprogramm das in die Bilder 20, 30 eingeblen- dete Modell 16 derart, dass sich die Punkte 22A, 22B in beiden Bildern 20, 30 überdecken, was mit einem Pfeil B angedeutet ist. Somit ist nun das in die Bilder 20, 30 eingeblendete Modell 16 derart verschoben, dass sich die Punkte 21A und 21B und die Punkte 22A und 22B überdecken und auch verriegelt sind, Schritt S6 des Flussdiagramms.
Anschließend wählt die Person im zweiten Bild 30 weitere korrespondierende Punkte 31A, 31B und 32A, 32B aus. Daraufhin bewegt wieder das auf dem Steuerrechner 15 laufende Rechnerprogramm das in die Figuren 20, 30 eingeblendete Modell 16 derart, dass sich auch das die Punkten 31A und 31B umfassende Punktepaare und das die Punkte 32A und 32B umfassendes Punktepaar überdecken, was mit Pfeilen C, D angedeutet ist.
Des Weiteren ist im Falle des vorliegenden Ausführungsbeispiels das auf dem Steuerrechner 15 laufende Rechnerprogramm derart ausgelegt, dass es automatisch die Große des in die Bilder 20, 30 eingeblendeten Modells 16 automatisch anpasst, wenn dies aufgrund einer Zuordnung eines Punktepaares not- wendig ist, damit die ausgewählten Punktepaare sich überdecken können.
Wenn genügend Punktepaare zugeordnet sind, sodass das Modell 16 deckungsgleich mit den Bildern 20, 30 des Motorblocks M ist, ist es möglich, die Lage des Motorblocks M bezuglich des Industrieroboters 1 zu bestimmen, Schritt S7 des Flussdiagramms .
Die Berechnung der Lage erfolgt im Falle des vorliegenden Ausfuhrungsbeispieles wie folgt:
Im Falle des vorliegenden Ausfuhrungsbeispiels hat der Industrieroboter 1 sechs Freiheitsgrade. Außerdem sind die je- weiligen Entfernungen zwischen der Kamera 17 und dem Motorblock M bei den beiden Positionen unbekannt. Demnach müssen für die Berechnung der Lage des Motorblocks M relativ zum Industrieroboter 1 wenigstens vier verschiedene Punktepaare in den beiden Bildern 20, 30 zugeordnet werden.
Die Lage kann dann z.B. durch Losen eines regulären, wenn genau vier unterschiedliche (BiId-) Punktepaare vorliegen, oder uberbestimmten Gleichungssystems, wenn mehr als vier unterschiedliche Punktepaare vorliegen, mit vollem Rang er- folgen, mittels dessen eine so genannte 6 DOF ("6 degrees of freedom", sechs Freiheitsgrade) Transformation durchgeführt werden kann.
Die Transformation kann beispielsweise wie folgt erfolgen:
Ein ausgewählter Bildpunkt B1 kann im zweidimensionalen Koordinatensystem der Kamera 17 in homogener Koordinatenschreibweise wie folgt dargestellt werden:
Der dazu korrespondierende Modellpunkt Px im dreidimensionalen Koordinatensystem des Modells 16 kann in homogener Koor- dinatenschreibweise wie folgt dargestellt werden:
Die Transformationsmatrix für eine Transformation vom Koor- dinatensystem des Motorblocks M zum Koordinatensystem des ersten Bildes 20 in der ersten Position der Kamera 17 lautet:
T1
und des zweiten Bildes 30 in der zweiten Position der Kamera
17 lautet:
T2
Die Projektionsmatrix für die Projektion der Koordinaten des i-ten Bildpunkts auf die Koordinaten des Modells 16 lautet z.B. wie folgt:
1 0 0 0
0 1 0 0
PrOj1 = i=l; 2
0 0 1 0
0 0 IZd1 0 wobei d± ein Kamerapositionsabhängige Distanzparameter der Position der Kamera 17 bei der i-ten Position ist, d.h. Ci1 ist der der Entfernung zwischen der Kamera 17 und dem Motorblock M zugeordnete Distanzparameter in der ersten Position und d ist der der Entfernung zwischen der Kamera 17 und dem Motorblock M zugeordnete Distanzparameter in der zweiten Position. Der Distanzparameter d± entspricht beispielsweise der Distanz zwischen dem Brennpunkt der Kamera 17 und der Projektionsebene (Bildebene) der perspektivischen Projektion.
Für die weitere Berechnung der Lage des Motorblocks M relativ zum Industrieroboter 1 erfolgt im Falle des vorliegenden Ausführungsbeispiels eine Normierung der homogenen Koordinate, sodass der Distanzparameter di der Projektionsmatrix Pro- ji den Wert "1" erhält. Dies lässt sich mathematisch wie folgt ausdrücken:
k norm(k) = — k4
wobei k der Vektor der vierten Zeile der Projektionsmatrix Proji ist und k4 dem Distanzparameter d± entspricht.
Die Lage des Motorblocks M relativ zum Industrieroboter 1 wird im Falle des vorliegenden Ausführungsbeispiels schließ- lieh mittels Optimierung, insbesondere nichtlinearer Optimierung, wie beispielsweise Gauss Newton oder Levenberg Mar- quardt durchgeführt. Für die nichtlineare Optimierung wird z.B. folgende Zielfunktion f (x) aufgestellt:
f(x) = J] JB1 - norm(Pr OJ1 ■ T1(X) ■ P1)J i
mit dem Parametervektor x x
Zusätzliche unbekannte Parameter sind die Distanzparameter di.
Im beschrieben Ausführungsbeispiel wurden genau zwei Bilder 20, 30 vom Motorblock M, also von einem Objekt erzeugt. Dies ist nicht unbedingt nötig; es können auch mehr als zwei Bilder vom Objekt erzeugt werden.
Als Eingabegerät wurde ein Zeigegerät in Form der Rechnermaus 13 verwendet. Für das Zuordnen der Punkte 21A, 21B, der Punkte 22A, 22B, der Punkte 31A, 31B und der Punkte 32A, 32B können auch andere Eingabevorrichtungen verwendet werden, wie beispielsweise eine Spacemouse.
Anstelle oder zusätzlich einer Zuordnung von Punkten können Linien oder Flächen des Modells 16 zu entsprechenden Linien bzw. Flächen in den Bildern vom Objekt zugeordnet werden.
Die Figuren 5 und 6 zeigen als Beispiel zwei mittels der Kamera 17 aus den beiden Positionen aufgenommene Bilder 50, 60, in die wiederum ein Modell 16a des Motorblocks M eingeblendet ist. Das Bild 50 entspricht dabei dem Bild 20 und das Bild 60 entspricht dabei dem Bild 30. Das Modell 16a ist ebenfalls ein Teil-Drahtgittermodell des Motorblocks M und unterscheidet sich im Falle des vorliegenden Ausführungsbeispiels geringfügig vom Modell 16 der Figuren 2 und 3. Im Falle des vorliegenden Ausführungsbeispiels wählt die Person mit der Rechnermaus 13 im Modell lβa nicht individuelle Punkte 21A, 22A, 31A, 31A, sondern Linien 51A und 52A im ersten Bild 50 und eine Linie 61A im zweiten Bild 60 aus. Die Linien 51A, 52B und 61A entsprechen im Falle des vorliegenden Ausführungsbeispiels Kanten 51B, 52B und 61B des Motorblocks M, die die Person in den Bildern 50, 60 auswählt.
Um die Kanten 51B, 52B und 61B in den Bildern 50, 60 verbes- sert sichtbar zu machen, ist es im Falle des vorliegenden
Ausführungsbeispiels vorgesehen, in den Bildern 50, 60 abgebildete Kanten mittels eines Bildverarbeitungs-Algorithmus hervorzuheben. Geeignete Bildverarbeitungs-Algorithmen sind z.B. Kantenextraktion oder Sobel Operator. Erkannte Kanten können auch in geradlinige Abschnitte unterteilt werden.
Im Falle des vorliegenden Ausführungsbeispiel wird eine relevante Line 51A, 52B und 61A im Modell 16a mit der Rechnermaus 13 unter Verwendung der aus der CAD Welt bekannten "Ob- jektfang"-Methode ausgewählt. Die ausgewählte Line 51A, 52B, 61A, 62A und 63A wird dann auf die korrespondierende Kanten 51B, 52B und 61B in den Bildern 50, 60 gezogen. Die Kante 51B, 52B und 61B in den Bildern 50, 60 werden z.B. mit der Bilddatenverarbeitenden Methode "Kantenextraktion" identifi- ziert. Wird ein mittels der Rechnermaus 13 bewegter Zeiger in die Nähe einer solchen Kante gebracht, dann kann die aus der CAD-Welt bekannte "Snap-to-line" Funktion die Person unterstützen .
Im Gegensatz zur Punktezuordnung werden bei der Linienzuordnung andere Freiheitsgrade festgelegt (Rotation in Bildebene, Translation entlang Verschiebungsvektor) .
Bei der Linienzuordnung können zwar nicht mehr Freiheitsgra- de festgelegt werden, jedoch ist es je nach Form und Bild des Objekts manchmal günstiger, Linien zur Überdeckung zu bringen als einzelne Punkte.
Die Fig. 7 zeigt ein weiteres Bild 70 vom Motorblock M und ein Modell lβb vom Motorblock M. Im Falle des vorliegenden Ausführungsbeispiels ist das Modell lβb ein Teilmodell des Motorblocks M und zeigt insbesondere Flächen 71A, 72A, die Flächen 71B und 72B des Motorblocks M zugeordnet sind. Bei den Flächen 71B und 72B des Motorblocks M handelt es sich im Falle des vorliegenden Ausführungsbeispiels um Aussparungen des Motorblocks M.
Für das in der Fig. 7 gezeigte Ausführungsbeispiel werden für die Berechnung der Lage des Motorblocks M relativ zum Industrieroboter 1 die Flächen 71A, 72A in Deckung mit den entsprechenden im Bild 70 gezeigten Flächen 71B und 72B gebracht .
In den bis jetzt beschriebenen Ausführungsbeispielen ist die Kamera 17 am Flansch F des Industrieroboters 1 befestigt. Die Kamera 17 kann aber auch an einer der Achsen Al-Aβ befestigt sein, solange sie durch den Industrieroboter 1 bewegt wird.
Die Fig. 8 zeigt einen weiteren Industrieroboter 81. Wenn nicht ausdrücklich erwähnt, dann sind funktionsgleiche Bauteile des in der Fig. 1 gezeigten Industrieroboters 1 mit denselben Bezugszeichnen versehen wie Bauteile des in der Fig. 8 gezeigten Industrieroboters 81.
Die beiden Industrieroboter 1 und 81 sind im Wesentlichen identisch. Anstelle der Kamera 17 ist jedoch am Flansch F des Industrieroboters 81 ein Objekt 82 befestigt, dessen Lage, insbesondere dessen Orientierung relativ zum Industrie- roboter 81 ermittelt werden soll. Um dies zu erreichen, ist im Falle des vorliegenden Ausführungsbeispiels eine Kamera 83 am Boden, z.B. auf einem Stativ 84 unbeweglich bezüglich der Umgebung des Industrieroboters 81 aufgestellt und in nicht dargestellter Weise mit dem Steuerrechner 15 des In- dustrieroboters 81 verbunden.
Anschließend wird das Objekt 81 mittels des Industrieroboters 81 in wenigstens zwei unterschiedliche Positionen gebracht und für jede Position ein 2D-BiId des Objekts 81 er- zeugt. Die Bilder werden anschließend auf dem Monitor 14 dargestellt. Außerdem wird ein Modell des Objekts 82 in die Bilder eingeblendet und anschließend wie für die ersten Ausführungsbeispiele die Lage des Objekts 82 relativ zum Industrieroboter 81 berechnet.
Die Fig. 9 zeigt nochmals den Industrieroboter 1. Im Unterschied zum in der Fig. 1 dargestellten Szenario liegt in dem in der Fig. 9 dargestellten Szenario der Motorblock M auf einer Tischplatte P eines Tisches 90.
Im Falle des vorliegenden Ausführungsbeispiels ist der Tischfuss 91 des Tisches 90 bezüglich einer Achse 92 mittels eines nicht näher dargestellten Motors schwenkbar. Der Motor des Tisches 90 ist in nicht dargestellter Weise mit dem Steuerrechner 15 verbunden und wird auch von diesem angesteuert, sodass die Stellung der Tischplatte P relativ zum Tischfuss 91 bekannt ist. Des Weitern ist die Lage des Tisches 90 bzw. dessen Tischfusses 91 relativ zum Industrieroboter 1 bekannt. Eine Information über diese Lage ist im Steuerrechner 15 gespeichert.
Im Falle des vorliegenden Ausführungsbeispiels ist zunächst die Lage des Motorblocks M auf der Tischplatte P unbekannt, da der Motorblock M im Wesentlichen beliebig auf der Tisch- platte P abgelegt wurde. Um die Lage des Motorblocks M rela- tiv zum Industrieroboter 1 zu bestimmen, wird zunächst die Lage des Motorblocks M relativ zur Tischplatte P bestimmt. Ist diese ermittelt, dann kann auch die Lage des Motorblocks M relativ zum Industrieroboter 1 ermittelt, da die Stellung der Tischplatte P relativ zum Tischfuss 91 und die Lage des Tischfusses 91 relativ zum Industrieroboter 1 bekannt sind.
Um die Lage des Motorblocks M relativ zur Tischplatte P zu ermitteln, werden mit der Kamera 17 aus zwei verschiedenen Positionen Bilder aufgenommen. Die beiden Positionen ergeben sich durch eine Bewegung des Industrieroboters 1 bzw. dessen Flansches F und/oder durch ein Schwenken der Tischplatte P bezüglich der Achse 92.
Anschließend wird in den aufgenommenen Bildern das Modell 16 des Motorblocks M eingeblendet und Punkte des Modells 16 Punkten des Bildes des Motorblocks M zugeordnet. Aufgrund dieser Zuordnung, die analog zur Zuordnung der in den Figuren 2 und 3 gezeigten Punktepaare durchgeführt wird, kann anschließend die Lage des Motorblocks M relativ zur Tischplatte P berechnet werden. Diese Berechnung wird analog zur Berechnung der Lage des Motorblocks M relativ zum Industrieroboter 1 gemäß dem in der Fig. 1 gezeigten Szenario durchgeführt .
Alternativ kann die Kamera auch ähnlich dem in der Fig. 8 dargestellten Szenario auf einem Stativ 84 ortfest montiert sein. Ein solches Szenario ist in der Fig. 10 gezeigt, in der die Kamera das Bezugszeichen 83 hat. Durch Schwenken der Tischplatte P um die Achse 92 können zwei verschiedene Positionen eingestellt werden, für die die Kamera 83 Bilder vom Motorblock M aufnimmt. Anschließend kann die Lage des Motorblocks M relativ zur Tischplatte P gemäß dem in der Fig. 9 gezeigten Szenario ermittelt werden.

Claims

Patentansprüche
1. Verfahren zum Bestimmen der Lage eines Industrieroboters relativ zu einem Objekt, aufweisend folgende Verfahrens- schritte:
- Bewegen einer an einem Industrieroboter (1) befestigten 2D Kamera (17) mittels des Industrieroboters (1) in wenigstens zwei unterschiedliche Position,
- in jeder der Positionen, Erzeugen eines einem Bild (20, 30, 50, 60, 70) von einem Objekt (M) zugeordneten zweidimensionalen Bilddatensatzes mittels der Kamera (17), wobei das Objekt (M) bezüglich der Umgebung des Industrieroboters (1) unbeweglich ist,
- Anzeigen der Bilder (20, 30, 50, 60, 70) mittels einer Anzeigevorrichtung (14) und Einblenden eines grafischen Modells (16, 16a, 16b) in die angezeigten Bilder (20, 30, 50, 60, 70), wobei das grafische Modell (16, 16a, 16b) zumindest ein Teilmodell des Objekts (M) ist und in Koordinaten relativ zu Koordinaten des Industrieroboters (1) beschrieben ist,
- manuelles Zuordnen von Modellpunkten (21A, 22A, 31A, 32A) des grafischen Modells (16) zu entsprechenden Bildpunkten (21B, 22B, 31B, 32B) in den beiden Bildern (20, 30) und
- Ermitteln der Lage des Industrieroboters (1) relativ zum Objekt (M) aufgrund der zugeordneten Modellpunkte (21A, 22A, 31A, 32A) des Modells (16) zu den entsprechenden Bildpunkten (21B, 22B, 31B, 32B) in den Bildern (20, 30), der den Bildern (20, 30) zugeordneten Positionen der Kamera (17) und der Position der Kamera (17) relativ zum Industrieroboter (1).
2. Verfahren zum Bestimmen der Lage eines Industrieroboters relativ zu einem Objekt, aufweisend folgende Verfahrensschritte :
- Erzeugen jeweils eines zweidimensionalen Bilddatensatzes mit einer 2D Kamera (17, 83) für zwei unterschied- liehe Positionen, wobei den Bilddatensätzen Bildern eines Objekts (M) zugeordnet, das Objekt (M) auf einer Tischplatte (P) angeordnet ist, die bezüglich eines bezüglich der Umgebung eines Industrieroboters (1) unbeweglichen Bezugspunktes bewegbar ist, und die Kamera (17, 83) am Industrieroboter (1) befestigt oder bezüglich eines Basiskoordinatensystems des Industrieroboters (1) unbeweglich ist, wobei die Tischplatte (P) und/oder der Industrieroboter (1) für die beiden Positionen bewegt werden,
- Anzeigen der Bilder mittels einer Anzeigevorrichtung
(14) und Einblenden eines grafischen Modells in die angezeigten Bilder, wobei das grafische Modell zumindest ein Teilmodell des Objekts (M) ist und in Koordi- naten relativ zu Koordinaten des Industrieroboters (1) beschrieben ist,
- manuelles Zuordnen von Modellpunkten des grafischen Modells zu entsprechenden Bildpunkten in den beiden Bildern,
- Ermitteln der Lage des Objekts (M) relativ zur Tischplatte (P) aufgrund der zugeordneten Modellpunkte des Modells zu den entsprechenden Bildpunkten in den BiI- dern, der Lage des Bezugspunktes der Tischplatte (P) relativ zum Industrieroboter (1) und der Position der Kamera (17, 83) relativ zum Industrieroboter (1) und
- Ermitteln der Lage des Industrieroboters (1) relativ zum Objekt (M) aufgrund der Lage des Objekts relativ zur Tischplatte.
3. Verfahren nach Anspruch 1 oder 2, bei dem die Kamera
(17) an einem Flansch (F) oder an einer Achse (Al-Aβ) des Industrieroboters (1) befestigt ist.
4. Verfahren zum Bestimmen der Lage eines Industrieroboters relativ zu einem Objekt, aufweisend folgende Verfahrensschritte :
- Bewegen eines an einem Industrieroboter (81) befestigten Objekts (82) mittels des Industrieroboters (81) in wenigstens zwei unterschiedliche Position,
- In jeder der Positionen, Erzeugen eines einem Bild vom Objekt (82) zugeordneten zweidimensionalen Bilddatensatzes mittels einer 2D-Kamera (83), die bezüglich eines Basiskoordinatensystems des Industrieroboters (81) unbeweglich ist,
- Anzeigen der Bilder mittels einer Anzeigevorrichtung
(14) und Einblenden eines grafischen Modells in die angezeigten Bilder, wobei das grafische Modell zumindest ein Teilmodell des Objekts (82) ist und in Koor- dinaten relativ zu Koordinaten des Industrieroboters
(81) beschreiben ist,
- manuelles Zuordnen von Modellpunkten des grafischen Modells zu entsprechenden Bildpunkten in den beiden Bildern und - Ermitteln der Lage eines Flansches (F) des Industrieroboters (1) relativ zum Objekt (82) oder der Lage der Kamera (83) relativ zum Industrieroboter (81) aufgrund der zugeordneten Punkte des Modells zu den entsprechenden Punkten in den Bildern, der den Bildern zugeordneten Positionen des Objekts (82) und der Position der Kamera (83) relativ zum Basiskoordinatensystem des Industrieroboters (81).
5. Verfahren nach Anspruch 4, bei dem das Objekt (82) am Flansch (F) des Industrieroboters (81) befestigt ist.
6. Verfahren nach einem der Ansprüche 1 bis 5, aufweisend:
- manuelles Zuordnen eines ersten Modellpunktes (21A) der Modellpunkte des Modells (16) zu einem entsprechenden ersten Bildpunkt (21B) eines der beiden Bilder (20),
- Verschieben des in den Bildern (20, 30) eingeblendeten Modells (16), sodass der erste Modellpunkt (21A) und der erste Bildpunkt (21B) sich decken,
- Verriegeln der beiden sich deckenden ersten Modell- und Bildpunkte (21A, 21B),
- manuelles Zuordnen eines zweiten Modellpunktes (22A) der Modellpunkte des Modells (16) zu einem entspre- chenden zweiten Bildpunkt (22B) eines der beiden Bilder (20), - Verschieben des in den Bildern (20, 30) eingeblendeten Modells (16), sodass der zweite Modellpunkt (22A) und der zweite Bildpunkt (22B) sich ebenfalls decken,
- Verriegeln der beiden sich deckenden zweiten Modell- und Bildpunkte (22A, 22B) und
- manuelles Zuordnen weiterer einzelner Modellpunkte
(31A, 32A) des Modells (16) zu entsprechenden BiId- punkten (31B, 32B) in den Bildern (30), bis die Lage des Industrieroboters (1) relativ zum Objekt (M) ermittelbar ist.
7. Verfahren nach einem der Ansprüche 1 bis 6, ferner auf- weisend eine automatische Größenanpassung des eingeblendeten Modells (16) aufgrund einer manuellen Zuordnung von wenigstens zwei verschiedenen Modellpunkten.
8. Verfahren nach einem der Ansprüche 1 bis 7, aufweisend
- manuelles Zuordnen von Linien (51h, 52A, 61A) und/oder Flächen (71A, 72A) des Modells (16a, 16b) zu entsprechenden Linien (51B, 52B, 61B) bzw. Flächen (71B, 72B) in wenigstens einem der Bilder (50, 60, 70) oder
- manuelles Zuordnen von Linien (51A, 52A, 61A) und/oder Flächen (71A, 72A) des Modells (16a, 16b) zu entsprechenden Linien (51B, 52B, 61B)bzw. Flächen (71B, 72B) in den Bildern (50, 60, 70) anstelle der Bild- und Mo- dellpunkte.
9. Verfahren nach einem der Ansprüche 1 bis 8, bei dem das Modell (16, 16a) ein grafisches Drahtgittermodell oder ein grafisches Teil-Drahtgittermodell des Objekts (M) ist.
10. Industrieroboter, aufweisend
- mehrere mittels Antriebe (7-12) bewegbarer Achsen (Al- A6) ,
- eine Steuerungsvorrichtung (15) zum Ansteuern der Antriebe (7-12),
- eine 2D-Kamera (17) zum Erzeugen eines zweidimensionalen Bilddatensatz, wobei die Kamera (17) am Industrieroboter (1) derart befestigt ist, dass sie vom Industrieroboter (1) bewegbar ist,
- ein in der Steuerungsvorrichtung (15) gespeichertes grafisches Modell (16, lβa, 16b), das zumindest ein Teilmodell eines Objekts (M) und in Koordinaten relativ zu Koordinaten des Industrieroboters (1) beschrieben ist,
- eine Anzeigevorrichtung (16) zum Anzeigen von mit der Kamera erzeugten Bilddatensätzen zugeordneten Bildern (20, 30, 50, 70, 60) und zum Einblenden des Modells (16, 16a, lβb) in die angezeigten Bilder (20, 30, 50, 60, 70) und
- ein Eingabegerät (13) zum manuellen Zuordnen von Punkten (21A, 22A, 31A, 32A) des grafischen Modells (16, 16a, 16b) zu Punkten (21B, 22B, 31B, 32B) in den BiI- dem (20, 30),
wobei der Industrieroboter (1) derart eingerichtet ist, dass mit ihm das Verfahren nach einem der Ansprüche 1 bis 3 oder 6 bis 9 durchführbar ist, um die Lage des Ob- jekts (M) relativ zum Industrieroboter (1) zu bestimmen, wenn das Objekt (M) bezüglich der Umgebung des Industrieroboters (1) unbeweglich oder auf einer Tischplatte (P) angeordnet ist, die bezüglich eines bezüglich der Umgebung eines Industrieroboters (1) unbeweglichen Bezugspunkts bewegbar ist.
11. Industrieroboter, aufweisend
- mehrere mittels Antriebe (7-12) bewegbarer Achsen (Al- A6),
- eine Steuerungsvorrichtung (15) zum Ansteuern der Antriebe (7-12),
- eine 2D-Kamera (17) zum Erzeugen eines zweidimensionalen Bilddatensatz, wobei die Kamera (83) bezüglich eines Basiskoordinatensystems des Industrieroboters (81) unbeweglich ist;
- ein in der Steuerungsvorrichtung (15) gespeichertes grafisches Modell, das zumindest ein Teilmodell eines Objekts (82) und in Koordinaten relativ zu Koordinaten des Industrieroboters (81) beschrieben ist,
- eine Anzeigevorrichtung (14) zum Anzeigen von mit der Kamera (17) erzeugten Bilddatensätzen zugeordneten Bildern und zum Einblenden des Modells in die angezeigten Bilder und
- ein Eingabegerät (13) zum manuellen Zuordnen von Punkten des grafischen Modells zu Punkten in den Bildern, wobei der Industrieroboter (81) derart eingerichtet ist, dass mit ihm das Verfahren nach einem der Ansprüche 5 bis 9 durchführbar ist, um die Lage des physikalischen Objekts (82) relativ zum Industrieroboter (81) zu bestimmen, wenn das physikalische Objekt (82) am Industrieroboter (81) befestigt und mittels diesem bewegbar ist.
EP08708188A 2007-02-28 2008-01-25 Industrieroboter und verfahren zum bestimmen der lage eines industrieroboters relativ zu einem objekt Ceased EP2122424A2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102007009851A DE102007009851B3 (de) 2007-02-28 2007-02-28 Industrieroboter und Verfahren zum Bestimmen der Lage eines Industrieroboters relativ zu einem Objekt
PCT/EP2008/050849 WO2008104426A2 (de) 2007-02-28 2008-01-25 Industrieroboter und verfahren zum bestimmen der lage eines industrieroboters relativ zu einem objekt

Publications (1)

Publication Number Publication Date
EP2122424A2 true EP2122424A2 (de) 2009-11-25

Family

ID=39326698

Family Applications (1)

Application Number Title Priority Date Filing Date
EP08708188A Ceased EP2122424A2 (de) 2007-02-28 2008-01-25 Industrieroboter und verfahren zum bestimmen der lage eines industrieroboters relativ zu einem objekt

Country Status (4)

Country Link
US (1) US20110037839A1 (de)
EP (1) EP2122424A2 (de)
DE (1) DE102007009851B3 (de)
WO (1) WO2008104426A2 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8923602B2 (en) 2008-07-22 2014-12-30 Comau, Inc. Automated guidance and recognition system and method of the same
EP2685403A3 (de) 2012-07-09 2017-03-01 Technion Research & Development Foundation Limited Natürliches Maschinenschnittstellensystem
US9214021B2 (en) * 2012-10-09 2015-12-15 The Boeing Company Distributed position identification
US10078330B2 (en) 2016-03-25 2018-09-18 International Business Machines Corporation Coordinating robotic apparatus deliveries
CN108810425B (zh) * 2017-05-02 2024-06-11 北京米文动力科技有限公司 一种摄像头配置方法及装置
DE102019107417A1 (de) * 2019-03-22 2020-09-24 Günther Battenberg Verfahren zur Durchführung von zumindest einem Tätigkeitsprozess mittels eines Roboters

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4233625A (en) * 1978-11-03 1980-11-11 Teledyne, Inc. Television monitoring system for automatically aligning semiconductor devices during manufacture
US4853771A (en) * 1986-07-09 1989-08-01 The United States Of America As Represented By The Secretary Of The Navy Robotic vision system
US6175415B1 (en) * 1997-02-19 2001-01-16 United Technologies Corporation Optical profile sensor
GB9803364D0 (en) 1998-02-18 1998-04-15 Armstrong Healthcare Ltd Improvements in or relating to a method of an apparatus for registering a robot
JP3421608B2 (ja) * 1999-04-08 2003-06-30 ファナック株式会社 教示モデル生成装置
DE10159574B9 (de) * 2001-10-15 2009-04-30 Tropf, Hermann, Dr.-Ing. Vorrichtung und Verfahren zur Korrektur der Bewegung von Greif- und Bearbeitungswerkzeugen
US7233841B2 (en) * 2002-04-19 2007-06-19 Applied Materials, Inc. Vision system
DE10249786A1 (de) * 2002-10-24 2004-05-13 Medical Intelligence Medizintechnik Gmbh Referenzierung eines Roboters zu einem Werkstück und Vorrichtung hierfür
SE524818C2 (sv) * 2003-02-13 2004-10-05 Abb Ab En metod och ett system för att programmera en industrirobot att förflytta sig relativt definierade positioner på ett objekt
JP3708083B2 (ja) * 2003-02-28 2005-10-19 ファナック株式会社 ロボット教示装置
US20050105791A1 (en) * 2003-10-29 2005-05-19 Lee Ken K. Surface inspection method
DE10351669B4 (de) * 2003-11-05 2012-09-13 Kuka Laboratories Gmbh Verfahren und Vorrichtung zum Steuern eines Handhabungsgeräts relativ zu einem Objekt
DE102004006596B4 (de) * 2004-02-10 2007-02-15 Vision Tools Bildanalyse Systeme Gmbh Handeingabe von Werkstückposen
US20080011313A1 (en) * 2005-10-24 2008-01-17 Philip Gildenberg System and method for robotic assisted wig construction
DE102005058867B4 (de) * 2005-12-09 2018-09-27 Cine-Tv Broadcast Systems Gmbh Verfahren und Vorrichtung zum Bewegen einer auf einem Schwenk- und Neigekopf angeordneten Kamera entlang einer vorgegebenen Bewegungsbahn

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KIM W S: "Virtual reality calibration for telerobotic servicing", ROBOTICS AND AUTOMATION, 1994. PROCEEDINGS., 1994 IEEE INTERNATIONAL C ONFERENCE ON SAN DIEGO, CA, USA 8-13 MAY 1994, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, 8 May 1994 (1994-05-08), pages 2769 - 2775, XP010097336, ISBN: 978-0-8186-5330-8, DOI: 10.1109/ROBOT.1994.350918 *
RAINER BISCHOFF ET AL: "2006-10-22 Industrial AR ISMAR 2006 Page 1 Bischoff / Kurth -KUKA Robot Group Concepts, Tools and Devices for Facilitating Human-Robot Interaction with Industrial Robots through Augmented Reality Industrial AR ISMAR 2006 Page 2 Bischoff / Kurth -KUKA Robot Group AR Concepts, Tools and Devices for Fa", 22 October 2006 (2006-10-22), XP055191766, Retrieved from the Internet <URL:http://ismar06.tinmith.net/data/2a-KUKA.pdf> [retrieved on 20150528] *

Also Published As

Publication number Publication date
DE102007009851B3 (de) 2008-05-29
US20110037839A1 (en) 2011-02-17
WO2008104426A2 (de) 2008-09-04
WO2008104426A3 (de) 2008-11-13

Similar Documents

Publication Publication Date Title
DE102019006800B4 (de) Robotersteuerung und Anzeigevorrichtung unter Verwendung von erweiterter Realität und gemischter Realität
DE102018109463B3 (de) Verfahren zur Benutzung einer mehrgliedrigen aktuierten Kinematik, vorzugsweise eines Roboters, besonders vorzugsweise eines Knickarmroboters, durch einen Benutzer mittels einer mobilen Anzeigevorrichtung
DE102015002760B4 (de) Robotersimulationssystem, das den Prozess des Entnehmens von Werkstücken simuliert
DE102018009023B4 (de) Einlernvorrichtung zum Ausführen von Robotereinlernvorgängen und Einlernverfahren
EP2879842B1 (de) Verfahren und programmiermittel zur modifikation einer roboterbahn
DE102007059478B4 (de) Verfahren und System zur Ausrichtung eines virtuellen Modells an einem realen Objekt
DE102009012590A1 (de) Vorrichtung zum Ermitteln der Stellung eines Roboterarms mit Kamera zur Durchführung von Aufnahmen
DE102007009851B3 (de) Industrieroboter und Verfahren zum Bestimmen der Lage eines Industrieroboters relativ zu einem Objekt
DE102011083876A1 (de) Verfahren zur Bewegungssteuerung einer Röntgenvorrichtung und Röntgensystem
EP3443908B1 (de) Verfahren zum betreiben eines röntgengeräts mit einem gelenkarm und röntgengerät mit einem gelenkarm
DE102015000587A1 (de) Roboterprogrammiervorrichtung zum Erstellen eines Roboterprogramms zum Aufnehmen eines Bilds eines Werkstücks
DE102006007623A1 (de) Roboter mit einer Steuereinheit zum Steuern einer Bewegung zwischen einer Anfangspose und einer Endpose
DE102018113336A1 (de) Verfahren zum Verwenden mit einer Maschine zum Einstellen einer Erweiterte-Realität-Anzeigeumgebung
DE102009020307A1 (de) Simulator für eine Sichtprüfungsvorrichtung
DE102015104582A1 (de) Verfahren zum Kalibrieren eines Roboters an einem Arbeitsbereich und System zum Durchführen des Verfahrens
DE112019007663T5 (de) Bildbasierte steuerungskorrektur
DE102015104587A1 (de) Verfahren zum Kalibrieren eines Roboters an einem Arbeitsbereich und System zum Durchführen des Verfahrens
EP3809094B1 (de) Verfahren und anordnung zum visualisieren von sensorsignalen eines optischen sensors eines koordinatenmessgeräts sowie verfahren und anordnung zum visualisieren eines sensors eines koordinatenmessgeräts
DE102010036904A1 (de) Haptische Messvorrichtung und Messverfahren
DE102020204677A1 (de) Trackingsystem und Verfahren zur Kompensation von Sichtschatten bei der Nachverfolgung von Messobjekten
DE102004032996A1 (de) Einfache Roboterprogrammierung
DE10149795B4 (de) Semiautomatische Registrierung zur Überlagerung zweier medizinischer Bilddatensätze
DE102021133633B3 (de) Verfahren zum Bereitstellen einer Greifvorrichtung
WO2002065888A2 (de) Anordnung und verfahren zur sensorpositionierung
DE102004006596B4 (de) Handeingabe von Werkstückposen

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20090904

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR

RIN1 Information on inventor provided before grant (corrected)

Inventor name: SEDLMAYR, ANDREAS

Inventor name: KURTH, JOHANNES

17Q First examination report despatched

Effective date: 20091130

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: KUKA LABORATORIES GMBH

DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: KUKA ROBOTER GMBH

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: KUKA DEUTSCHLAND GMBH

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20190210

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230528