[go: up one dir, main page]

DE102020204829B4 - Modeling objects using robot-guided cameras - Google Patents

Modeling objects using robot-guided cameras Download PDF

Info

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
Application number
DE102020204829.0A
Other languages
German (de)
Other versions
DE102020204829A1 (en
Inventor
Juan David Munoz Osorio
Kirill Safronov
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KUKA Deutschland GmbH
Original Assignee
KUKA Deutschland GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KUKA Deutschland GmbH filed Critical KUKA Deutschland GmbH
Priority to DE102020204829.0A priority Critical patent/DE102020204829B4/en
Priority to PCT/EP2021/059734 priority patent/WO2021209530A1/en
Publication of DE102020204829A1 publication Critical patent/DE102020204829A1/en
Application granted granted Critical
Publication of DE102020204829B4 publication Critical patent/DE102020204829B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme 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/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39226Operational space formulation, project model into cartesian coordinates
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40564Recognize shape, contour of object, extract position and orientation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40613Camera, 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 DE 10 2017 007 737 A1 betrifft ein Verfahren zum Erfassen einer Abbildung einer Pflanze mit einer Sensoreinrichtung, bei dem die Sensoreinrichtung mit einem Arm eines Roboters um die Pflanze herum geführt wird.The DE 10 2017 007 737 A1 relates to a method for capturing an image of a plant with a sensor device, in which the sensor device is guided around the plant with an arm of a robot.

Die DE 10 2016 223 665 A1 betrifft ein Verfahren zur Positionsbestimmung eines Manipulators, wobei der Manipulator einen Manipulatorarm aufweist, an dem zumindest eine Kamera für optische Aufnahmen eingerichtet ist, wobei das Verfahren gekennzeichnet ist durch die Schritte: Bewegen der Kamera in die Nähe zumindest eines Referenzobjekts durch den Manipulator, Aufzeichnen von zumindest zwei Bildern des Referenzobjekts mittels der Kamera aus unterschiedlichen Perspektiven, Bestimmen der Position des Manipulators relativ zum Referenzobjekt anhand der zumindest zwei aufgezeichneten Bilder, wobei die Kamera Teil eines Smartphones ist.The DE 10 2016 223 665 A1 relates to a method for determining the position of a manipulator, wherein the manipulator has a manipulator arm on which at least one camera is set up for optical recordings, wherein the method is characterized by the steps: moving the camera into the vicinity of at least one reference object by the manipulator, recording at least two images of the reference object by means of the camera from different perspectives, determining the position of the manipulator relative to the reference object based on the at least two recorded images, wherein the camera is part of a smartphone.

Die DE 11 2016 002 057 T5 betrifft eine motorisierte mobile Plattform, die einen gelenkig angebrachten Roboterarm und einen Triangulationsscanner zur Durchführung von dreidimensionalen Messungen umfasst, wobei der Roboterarm und der Triangulationsscanner lösbar mit Verbindungsstücken verkoppelt sind.The DE 11 2016 002 057 T5 relates to a motorized mobile platform comprising an articulated robot arm and a triangulation scanner for performing three-dimensional measurements, wherein the robot arm and the triangulation scanner are detachably coupled with connectors.

Die US 2015 / 0 000 410 A1 betrifft ein Verfahren und eine Vorrichtung zum Scannen eines Objekts, wobei auf einer Oberfläche des Objekts zwei virtuelle, orthogonale Achsen positioniert sind, in Abhängigkeit der beiden virtuellen, orthogonalen Achsen eine Scanbahn einer bewegten Sonde gesteuert wird, der Abtastweg mehrere Sondenpositionen umfassen kann, die gemäß einer gewünschten Abdeckung des Objekts bestimmt werden, eine einzelne Sonde verwendet werden kann oder optional ein Sondenpaar oder eine Anordnung von Sonden verwendet werden kann, wobei optional die Sonden auf einem mehrachsigen beweglichen Träger montiert werden. The US 2015 / 0 000 410 A1 relates to a method and a device for scanning an object, wherein two virtual, orthogonal axes are positioned on a surface of the object, a scanning path of a moving probe is controlled depending on the two virtual, orthogonal axes, the scanning path can comprise several probe positions which are determined according to a desired coverage of the object, a single probe can be used or optionally a pair of probes or an arrangement of probes can be used, wherein optionally the probes are mounted on a multi-axis movable carrier.

Die EP 2 831 539 B1 betrifft eine Erfassungssonde für die Größenerfassung eines Objekts durch Bestrahlen des Objekts mit Licht und Detektieren reflektierten Lichts, Folgendes umfassend: eine Detektionseinheit, umfassend einen Bildgebungssensor und eine Sensorlinsenanordnung zum Detektieren des reflektierten Lichts, eine Lichtprojektionseinheit, umfassend eine Lichtquelle zum Erzeugen von Licht und eine Quellenoptik zum Fokussieren des Lichts und eine Lichtebenenerzeugungsoptik zum Erzeugen einer Lichtebene zum Bestrahlen des Objekts, und einen Einstellmechanismus, der in der Lichtprojektionseinheit enthalten ist, zum Einstellen der Position und/oder der Orientierung der Lichtebene relativ zu der Detektionseinheit, so dass sie mit einer objektseitigen Abbildungsebene der Sensorlinsenanordnung zusammenfällt, und wobei die Einstellung der Lichtebene für Betriebsstabilität fixierbar ist, wobei die Sensorlinsenanordnung mehrere Linsen umfasst, wobei alle der Linsen in der Sensorlinsenanordnung in fester nicht einstellbarer Ausrichtung zueinander angeordnet sind, die Detektionseinheit und die Lichtprojektionseinheit an einer starren Basisplatte befestigt sind, die Sensorlinsenanordnung starr und nicht einstellbar an der starren Basisplatte befestigt ist, und diese starre Basisplatte zum Montieren der Erfassungssonde auf einem Lokalisierer ausgelegt ist.The EP 2 831 539 B1 relates to a detection probe for size detection of an object by irradiating the object with light and detecting reflected light, comprising: a detection unit comprising an imaging sensor and a sensor lens arrangement for detecting the reflected light, a light projection unit comprising a light source for generating light and source optics for focusing the light and light plane generation optics for generating a light plane for irradiating the object, and an adjustment mechanism contained in the light projection unit for adjusting the position and/or orientation of the light plane relative to the detection unit so that it coincides with an object-side imaging plane of the sensor lens arrangement, and wherein the adjustment of the light plane is fixable for operational stability, wherein the sensor lens arrangement comprises a plurality of lenses, wherein all of the lenses in the sensor lens arrangement are arranged in a fixed, non-adjustable alignment with one another, the detection unit and the light projection unit are attached to a rigid base plate, the sensor lens arrangement is rigidly and non-adjustably attached to the rigid base plate, and this rigid base plate is designed for mounting the detection probe on a locator.

Die EP 2 010 863 B1 betrifft eine Abtastsonde zum Aufnehmen von Daten von mehreren Punkten auf der Oberfläche eines Objekts durch Bestrahlen des Objekts mit einem Lichtstreifen und Erfassen des von der Objektoberfläche reflektierten Lichts, wobei die Abtastsonde das Folgende umfasst: (a) ein Streifenerzeugungsmittel zum Erzeugen und Aussenden eines Lichtstreifens; (b) eine Kamera, welche einen Bildsensor umfasst, der ein Pixelfeld aufweist, um das von der Objektoberfläche reflektierte Lichtbündel zu erfassen; (c) ein Mittel zum Einstellen der Intensität des Lichtstreifens während der Aufnahme eines einzelnen Bildausschnitts in Abhängigkeit von den von der Kamera erfassten Intensitäten, wobei: die Kamera und/oder das Streifenerzeugungsmittel so eingerichtet sind, dass während der Aufnahme des Bildausschnitts verschiedene Untergruppen der Bildsensorpixel zu verschiedenen Zeiten reflektiertes Licht aus dem Streifen erfassen, wobei die verschiedenen Untergruppen verschiedenen Positionen auf dem erfassten Lichtstreifen entsprechen, das Mittel zum Einstellen der Lichtintensität so eingerichtet ist, dass die Intensität eines Lichtbündels für eine Pixeluntergruppe in Abhängigkeit von der erfassten Intensität der vorigen Pixeluntergruppe eingestellt wird.The EP 2 010 863 B1 relates to a scanning probe for recording data from a plurality of points on the surface of an object by irradiating the object with a strip of light and detecting the light reflected from the object surface, the scanning probe comprising: (a) a strip generating means for generating and emitting a strip of light; (b) a camera comprising an image sensor having a pixel array for detecting the light beam reflected from the object surface; (c) a means for adjusting the intensity of the light strip during the recording of a single image section in dependence on the intensities detected by the camera, wherein: the camera and/or the strip generating means are arranged such that during the recording of the image section different subgroups of the image sensor pixels detect reflected light from the strip at different times, the different subgroups corresponding to different positions on the detected light strip, the means for adjusting the light intensity is arranged such that the intensity of a light beam for a pixel subgroup is adjusted in dependence on the detected intensity of the previous pixel subgroup.

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 claim 1. Claims 8, 9 protect a system or computer program product for carrying out a method described here. The subclaims relate to advantageous further developments.

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.
According to one embodiment of the present invention, a method for modeling an object using a camera guided by a robot comprises the steps:
  • - 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 f t = Λ t ( x t ) x ¨ t + μ t ( x t , x ˙ t ) + p t ( x t )

Figure DE102020204829B4_0001
mit dem Vektor der (virtuellen) operationellen Kräfte im Operational Space ft, der symmetrischen Trägheits- bzw. Massenmatrix Λt(xt), dem Vektor der Zentrifugal- und Corioliskräfte µt(xt,ẋt) und dem Vektor der Gravitationskräfte pt(xt) (alle im Operational Space) beschrieben werden. Ergänzend wird zum Operational Space Framework auf Khatib, 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 , Bezug genommen und der Inhalt dieses Artikels vollumfänglich in die vorliegende Offenbarung einbezogen.The dynamic behavior of a point (“operational point”) in the so-called operational space can be determined in particular by f t = Λ t ( x t ) x ¨ t + μ t ( x t , x ˙ t ) + p t ( x t )
Figure DE102020204829B4_0001
with the vector of (virtual) operational forces in the operational space f t , the symmetric inertia or mass matrix Λ t (x t ), the vector of centrifugal and Coriolis forces µ t (x t ,ẋ t ) and the vector of gravitational forces p t (x t ) (all in the operational space). In addition to the operational space framework, Khatib, 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), pp. 43-53 , and the contents of this article are fully incorporated into the present disclosure.

