WO2023284922A1 - Verfahren und system zur ermittlung der räumlichen lage eines objektes - Google Patents

Verfahren und system zur ermittlung der räumlichen lage eines objektes Download PDF

Info

Publication number
WO2023284922A1
WO2023284922A1 PCT/DE2022/200150 DE2022200150W WO2023284922A1 WO 2023284922 A1 WO2023284922 A1 WO 2023284922A1 DE 2022200150 W DE2022200150 W DE 2022200150W WO 2023284922 A1 WO2023284922 A1 WO 2023284922A1
Authority
WO
WIPO (PCT)
Prior art keywords
representation
points
reference representation
objects
image
Prior art date
Application number
PCT/DE2022/200150
Other languages
English (en)
French (fr)
Inventor
Roberto Schlenker
Richard Albrecht
Original Assignee
Continental Automotive Technologies 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 Continental Automotive Technologies GmbH filed Critical Continental Automotive Technologies GmbH
Publication of WO2023284922A1 publication Critical patent/WO2023284922A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component

Definitions

  • the invention relates to a method and system for determining the position of an object.
  • the reliable detection of the spatial position of objects, which can be in differently oriented positions, with optical detection devices is a task that has to be solved in various application scenarios.
  • a major technical challenge is to remove bulk goods piece by piece from a box with the help of a robot (bin picking) in order to then feed these pieces to a production plant.
  • the challenge lies in the fact that the robot scans unsorted objects with the help of cameras and sensors, but it requires complex image processing algorithms to identify the location and position of the individual objects. In some cases, 3D cameras are even used to simplify the problem.
  • Machine learning in particular "deep learning” with artificial neural networks, represents a possible solution to the above problem, but is due to the very large amount of data required (all pixels are included during each calculation step) and the high sensitivity to boundary conditions (light conditions , contours of other adjacent objects, overlapping edges of other objects) only suitable for a few projects.
  • boundary conditions light conditions , contours of other adjacent objects, overlapping edges of other objects
  • Such algorithms can also only be trained for one orientation of the object, which means that several such training sets are required in order to identify all orientations.
  • the invention is therefore based on the object of providing an improved, robust and at the same time resource-saving method for determining the position of specify objects. Furthermore, a corresponding system is to be provided.
  • this object is achieved according to the invention in that at least one object is detected using at least one optical detection unit, at least one reference representation being stored for a number of objects to be detected, and an object representation being generated for each detected object is compared with at least one reference representation, corner and/or edge points being determined to create the number of object representations on the object, the reference representation being subjected to at least one three-dimensional transformation by computation and then the Points are projected onto a two-dimensional plane, the projected points and points of the object representation are compared, and the position of the object is deemed to be recognized if one of the value recognition function of the points of the object representation and at least one reference representation in a em predetermined threshold range.
  • the invention is based on the consideration that robust and fast applications for the spatial position of objects are required for many applications. It would be advantageous if both the preparation effort and the adaptation to new objects could take place in a resource-saving manner.
  • the task of determining the position and orientation of an object can be solved extremely efficiently on the basis of the corner points or edge points of a wire model of the object, since these can also be a 2D projection contain sufficient information about the spatial position of the object.
  • the spacing and constellation of all vertices of a wireframe defines a pattern
  • orthogonal projection it is possible through orthogonal projection to project those vertices onto a plane that is comparable to the camera image, i.e. located on the camera plane .
  • Each tilt of the wireframe provides a "distorted" variant of vertices corresponding to the angles, corresponding to the camera image that captured an object in a perspective deviating from the perpendicular.
  • the solution to the above task is to find an identical point constellation that corresponds to the perspective projection of the wire model onto the plane of the camera image.
  • the invention thus reduces the problem to the pattern search of different point constellations on two parallel planes lying one above the other, namely the camera image plane and the projection plane.
  • the respective transformation advantageously includes a rotation and/or scaling.
  • scaling By using scaling, different object distances to the camera can be taken into account, as a result of which the accuracy of the object position determination can be increased. If the object size in relation to the image format size is known, a calculation for the camera-object distance can be carried out by comparing reference representations with different scaling. The accuracy of the distance calculation depends on the image resolution and snap radius.
  • the recognition function preferably results from the transformation of the wire model in the form of angular rotation and scaling of the wire model and subsequent projection onto the camera plane for the reference representation by finding an identical point constellation, the object representation .
  • the location of the reference representation matches the location of the object representation.
  • a prioritization of the orientation is carried out for possible object positions, with the comparison being carried out in the order of prioritization for object recognition. In this way, the detection of the object position can be accelerated, since the most probable orientations can already lead to detection first.
  • the priority is advantageously a measure of how likely it is that an object will come to rest in this position and orientation in the specific application.
  • the at least one reference representation is preferably shifted over the camera image and rotated in the camera plane according to the possible orientation of the object representations.
  • the search on the camera image benefits from the lack of focus or a capture radius, which allows the proximity to the object representation to be evaluated.
  • the snap radii show position tolerance only. If according to a qualitative size (e.g. 90%) of the reference representation points, such points of the object representation are within the capture circles, the object is considered recognized.
  • snap radii Another role of snap radii is incremental rotation.
  • the permissible tolerance for determining the position of an object also applies to angular accuracy when determining orientation.
  • the snap radius reduces the maximum number of possible rotation steps in the iterative search for correspondence between the reference representation and the object representation.
  • the snap circles represent the area within the image that is examined for an object representation point. Although this increases the amount of data, the computational effort decreases by factors since only a few of the object representation points are used for the comparison. Another role of the snap circles or snap radii is to always use only one point from the object representation for comparison. If, for the purpose of the orientation search, i.e. the rough search, the capture radius is greater than the object-representation-point distance, it can happen that several object-representation-points come to lie in such a capture circle , but only one of these points is evaluated.
  • the method is preferably carried out in such a way that, in addition to the preferred position and rotation in the plane, the most probable scaling is also selected.
  • the evaluation result already shows whether the projection of the wire model is close to a corresponding point constellation of the object.
  • the reference representation is generated immediately before the adjustment using the at least one transformation, i. H. calculated.
  • a previously saved reference representation can be used for the comparison. This is preferably done in the case of a plane on which the object lies and if it is ensured that the object can only rotate in the plane.
  • the individual sides of the object are provided with different colors, with only those object representations being compared with the reference representation which also show the prioritized side of the object according to the color.
  • object representations come to lie within the edges of the reference representation. These cannot be assigned to any orientation and cost computing time. Exceptions are special features of the objects that are used because the object is otherwise very symmetrical, like a cube, i.e. it has several similar sides.
  • the detected position of the at least one object is used to generate parameters for controlling a robot arm for gripping the object.
  • the rotation angle and scaling are transmitted as a distance to the camera, which enables the best possible rotation of the gripper to adapt to the object to be gripped. In this way, for example, the task of bin picking can be solved.
  • Parameters for characterizing the object position of at least one object can be generated with the aid of the detected position. For example, the location of several, z. B. soldered to a common circuit board, electronic components are checked. In this way, it is also possible to identify any constellation of components in their entirety as a properly assembled assembly, i.e. to check their correct arrangement.
  • the method according to the invention advantageously comprises the following steps and features, which can be used in various combinations that are recognizable to those skilled in the art.
  • Points (3D data based on a wire model) are stored for each possible position of the object, so that the process can identify each position of the individual object iteratively through rotation and scaling.
  • the wire model is internally rotated and scaled over all three axes and projected onto a 2D plane.
  • a projection onto a 2D plane takes place since the camera image is also a two-dimensional image. There, the projection of the wire model point meets the camera object point for identification of the object. With the projection it is possible to vary the perspective angle.
  • the wireframe rotates around its 3D axes, projecting each perspective onto the 2D plane and comparing the points of the projection to the detected edge points of the image.
  • the image of the objects to be recognized is recorded with a camera. Since the object detection is carried out robustly with the help of corner and corner points, a low resolution of the camera reduces the computing time, but not the accuracy of the detection. Computing time and resolution are in a quadratic relationship. If the resolution is reduced to , the calculation time is reduced to %.
  • the color and brightness of the camera image are preferably adjusted, i. H. the method increases, for example, the image contrast of the detected object.
  • the user uses a sample object under known lighting conditions to determine those parameters that can be used to achieve the highest image contrast at the object edges.
  • the 3D wireframe model of the reference representation contains only a fraction of the amount of data compared to 3D solid models.
  • the corner points and center points of the edges effectively represent the most important information for object recognition. If the object has a laterally symmetrical shape, bores or other details that emphasize the respective side of the object can be used.
  • Image edge pixels are preferably determined in the camera image, which results in a reduction in the number of points to be compared.
  • three pixel chains with a predetermined number of pixels are considered around each pixel of the current position.
  • the three pixel chains are the pixels above and below, diagonally and to the left and right in relation to the current position pixel considered at a point in time. This results in color and brightness gradients around the current pixel, which are used to determine the edge.
  • An edge is characterized by the fact that color and brightness change erratically in the Change the course of the pixel chain. So, for example, if the color and brightness of the pixels below the current position pixel differ from the pixels above, the current position pixel indicates an edge.
  • the method preferably contains a limit value which must be exceeded in the process. The same is true diagonally and left-to-right equivalently.
  • a corner is characterized by the fact that color and brightness change abruptly in two directions in the course of the pixel chain.
  • edges and corners can be perpendicular, horizontal or diagonal to the scan direction, these three pixel chains are considered.
  • there are various criteria such as characteristic curves within the pixel chains, which are used depending on the brightness conditions and the surface properties of the objects.
  • an edge is also characterized by the fact that the slope in the pixel chain at the top differs from the slope of the pixel chain at the bottom, both horizontally and diagonally.
  • An internally defined snap radius dictates the effective spacing of the image edge points used when scanning the image. It makes no sense if it is stipulated that only one image edge point should be within the snap circle, then image edge points should be at a distance smaller than the snap radius. The remaining image edge points do not contribute to the increase in information and at the same time increase the computational effort.
  • the snap radius of each wireframe point represents a tolerance of matching and can be adjusted at any time to higher resolutions for better matching precision. The aim is to be only as precise as the process requires and no more. This snap radius distance is transferred to the generation of the image-edge-point distance, because this ensures that only those points are evaluated that also contribute to the positioning.
  • the wire model is preferably rotated over all three axes, optionally scaling, and an orthogonal projection onto the 2D plane until the projection of the wire model and image edge points overlap.
  • the angles and thus the viewed perspective can be read from the internal orthogonal projection.
  • the scaling of the internal wireframe also provides a measure of the distance between the camera and the object.
  • the performance of the method can be optimized in different ways. Only visible edges and points of the wireframe are projected onto the plane and if the distance between two points of the visible edges is smaller than the snap radius, only one of the points is considered, which leads to a reduction of the data. Also, if the distance from a wireframe point to an image edge point is less than the snap radius distance, this is considered a match. Only the accuracy that is also required with the definition of the catch radius should be achieved, which reduces the computational effort.
  • the method can be parameterized for special applications. Position detection, orientation detection and object search can be used independently. Tasks of low complexity can be completed in much shorter cycles:
  • the sensitivity of the method can vary during the evaluation. Which color change is identified as edges affects the sensitivity. The number of image edge points recognized in this way increases/decreases with the sensitivity. In this way, the computing effort can be kept to the necessary level, which benefits the cycle time. In this way, it is possible to react to changing lighting conditions by automatically adjusting the sensitivity in order to keep the computing effort as short as possible.
  • the internal color balance can be matched to the external lighting conditions.
  • By adapting the design e.g. B. corners highlighted in color, but also specifically distinctive geometric areas that increase position recognition.
  • a search process until the object is found can be carried out with low resolution, and the resolution can be increased, for example iteratively, to increase the position detection.
  • the increase in the position detection is preferably carried out only with the corners and edge points located in the immediate vicinity of the object position.
  • the above-mentioned object is achieved according to the invention with at least one optical detection unit and one computing unit for carrying out a method according to one of the preceding claims.
  • the advantages of the invention are, in particular, that the method described works reliably and quickly. In particular, in contrast to methods that use deep learning, it is immediately ready for use when a wire model is exchanged, since no complex training is required. It is easy to use with simple data maintenance. 3D cameras are not required.
  • Switching to another product is done simply by exchanging the wire model. It can be flexibly applied to different objects (through dynamic exchange of the wire model). In addition to sorting objects out of a box, the method and the system can also be used to control and monitor process sequences.
  • the method to be presented here is able to identify the object by comparing individual pixels (corner points of the object) and with variable orientation to identify.
  • the method can easily be parallelized in the presence of multiple processors in a CPU or GPU.
  • the method is very robust. Wrong points, i.e. points that were mistakenly recognized due to dirt and reflection, for example, play no role or only a minor role, since the sum of all points in their constellation with a catch radius distance counts as a match.
  • there is preferably one match parameter, e.g. B. Prescribes 90% of the pixels within the snap circles. This results in a snap pattern that is defined by the wireframe but cannot be distorted by false points.
  • FIG. 1 is a perspective view of an exemplary object
  • FIG. 2 further perspective representations of the object according to FIG. 1;
  • FIG. 3 representations of object information
  • FIG. 4 3D data of a cube
  • FIG. 5 2D projections of point clouds of a reference representation and of several object representations
  • FIG. 6 perspective representations of the object according to FIG. 1 in different image resolutions:
  • FIG. 7 shows a flowchart of a method in a first preferred embodiment
  • FIG. 8 shows a flow chart of a method in a second preferred embodiment.
  • an object 2 which is one of the components of an assembly device, is shown in perspective. It is an important and widespread task to optically detect the spatial position of three-dimensional objects.
  • the detected spatial position can be used for this purpose, for example to control a robot arm to grip the corresponding object.
  • the object 2 has a cuboid structure in some areas with an upper side 4, an underside (not visible), two longitudinal sides 6 and two end faces 10, 12, with the end face 10 being arranged between two cuboid projections 8, so that the object 2 with end face 10 and Projections 8 has a U-shaped configuration.
  • FIG. 2 is the object 2 according to FIG. 1 can be seen in different spatial orientations and thus in different spatial positions. Many positions and perspectives are possible, which make it difficult to recognize this special component and can make the necessary algorithm very complex. So that a robot can reliably grip the object and feed it to a next processing station, the spatial orientation of the object 2 must also be precisely known in addition to the position, for which purpose the method according to the invention can be used advantageously.
  • the spatial orientation of the object 2 can be characterized, for example, as shown in FIG. 3 shown.
  • FIG. 3a the side of the object 2 facing the camera should be recognized.
  • the point constellation of the wire model has been brought into agreement with the point constellation of the camera image by recognizing the side of the object, as shown in FIGS. 3b) and 3c)
  • two mutually perpendicular angles of the object namely the angles to a perpendicular or vertical axis 16 and to a horizontal plane can be derived from the transformation data of the wire model.
  • the spatial orientation or position of the object can be clearly identified.
  • the method uses a reduced wire model for an object 2 to be recognized; edges that are not visible are hidden, in which, depending on the corner points and edges, a point set of 20 or a set of points 24 is used, which each represent all vertices and edge midpoints.
  • FIG. 5 shows an optical recording or a photograph of cube-shaped objects 2 in a container.
  • the points 28 of an aligned wire model with the catch radius of a cube are represented by the large round surfaces and the edges of the cube-shaped objects detected in an image are represented by small points (only a few points are provided with reference symbols for the sake of clarity).
  • a total of 92 pixels were detected as edges and 7 points of the wire model were used, which shows an extreme increase in efficiency compared to conventional methods.
  • the data types used are floating point numbers (double in programming language C) with a width of 8 bytes, in contrast to the data types used integer (in programming language C) with only 4 Byte, i.e. half the operation number. This also halves the computing time for the same number of pixels.
  • Points identified as object edges in the plane of the camera image, as well as the wire model points used internally for comparison, consist of points in 2D planes.
  • the projection of the wire model onto the image plane of the detected points allows position and orientation recognition. So while a deep learning algorithm (neural network) always processes all pixels per run and only detects objects with a fixed perspective, the method to be presented here is able to identify the object by comparing individual pixels (corner points of the object) and using a Fraction of data to identify all rotations and scales.
  • the points 24 of the wire model of the cube are a reference representation 34 of the cube, while the detected image points 28 of the recognized cubes each represent an object representation 30 of the corresponding cube.
  • the method reduces the number of points after determining the image edge pixels (points) in the camera image.
  • An internally defined snap radius specifies the effective distance between the image edge points.
  • the snap radius of each wireframe point represents a distance in all directions that indicates what level of matching accuracy is required.
  • the projected wireframe or reference representation 34 of the cube with points 24 are registered with an object representation 30 with points 28 of a cube-shaped object.
  • the criterion according to which the position of an object is recognized is implemented with the help of a recognition function. It specifies how many of the pixels are contained within the snap radii circles projected from the reference representation, e.g. B. 95%. Other conditions apply, such as E.g. that there must not be any pixels within the areas enclosed by the edges of the wire model, because only edges of the objects were detected. Just as the detected points of the objects on the image plane do not have any points that are enclosed by the edges, i.e. are located within the object surfaces, in the event of a match, there must be no points within the corner points and Edge centers come to rest. Procedure for eliminating invalid matches, which can occur when a large number of objects are mixed up in a container.
  • FIG. 6 are from left to right four schematic recordings of the object 2 according to FIG. 1, with the rightmost image showing the object at full camera resolution (100%). From left to right, the camera resolution is 10%, 20%, 50%, and 100% of full camera resolution.
  • the positions of the objects are preferably first roughly recognized with an image, i. H. an image with reduced camera resolution is used. A higher resolution is then used to determine the position of the object more precisely.
  • This can be carried out iteratively or step by step with a number of increasingly higher resolutions. Only the area of the image in which the object representation is located is increased in resolution. This significantly reduces the amount of data and thus also the processing time for each further iterative optimization.
  • the search process until the object is found is thus carried out with a low resolution, and the resolution is increased in order to increase the position recognition.
  • the number of pixels and the processing time are related to the square of the resolution: 10% of the camera resolution leads to a time reduction of 99%.
  • the use of images with reduced camera resolution is also preferably used in the method in order to reduce the processing time.
  • Series productions in particular work with a fixed clock cycle. Since, depending on how full the container is, it can happen that objects are no longer contained in the prioritized orientation and the processing time increases. It makes sense to first determine the position of objects and then only compare the image area and thus the object representation, which also contains an object. This reduces the data to be processed by the number of objects that can basically be detected. If the position of an object is limited, the position and rotation of the object can be determined more precisely on the basis of a higher resolution but only a small image section. In this way, the cycle time of series production is reliably maintained.
  • FIG. 7 shows a preferred embodiment of the method in a block diagram.
  • a wire frame model is created from an object.
  • the points at the vertices of the model and points in the middle of edges are selected, resulting in a point cloud.
  • a number, in particular a large number, of two-dimensional projections of the wire model are created as point clouds, each of these projections being a reference representation 34 of the object 2 .
  • the respective projection includes both a three-dimensional rotation and a scaling. In other preferred embodiments, the scaling is optional if it can be ensured that the object-camera distance is at least approximately the same in each case.
  • the reference representations 34 are prioritized according to their probability of corresponding in terms of spatial orientation and position of the object. Spatial orientations and positions that are more probable based on the geometry of the object are given a higher priority than orientations and positions that are rare.
  • the simplest way to determine such a prioritization is to evaluate component lots, which are counted over a sufficiently large number of tests according to the component sides that were previously colored and visible in the heap. Depending on the position in the container, it is also observed which component sides are visible from above. It is to be expected that flat objects towards the edge will orient themselves from lying flat to standing against the wall.
  • the distribution of the component sides observed from above corresponds to the occurrence of these sides in interaction with one another, i.e. lying together within the container and position within the container. To do this, parts are poured into a container and the recognizable component sides are counted. After repeating it several times, those pages with the highest number are also set as the highest priority, together with the preferred positions. In this way, the evaluation of each reference representation is started in the most suitable position within the container and the position is only changed if the determination of an object has failed at this position.
  • This approach of determining the priority is preferably used when the production cycle times are very short compared to the maximum processing time for determining the positions of at least one of the objects. The requirement is that for 100% of the production cycles, an object is localized and its orientation recognized.
  • a container is optically recorded with a stationary camera.
  • Object representations 30 are determined in the image by determining points of the objects. To do this, 3 pixel chains of a predetermined length are considered around each pixel. The three pixel chains are the pixels above and below, diagonally, and to the left and right of the pixel under consideration at a given point in time. So at least 3 pixels each with the pixel's current position. A component edge is characterized by the fact that color and brightness change suddenly within the pixel chain. So, for example, if the color and brightness of the pixels below the current position pixel differ from the pixels above, the current position pixel indicates an edge. The same applies diagonally and left to right. The scan takes place from left to right and from top to bottom.
  • a component corner is characterized by the fact that color and brightness change suddenly within two pixel chains.
  • edges and corners can be perpendicular, horizontal or diagonal to the scan direction, these three pixel chains are considered.
  • various criteria such as gradients within the pixel chains, which are used depending on the brightness conditions and surface properties of the objects.
  • an edge is also characterized by the fact that the slope of the change in color and brightness of the pixel chain at the top differs from the slope at the bottom, also horizontally and diagonally. Accordingly, depending on the lighting conditions, there are different regulations that have the purpose of evaluating the properties that are favorable for the lighting conditions.
  • the reference representation 34 with the highest priority is compared with the image, so that the positioning of the object or objects in the image can be detected.
  • the reference representation is first placed in the most probable position, e.g. B.
  • the reference presentation 34 is then circularly shifted towards the edge in such a way that it is shifted half the width back and forth and left and right to compare again. If, after checking the entire plane, there is no match, e.g. B. in the case of the container is empty except for a few components, the further search is carried out with a reference representation 34 of lower priority and its preferred position in the container.
  • a representation is calculated from the wire model using the prioritized angles and scaling. This representation is moved over the image. If after a certain number of attempts no match is found, in block 60 the process is repeated with a new representation 34 with lower priority.
  • the search time to find a match increases, since multiple passes each with decreasing priority of the representation 34 take place.
  • the processing time to use the search time as a criterion to signal when the container should be exchanged for a filled one. This is preferably done before the container is empty in order to demand continuous 100% processing of the objects in production.
  • the position of the respective object is determined by comparing the best fitting reference representation 34.
  • the representation is defined as a constellation of points with a given snap radius for each point.
  • a shift, deviation, of the image points to the wire model points is determined as a vector sum.
  • the resulting vector sum points in the direction of displacement. To find an optimal match, the representation is shifted in the opposite direction.
  • the absolute value of the vector is also the smallest.
  • the vector sum is calculated from the X components of the deviation vectors and the Y components. If you put this vector sum in the center of gravity of the reference representation and calculate the angle to the vertical, this shows the rotation direction of the deviation and thus the angular deviation.
  • An opposite angle correction brings the reference representation in improved positioning to the object representation.
  • parameters for controlling a robot arm for gripping the respective object can be calculated.
  • parameters of the orientation and positioning of the robot arm after gripping the object, it can be controlled in such a way that it feeds the gripped object in a desired spatial orientation to a next work step.
  • the orientation when gripping and the orientation for the next work step do not have to match beforehand.
  • FIG. 8 shows a method in a second preferred embodiment.
  • a wireframe model is created specifically for each of a number of objects that represent circuit board components.
  • the points at the vertices of the models and points in the middle of edges are selected, each resulting in a point cloud.
  • a number, in particular a large number, of two-dimensional projections of the point cloud are created for each of the wire-frame models of the various objects, each of these projections being a reference representation 34 of the object 2 .
  • the respective projection includes both a three-dimensional rotation and a scaling.
  • the individual matches are determined either serially, i.e. with a processor, or in parallel with a GPU, i.e. for each object with its own GPU core.
  • the reference representations 34 are prioritized according to their probability of corresponding to an actual spatial position of the objects. Spatial locations that are more probable based on the geometry of the object are given a higher priority than locations that are rare.
  • a circuit board with attached components is optically recorded with a stationary camera.
  • Object representations 30 are determined in the image by determining points of the objects.
  • the reference representation 34 with the highest priority is compared with the image, so that the positioning of the object or objects and the type of object in the image can be identified.
  • a block 64a the position of the respective object is determined by comparing the reference representation 34 that fits best. In this way it can be checked whether all components on the board are properly installed desired orientation are attached. And there is orientation data that describes the orientation in which the improperly attached objects are in order to correct them in the next step.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

