DE102020204829B4 - Modeling objects using robot-guided cameras - Google Patents
Modeling objects using robot-guided cameras Download PDFInfo
- Publication number
- DE102020204829B4 DE102020204829B4 DE102020204829.0A DE102020204829A DE102020204829B4 DE 102020204829 B4 DE102020204829 B4 DE 102020204829B4 DE 102020204829 A DE102020204829 A DE 102020204829A DE 102020204829 B4 DE102020204829 B4 DE 102020204829B4
- Authority
- DE
- Germany
- Prior art keywords
- robot
- camera
- guided
- pose
- poses
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 28
- 238000004590 computer program Methods 0.000 claims description 4
- 238000001454 recorded image Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 description 15
- 239000013598 vector Substances 0.000 description 14
- 239000012636 effector Substances 0.000 description 11
- 239000000523 sample Substances 0.000 description 10
- 238000001514 detection method Methods 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000013016 damping Methods 0.000 description 3
- 230000001678 irradiating effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 241001136792 Alle Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39226—Operational space formulation, project model into cartesian coordinates
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40564—Recognize shape, contour of object, extract position and orientation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40613—Camera, laser scanner on end effector, hand eye manipulator, local
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
Verfahren zum Modellieren eines Objekts (1) mittels einer durch einen Roboter (2) geführten Kamera (3), mit den Schritten:- Ausrichten (S30) der robotergeführten Kamera auf einen Zielpunkt;- Bewegen (S40) der robotergeführten Kamera in verschiedene Posen relativ zu dem Objekt unter Beibehaltung der Ausrichtung auf den Zielpunkt;- Aufnehmen (S50) von Bildern des Objekts mit der Kamera in den verschiedenen Posen;- Abspeichern (S50) von Posendaten, die von der jeweiligen Pose abhängen, und Bilddaten, die von einem in dieser Pose aufgenommenem Bild abhängen; und- Ermitteln (S60, S70) eines Modells des Objekts auf Basis der abgespeicherten Posen- und Bilddaten.Method for modeling an object (1) by means of a camera (3) guided by a robot (2), comprising the steps of:- aligning (S30) the robot-guided camera to a target point;- moving (S40) the robot-guided camera into various poses relative to the object while maintaining the alignment to the target point;- taking (S50) images of the object with the camera in the various poses;- storing (S50) pose data that depend on the respective pose and image data that depend on an image taken in this pose; and- determining (S60, S70) a model of the object on the basis of the stored pose and image data.
Description
Die vorliegende Erfindung betrifft ein Verfahren, System und Computerprogrammprodukt zum Modellieren eines Objekts mittels einer durch einen Roboter geführten Kamera.The present invention relates to a method, system and computer program product for modeling an object by means of a camera guided by a robot.
Die
Die
Die
Die
Die
Die
Aufgabe der vorliegenden Erfindung ist es, die Modellierung von Objekten zu verbessern.The object of the present invention is to improve the modeling of objects.
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Ansprüche 8, 9 stellen ein System bzw. Computerprogrammprodukt zur Durchführung eines hier beschriebenen Verfahrens unter Schutz. Die Unteransprüche betreffen vorteilhafte Weiterbildungen.This object is achieved by a method having the features of
Nach einer Ausführung der vorliegenden Erfindung umfasst ein Verfahren zum Modellieren eines Objekts mittels einer durch einen Roboter geführten Kamera die Schritte:
- - Ausrichten der robotergeführten Kamera (mittels des Roboters) auf einen, insbesondere vorgegebenen und/oder objektfesten, Zielpunkt;
- - Bewegen der robotergeführten Kamera (mittels des Roboters) in verschiedene Posen relativ zu dem Objekt unter Beibehaltung der Ausrichtung (der Kamera) auf den Zielpunkt;
- - Aufnehmen von Bildern des Objekts mit der Kamera in diesen verschiedenen Posen;
- - Abspeichern
- - von Posendaten, die von der jeweiligen Pose abhängen, in einer Ausführung die jeweilige Pose angeben bzw. definieren und/oder auf Basis von gemessenen Gelenk- bzw. Achsstellungen des Roboters ermittelt werden, und
- - von Bilddaten, die von einem in dieser bzw. der jeweiligen Pose aufgenommenem Bild abhängen, in einer Ausführung auf Basis des aufgenommenen Bildes ermittelt, insbesondere berechnet, werden; und
- - Ermitteln, in einer Ausführung Berechnen, eines, in einer Ausführung zwei- oder dreidimensionalen, Modells des Objekts, in einer Ausführung Generieren eines neuen Modells oder Modifizieren eines vorhandenen Modells, auf Basis bzw. in Abhängigkeit von diesen abgespeicherten Posen und Bilddaten, wobei in einer Ausführung Bilddaten, die von einem in einer Pose aufgenommenem Bild abhängen, den Posendaten, die von dieser Pose abhängen, jeweils zugeordnet sind bzw. werden.
- - Aligning the robot-guided camera (by means of the robot) to a target point, in particular a predetermined and/or object-fixed one;
- - Moving the robot-guided camera (by means of the robot) into different poses relative to the object while maintaining the orientation (of the camera) to the target point;
- - Taking pictures of the object with the camera in these different poses;
- - Save
- - of pose data that depend on the respective pose, in one embodiment specify or define the respective pose and/or are determined on the basis of measured joint or axis positions of the robot, and
- - from image data that depend on an image taken in this or the respective pose, are determined, in particular calculated, in an embodiment on the basis of the image taken; and
- - Determining, in one embodiment calculating, a model of the object, in one embodiment two- or three-dimensional, in one embodiment generating a new model or modifying an existing model on the basis of or depending on these stored poses and image data, wherein in one embodiment image data that depend on an image taken in a pose are or are respectively assigned to the pose data that depend on this pose.
Hierdurch kann in einer Ausführung ein Modell des Objekts vorteilhaft, insbesondere rasch und/oder präzise, ermittelt werden. Eine Pose umfasst in einer Ausführung eine ein-, zwei- oder dreidimensionale Position und/oder eine ein-, zwei- oder dreidimensionale Orientierung.In one embodiment, this allows a model of the object to be determined advantageously, in particular quickly and/or precisely. In one embodiment, a pose comprises a one-, two- or three-dimensional position and/or a one-, two- or three-dimensional orientation.
In einer Ausführung wird die robotergeführte Kamera in eine oder mehrere der Posen durch Aufprägen von Kräften auf den Roboter bewegt, in einer Ausführung durch manuelles Aufprägen bzw. Aufprägen bzw. Handführen durch einen Bediener. Hierdurch kann in einer Ausführung ein Modell des Objekts vorteilhaft, insbesondere rasch und/oder präzise, ermittelt werden.In one embodiment, the robot-guided camera is moved into one or more of the poses by applying forces to the robot, in one embodiment by manual application or application or manual guidance by an operator. In one embodiment, this allows a model of the object to be determined advantageously, in particular quickly and/or precisely.
Zusätzlich oder alternativ wird in einer Ausführung die robotergeführte Kamera automatisiert in eine oder mehrere der Posen bewegt, in einer Ausführung ohne extern auf den Roboter ausgeübte Kräfte bzw. ohne Bewegungsbefehlseingaben eines Bedieners. Hierdurch kann in einer Ausführung ein Modell des Objekts vorteilhaft, insbesondere rasch und/oder präzise, ermittelt werden.Additionally or alternatively, in one embodiment, the robot-guided camera is automatically moved into one or more of the poses, in one embodiment without external forces exerted on the robot or without movement command inputs from an operator. In this way, in one embodiment, a model of the object can be advantageously determined, in particular quickly and/or precisely.
In einer Ausführung werden beim bzw. zum Bewegen der robotergeführten Kamera in eine oder mehrere der Posen (jeweils) Antriebe des Roboters mittels bzw. auf Basis von Operational Space Framework und/oder auf Basis von einer vorgegebenen minimalen Distanz des Roboters und/oder der Kamera zu dem Zielpunkt, insbesondere derart bzw. mit der Maßgabe, dass der Roboter und/oder die Kamera eine vorgegebene minimale Distanz zu dem Zielpunkt einhalten, und/oder auf Basis vorgegebener Gelenkgrenzen des Roboters, insbesondere derart bzw. mit der Maßgabe, dass der Roboter vorgegebene Gelenkgrenzen einhält, gesteuert. Hierdurch kann in einer Ausführung ein Modell des Objekts vorteilhaft, insbesondere rasch und/oder präzise, ermittelt werden.In one embodiment, when or to move the robot-guided camera into one or more of the poses (respectively), drives of the robot are controlled by means of or on the basis of the Operational Space Framework and/or on the basis of a predetermined minimum distance of the robot and/or the camera to the target point, in particular in such a way or with the proviso that the robot and/or the camera maintain a predetermined minimum distance to the target point, and/or on the basis of predetermined joint limits of the robot, in particular in such a way or with the proviso that the robot maintains predetermined joint limits. In one embodiment, this allows a model of the object to be determined advantageously, in particular quickly and/or precisely.
Beim Operational Space Framework wird ein (operationales) Koordinatensystem verwendet, um die Position und Orientation eines operationellen Punkts („operational point“) in einem Referenzsystem in Abhängigkeit von einer Aufgabe zu beschreiben, wobei der Raum dieser Aufgabe als Operational Space bezeichnet wird. Entsprechend sind in dem Operational Space nur die Koordinaten zu spezifizieren, die zur Beschreibung der Aufgabe erforderlich sind.The Operational Space Framework uses an (operational) coordinate system to describe the position and orientation of an operational point in a reference system as a function of a task, whereby the space of this task is referred to as the operational space. Accordingly, only the coordinates required to describe the task need to be specified in the operational space.
Aufgaben können insbesondere im kartesischen bzw. Arbeitsraum und/oder im Gelenkkoordinatenraum des Roboters beschrieben werden.Tasks can be described in particular in the Cartesian or workspace and/or in the joint coordinate space of the robot.
Mehrere simultane Aufgaben können insbesondere durch mehrere Operational Spaces implementiert werden. Zusätzlich oder alternative können Aufgaben in einer Ausführung als operationelle Kräfte beschrieben werden, beispielsweise als Kräfte, um einen Endeffektor in eine Soll-Position zu bewegen und Gelenke von ihren Gelenkgrenzen wegzutreiben bzw. -halten. Diese operationellen Kräfte können mittels einer Jacobi-Matrix auf Kräfte, insbesondere (Dreh)Momente, im Gelenkkoordinatenraum abgebildet werden, um den Roboter zu steuern, wobei vorliegend auch ein Regeln verallgemeinernd als Steuern bezeichnet wird.In particular, multiple simultaneous tasks can be implemented by multiple operational spaces. Additionally or alternatively, tasks in an execution can be described as operational forces. These operational forces can be used, for example, as forces to move an end effector into a target position and to drive or hold joints away from their joint limits. These operational forces can be mapped to forces, in particular (torsional) moments, in the joint coordinate space using a Jacobi matrix in order to control the robot, whereby in this case a regulation is also generally referred to as control.
Das dynamische Verhalten eines Punktes („operational point“) im sogenannten Operational Space kann insbesondere durch
Im Gelenkkoordinatenraum kann das dynamische Verhalten des Roboters insbesondere beschrieben werden durch:
Unter Verwendung der Jacobi-Matrix Jt ergibt sich als Beziehung zwischen den operationellen Kräften ft und den Gelenk- bzw. Antriebskräften, insbesondere -drehmomenten τ:
Wenn der Roboter bezüglich der Aufgabe redundant bzw. die Dimension der Minimal- bzw. Gelenkkoordinaten q größer als die Dimension der Aufgabenkoordinaten xt ist (dim(q) > dim(xt)), können Bewegungen bzw. (Antriebs)Kräfte bzw. -momente im Nullraum von
Damit ergibt sich:
Der generalisierte Gelenk-, insbesondere Antriebskraft-, insbesondere -momentenvektor τ0 in (4) kann für eine zweite bzw. nachranige(re) Aufgabe genutzt werden, die im Nullraum (nur) dann vollständig ausgeführt wird, wenn sie nicht mit der vorrangige(re)n Aufgabe kollidiert bzw. interferiert, welche durch den Kraftvektor ft durchgeführt wird, d.h. welche eine höhere Priorität aufweist. Dies ermöglicht es, eine Priorisierung bzw. priorisierte Struktur für mehrere Aufgaben zu realisieren:
Die Aufgabe, den Endeffektor bzw. einen hierzu ortsfesten Punkt, insbesondere einen Blick- bzw. Ausrichte-, insbesondere Fokuspunkt der Kamera, an der kartesischen (Ziel)Position xE = [x,y, z]T zu halten, kann insbesondere durch ein virtuelles Feder-Dämpfer-System implementiert werden:
Die entsprechenden Antriebskräfte bzw. -momente zum Kommandieren bzw. Steuern des Roboters ergeben sich durch Projektion in den Gelenkkoordinatenraum:
In einer Ausführung werden eine oder mehrere zu erfassende (Soll-)Ansichten des Objekts, in einer Ausführung eine oder mehrere (Soll-)Ansichten, die zu einer vollständigen Erfassung bzw. Abbildung aller (aktuell) sichtbaren Flächen des Objekts erforderlich sind, ermittelt und eine oder mehrere der Posen auf Basis dieser ermittelten Ansicht(en) ermittelt. In einer Ausführung werden diese ermittelten Posen automatisiert angefahren bzw. die robotergeführte Kamera automatisiert in diese Posen bewegt. Hierdurch kann in einer Ausführung ein Modell des Objekts vorteilhaft, insbesondere rasch und/oder präzise, ermittelt werden.In one embodiment, one or more (target) views of the object to be captured, in one embodiment, one or more (target) views that are required for a complete capture or representation of all (currently) visible surfaces of the object are determined, and one or more of the poses are determined on the basis of these determined view(s). In one embodiment, these determined poses are automatically approached or the robot-guided camera is automatically moved into these poses. In one embodiment, this allows a model of the object to be advantageously determined, in particular quickly and/or precisely.
In einer Ausführung wird der Zielpunkt auf Basis wenigstens eines mit der Kamera aufgenommenen Bildes ermittelt, in einer Ausführung auf Basis eines Zentrums, in einer Ausführung Schwerpunktes, einer Punktewolke, die auf Basis des bzw. der aufgenommenen Bilder ermittelt wird. Hierdurch kann in einer Ausführung ein Modell des Objekts vorteilhaft, insbesondere rasch und/oder präzise, ermittelt werden.In one embodiment, the target point is determined on the basis of at least one image taken with the camera, in one embodiment on the basis of a center, in one embodiment on the basis of a center of gravity, of a point cloud that is determined on the basis of the image(s) taken. In one embodiment, this allows a model of the object to be determined advantageously, in particular quickly and/or precisely.
In einer Ausführung wird beim Ermitteln von Bilddaten ein Hintergrund im aufgenommenen Bild wenigstens teilweise ausgeblendet, in einer Ausführung mittels Segmentierung, beispielsweise eines RANSAC-basierten Ebenen-Fittings. Hierdurch kann in einer Ausführung ein Modell des Objekts vorteilhaft, insbesondere rasch und/oder präzise, ermittelt werden.In one embodiment, when determining image data, a background in the recorded image is at least partially hidden, in one embodiment by means of segmentation, for example a RANSAC-based plane fitting. In one embodiment, this allows a model of the object to be advantageously determined, in particular quickly and/or precisely.
Die Kamera ist in einer Ausführung eine 2D- oder 3D-Kamera, die aufgenommenen Bilder entsprechend in einer Ausführung 2D- bzw. 3D-Bilder des Objekts.The camera is either a 2D or 3D camera, and the images taken are respectively 2D or 3D images of the object.
In einer Ausführung kann eine beschränkte Handführung verwendet werden, wobei die Ausrichtung auf den Zielpunkt beibehalten bzw. das Objekt im Blick der Kamera gehalten wird. Der Bediener kann den Roboter manuell bewegen und der Roboter passt die Orientierung automatisch an, wobei das Objekt immer in der Mitte des Kamerabildes gehalten und die minimale Distanz zum Objekt eingehalten wird.In one implementation, limited hand guidance can be used, maintaining orientation to the target point or keeping the object in the view of the camera. The operator can move the robot manually and the robot automatically adjusts the orientation, always keeping the object in the center of the camera image and maintaining the minimum distance to the object.
In einer Ausführung können Bewegungen um das Objekt herum derart geplant und automatisiert durchgeführt werden, dass nur ein kartesischer Punkt (der Flansch oder das Handgelenk) programmiert werden muss und die Orientierung automatisch angepasst wird.In one embodiment, movements around the object can be planned and automated in such a way that only one Cartesian point (the flange or the wrist) needs to be programmed and the orientation is automatically adjusted.
Die Erfindung kann in einer Ausführung einen oder mehrere der folgenden Vorteile bieten:
- - der Bediener muss nur den Ort des Objekts bzw. den Zielpunkt definieren, was auch automatisiert mittels 3D-Bildverarbeitung erfolgen kann;
- - Arbeitsraumbeschränkungen können automatisch bzw. implizit berücksichtigt bzw. eingehalten werden. Dies kann Programmieraufwand, insbesondere -zeit sparen, indem die Komplexität der Planung reduziert wird;
- - verwendete Robotertrajektorien können abgespeichert und wieder verwendet werden, was eine Offline-Programmierung unnötig machen kann;
- - der Bediener muss sich nicht um kollisionsfreie Bahnplanung kümmern, indem Gelenkbegrenzungen festgelegt werden.
- - the operator only has to define the location of the object or the target point, which can also be done automatically using 3D image processing;
- - Workspace restrictions can be automatically or implicitly taken into account or complied with. This can save programming effort, especially time, by reducing the complexity of planning;
- - used robot trajectories can be saved and reused, which can make offline programming unnecessary;
- - the operator does not have to worry about collision-free path planning by setting joint limits.
Die Verwendung des Roboters kann die Genauigkeit der Modellierung verbessern, da die Posen der Kamera unter Verwendung der sehr präzisen Vorwärts-Kinematik ermittelt werden und nur von der Kamerakalibrierung abhängen, die ebenfalls sehr präzise sein kann.Using the robot can improve the accuracy of modeling because the camera poses are determined using very precise forward kinematics and depend only on the camera calibration, which can also be very precise.
Ein Mittel im Sinne der vorliegenden Erfindung kann hard- und/oder softwaretechnisch ausgebildet sein, insbesondere eine, vorzugsweise mit einem Speicher- und/oder Bussystem daten- bzw. signalverbundene, insbesondere digitale, Verarbeitungs-, insbesondere Mikroprozessoreinheit (CPU), Graphikkarte (GPU) oder dergleichen, und/oder ein oder mehrere Programme oder Programmmodule aufweisen. Die Verarbeitungseinheit kann dazu ausgebildet sein, Befehle, die als ein in einem Speichersystem abgelegtes Programm implementiert sind, abzuarbeiten, Eingangssignale von einem Datenbus zu erfassen und/oder Ausgangssignale an einen Datenbus abzugeben. Ein Speichersystem kann ein oder mehrere, insbesondere verschiedene, Speichermedien, insbesondere optische, magnetische, Festkörper- und/oder andere nicht-flüchtige Medien aufweisen. Das Programm kann derart beschaffen sein, dass es die hier beschriebenen Verfahren verkörpert bzw. auszuführen imstande ist, sodass die Verarbeitungseinheit Schritte solcher Verfahren ausführen kann und damit insbesondere ein Objekt modellieren, insbesondere den kameraführenden Roboter entsprechend kommandieren bzw. bewegen kann. Ein Computerprogrammprodukt kann in einer Ausführung ein, insbesondere nichtflüchtiges, Speichermedium zum Speichern eines Programms bzw. mit einem darauf gespeicherten Programm aufweisen, insbesondere sein, wobei ein Ausführen dieses Programms ein System bzw. eine Steuerung, insbesondere einen Computer, dazu veranlasst, ein hier beschriebenes Verfahren bzw. einen oder mehrere seiner Schritte auszuführen.A means in the sense of the present invention can be designed in terms of hardware and/or software, in particular a processing unit, in particular a microprocessor unit (CPU), graphics card (GPU) or the like, preferably connected to a memory and/or bus system for data or signals, in particular digital, and/or one or more programs or program modules. The processing unit can be designed to process commands that are implemented as a program stored in a memory system, to detect input signals from a data bus and/or to output output signals to a data bus. A memory system can have one or more, in particular different, storage media, in particular optical, magnetic, solid-state and/or other non-volatile media. The program can be designed in such a way that it embodies or is capable of carrying out the methods described here, so that the processing unit can carry out steps of such methods and thus in particular model an object, in particular command or move the camera-operating robot accordingly. In one embodiment, a computer program product can have, in particular be, a storage medium, in particular a non-volatile one, for storing a program or with a program stored thereon, wherein executing this program causes a system or a controller, in particular a computer, to carry out a method described here or one or more of its steps.
In einer Ausführung werden ein oder mehrere, insbesondere alle, Schritte des Verfahrens vollständig oder teilweise automatisiert durchgeführt, insbesondere durch das System bzw. sein(e) Mittel.In one embodiment, one or more, in particular all, steps of the method are carried out completely or partially automatically, in particular by the system or its means.
In einer Ausführung weist das System den Roboter auf.In one embodiment, the system comprises the robot.
Weitere Vorteile und Merkmale ergeben sich aus den Unteransprüchen und den Ausführungsbeispielen. Hierzu zeigt, teilweise schematisiert:
-
1 : ein System beim Modellieren eines Objekts mittels einer durch einen Roboter geführten Kamera nach einer Ausführung der vorliegenden Erfindung; und -
2 : ein Verfahren zum Modellieren des Objekts mittels der durch den Roboter geführten Kamera nach einer Ausführung der vorliegenden Erfindung.
-
1 : a system for modeling an object using a camera guided by a robot according to an embodiment of the present invention; and -
2 : a method for modeling the object by means of the camera guided by the robot according to an embodiment of the present invention.
In
Bei einem Handführen soll der Bediener die Orientierung ändern können, wobei ein Zielpunkt im Zentrum des Objekts 1 im roboterendeffektorfesten Koordinatensystem EE derart festgehalten wird, dass der Roboterendeffektor bzw. die daran befestigte Kamera 3 sich auch in EEz-Richtung bewegen kann, d.h. in dieser Richtung ebenfalls „frei“ ist. Hierzu werden die Jacobi-Matrix und die kartesischen Positionen und Geschwindigkeiten in dem roboterendeffektorfesten Koordinatensystem beschrieben und die Zeile der Jacobi-Matrix in der z-Richtung gestrichen:When guiding by hand, the operator should be able to change the orientation, whereby a target point in the center of the object 1 is held in the coordinate system EE fixed to the robot end effector in such a way that the robot end effector or the camera 3 attached to it can also move in the EE z-direction, ie is also "free" in this direction. For this purpose, the Jacobi matrix and the Cartesian positions and velocities are described in the coordinate system fixed to the robot end effector and the row of the Jacobi matrix in the z-direction is deleted:
Wenn die Jacobi-Matrix zunächst im roboterbasisfesten Koordinatensystem 0 beschrieben ist, muss die Jacobi-Matrix in die Roboterendeffektor-Koordinaten gedreht werden. Hierzu werden folgende Schritte ausgeführt:
- 1. Berechnen der Drehung 0RE vom roboterbasisfesten Koordinatensystem 0 in das roboterendeffektorfeste Koordinatensystem EE unter Verwendung der Vorwärtskinematik bzw. -transformation des Roboters.
- 2. Rotieren der Jacobi-Matrix unter Verwendung der Gleichung:
- 3. Verwendung der ersten und zweiten Zeile von EEJpos zum Definieren der Aufgabe.
- 4. Bestimmen des Kommando-Vektors im roboterendeffektorfesten Koordinatensystem:
- 5. Berechnen des Kommando-Drehmoments für die Aufgabe:
- 1. Calculate the rotation 0 R E from the robot base-fixed coordinate system 0 into the robot end-effector-fixed coordinate system EE using the forward kinematics or transformation of the robot.
- 2. Rotate the Jacobian matrix using the equation:
- 3. Use the first and second lines of EE J pos to define the task.
- 4. Determining the command vector in the robot end effector-fixed coordinate system:
- 5. Calculate the command torque for the task:
Dabei sind EExE,d, EExE, EEẋE [2x1]-Vektoren in den x- und y-Koordinaten des Endeffektors, EExE,d ist ein [2×1]-Null-Vektor und Λpos, µpos und ppos werden unter Verwendung nur der ersten zwei Reihen von EEJpos berechnet.Here, EE x E,d , EE x E , EE ẋ E are [2x1] vectors in the x and y coordinates of the end effector, EE x E,d is a [2×1] zero vector, and Λ pos , µ pos and p pos are calculated using only the first two rows of EE J pos .
Eine Gelenkdämpfungsaufgabe mit niedrig(st)er Priorität wird verwendet, um Energie zu dissipieren und das System passiv zu halten. Somit ergibt sich schließlich als finaler Aufgabenstapel („stack of tasks“):
Zwei Aufgaben mit höherer Priorität werden inkluidert:
- • eine vorgegebene minimale Distanz der Kamera zu dem Zielpunkt bzw. Objekt einzuhalten bzw. nicht zu unterschreiten; und
- • vorgegebene Gelenkgrenzen einzuhalten bzw. nicht zu überschreiten, vorzugsweise zu vermeiden.
- • to maintain or not to fall below a specified minimum distance between the camera and the target point or object; and
- • to comply with or not to exceed specified joint limits, preferably to avoid them.
Die höchste Priorität wird der Aufgabe, die Gelenkgrenzen einzuhalten bzw. nicht zu überschreiten, vorzugsweise zu vermeiden, zugewiesen und wird beispielsweise unter Verwendung einer Sättigung im Gelenkkoordinatenraum berechnet („Saturation in Joint Space algorithm“, SJS). Hierzu wird ergänzend auf
Die Aufgabe, die vorgegebene minimale Distanz einzuhalten, kann als eine kartesische Zwangsbedingung implementiert werden, beispielsweise unter analoger Verwendung einer Sättigung im kartesischen bzw. Arbeitsraum („Saturation in Cartesian Space algorithm“, SCS) und die zweithöchste Priorität erhalten (durch Verwendung der rotierten Jacobi-Matrix in SCS ist es möglich, die Koordinaten längs der Achse von der Kamera zum Objekt zu beschränken bzw. fesseln). Somit wird τstack an den SCS-Algorithmus gesandt und die Drehmomentausgabe des SCS an den SJS-Algorithmus gesandt.The task of maintaining the given minimum distance can be implemented as a Cartesian constraint, for example using analogous Saturation in Cartesian Space algorithm (SCS) and given the second highest priority (by using the rotated Jacobian matrix in SCS it is possible to constrain the coordinates along the axis from the camera to the object). Thus, τ stack is sent to the SCS algorithm and the torque output of the SCS is sent to the SJS algorithm.
Somit kann der Bediener den Roboter handführen, während dieser die Hauptaufgabe durchführt, die Ausrichtung der Kamera auf den Zielpunkt beizubehalten.This allows the operator to manually guide the robot while it performs the main task of maintaining the camera alignment on the target point.
Im Nullraum dieser Hauptaufgabe kann als weitere Aufgabe bestimmt werden, mit einer vorgegebenen maximalen Geschwindigkeit einen kartesischen Punkt anzufahren, vorzugsweise wie in dem o.g. Artikel von Khatib beschrieben. Der operationelle Punkt bewegt sich außer in den Beschleunigungs- und Verzögerungsabschnitten mit maximaler Geschwindigkeit in gerader Linie zu einem gewünschten Punkt. Die Kraft wird berechnet wie folgt:
Der Index op deutet an, dass diese Positionen und Geschwindigkeiten diejenigen des operationellen Punkts („operational point“) sind, der beispielsweise beim LBR iiwa die sechste Gelenkachse sein kann. Der Endeffektor kann für diese Aufgabe nicht genutzt werden, um Konflikte mit der Hauptaufgabe zu vermeiden. Die kommandierten Drehmomente für diese Aufgabe sind:
Nun bewegt sich der operationelle Punkt zum gewünschten Punkt während der Endeffektor auf einen Zielpunkt bzw. eine Zielposition zeigt. Dies verbessert die Programmierung, da nur gewünschte Punkte beispielsweise für die sechste Gelenkachse vorgegeben werden müssen und der Bediener sich nicht um die gewünschte Orientierung kümmern muss. Der Endeffektor bzw. die Kamera zeigt immer auf den Zielpunkt bzw. das Objekt bzw. ist hierauf ausgerichtet. Dieser Aufgabenstapel gestattet es, Bewegungen des Roboters durchzuführen bzw. zu programmieren, während Bilder für die Modellierung aufgenommen werden. Die gewünschten kartesischen Punkte können auch durch die beschriebene Handführung vor- bzw. eingegeben werden.Now the operational point moves to the desired point while the end effector points to a target point or a target position. This improves programming because only the desired points, for example for the sixth joint axis, need to be specified and the operator does not have to worry about the desired orientation. The end effector or camera always points to the target point or object or is aligned with it. This task stack allows robot movements to be carried out or programmed while images are being taken for modeling. The desired Cartesian points can also be predefined or entered using the hand guidance described.
Das Verfahren zum Modellieren des Objekts 1 umfasst die folgenden Schritte (vgl.
- S10:
das Objekt 1 wird (bzw. ist) auf einemTisch 5 oder einer anderen flachen Oberfläche platziert, so dass das gesamte Objekt in dem aufgenommenen zwei- oder dreidimensionalen Bild sichtbar ist. - S20: unter Verwendung eines Segmentierungs-Algorithmus, z.B.. RANSAC-basiertem Ebenen-Fitting, wird die Tisch- bzw. flache Oberfläche aus der 3D-Punktewolke entfernt, so dass Daten nur noch 3D-Punkte enthalten, die zu
dem Objekt 1 gehören. - S30: ein 3D-Zentrum des Objekts wird berechnet und als Zielposition bzw. -punkt für die (Ausrichtung der)
Kamera 3 verwendet. - S40: ein Bediener (nicht dargestellt) führt
den Roboter 2 per Hand um das Objekt und versucht, dessen gesamte (aktuell sichtbare) Oberfläche zu erfassen. - S50: zu verschiedenen Zeitpunkten wird die aktuelle Punktewolke (die aus den Bildern der Kamera ermittelt wird) und die zugehörige bzw. aktuelle Kamerapose im Welt- bzw. Roboterbasiskoordinatensystem abgespeichert.
- S60: alle abgespeicherten Punktewolken werden aggregiert, beispielsweise mittels TSDF, wie es in Curles, B., Levoy, M.: A Volumetric Method for Building Complex Models from Range Images, 1996 beschrieben ist, worauf ergänzend Bezug genommen und dessen Inhalt vollumfänglich in die vorliegende Offenbarung einbezogen wird.
- S70: aus der resultierenden Punktewolke wird ein Polygongitter („polygon mesh“) berechnet und, gegebenenfalls nachbearbeitet, als Modell des Objekts 1 verwendet bzw. bereitgestellt, beispielsweise abgespeichert.
- S10: the
object 1 is placed on a table 5 or other flat surface so that the entire object is visible in the recorded two- or three-dimensional image. - S20: using a segmentation algorithm, e.g. RANSAC-based plane fitting, the table or flat surface is removed from the 3D point cloud so that data only contains 3D points belonging to
object 1. - S30: a 3D center of the object is calculated and used as target position or point for the (orientation of)
camera 3. - S40: an operator (not shown) guides the
robot 2 manually around the object and attempts to capture its entire (currently visible) surface. - S50: At different times, the current point cloud (which is determined from the camera images) and the corresponding or current camera pose are saved in the world or robot base coordinate system.
- S60: all stored point clouds are aggregated, for example by means of TSDF, as described in Curles, B., Levoy, M.: A Volumetric Method for Building Complex Models from Range Images, 1996, to which reference is made by way of addition and the content of which is fully incorporated into the present disclosure.
- S70: A polygon mesh is calculated from the resulting point cloud and, after further processing if necessary, is used as a model of
object 1 or is made available, for example saved.
Claims (9)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102020204829.0A DE102020204829B4 (en) | 2020-04-16 | 2020-04-16 | Modeling objects using robot-guided cameras |
PCT/EP2021/059734 WO2021209530A1 (en) | 2020-04-16 | 2021-04-15 | Modeling objects by means of robot-guided cameras |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102020204829.0A DE102020204829B4 (en) | 2020-04-16 | 2020-04-16 | Modeling objects using robot-guided cameras |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102020204829A1 DE102020204829A1 (en) | 2021-10-21 |
DE102020204829B4 true DE102020204829B4 (en) | 2025-01-30 |
Family
ID=75562748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102020204829.0A Active DE102020204829B4 (en) | 2020-04-16 | 2020-04-16 | Modeling objects using robot-guided cameras |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE102020204829B4 (en) |
WO (1) | WO2021209530A1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2010863B1 (en) | 2006-04-27 | 2009-08-26 | 3D Scanners Ltd | Optical scanning probe |
US20150000410A1 (en) | 2013-06-27 | 2015-01-01 | TecScan Systems Inc. | Method and apparatus for scanning an object |
DE112016002057T5 (en) | 2015-05-06 | 2018-01-25 | Faro Technologies, Inc. | THREE-DIMENSIONAL MEASURING DEVICE SOLVIBLY COUPLED WITH A ROBOT ARM ON A MOTORIZED MOBILE PLATFORM |
DE102016223665A1 (en) | 2016-11-29 | 2018-05-30 | Kuka Roboter Gmbh | POSITION DETERMINATION OF A MANIPULATOR WITH A CAMERA OF A SMARTPHONE |
DE102017007737A1 (en) | 2017-08-17 | 2019-02-21 | Lemnatec Gmbh | Method and device for detecting an image of a plant with a sensor device |
EP2831539B1 (en) | 2012-03-30 | 2019-06-05 | Nikon Metrology NV | Improved optical scanning probe |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10268188B2 (en) * | 2015-12-02 | 2019-04-23 | Qualcomm Incorporated | Active camera movement determination for object position and extent in three-dimensional space |
-
2020
- 2020-04-16 DE DE102020204829.0A patent/DE102020204829B4/en active Active
-
2021
- 2021-04-15 WO PCT/EP2021/059734 patent/WO2021209530A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2010863B1 (en) | 2006-04-27 | 2009-08-26 | 3D Scanners Ltd | Optical scanning probe |
EP2831539B1 (en) | 2012-03-30 | 2019-06-05 | Nikon Metrology NV | Improved optical scanning probe |
US20150000410A1 (en) | 2013-06-27 | 2015-01-01 | TecScan Systems Inc. | Method and apparatus for scanning an object |
DE112016002057T5 (en) | 2015-05-06 | 2018-01-25 | Faro Technologies, Inc. | THREE-DIMENSIONAL MEASURING DEVICE SOLVIBLY COUPLED WITH A ROBOT ARM ON A MOTORIZED MOBILE PLATFORM |
DE102016223665A1 (en) | 2016-11-29 | 2018-05-30 | Kuka Roboter Gmbh | POSITION DETERMINATION OF A MANIPULATOR WITH A CAMERA OF A SMARTPHONE |
DE102017007737A1 (en) | 2017-08-17 | 2019-02-21 | Lemnatec Gmbh | Method and device for detecting an image of a plant with a sensor device |
Non-Patent Citations (5)
Title |
---|
CURLESS, Brian ; LEVOY, Marc: A volumetric method for building complex models from range images. In: SIGGRAPH '96 Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques, August 4 - 9, 1996, New Orleans, Louisiana, 1996, S. 303-312. - ISBN 0-89791-746-4. DOI: 10.1145/237170.237269. URL: https://dl.acm.org/ft_gateway.cfm?id=237269&ftid=42260&dwn=1&CFID=27742137&CFTOKEN=7a90fca452fead81-D84B2DCF-D8DA-6BFD-AC5E9A8F0B827B2A [abgerufen am 2019-03-15] * |
KHATIB, Oussama: A unified approach for motion and force control of robot manipulators: The operational space formulation. In: IEEE Journal of Robotics and Automation, Vol. RA-3, 1987, No. 1, S. 43-53. - ISSN 0882-4967 (P). DOI: 10.1109/JRA.1987.1087068. URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1087068 [abgerufen am 2018-09-25] * |
O., A unified approach for motion and force control of robot manipulators: The operational space formulation, IEEE Journal on Robotics and Automation, 1987, 3(1), S. 43-53 |
OSORIO, Juan D. Muñoz ; FIORE, Mario D. ; ALLMENDINGER, Felix: Operational space formulation under joint constraints. In: Proceedings of the ASME International Design Engineering Technical Conferences and Computers and Information in Engineering Conference - 2018, August 26-29, 2018, Quebec City, Canada. Vol. 5B: 42nd Mechanisms and Robotics Conference. New York, N.Y. : The American Society of Mechanical Engineers, 2018. Artikelnummer: DETC2018-86058, V05BT07A022 (10 S.). - ISBN 978-0-7918-5181-4 * |
Osorio, Juan D. Muñoz; Fiore, Mario D.; Allmendinger, Felix: Operational Space Formulation Under Joint Constraints, ASME 2018 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference, American Society of Mechanical Engineers, 2018. Seiten V05BT07A022-V05BT07A022 |
Also Published As
Publication number | Publication date |
---|---|
DE102020204829A1 (en) | 2021-10-21 |
WO2021209530A1 (en) | 2021-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE602005005306T2 (en) | Control of the path of a gripper | |
EP1521211B1 (en) | Method and apparatus for determining the position and orientation of an image receiving device | |
EP3285975B1 (en) | Controlling and/or regulating motors of a robot | |
DE102017009939B4 (en) | Method and system for operating a mobile robot | |
DE102017001131B4 (en) | Method and system for operating a robot | |
DE102011106321A1 (en) | Method and control means for controlling a robot | |
WO2017008898A1 (en) | Ascertaining an input command for a robot, said input command being entered by manually exerting a force onto the robot | |
DE102015001527A1 (en) | Robot system using visual feedback | |
EP2874788B1 (en) | Measuring device | |
EP1604789A2 (en) | Method and device for improving the positioning accuracy of a manipulator | |
DE19810341C2 (en) | Method for automatic collision avoidance of a manipulator in a work space limited by obstacles | |
EP2977148B1 (en) | Method and device for controlling a robot | |
EP3760390A1 (en) | Performance of a predetermined task using at least one robot | |
DE102020204829B4 (en) | Modeling objects using robot-guided cameras | |
EP1915239B1 (en) | Method for generating an environmental image | |
EP4084937B1 (en) | Moving a reference fixed on a robot | |
DE102020104359B4 (en) | Workspace limitation for a robot manipulator | |
DE102021202759A1 (en) | Apparatus and method for training a neural network for controlling a robot | |
DE102019202456B4 (en) | Method and system for performing a given task by a robot | |
DE102018207921B3 (en) | Controlling a robot | |
Quigley et al. | Robot path planning for metrology in hybrid manufacturing | |
DE102017107593B4 (en) | Method for determining unknown transformations | |
WO2019219795A1 (en) | Controlling a robot | |
DE102020112352A1 (en) | Camera and robot system | |
DE102023210548B3 (en) | controlling a robot |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R083 | Amendment of/additions to inventor(s) | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division |