Im Gelenkkoordinatenraum kann das dynamische Verhalten des Roboters insbesondere beschrieben werden durch: τ = M ( q ) q ¨ + c ( q , q ˙ ) + g ( q )

Figure DE102020204829B4_0002
mit der Trägheits- bzw. Massenmatrix M(q), dem Vektor der Zentrifugal- und Corioliskräfte c(q,q̇), dem Vektor der Gravitationskräfte g(q) und den generalisierten Kräften, insbesondere Antriebskräften, τ im Gelenkkoordinatenraum. Antiparallele Kräftepaare bzw. (Dreh)Momente werden vorliegend verallgemeinernd ebenfalls als Kräfte bezeichnet.In the joint coordinate space, the dynamic behavior of the robot can be described in particular by: τ = M ( q ) q ¨ + c ( q , q ˙ ) + g ( q )
Figure DE102020204829B4_0002
with the inertia or mass matrix M(q), the vector of the centrifugal and Coriolis forces c(q,q̇), the vector of the gravitational forces g(q) and the generalized forces, in particular driving forces, τ in the joint coordinate space. Antiparallel force pairs or (torsion) moments are also generally referred to as forces.

Unter Verwendung der Jacobi-Matrix Jt ergibt sich als Beziehung zwischen den operationellen Kräften ft und den Gelenk- bzw. Antriebskräften, insbesondere -drehmomenten τ: τ = J t T f t