Computerimplementiertes Verfahren zur Bestimmung der räumlichen Lage eines Objektes (2), wobei wenigstens ein Objekt (2) mittels wenigstens einer optischen Erfassungseinheit erfasst wird, wobei - zu einer Anzahl von zu erkennenden Objekten (2) jeweils wenigstens eine Referenz-Repräsentation (34) hinterlegt ist, - zu dem jeweils erfassten Objekt (2) eine Objekt-Repräsentation (30) erzeugt wird, - die Objekt-Repräsentation (30) mit wenigstens einer Referenz-Repräsentation (34) abgeglichen wird, wobei - zur Erstellung der Anzahl von Objekt-Repräsentationen (30) an dem Objekt Eck- und/oder Kantenpunkte bestimmt werden, - die Referenz-Repräsentation (34) rechnerisch wenigstens einer dreidimensionalen Transformation unterworfen wird und danach die Punkte auf eine zweidimensionale Ebene projiziert werden, - ein Abgleich der projizierten Punkte (24) und Punkte (28) der Objekt-Repräsentation (30) erfolgt, wobei die Lage des Objekts (2) als erkannt gilt, sofern eine der Wert Erkennungsfunktion der Punkte (24, 28) der Objekt-Repräsentation (30) und wenigstens einer Referenz-Repräsentation (34) in einem vorgegebenen Schwellenbereich liegt.