Figure DE102020204829B4_0003
Using the Jacobi matrix J t , the relationship between the operational forces f t and the joint or drive forces, in particular torques τ, is: τ = J t T f t
Figure DE102020204829B4_0003

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 J t T ,

Figure DE102020204829B4_0004
hinzugefügt werden, ohne die resultierenden Kräfte am operational point zu beeinflussen: τ = J t T f t + N t τ 0
Figure DE102020204829B4_0005
mit N t = I J j T J ¯ t T
Figure DE102020204829B4_0006
mit der Projektion Nt in den Nullraum der (Haupt)Aufgabe, wobei τ0 ein beliebiger generalisierter Gelenk-, insbesondere Antriebskraft-, insbesondere -momentenvektor ist, der in den Nullraum der (Haupt)Aufgabe projiziert wird, und J ¯ t T
Figure DE102020204829B4_0007
die dynamisch konsistente generalisierte Inverse („dynamically consistent generalized inverse“), die die momentane kinetische Energie des Roboters minimiert: J ¯ t = M 1 J j T Λ t
Figure DE102020204829B4_0008
If the robot is redundant with respect to the task or the dimension of the minimum or joint coordinates q is larger than the dimension of the task coordinates x t (dim(q) > dim(x t )), movements or (drive) forces or moments in the null space of J t T ,
Figure DE102020204829B4_0004
added without affecting the resulting forces at the operational point: τ = J t T f t + N t τ 0
Figure DE102020204829B4_0005
with N t = I J j T J ¯ t T
Figure DE102020204829B4_0006
with the projection N t into the null space of the (main) task, where τ 0 is an arbitrary generalized joint, in particular driving force, in particular moment vector, which is projected into the null space of the (main) task, and J ¯ t T
Figure DE102020204829B4_0007
the dynamically consistent generalized inverse, which minimizes the instantaneous kinetic energy of the robot: J ¯ t = M 1 J j T Λ t
Figure DE102020204829B4_0008

Damit ergibt sich: Λ t = ( J t M 1 J t T ) 1

Figure DE102020204829B4_0009
μ t = J ¯ t T c Λ t J ˙ t q ˙
Figure DE102020204829B4_0010
p t = J ¯ t T g
Figure DE102020204829B4_0011
This results in: Λ t = ( J t M 1 J t T ) 1
Figure DE102020204829B4_0009
μ t = J ¯ t T c Λ t J ˙ t q ˙
Figure DE102020204829B4_0010
p t = J ¯ t T g
Figure DE102020204829B4_0011

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: τ 1 = J 1 T f 1 + N 1 τ 2 τ 2 = J 1 T f 2 + N 2 τ 3 τ k 1 = J k 1 T f k 1 + N k 1 τ k τ k = J k T f k

Figure DE102020204829B4_0012
wobei der Index von der höchsten Priorität (Index1) zur niedrigsten Priorität (Indexk) läuft, d.h. τ1 der Kraftvektor für die Aufgabe mit der höchsten Priorität, die ausgeführt wird, sofern die Kinematik bzw. Dynamik des Roboters dies gestattet, und τk der Kraftvektor für die Aufgabe mit der niedrigsten Priorität ist, die nur vollständig durchgeführt wird, wenn genug Koordinaten im Nullraum zur Verfügung stehen.The generalized joint, in particular driving force, in particular moment vector τ 0 in (4) can be used for a second or lower-ranking task, which is (only) fully executed in the null space if it does not collide or interfere with the higher-ranking task, which is carried out by the force vector f t , i.e. which has a higher priority. This makes it possible to realize a prioritization or prioritized structure for several tasks: τ 1 = J 1 T f 1 + N 1 τ 2 τ 2 = J 1 T f 2 + N 2 τ 3 τ k 1 = J k 1 T f k 1 + N k 1 τ k τ k = J k T f k
Figure DE102020204829B4_0012
where the index runs from the highest priority (index 1 ) to the lowest priority (index k ), i.e. τ 1 is the force vector for the task with the highest priority, which is executed if the kinematics or dynamics of the robot allow it, and τ k is the force vector for the task with the lowest priority, which is only completely executed if enough coordinates are available in the null space.

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: f * = M Δ x ¨ E + D Δ x ˙ E + K Δ x E ,