Description

Beschreibung
Verfahren und System zur Ermittlung der räumlichen Lage eines Objektes
Die Erfindung betrifft ein Verfahren und System zur Ermittlung der Lage eines Objektes.
Die zuverlässige Erkennung der räumlichen Lage von Objekten, die sich in unterschiedlich orientierten Lagen befinden können, mit optischen Erfassungsgeräten ist eine Aufgabe, die in verschiedenen Anwendungsszenarien gelöst werden muss.
So ist beispielsweise eine große technische Herausforderung, Schüttgut aus einer Kiste mit Hilfe eines Roboters Stück für Stück heraus zu nehmen (Bin Picking), um diese Stücke dann einer Produktionsanlage zu zuführen. Die Herausforderung liegt insbesondere darin, dass der Roboter unsortierte Objekte zwar mit Hilfe von Kameras und Sensoren scannt, es jedoch aufwändiger Bildverarbeitungs-Algorithmen bedarf, um die Lage und Position der einzelnen Objekte zu identifizieren. In einzelnen Fällen wird sogar auf 3D-Kameras zurückgegriffen, um das Problem zu vereinfachen.
Maschinenlernen, insbesondere "Deep Learning" mit künstlichen neuronalen Netzen, stellt eine mögliche Lösung für das oben genannte Problem dar, ist aber aufgrund der benötigten sehr hohen Daten-Menge (alle Bildpunkte gehen während jedes Rechenschrittes ein) und der hohen Empfindlichkeit gegenüber Randbedingungen (Lichtverhältnisse, Konturen anderer angrenzender Objekte, sich überlappende Kanten anderer Objekte) nur für wenige Projekte geeignet. Auch können solche Algorithmen nur auf eine Orientierung des Objektes trainiert werden, wodurch es mehrerer solcher Trainingssätze bedarf, um alle Orientierungen zu identifizieren.
Der Erfindung liegt daher die Aufgabe zugrunde, ein verbessertes, robustes und gleichzeitig ressourcenschonendes Verfahren zur Bestimmung der Lage von Objekten anzugeben. Weiterhin soll ein entsprechendes System bereitgestellt werden.
In Bezug auf das Verfahren wird diese Aufgabe erfindungsgemäß gelöst, indem wenigstens ein Objekt mittels wenigstens einer optischen Erfassungseinheit erfasst wird, wobei zu einer Anzahl von zu erkennenden Objekten jeweils wenigstens eine Referenz-Repräsentation hinterlegt wird, zu dem jeweils erfassten Objekt eine Objekt-Repräsentation erzeugt wird, die Objekt-Repräsentation mit wenigstens einer Referenz-Repräsentation abgeglichen wird, wobei zur Erstellung der Anzahl von Objekt-Repräsentationen an dem Objekt Eck- und/oder Kantenpunkte bestimmt werden, die Referenz-Repräsentation rechnerisch wenigstens einer dreidimensionalen Transformation unterworfen wird und danach die Punkte auf eine zweidimensionale Ebene projiziert werden, ein Abgleich der projizierten Punkte und Punkte der Objekt-Repräsentation erfolgt, und wobei die Lage des Objekts als erkannt gilt, sofern eine der Wert Erkennungsfunktion der Punkte der Objekt-Repräsentation und wenigstens einer Referenz-Repräsentation in einem vorgegebenen Schwellenbereich liegt.
Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.
Die Erfindung geht von der Überlegung aus, dass für viele Anwendungen robuste und schnelle Anwendungen zur räumlichen Lage von Objekten benötigt werden. Dabei wäre es vorteilhaft, wenn sowohl der Vorbereitungsaufwand als auch die Adaptierung an neue Objekte möglichst ressourcenschonend erfolgen könnten.
Wie nunmehr erkannt wurde, kann die Aufgabe, die Position und Orientierung eines Objektes zu ermitteln, extrem effizient auf Grundlage der Eck-Punkte bzw. Kantenpunkte eines Drahtmodells des Objektes, gelöst werden, da diese auch in einer 2D-Projektion ausreichend Informationen über die räumliche Lage des Objektes enthalten. Genauso, wie der Abstand und Konstellation aller Eckpunkte eines Draht-Models ein Muster definiert, ist es möglich, durch Orthogonal-Projektion diese Eck-Punkte auf eine Ebene zu projizieren, die vergleichbar mit dem Kamerabild ist, also sich auf der Kamera-Ebene befindet. Jede Verkippung des Draht-Models liefert eine den Winkeln entsprechende „verzerrte“ Variante von Eckpunkten, entsprechend dem Kamera-Bild, das ein Objekt in einer von der Senkrechten abweichenden Perspektive aufgenommen hat.
Damit ergibt sich als Lösung der obigen Aufgabe das Finden einer identischen Punkt-Konstellation, wie es der perspektivischen Projektion des Draht-Models auf die Ebene des Kamera-Bildes entspricht. Die Erfindung reduziert somit das Problem auf die Muster-Suche von verschiedenen Punkt-Konstellationen auf zwei übereinander liegenden parallelen Ebenen, nämlich der Kamera-Bild-Ebene und der Projektions-Ebene.
Vorteilhafterweise umfasst die jeweilige Transformation eine Drehung und/oder Skalierung. Durch das Verwenden von Skalierungen kann unterschiedlichen Objektabständen zur Kamera Rechnung getragen werden, wodurch die Genauigkeit der Objektlagenbestimmung erhöht werden kann. Bei bekannter Objekt-Größe zu Bild-Format-Größe kann durch Vergleich von Referenz-Repräsentationen mit unterschiedlicher Skalierung eine Berechnung für den Kamera-Objekt-Abstand durchgeführt werden. Die Genauigkeit der Abstands-Berechnung ist abhängig von Bild-Auflösung und Fang-Radius.
Die Erkennungsfunktion ergibt sich bevorzugt aus der Transformation des Draht-Models in Form von Winkel-Rotation und Skalierung des Draht-Models und anschließender Projektion auf die Kamera-Ebene zur Referenz-Repräsentation, durch das Finden einer identischen Punkt-Konstellation, der Objekt-Repräsentation. Die Lage der Referenz-Repräsentation stimmt dann mit der Lage der Objekt-Repräsentation überein. In diesem Falle kann davon ausgegangen werden, dass das Objekt die gleiche Winkel-Rotation wie das Draht-Modell besitzt. Für mögliche Objektlagen wird in einer bevorzugten Ausführungsform des Verfahrens eine Priorisierung der Orientierung durchgeführt, wobei zur Objekterkennung der Vergleich in der Reihenfolge der Priorisierung durchgeführt wird. Auf diese Weise kann die Erkennung der Objektlage beschleunigt werden, da zuerst die wahrscheinlichsten Orientierungen bereits zur Erkennung führen können. Die Priorität ist dabei vorteilhafterweise ein Maß dafür, wie wahrscheinlich ein Objekt in der konkreten Anwendung in dieser Lage und Orientierung zum Liegen kommt.
Die wenigstens eine Referenz-Repräsentation wird bevorzugt über das Kamerabild verschoben und in der Kamera-Ebene rotiert gemäß der möglichen Orientierung der Objekt-Repräsentationen. Dabei kommt der Suche auf dem Kamera-Bild die Unschärfe bzw. ein Fang-Radius zugute, die/der erlaubt, die Nähe zur Objekt-Repräsentation zu bewerten.
In dem Fall, dass die Repräsentationen als Punkt-Listen geführt werden, zeigen die Fang-Radien nur Lage-Toleranz an. Befinden sich gemäß einer qualitativen Größe (z. B. 90 %) der Referenz-Repräsentations-Punkte solche der Objekt-Repräsentation innerhalb der Fang-Kreise, gilt das Objekt als erkannt.
Eine weitere Rolle der Fang-Radien ist die Schrittweise Rotation. Die zulässige Toleranz zur Bestimmung der Lage eines Objektes, gilt auch der Winkel-Genauigkeit bei der Bestimmung der Orientierung. Auch hier reduziert der Fang-Radius die maximale Anzahl der möglichen Rotations-Schritte, bei der iterativen Suche nach Übereinstimmung zwischen der Referenz-Repräsentation und der Objekt-Repräsentation.
In dem Fall, dass die Referenz-Repräsentationen und Objekt-Repräsentationen als Koordinaten-Matrix geführt werden, stellen die Fang-Kreise den Bereich innerhalb des Bildes dar, der nach einem Objekt-Repräsentations-Punkt untersucht wird. Zwar erhöht sich dadurch der Datenaufwand, aber der Rechen-Aufwand nimmt um Faktoren ab, da nur noch wenige der Objekt-Repräsentations-Punkte zum Vergleich herangezogen werden. Eine weitere Rolle der Fang-Kreise bzw. Fang-Radien ist die, immer nur einen Punkt aus der Objekt-Repräsentation zum Vergleich heranzuziehen. Im Falle, dass zum Zwecke der Orientierungs-Suche, also der groben Suche, der Fangradius größer als der Objekt-Repräsentations-Punkte-Abstand ist, kann es Vorkommen, dass mehrere Objekt-Repräsentations-Punkte in einen solchen Fang-Kreis zu liegen kommen, aber nur eines dieser Punkte ausgewertet wird.
Das Verfahren wird bevorzugt in der Weise durchgeführt, dass neben der bevorzugten Lage und Rotation in der Ebene auch die wahrscheinlichste Skalierung gewählt wird. Anhand des Auswerte-Ergebnisses lässt sich bereits erkennen, ob sich die Projektion des Draht-Model in der Nähe einer entsprechenden Punkt-Konstellation des Objektes, befindet.
Exemplarisch kann man sich vorstellen, in dem Fall, es gäbe nur ein Objekt im Kamerabild, dass die Auswertung einen Vektor liefert, egal an welcher Stelle mit dem Punkt-Muster begonnen wird, der die Richtung der Position des Objektes anzeigt. Größere Schritte reduzieren die Anzahl der Wiederholungen des Vergleichs-Vorgangs und somit den Zeitbedarf bis zur Übereinstimmung.
Die Referenz-Repräsentation wird einer bevorzugten Ausführung unmittelbar vor dem Abgleich mit Hilfe der wenigstens einen Transformation generiert, d. h. berechnet.
Alternativ dazu kann eine vorher abgespeicherte Referenz-Repräsentation für den Abgleich verwendet werden. Dies erfolgt bevorzugt im Falle einer Ebene, auf der das Objekt liegt, und wenn sicherstellt ist, dass nur Rotationen des Objektes in der Ebene stattfinden können.
In einer bevorzugten Ausbildung des Verfahrens sind die einzelnen Seiten des Objektes mit verschiedenen Farben ausgestattet, wobei nur diejenigen Objekt-Repräsentationen mit der Referenz-Repräsentation verglichen werden, die gemäß der Farbe auch die priorisierte Seite des Objektes zeigt. Vorteilhafterweise wird ausgeschlossen, dass Objekt-Repräsentationen innerhalb der Kanten der Referenz-Repräsentation zu liegen kommen. Diese sind keiner Orientierung zuordbar und kosten Rechenzeit. Ausnahme bilden besondere Merkmale der Objekte, die herangezogen werden, weil das Objekt sonst sehr symmetrisch, gemäß einem Würfel ist, also mehrere ähnliche Seiten aufweist.
Mit Hilfe der erkannten Lage des wenigstens eines Objektes werden in einer bevorzugten Ausführungsform Parameter zur Ansteuerung eines Roboterarm zum Greifen des Objektes generiert. In diesem Falle werden die Rotations-Winkel und Skalierung als Abstand zur Kamera übermittelt, die eine bestmögliche Rotation des Greifers als Anpassung an das zu greifende Objekt. Auf diese Weise kann beispielsweise die Aufgabe des Bin-Picking gelöst werden.
Mit Hilfe der erkannten Lage können Parameter zur Charakterisierung der Objektlage wenigstens eines Objektes generiert werden. Beispielsweise kann die Lage von mehreren, z. B. auf eine gemeinsame Leiterplatte aufgelöteten, elektronischen Komponenten überprüft werden. So ist es auch möglich, jede beliebige Konstellation von Bauteilen in ihrer Gesamtheit als einwandfrei montierte Baugruppe zu identifizieren, also ihre korrekte Anordnung zu prüfen.
Das erfindungsgemäße Verfahren umfasst vorteilhaft folgende Schritte und Merkmale, die in verschiedenen dem Fachmann erkennbar sinnvollen Kombinationen verwendet werden können. Für jede mögliche Lageposition des Objekts werden Punkte (3D-Daten basierend auf einem Drahtmodel) hinterlegt, so dass das Verfahren jede Lage des einzelnen Objektes iterativ durch Rotation und Skalierung identifizieren kann. Das Draht-Model wird dazu intern über alle drei Achsen rotiert und skaliert und auf eine 2D-Ebene projiziert. Eine Projektion auf eine 2D-Ebene erfolgt, da das Kamerabild auch ein zweidimensionales Abbild ist. Dort begegnen sich Projektion der Draht-Model-Punkt mit Kamera-Objekt-Punkte zur Identifikation des Objektes. Mit der Projektion ist es möglich, den perspektivischen Winkel zu variieren. Das Draht-Model rotiert um seine 3D-Achsen, wobei jede Perspektive auf die 2D-Ebene projiziert und die Punkte der Projektion mit den detektierten Kanten-Punkten des Bildes verglichen werden.
Das Bild der zu erkennenden Objekte wird mit einer Kamera aufgenommen. Da die Objekterkennung robust mit Hilfe von Eck- und Katenpunkten erfolgt, reduziert eine geringe Auflösung der Kamera die Rechenzeit, nicht aber die Genauigkeit der Detektion. Rechenzeit und Auflösung stehen in einem quadratischen Zusammenhang. Wird die Auflösung auf reduziert, wird die Rechenzeit auf % reduziert.
Bevorzugt werden Farbe und Helligkeit des Kamera-Bildes angepasst, d. h. das Verfahren erhöht beispielsweise den Bildkontrast des erfassten Objektes. Dazu ermittelt der Benutzer mit Hilfe eines Musterobjektes unter bekannten Lichtverhältnissen diejenigen Parameter, mit deren Hilfe der höchste Bild-Kontrast an den Objekt-Kanten erzielt wird.
Das 3D-Draht-Modell der Referenz-Repräsentation umfasst im Vergleich zu 3D-Solid-Modellen nur einen Bruchteil der Daten-Menge. Die Eck-Punkte und Mittelpunkte der Kanten stellen effektiv die wichtigsten Informationen zur Objekterkennung dar. Weist das Objekt eine seitensymmetrische Form auf, können Bohrungen oder andere, die jeweilige Seite des Objektes heraushebende Details, herangezogen werden.
Im Kamerabild werden bevorzugt Bild-Kanten-Pixel (Punkte) ermittelt, woraus eine Reduzierung der Anzahl der zu vergleichenden Punkte erfolgt. Dazu werden um jeden Pixel der aktuellen Position drei Pixel-Ketten von vorher festgelegter Anzahl Pixel betrachtet. Die drei Pixel-Ketten sind die Pixel oberhalb und unterhalb, diagonal und links wie rechts bezogen auf den zu einem Zeitpunkt betrachteten Pixel aktueller Position. Dadurch ergeben sich Farbe- und Helligkeits-Verläufe um den aktuellen Pixel herum, die zur Ermittlung der Kante herangezogen werden. Eine Kante zeichnet sich dadurch aus, dass Farbe und Helligkeit sich sprunghaft im Verlauf der Pixel-Kette ändern. Wenn sich also beispielshaft die Farbe und Helligkeit der Pixel unterhalb des Pixels aktueller Position gegenüber den Pixeln oberhalb unterscheiden, zeigt der Pixel aktueller Position eine Kante an. Dabei enthält das Verfahren bevorzugt einen Grenzwert, der dabei überschritten sein muss. Das gleiche gilt in äquivalenter Weise diagonal und von links nach rechts.
Eine Ecke zeichnet sich dadurch aus, dass Farbe und Helligkeit sich in zwei Richtungen sprunghaft im Verlauf der Pixel-Kette ändern.
Der Scan findet von links nach rechts und von oben nach unten statt. Da Kanten und Ecken senkrecht, waagrecht oder diagonal zur Scan-Richtung vorliegen können, werden diese drei Pixel-Ketten betrachtet. Darüber hinaus gibt es verschiedene Kriterien wie Kennlinien innerhalb der Pixel-Ketten, die abhängig von Helligkeits-Verhältnisse und Oberflächenbeschaffenheit der Objekte herangezogen werden. Beispielsweise zeichnet sich eine Kante auch dadurch aus, dass die Steigung in der Pixel-Kette oben von der Steigung der Pixel-Kette unten abweicht, so auch waagrecht und diagonal.
Ein intern definierter Fang-Radius gibt den effektiven Abstand der Bild-Kantenpunkte vor, die beim Scannen des Bildes verwendet werden. Es macht keinen Sinn, wenn vorgeschrieben ist, dass jeweils nur ein Bild-Kantenpunkt innerhalb des Fang-Kreises zu liegen kommen soll, dass sich dann Bild-Kanten-Punkte in einem Abstand kleiner dem Fang-Radius zu liegen kommen. Die übrigen Bild-Kanten-Punkte tragen nicht zur Informationserhöhung bei und erhöhen gleichzeig den Rechen-Aufwand. Der Fang-Radius jedes Draht-Model-Punktes stellt eine Toleranz der Übereinstimmung dar und kann jederzeit an höhere Auflösung angepasst werden, um eine höhere Übereinstimmungspräzision zu erzielen. Vorgabe ist, nur so genau zu sein, wie der Prozess es erfordert und nicht mehr. Dieser Fang-Radius-Abstand wird auf die Generierung der Bild-Kanten-Punkte-Abstand übertragen, weil so sichergestellt ist, nur diejenigen Punkt zu bewerten, die auch zur Positionierung beitragen. Zur Erkennung der Objektlage erfolgen bevorzugt eine Rotation des Draht-Models über alle drei Achsen, optional eine Skalierung, und eine Orthogonal-Projektion auf die 2D-Ebene bis zur Über-Deckung von Projektion des Draht-Models und Bild-Kanten-Punkten. Die Winkel und damit betrachtete Perspektive sind aus interner Orthogonal-Projektion ablesbar. Auch liefert die Skalierung des internen Drahtmodels ein Maß für den Abstand zwischen Kamera und Objekt.
Die Performance des Verfahrens kann auf unterschiedliche Arten optimiert werden. Lediglich sichtbare Kanten und Punkte des Draht-Models werden auf die Ebene projiziert und ist der Abstand zwischen zwei Punkten der sichtbaren Kanten kleiner als der Fangradius, wird nur eines der Punkte berücksichtigt, was zu einer Reduktion der Daten führt. Auch ist der Abstand eines Draht-Model-Punktes zu einem Bild-Kanten-Punkt geringer als der Fang-Radius-Abstand, gilt dies als Übereinstimmung. Es soll lediglich die Genauigkeit erzielt werden, die auch mit Definition des Fang-Radius gefordert ist, was den Rechenaufwand reduziert.
In dem Fall, dass die einzelnen Seiten des Objektes mit verschiedener Farbe ausgestattet sind, ist es zusätzlich möglich allein diejenigen Punkt-Muster zu betrachten, die gemäß der Farbe auch die Seite sichtbar zeigen, die der priorisierten Projektion des Draht-Modells entspricht. Alle Übrigen können getrost ausgeblendet werden, wodurch die Rechenzeit stark reduziert wird.
Das Verfahren kann für spezielle Anwendungen parametrisiert werden. Positionserkennung, Orientierungserkennung und Objektsuche können unabhängig verwendet werden. Aufgaben von geringer Komplexität können in viel kürzeren Zyklen vollzogen werden:
• Positionserkennung zur Detektion der Position von zu justierenden Objekten.
• Orientierungserkennung zur Justierung von Objekten deren Ausrichtung im Montageprozess festgelegt wird.
• Objektsuche und Orientierung für Objekte, deren exakte Position und Orientierung zum Zeitpunkt der Verwendung zu detektieren sind. Nur ein Würfel kommt auf allen Seiten mit gleicher Wahrscheinlichkeit zu liegen. Die Position eines allgemeinen Objektes unterliegt einer statistisch verteilen Lage-Position. Zur Reduzierung des Rechenaufwandes, werden zunächst die wahrscheinlichsten Lagepositionen projiziert und erst bei Ausbleiben von Fund- Ergebnissen die übrigen herangezogen.
Die Sensitivität des Verfahrens kann während der Auswertung variieren. Welche Farbänderung als Kanten identifiziert wird, beeinflusst die Sensitivität. Die damit erkannte Zahl an Bild-Kanten-Punkte wächst/fällt mit der Sensitivität. So lässt sich der Rechenaufwand auf das notwendige Maß halten, was der Zyklus-Zeit zugutekommt. So kann auf wechselnde Lichtverhältnisse reagiert werden, indem die Sensitivität automatisch angepasst wird, um immer einen kürzest möglichen Rechenaufwand zu halten.
Mit Hilfe von in der Farbe abgestimmten Platten der Objekt-Umgebung ist es zusätzlich möglich, diffuses farbiges Licht zu erzeugen, welches aufgrund spezifischer Farben den Kontrast erhöhen kann.
Der interner Farbabgleich kann mit den äußeren Lichtverhältnissen abgestimmt werden. Auch können durch Anpassung des Designs, z. B. farblich hervorgehobene Ecken, aber auch spezifisch markante geometrische Bereiche, die Positionserkennung erhöhen. Ein Suchvorgang bis zum Finden des Objektes kann mit geringer Auflösung durchgeführt werden, und zur Steigerung der Positionserkennung kann die Auflösung, beispielsweise iterativ, erhöht werden. Dabei wird die Steigerung der Positionserkennung bevorzugt nur mit den in unmittelbarer Nähe der Objekt-Position befindlichen Ecken und Kantenpunkten durchgeführt.
In Bezug auf das System wird die oben genannte Aufgabe erfindungsgemäß gelöst mit wenigstens einer optischen Erfassungseinheit und einer Recheneinheit zur Durchführung eines Verfahrens nach einem der vorherigen Ansprüche. Die Vorteile der Erfindung liegen insbesondere darin, dass das beschriebene Verfahren zuverlässig und schnell arbeitet. Insbesondere im Gegensatz zu Verfahren, welche Deep-Learning einsetzen, ist es mit Austausch eines Draht-Modells sofort einsatzbereit, da kein aufwändiges Training notwendig ist. Es ist einfach handhabbar mit einfacher Daten-Pflege. 3D-kameras werden nicht benötigt.
Eine Umstellung auf ein anderes Produkt geschieht einfach durch Austausch des Draht-Models. Es ist flexibel auf verschiedene Objekte (durch dynamischen Tausch des Draht-Models) anwendbar. Das Verfahren bzw. das System können neben der Sortierung von Objekten aus einer Kiste, auch dazu verwendet werden, Prozessabläufe zu kontrollieren und zu überwachen.
Während also ein Deep-Learning-Algorithmus (neuronales Netz) immer alle Bildpunkte pro Durchlauf verarbeitet und immer nur auf eine Orientierung trainiert ist, ist das hier vorzustellende Verfahren in der Lage das Objekt durch Vergleich einzelner Bildpunkte (Eckpunkte des Objektes) und bei variabler Orientierung zu identifizieren.
Und werden die einzelnen Seiten des Objektes mit verschiedener Farbe ausgestattet, ist es zusätzlich möglich, allein diejenigen Bildpunkte zu betrachten, die gemäß der Farbe auch die priorisierte Seite zeigen, die übrigen Bildpunkte werden ignoriert. So ist es möglich gezielt spezifische Bauteile zu detektieren und gemäß einem Fehlerkatalog Fehlermöglichkeiten zu zeigen. Eine solche Anwendung ist geeignet, dem Operator eine Fehleranalyse zu erleichtern. Und Wartungsarbeiten zu verkürzen.
Das Verfahren kann bei Vorhandensein von mehreren Prozessoren in einer CPU oder GPU einfach parallelisiert werden. Das Verfahren arbeitet sehr robust. Falsche Punkte, also Punkte, die beispielsweise aufgrund von Schmutz und Reflektion irrtümlich erkannt wurden, spielen keine Rolle oder nur eine geringe Rolle, da als Übereinstimmung die Summe aller Punkte in ihrer Konstellation mit Fang-Radius-Abstand gelten. Wie zuvor dargelegt, gibt es bevorzugt einen Übereinstimmungs-Parameter, der z. B. 90 % der Bildpunkte innerhalb der Fang-Kreise vorschreibt. Damit ergibt sich ein Fang-Muster, das durch das Draht-Model definiert ist, aber nicht durch Falsch-Punkte verzerrt werden kann.
Ein Ausführungsbeispiel der Erfindung wird anhand einer Zeichnung näher erläutert. Darin zeigen in stark schematisierter Darstellung:
FIG. 1 eine perspektivische Darstellung eines beispielhaften Objektes;
FIG. 2 weitere perspektivische Darstellungen des Objektes gemäß FIG. 1;
FIG. 3 Darstellungen von Objektinformationen;
FIG. 4 3D-Daten eines Würfels;
FIG. 5 2D-Projektionen von Punktwolken einer Referenz-Repräsentation und von mehreren Objekt-Repräsentationen;
FIG. 6 perspektivische Darstellungen des Objektes gemäß FIG. 1 in verschiedenen Bildauflösungen:
FIG. 7 ein Ablaufdiagramm eines Verfahrens in einer ersten bevorzugten Ausführungsform; und
FIG. 8 ein Ablaufdiagramm eines Verfahrens in einer zweiten bevorzugten Ausführungsform.
Gleiche Teile sind in allen Figuren mit denselben Bezugszeichen versehen.
In FIG. 1 ist ein Objekt 2, welches eine der Komponenten einer Montage-Vorrichtung ist, perspektivisch dargestellt. Es ist eine wichtige und weit-verbreitete Aufgabe, die räumliche Lage von dreidimensionalen Objekten optisch zu erfassen. Die erkannte räumliche Lage kann beispielsweise dazu genutzt werden, einen Roboterarm zum Greifen des entsprechenden Objektes anzusteuern. Das Objekt 2 ist bereichsweise quaderförmig aufgebaut mit einer Oberseite 4, einer Unterseite (nicht sichtbar), zwei Längsseiten 6 und zwei Stirnseiten 10, 12, wobei die Stirnseite 10 zwischen zwei quaderförmige Vorsprünge 8 angeordnet ist, so dass das Objekt 2 mit Stirnseite 10 und Vorsprüngen 8 eine U-förmige Formgebung aufweist.
In FIG. 2 ist das Objekt 2 gemäß FIG. 1 in verschiedenen räumlichen Orientierungen und somit in verschiedenen räumlichen Lagen zu sehen. Viele Positionen und Perspektiven sind möglich, die das Erkennen dieses speziellen Bauteils erschweren und den notwendigen Algorithmus sehr aufwändig gestalten können. Damit ein Roboter das Objekt zuverlässig greifen und einer nächsten Verarbeitungsstation zuführen kann, muss zusätzlich zur Position auch die räumliche Orientierung des Objektes 2 genau bekannt sein, wozu das erfindungsgemäße Verfahren vorteilhaft eingesetzt werden kann.
Die räumliche Orientierung des Objektes 2 kann beispielsweise charakterisiert werden, wie in FIG. 3 dargestellt. Wie in FIG. 3a) gezeigt, sollte die der Kamera zugewandte Seite des Objektes 2 erkannt werden. Da durch Erkennen der Seite des Objektes die Punkt-Konstellation des Draht-Modells mit Punkt-Konstellation des Kamera-Bildes in Übereinstimmung gebracht wurden, können auch wie in den FIG. 3b) und 3c) dargestellt, zwei senkrecht zueinanderstehende Winkel des Objektes, nämlich die Winkel zu einer senkrechten bzw. vertikalen Achse 16 und zu einer horizontalen Ebene aus den Transformations-Daten des Draht-Modells abgeleitet werden. Mit Hilfe dieser Informationen kann die räumliche Orientierung bzw. Lage des Objektes eindeutig erkannt werden.
Anhand der FIG. 4 bis 8 wird im Folgenden eine bevorzugte Ausführungsform des Verfahrens zur Bestimmung der räumlichen Lage eines Objektes beschrieben. Das Verfahren verwendet zu einem zu erkennenden Objekt 2 ein reduziertes Drahtmodell; nicht sichtbare Kanten sind ausgeblendet, bei dem in Abhängigkeit von den Eckpunkten und Kanten eine Punktmenge 20 bzw. Menge von Punkten 24 verwendet wird, welche jeweils alle Eckpunkte und Kantenmittelpunkte repräsentieren.
In FIG.5 ist schematisch eine optische Aufnahme bzw. ein Foto von würfelförmigen Objekten 2 in einem Behälter dargestellt. Mit den großen runden Flächen sind die Punkte 28 eines ausgerichteten Drahtmodells mit Fangradius eines Würfels und mit kleinen Punkten die in einem Bild detektierten Kanten der würfelförmigen Objekte dargestellt (der Übersichtlichkeit halber sind nur wenige Punkte mit Bezugszeichen versehen). Insgesamt wurden 92 Bildpunkte (gegenüber der doch geringen Auflösung von 120x100 = 12000 Bildpunkten) als Kanten detektiert und 7 Punkte des Draht-Models verwendet, was eine extreme Effizienz-Steigerung gegenüber konventionellen Verfahren aufzeigt.
Hier sei noch ein Unterschied zu Deep Learning verfahren aufgezeigt, deren verwendete Daten-Typen Fließkomma-Zahlen (double in Programmiersprache C) sind, deren Breite 8 Byte beträgt, im Gegensatz zu den verwendeten Daten-Typen Integer (in Programmiersprache C) mit nur 4 Byte, also einer halb so großen Operation-Zahl. Damit halbiert sich die Rechendauer bei gleicher Anzahl Bildpunkte zusätzlich.
Sowohl als Objekt-Kanten identifizierte Punkte in der Ebene des Kamera-Bildes, wie auch die intern zum Vergleich herangezogenen Draht-Model-Punkte, bestehen aus Punkten in 2D-Ebenen. Die Projektion des Draht-Models auf die Bild-Ebene der detektierten Punkte erlaubt eine Positionserkennung und Orientierungserkennung. Während also ein Deep-Learning-Algorithmus (neuronales Netz) immer alle Bildpunkte pro Durchlaufverarbeitet und nur Objekte mit einer festgelegten Perspektive detektiert, ist das hier vorzustellende Verfahren in der Lage, das Objekt durch Vergleich einzelner Bildpunkte (Eckpunkte des Objektes) und bei Verwendung eines Bruchteils an Daten alle Rotationen und Skalierungen, zu identifizieren. Die Punkte 24 des Drahtmodells des Würfels sind eine Referenz-Repräsentation 34 des Würfels, während die detektierten Bild-Punkte 28 der erkannten Würfel jeweils eine Objekt-Repräsentation 30 des entsprechenden Würfels darstellen.
Bevor ein Abgleich der Referenz-Repräsentationen mit den Objekt-Repräsentationen erfolgt, reduziert das Verfahren nach Ermitteln der Bild-Kanten-Pixel (Punkte) im Kamera-Bild die Anzahl der Punkte. Ein intern definierter Fang-Radius gibt dabei den effektiven Abstand der Bild-Kantenpunkte vor.
Von Bild-Kanten-Punkten, die sich innerhalb des Fang-Radius-Abstandes befinden, ist jeweils nur einer notwendig. Die übrigen Bild-Kanten-Punkte tragen nicht zur Informationserhöhung bei und erhöhen gleichzeig den Rechen-Aufwand.
Der Fang-Radius jedes Draht-Model-Punktes stellt einen Abstand in allen Richtungen dar, der anzeigt, welche Übereinstimmungs-Genauigkeit gefordert ist.
In der FIG. 5 sind das projizierte Drahtmodell bzw. die Referenz-Repräsentation 34 des Würfels mit Punkten 24 in Übereinstimmung gebracht bzw. in Deckung gebracht mit einer Objekt-Repräsentation 30 mit Punkten 28 eines würfelförmigen Objektes.
Das Kriterium, nach dem die Lage eines Objektes als erkannt gilt, wird mit Hilfe einer Erkennungsfunktion realisiert. Sie gibt vor, wie viele der Bildpunkte innerhalb der von der Referenz-Repräsentation projizierten Kreise der Fang-Radien enthalten sind, z. B. 95 %. Dabei kommen weitere Bedingungen zum Tragen, wie z. B., dass es innerhalb der von den Kanten des Draht-Model eingeschlossenen Flächen, keine Bildpunkte zu liegen kommen dürfen, weil auch nur Kanten der Objekte detektiert wurden. Genauso, wie die detektierten Punkte der Objekte auf der Bild-Ebene keine Punkte aufweisen, die von den Kanten eingeschlossen werden, sich also innerhalb der Objekt-Flächen befinden, darf im Falle einer Übereinstimmung keine Punkte innerhalb des von dem Draht-Model projizierten Eckpunkte und Kanten-Mittelpunkte zu liegen kommen. Ausschlussverfahren von nicht gültigen Übereinstimmungen, die auftreten können, wenn eine große Zahl Objekte gemischt durcheinander in einem Behälter liegen. In FIG. 6 sind von links nach rechts vier schematischen Aufnahmen des Objektes 2 gemäß FIG. 1 dargestellt, wobei das ganz rechte Bild das Objekt in voller Kameraauflösung (100 %) zeigt. Von links nach rechts beträgt die Kameraauflösung 10 %, 20 %, 50 % und 100 % der vollen Kameraauflösung.
Vorzugsweise werden in dem Verfahren zunächst mit einem Bild grob die Positionen der Objekte erkannt, d. h. es wird ein Bild mit verringerter Kameraauflösung verwendet. Um dann die Lage des Objektes genauer zu bestimmen, wird eine höhere Auflösung verwendet. Dies kann iterativ bzw. schrittweise mit mehreren, immer höher werdenden Auflösungen durchgeführt werden. Dabei wird nur noch der Bereich des Bildes in der Auflösung erhöht, in dem sich die Objekt-Repräsentation befindet. Das reduziert die Datenmenge erheblich und somit auch die Verarbeitungs-Zeit für jede weitere iterative Optimierung. Der Suchvorgang bis zum Finden des Objektes wird somit mit geringer Auflösung durchgeführt, und zur Steigerung der Positionserkennung wird die Auflösung erhöht. Die Pixel-Zahl und die Verarbeitungs-Zeit stehen in einem quadratischen Zusammenhang zur Auflösung: 10 % der Kamera-Auflösung führen zu einer Zeitreduzierung von 99 %.
Das Verwenden von Bildern mit reduzierter Kameraauflösung wird bevorzugt in dem Verfahren auch eingesetzt, um die Verarbeitungszeit zu reduzieren. Gerade Serien-Produktionen arbeiten mit einem festen Takt-Zyklus. Da je nach Füllgrad des Behälters Vorkommen kann, dass Objekte nicht mehr in priorisierter Ausrichtung enthalten sind, die Verarbeitungszeit steigt, ist es sinnvoll, zunächst die Position von Objekten zu ermitteln, um dann nur den Bild-Bereich und damit Objekt-Repräsentation zu vergleichen, der auch ein Objekt enthält. Das reduziert die zu verarbeitenden Daten um die Zahl an Objekten, die grundsätzlich detektierbar sind. Ist die Position eines Objektes eingegrenzt, kann die Lage und Rotation des Objektes auf Basis einer höheren Auflösung aber nur einem kleinen Bild-Ausschnitt genauer ermittelt werden. Auf diese Weise wird die Taktzeit der Serien-Produktion sicher eingehalten. In FIG. 7 ist eine bevorzugte Ausführungsform des Verfahrens in einem Blockdiagram dargestellt. In einem Block 40 wird von einem Objekt ein Drahtgittermodell erstellt. In diesem Drahtgittermodell werden die Punkte an den Eckpunkten des Modells und Punkte in der Mitte von Kanten ausgewählt, woraus eine Punktwolke entsteht. In einem Block 46 wird eine Anzahl, insbesondere eine Vielzahl, von zweidimensionalen Projektionen des Draht-Models als Punktwolken erstellt, wobei jede dieser Projektionen eine Referenz-Repräsentation 34 des Objektes 2 ist. Die jeweilige Projektion umfasst dabei sowohl eine dreidimensionale Rotation als auch eine Skalierung. In anderen bevorzugten Ausführungen ist die Skalierung optional, wenn sichergestellt werden kann, dass der Abstand Objekt-kamera jeweils zumindest näherungsweise gleich groß ist.
In einem darauffolgenden Block 52 werden die Referenz-Repräsentationen 34 nach ihrer Wahrscheinlichkeit, bezüglich räumlicher Orientierung und Lage des Objektes zu entsprechen, priorisiert. Räumliche Orientierungen und Lagen, die aufgrund der Geometrie des Objektes wahrscheinlicher sind, erhalten eine höhere Priorisierung als Orientierungen und Lagen, die selten Vorkommen. Die einfachste Weise eine solchen Priorisierung zu ermitteln, ist die Auswertung von Bauteillose, die gemäß der vorher gefärbten und im Haufen sichtbaren Bauteil-Seiten über eine genügen große Zahl an Versuchen ausgezählt werden. Dabei wird auch beobachtet, abhängig von Position im Behälter, welche Bauteil-Seiten von oben sichtbar sind. So ist zu erwarten, dass flache Objekte zum Rand hin sich von flach liegend auf an der Wand stehend orientieren.
Die Verteilung der von oben beobachteten Bauteil-Seiten entsprechen dem Auftreten dieser Seiten in Wechselwirkung zueinander, also in gemeinsamem Liegen innerhalb des Behälters und Position innerhalb des Behälters. Dazu werden Teile in einen Behälter geschüttet und die erkennbaren Bauteil-Seiten gezählt. Nach mehrmaligem Wiederholen werden diejenigen Seiten, mit höchster Anzahl auch als höchste Priorität festgelegt, zusammen mit den bevorzugten Positionen. So wird die Auswertung jede Referenz-Repräsentationen in der bestgeeigneten Position innerhalb des Behälters begonnen und erst, wenn an dieser Position die Ermittlung eines Objektes fehlgeschlagen hat, wird die Position geändert. Diese Herangehensweise, die Priorität zu ermitteln, wird bevorzugt eingesetzt, wenn die Produktions-Zykluszeiten sehr kurz gegenüber der maximalen Verarbeitungszeit zum Ermitteln der Lagen, von mindestens eines der Objekte, ist. Dabei gilt die Forderung, dass für 100 % der Produktions-Zyklen jeweils ein Objekt lokalisiert und dessen Orientierung erkannt wurde.
In einem darauffolgenden Block 56 wird ein Behälter optisch mit einer stationären Kamera erfasst. In dem Bild werden Objekt-Repräsentationen 30 bestimmt, indem Punkte der Objekte bestimmt werden. Dazu werden um jedes Pixel 3 Pixel-Ketten von vorher festgelegter Länge betrachtet. Die drei Pixel-Ketten sind die Pixel oberhalb und unterhalb, diagonal und links wie rechts bezogen auf den zu einem Zeitpunkt betrachteten Pixel. Also mindestens jeweils 3 Pixel mit dem Pixel aktueller Position. Eine Bauteil-Kante zeichnet sich dadurch aus, dass Farbe und Helligkeit sich sprunghaft innerhalb der Pixel-Kette ändern. Wenn sich also beispielshaft die Farbe und Helligkeit der Pixel unterhalb des Pixels aktueller Position gegenüber den Pixeln oberhalb unterscheiden, zeigt der Pixel aktueller Position eine Kante an. Das gleiche gilt diagonal und links nach rechts. Der Scan findet von links nach rechts und von oben nach unten statt.
Eine Bauteil-Ecke zeichnet sich dadurch aus, dass Farbe und Helligkeit sich sprunghaft innerhalb zweier Pixel-Ketten ändern.
Da Kanten und Ecken senkrecht, waagrecht oder diagonal zur Scan-Richtung vorliegen können, werden diese drei Pixel-Ketten betrachtet. Darüber hinaus gibt es verschiedene Kriterien wie Verläufe innerhalb der Pixel-Ketten, die abhängig von Helligkeits-Verhältnisse und Oberflächenbeschaffenheit der Objekte herangezogen werden. Beispielsweise zeichnet sich eine Kante auch dadurch aus, dass die Steigung der Färb- und Helligkeits-Änderung der Pixel-Kette oben von der Steigung unten abweicht, so auch waagrecht und diagonal. Dementsprechend gibt es je nach Lichtverhältnissen unterschiedliche Vorschriften, die zum Zwecke haben, die für die Lichtverhältnisse jeweils günstigen Eigenschaften auszuwerten. In einem darauffolgenden Block 60 wird die am höchsten priorisierte Referenz-Repräsentation 34 mit dem Bild abgeglichen, so dass eine Erkennung der Positionierung des oder der Objekte in dem Bild erkannt werden können. Die Referenz-Repräsentation wird zunächst auf die wahrscheinlichste Position gelegt, z. B. die Mitte des Behälters. Die Referenz-Präsentation 34 wird dann kreisförmig zum Rand hin verschoben, und zwar in der Weise, das um die halbe Breite vor und zurück sowie links und rechts verschoben wird, um erneut zu vergleichen. Wenn nach Prüfen der gesamten Ebene keine Übereinstimmung, z. B. im Falle der Behälter ist bis auf wenige Bauteile leer, erfolgt die weitere Suche mit einer Referenz-Repräsentation 34 von niedrigerer Priorität und deren favorisierter Position im Behälter.
Zur Bestimmung der Lage und Erkennen des Objektes in einem bekannten Abstand zur Kamera geschieht nach festgelegter Reihenfolge. Zunächst wird aus dem Draht-Model eine Repräsentation anhand der priorisierten Winkel und Skalierung errechnet. Diese Repräsentation wird über das Bild bewegt. Ist nach einer bestimmten Zahl von Versuchen keine Übereinstimmung gefunden, wird in Block 60 der Vorgang mit einer neuen Repräsentation 34 mit niedrigerer Priorität wiederholt.
Handelt es sich um ein Objekt, dessen Abstand nicht genau bekannt ist, wird Vorgang mit einer anderen Skalierung wiederholt. Und erst, wenn für keine der Skalierungen eine Übereinstimmung gefunden wurde, wird der Vorgang mit Repräsentation 34 einer niedrigeren Priorität wiederholt. Auf diese Weise wird schließlich jede mögliche Objekt-Lage ermittelt, bis der Objekt-Behälter leer ist.
Wenn sich nur noch wenige Objekte im Behälter befinden oder die Objekte sich in einer sehr unwahrscheinlichen Lage befinden, ähnlich einer Münze, die auf dem Rand steht, steigt die Such-Zeit bis zum Finden einer Übereinstimmung, da mehrere Durchläufe mit jeweils abnehmender Priorität der Repräsentation 34 stattfinden. Somit ist es ein Vorteil für die Verarbeitungszeit, die Such-Zeit als Kriterium heran zu ziehen, um zu signalisieren, wann der Behälter gegen einen gefüllten ausgetauscht werden soll. Bevorzugt wird dies durchgeführt, noch bevor der Behälter leer ist, um Forderung nach durchgängiger 100 % Verarbeitung der Objekte in der Produktion.
In einem Block 64 wird die Lage des jeweiligen Objektes durch Abgleich der am besten passenden Referenz-Repräsentation 34 bestimmt. Die Repräsentation ist als Punkte-Konstellation mit für jeden Punkt gegebenem Fang-Radius definiert. Eine Verschiebung, Abweichung, der Bild-Punkte zu den Draht-Model-Punkten, wird als Vektor-Summe ermittelt. Die resultierende Vektor-Summe, zeigt in Richtung der Verschiebung. Um eine optimale Übereinstimmung zu finden, wird die Repräsentation entgegen dieser Richtung verschoben.
Bei bester Übereinstimmung ist auch der Betrag des Vektors am geringsten. Da aber auch eine rotatorische Abweichung vorliegen kann, wird Vektor-Summe aus den X-Komponenten der Abweichungs-Vektoren und den Y-Komponenten berechnet. Legt man diese Vektor-Summe in den Schwerpunkt der Referenz-Repräsentation und berechnet den Winkel zur Senkrechten, dieser zeigt die Rotations-Richtung der Abweichung und damit die Winkel-Abweichung. Eine entgegen gesetzte Winkel-Korrektur bringt die Referenz-Repräsentation in verbesserter Positionierung zur Objekt-Repräsentation.
In einem weiteren Verfahrensschritt können Parameter zur Ansteuerung eines Roboterarms zum Greifen des jeweiligen Objektes berechnet werden. Mit Hilfe der Parameter der Orientierung und Positionierung des Roboterarms kann dieser nach Greifen des Objektes so angesteuert werden, dass er das gegriffene Objekt in einer gewünschten räumlichen Orientierung einem nächsten Arbeitsschritt zuführt. Dabei müssen Orientierung beim Greifen und Orientierung für den nächsten Arbeitsschritt vorher nicht übereinstimmen.
In FIG. 8 ist ein Verfahren in einer zweiten bevorzugten Ausführungsform dargestellt. In einem Block 40a wird von mehreren Objekten, die Platinen-Bausteine darstellen, jeweils eigens ein Drahtgittermodell erstellt. In den Drahtgittermodellen werden die Punkte an den Eckpunkten der Modelle und Punkte in der Mitte von Kanten ausgewählt, woraus jeweils eine Punktwolke entsteht. In einem Block 46a wird für jedes der Drahtgittermodelle der verschiedenen Objekte eine Anzahl, insbesondere eine Vielzahl, von zweidimensionalen Projektionen der Punktwolke erstellt, wobei jede dieser Projektionen eine Referenz-Repräsentation 34 des Objektes 2 ist. Die jeweilige Projektion umfasst dabei sowohl eine dreidimensionale Rotation als auch eine Skalierung.
Dabei werden die einzelnen Übereinstimmungen entweder seriell, also mit einem Prozessor, oder parallel mit einer GPU, also für jedes Objekt mit einem eigenen GPU-Kern, ermittelt.
In einem darauffolgenden Block 52a werden die Referenz-Repräsentationen 34 nach ihrer Wahrscheinlichkeit, einer tatsächlichen räumlichen Lage der Objekte zu entsprechen, priorisiert. Räumliche Lagen, die aufgrund der Geometrie des Objektes wahrscheinlicher sind, erhalten eine höhere Priorisierung als Lagen, die selten Vorkommen.
In einem darauffolgenden Block 56a wird eine Platine mit aufgesetzten Bauteilen optisch mit einer stationären Kamera erfasst. In dem Bild werden Objekt-Repräsentationen 30 bestimmt, indem Punkte der Objekte bestimmt werden.
In einem darauffolgenden Block 60a wird die am höchsten priorisierte Referenz-Repräsentation 34 mit dem Bild abgeglichen, so dass eine Erkennung der Positionierung des oder der Objekte und die Art des Objektes in dem Bild erkannt werden können.
Sofern nicht alle Objekte als erkannt gelten, werden in Block 60a weitere Repräsentationen 34 mit niedriger Priorität verwendet.
In einem Block 64a wird die Lage des jeweiligen Objektes durch Abgleich der am besten passenden Referenz-Repräsentation 34 bestimmt. Auf diese Weise kann überprüft werden, ob alle Bausteine auf der Platine ordnungsgemäß in der gewünschten Orientierung angebracht sind. Und es liegen Orientierungs-Daten vor, die beschreiben in welcher Orientierung, die nicht ordnungsgemäß angebrachten Objekte liegen, um diese im nächsten Schritt zu korrigieren.
Bezugszeichenliste
2 Objekt
4 Oberseite
6 Längsseite
8 Vorsprüngen
10 Stirnseite
12 Stirnseite
16 vertikale Achse
20 Punktmenge
24 Punkt
28 Punkt
30 Objekt-Repräsentation
34 Referenz-Repräsentation
40 Block
46 Block
52 Block
56 Block
60 Block
64 Block
40a Block
46a Block
52a Block
56a Block
60a Block
64a Block

Claims

Patentansprüche
1. Computerimplementiertes Verfahren zur Bestimmung der räumlichen Lage eines Objektes (2), wobei wenigstens ein Objekt (2) mittels wenigstens einer optischen Erfassungseinheit erfasst wird, wobei
- zu einer Anzahl von zu erkennenden Objekten (2) jeweils wenigstens eine Referenz-Repräsentation (34) hinterlegt wird,
- zu dem jeweils erfassten Objekt (2) eine Objekt-Repräsentation (30) erzeugt wird,
- die Objekt-Repräsentation (30) mit wenigstens einer Referenz-Repräsentation (34) abgeglichen wird, wobei
- zur Erstellung der Anzahl von Objekt-Repräsentationen (30) an dem Objekt Eck- und/oder Kantenpunkte bestimmt werden,
- die Referenz-Repräsentation (34) rechnerisch wenigstens einer dreidimensionalen Transformation unterworfen wird und danach die Punkte auf eine zweidimensionale Ebene projiziert werden,
- ein Abgleich der projizierten Punkte (24) und Punkte (28) der Objekt-Repräsentation (30) erfolgt, und wobei die Lage des Objekts (2) als erkannt gilt, sofern eine der Wert Erkennungsfunktion der Punkte (24, 28) der Objekt-Repräsentation (30) und wenigstens einer Referenz-Repräsentation (34) in einem vorgegebenen Schwellenbereich liegt.
2. Verfahren nach Anspruch 1, wobei die jeweilige Transformation eine Drehung und/oder Skalierung umfasst.
3. Verfahren nach Anspruch 1 oder 2, wobei die Erkennungsfunktion die Summe von Funktionen der Differenzen der Punkte (24) der Referenz-Repräsentation und der Punkte (28) der Objekt-Repräsentation umfasst.
4. Verfahren nach einem der Ansprüche 1 bis 3, wobei für mögliche Objektlagen eine Priorisierung durchgeführt wird, und wobei zur Objekterkennung der Vergleich in der Reihenfolge der Priorisierung durchgeführt wird.
5. Verfahren nach einem der Ansprüche 1 bis 4, wobei die wenigstens eine Referenz-Repräsentation (34) über das Kamerabild verschoben wird.
6. Verfahren nach einem der Ansprüche 1 bis 5, wobei die Referenz-Repräsentation (34) unmittelbar vor dem Abgleich mit Hilfe der wenigstens einen Transformation generiert wird.
7. Verfahren nach einem der Ansprüche 1 bis 6, wobei die einzelnen Seiten des Objektes (2) mit verschiedenen Farben ausgestattet sind, und wobei allein diejenigen Objekt-Repräsentationen (30) mit der Referenz-Repräsentation (34) verglichen werden, die gemäß der Farbe auch die priorisierte Seite des Objektes (2) zeigt.
8. Verfahren nach einem der Ansprüche 1 bis 7, wobei ausgeschlossen wird, dass Objekt-Repräsentationen (30) innerhalb der Kanten der Referenz-Repräsentation (34) zu liegen kommen.
9. Verfahren nach einem der Ansprüche 1 bis 8, wobei eine vorher abgespeicherte Referenz-Repräsentation (34) für den Abgleich verwendet wird.
10. Verfahren nach einem der Ansprüche 1 bis 9, wobei mit Hilfe der erkannten Lage des wenigstens eines Objektes (2) Parameter zur Ansteuerung eines Roboterarm zum Greifen des Objektes (29) generiert werden.
11. Verfahren nach einem der Ansprüche 1 bis 10, wobei mit Hilfe der erkannten Lage Parameter zur Charakterisierung der Objektlage wenigstens eines Objektes (2) generiert werden.
12. System zur Bestimmung der räumlichen Lage eines Objektes (2), umfassend wenigstens eine optische Recheneinheit und eine Kontrolleinheit zur Durchführung eines Verfahrens nach einem der vorherigen Ansprüche.
PCT/DE2022/200150 2021-07-15 2022-07-05 Verfahren und system zur ermittlung der räumlichen lage eines objektes WO2023284922A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102021207551.7 2021-07-15
DE102021207551.7A DE102021207551A1 (de) 2021-07-15 2021-07-15 Verfahren und System zur Ermittlung der räumlichen Lage eines Objektes