Figure DE102020204829B4_0013
mit der Differenz ΔxE zwischen der gewünschten bzw. Soll-Position und der aktuellen kartesischen Position des Endeffektors (xE,d - xE), der Massen-Matrix M , Dämpfungs-Matrix D und Steifigkeits- bzw. Federmatrix K des virtuellen Feder-Dämpfer-Systems, wobei M insbesondere aufgrund von Rauschen gleich Null gesetzt werden kann, so dass: f p o s * = k p ( x E , d x E ) + k d ( x ˙ E , d x ˙ E ) ,
Figure DE102020204829B4_0014
mit dem kommandierten Kraftvektor f t * ,
Figure DE102020204829B4_0015
der der Aufgabe entspricht bzw. diese repräsentiert, der Federkonstanten kp und der Dämpfungskonstanten kd.The task of keeping the end effector or a fixed point, in particular a viewing or alignment point, in particular a focus point of the camera, at the Cartesian (target) position x E = [x,y,z] T , can be implemented in particular by a virtual spring-damper system: f * = M Δ x ¨ E + D Δ x ˙ E + K Δ x E ,
Figure DE102020204829B4_0013
with the difference Δx E between the desired or target position and the current Cartesian position of the end effector (x E,d - x E ), the mass matrix M , damping matrix D and stiffness or spring matrix K of the virtual spring-damper system, where M can be set equal to zero, in particular due to noise, so that: f p o s * = k p ( x E , d x E ) + k d ( x ˙ E , d x ˙ E ) ,
Figure DE102020204829B4_0014
with the commanded force vector f t * ,
Figure DE102020204829B4_0015
which corresponds to or represents the task, the spring constant k p and the damping constant k d .

Die entsprechenden Antriebskräfte bzw. -momente zum Kommandieren bzw. Steuern des Roboters ergeben sich durch Projektion in den Gelenkkoordinatenraum: τ p o s = J p o s T ( Λ p o s f p o s * + μ p o s + p p o s ) .

Figure DE102020204829B4_0016
The corresponding driving forces or moments for commanding or controlling the robot are obtained by projection into the joint coordinate space: τ p o s = J p o s T ( Λ p o s f p o s * + μ p o s + p p o s ) .
Figure DE102020204829B4_0016

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 invention may, in one embodiment, offer one or more of the following advantages:
  • - 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.
Further advantages and features emerge from the subclaims and the embodiments. This shows, partly schematically:
  • 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.

1 zeigt ein System beim Modellieren eines Objekts 1 mittels einer durch einen Roboter 2 geführten Kamera 3 nach einer Ausführung der vorliegenden Erfindung. Der Roboter wird durch eine Steuerung 4 gesteuert, die die Schritte des Verfahrens ausführt, insbesondere den Roboter 2 bzw. dessen Antriebe kommandiert. 1 shows a system when modeling an object 1 using a camera 3 guided by a robot 2 according to an embodiment of the present invention. The robot is controlled by a controller 4, which carries out the steps of the method, in particular commands the robot 2 or its drives.

In 1 ist ein roboterbasisfestes Koordinatensystem 0 durch dessen x- und z-Koordinatenachse °x, °z sowie ein roboterendeffektorfestes Koordinatensystem EE durch dessen y- und z-Koordinatenachse EEy, EEz angedeutet.In 1 a robot base-fixed coordinate system 0 is indicated by its x- and z-coordinate axes °x, °z and a robot end-effector-fixed coordinate system EE is indicated by its y- and z-coordinate axes EE y, EE z.

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. 1. Berechnen der Drehung 0RE vom roboterbasisfesten Koordinatensystem 0 in das roboterendeffektorfeste Koordinatensystem EE unter Verwendung der Vorwärtskinematik bzw. -transformation des Roboters.
  2. 2. Rotieren der Jacobi-Matrix unter Verwendung der Gleichung: E E J p o s = [ 0 R E T 0 0 0 R E T ]   0 J p o s
    Figure DE102020204829B4_0017
  3. 3. Verwendung der ersten und zweiten Zeile von EEJpos zum Definieren der Aufgabe.
  4. 4. Bestimmen des Kommando-Vektors im roboterendeffektorfesten Koordinatensystem: f p o s * = k p ( E E x E , d E E x E ) + k d ( E E x ˙ E , d E E x ˙ E )
    Figure DE102020204829B4_0018
  5. 5. Berechnen des Kommando-Drehmoments für die Aufgabe: τ p o s = E E J p o s T ( Λ p o s f p o s * + μ p o s + p p o s ) .
    Figure DE102020204829B4_0019