Publications (1)

Publication Number Publication Date
WO2023284922A1 true WO2023284922A1 (de) 2023-01-19

Family

ID=82850162

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2022/200150 WO2023284922A1 (de) 2021-07-15 2022-07-05 Verfahren und system zur ermittlung der räumlichen lage eines objektes

Country Status (2)

Country Link
DE (1) DE102021207551A1 (de)
WO (1) WO2023284922A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040247171A1 (en) * 2002-07-26 2004-12-09 Yoshihito Hashimoto Image processing method for appearance inspection
JP5093591B2 (ja) * 2008-03-10 2012-12-12 株式会社Ihi 三次元位置姿勢計測方法および装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040247171A1 (en) * 2002-07-26 2004-12-09 Yoshihito Hashimoto Image processing method for appearance inspection
JP5093591B2 (ja) * 2008-03-10 2012-12-12 株式会社Ihi 三次元位置姿勢計測方法および装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LOWE D G ED - BOYKOV YURI ET AL: "ROBUST MODEL-BASED MOTION TRACKING THROUGH THE INTEGRATION OF SEARCH AND ESTIMATION", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, vol. 8, no. 2, 1 August 1992 (1992-08-01), pages 113 - 122, XP000306599, DOI: 10.1007/BF00127170 *

Also Published As

Publication number Publication date
DE102021207551A1 (de) 2023-01-19

Similar Documents

Publication Publication Date Title
DE112011103794B4 (de) Aufnehmervorrichtung für Werkstücke
EP2053539B1 (de) Klassifizieren von Objekten sowie Erkennung von deren Position und Orientierung im Raum
DE102020120526A1 (de) Verfahren und computersystem zur objektidentifizierung
EP3685303A1 (de) Verfahren zur erkennung einer objektinstanz und/oder orientierung eines objekts
DE102015011914A1 (de) Konturlinienmessvorrichtung und Robotersystem
DE102006055758A1 (de) Verfahren zur Kalibrierung von Kameras und Projektoren
DE102016200386B4 (de) Verfahren zum Steuern eines Manipulatorsystems
DE102015212932A1 (de) Verfahren zum Steuern eines Roboters und/oder eines autonomen fahrerlosen Transportsystems
DE102017116853A1 (de) System und Verfahren zur automatischen Auswahl von 3D-Ausrichtungsalgorithmen in einem Sehsystem
DE112010002677T5 (de) Verfahren und vorrichtung zum bestimmen einer formübereinstimmung in drei dimensionen
DE102018114222A1 (de) Verfahren zum Untersuchen von übereinstimmenden Prüfobjekten
DE102016100134B4 (de) Verfahren und Vorrichtung zum Untersuchen eines Objekts unter Verwendung von maschinellem Sehen
EP2064672A2 (de) Verfahren und vorrichtung zur bildverarbeitung
DE102017219244B4 (de) Inspektionsbedingungsbestimmungseinrichtung, inspektionsbedingungsbestimmungsverfahren und inspektionsbedingungsbestimmungsprogramm
EP1543471B1 (de) Erfassen und greifen von gegenst nden
DE10297595T5 (de) Verfahren zum automatischen Definieren eines Teilemodells
WO2023284922A1 (de) Verfahren und system zur ermittlung der räumlichen lage eines objektes
DE102006036345B4 (de) Verfahren und Vorrichtung zur Lagebestimmung von Objekten im dreidimensionalen Raum
DE102018218611A1 (de) Verfahren und Recheneinrichtung zum Erzeugen eines dreidimensionalen CAD-Modells
DE102009007024A1 (de) Verfahren und Vorrichtung zum Vereinzeln von Bauteilen
EP3582140A1 (de) System zur automatischen erkennung von laborarbeitsgegenständen sowie verfahren zum betrieb eines systems zur automatischen erkennung von laborgegenständen
DE102019201633A1 (de) Kalibrierung eines Sensors für ein Fahrzeug basierend auf objektseitigen und bildseitigen Identifikationsindizes eines Referenzobjektes
DE102022106765B3 (de) Verfahren zum Bestimmen einer Lage eines Objekts relativ zu einer Erfassungseinrichtung, Computerprogramm und Datenträger
DE102008052440A1 (de) Verfahren und Vorrichtung zum Vereinzeln von Bauteilen
AT502810B1 (de) Verfahren zur optischen prüfung von gegenständen

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22753604

Country of ref document: EP

Kind code of ref document: A1