If the Jacobian matrix is initially described in the robot-based coordinate system 0, the Jacobian matrix must be rotated into the robot end-effector coordinates. To do this, the following steps are carried out:
  1. 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. 2. Rotate the Jacobian matrix using the equation: E E J p o s = [ 0 R E T 0 0 0 R E T ]   0 J p o s
    Figure DE102020204829B4_0017
  3. 3. Use the first and second lines of EE J pos to define the task.
  4. 4. Determining the command vector in the robot end effector-fixed coordinate system: f p o s * = k p ( E E x E , d E E x E ) + k d ( E E x ˙ E , d E E x ˙ E )
    Figure DE102020204829B4_0018
  5. 5. Calculate the command torque for the task: τ p o s = E E J p o s T ( Λ p o s f p o s * + μ p o s + p p o s ) .
    Figure DE102020204829B4_0019

Dabei sind EExE,d, EExE, EEE [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 , EEE 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“): τ s t a c k = τ p o s + N p o s τ 2

Figure DE102020204829B4_0020
τ 2 = τ d a m p
Figure DE102020204829B4_0021
mit τ d a m p = J d a m p T ( M f p o s * + c + g ) ,  wobei  J d a m p T
Figure DE102020204829B4_0022
eine [nxn]-Identitäts-Matrix mit der Anzahl n der Freiheitsgrade des Roboters ist.A joint damping task with lowest priority is used to dissipate energy and keep the system passive. This results in the final stack of tasks: τ s t a c k = τ p o s + N p o s τ 2
Figure DE102020204829B4_0020
τ 2 = τ d a m p
Figure DE102020204829B4_0021
with τ d a m p = J d a m p T ( M f p o s * + c + g ) ,  wobei  J d a m p T
Figure DE102020204829B4_0022
is an [nxn] identity matrix with the number n of degrees of freedom of the robot.

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.
Two higher priority tasks are included:
  • • 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 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 Bezug genommen und der Inhalt dieses Artikels vollumfänglich in die vorliegende Offenbarung einbezogen.The highest priority is assigned to the task of maintaining or not exceeding the joint limits, preferably avoiding them, and is calculated, for example, using a saturation in the joint coordinate space (“Saturation in Joint Space algorithm”, SJS). In addition, 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 Infor mation in Engineering Conference, American Society of Mechanical Engineers, 2018. Pages V05BT07A022-V05BT07A022 reference and the contents of this article are fully incorporated into the present disclosure.

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: f g o T o P o i n t * = k d ( X ˙ o p v X ˙ o p , d ) ,

Figure DE102020204829B4_0023
wobei: v = min ( 1, V m a x X ˙ o p , d T X ˙ o p , d )
Figure DE102020204829B4_0024
und X ˙ o p , d = k p k d ( X o p , d X o p )
Figure DE102020204829B4_0025
In the null space of this main task, a further task can be defined to approach a Cartesian point at a given maximum speed, preferably as described in the above-mentioned article by Khatib. The operational point moves in a straight line to a desired point at maximum speed, except in the acceleration and deceleration sections. The force is calculated as follows: f g o T o P o i n t * = k d ( X ˙ o p v X ˙ o p , d ) ,
Figure DE102020204829B4_0023
where: v = min ( 1, V m a x X ˙ o p , d T X ˙ o p , d )
Figure DE102020204829B4_0024
and X ˙ o p , d = k p k d ( X o p , d X o p )
Figure DE102020204829B4_0025

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: τ g o T o P o i n t = J g o T o P o i n t T ( Λ g o T o P o i n t f g o T o P o i n t * + μ g o T o P o i n t + p g o T o P o i n t ) .

Figure DE102020204829B4_0026
wobei JgoToPoint bis zum operationellen Punkt ausgedrückt bzw. entwickelt ist und nur die Zeilen der Positionskoordinaten verwendet werden. Der neue Aufgabenstapel („stack of tasks“) ist: τ s t a c k = τ p o s N p o s τ 2
Figure DE102020204829B4_0027
τ 2 = τ g o T o P o i n t + N g o T o P o i n t τ 3
Figure DE102020204829B4_0028
τ 3 = τ d a m p
Figure DE102020204829B4_0029
The index op indicates that these positions and speeds are those of the operational point, which for example in the LBR iiwa can be the sixth joint axis. The end effector cannot be used for this task to avoid conflicts with the main task. The commanded torques for this task are: τ g o T o P o i n t = J g o T o P o i n t T ( Λ g o T o P o i n t f g o T o P o i n t * + μ g o T o P o i n t + p g o T o P o i n t ) .
Figure DE102020204829B4_0026
where J goToPoint is expressed or expanded to the operational point and only the rows of position coordinates are used. The new stack of tasks is: τ s t a c k = τ p o s N p o s τ 2
Figure DE102020204829B4_0027
τ 2 = τ g o T o P o i n t + N g o T o P o i n t τ 3
Figure DE102020204829B4_0028
τ 3 = τ d a m p
Figure DE102020204829B4_0029

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. 2):

  1. S10: das Objekt 1 wird (bzw. ist) auf einem Tisch 5 oder einer anderen flachen Oberfläche platziert, so dass das gesamte Objekt in dem aufgenommenen zwei- oder dreidimensionalen Bild sichtbar ist.
  2. 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.
  3. S30: ein 3D-Zentrum des Objekts wird berechnet und als Zielposition bzw. -punkt für die (Ausrichtung der) Kamera 3 verwendet.
  4. 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.
  5. 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.
  6. 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.
  7. S70: aus der resultierenden Punktewolke wird ein Polygongitter („polygon mesh“) berechnet und, gegebenenfalls nachbearbeitet, als Modell des Objekts 1 verwendet bzw. bereitgestellt, beispielsweise abgespeichert.
The procedure for modeling object 1 comprises the following steps (see 2 ):
  1. 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.
  2. 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.
  3. S30: a 3D center of the object is calculated and used as target position or point for the (orientation of) camera 3.
  4. S40: an operator (not shown) guides the robot 2 manually around the object and attempts to capture its entire (currently visible) surface.
  5. 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.
  6. 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.
  7. 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)

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: - 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; - Recording (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. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die robotergeführte Kamera in wenigstens eine der Posen durch Aufprägen von Kräften auf den Roboter bewegt wird.procedure according to claim 1 , characterized in that the robot-guided camera is moved into at least one of the poses by applying forces to the robot. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die robotergeführte Kamera automatisiert in wenigstens eine der Posen bewegt wird.Method according to one of the preceding claims, characterized in that the robot-guided camera is automatically moved into at least one of the poses. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass beim Bewegen der robotergeführten Kamera in wenigstens eine der Posen Antriebe des Roboters auf Basis von Operational Space Framework und/oder einer vorgegebenen minimalen Distanz des Roboters und/oder der Kamera zu dem Zielpunkt und/oder vorgegebener Gelenkgrenzen des Roboters gesteuert werden.Method according to one of the preceding claims, characterized in that when moving the robot-guided camera into at least one of the poses, drives of the robot are controlled on the basis of the Operational Space Framework and/or a predetermined minimum distance of the robot and/or the camera to the target point and/or predetermined joint limits of the robot. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens eine zu erfassende Ansicht des Objekts ermittelt und wenigstens eine der Posen auf Basis dieser ermittelten Ansicht ermittelt wird.Method according to one of the preceding claims, characterized in that at least one view of the object to be captured is determined and at least one of the poses is determined on the basis of this determined view. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Zielpunkt auf Basis wenigstens eines mit der Kamera aufgenommenen Bildes ermittelt wird (S30).Method according to one of the preceding claims, characterized in that the target point is determined on the basis of at least one image taken with the camera (S30). Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass beim Ermitteln von Bilddaten ein Hintergrund im aufgenommenen Bild wenigstens teilweise ausgeblendet wird (S20).Method according to one of the preceding claims, characterized in that when determining image data, a background in the recorded image is at least partially hidden (S20). System (4), das zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche eingerichtet ist.System (4) arranged to carry out a method according to one of the preceding claims. Computerprogrammprodukt mit einem Programmcode, der auf einem von einem Computer lesbaren Medium gespeichert ist, zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche.Computer program product with a program code stored on a computer-readable medium for carrying out a method according to one of the preceding claims.
DE102020204829.0A 2020-04-16 2020-04-16 Modeling objects using robot-guided cameras Active DE102020204829B4 (en)

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)

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

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

Patent Citations (6)

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

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