DE102024206901A1 - Method for determining a movement sequence for a robot - Google Patents
Method for determining a movement sequence for a robotInfo
- Publication number
- DE102024206901A1 DE102024206901A1 DE102024206901.9A DE102024206901A DE102024206901A1 DE 102024206901 A1 DE102024206901 A1 DE 102024206901A1 DE 102024206901 A DE102024206901 A DE 102024206901A DE 102024206901 A1 DE102024206901 A1 DE 102024206901A1
- Authority
- DE
- Germany
- Prior art keywords
- robot
- data set
- objects
- poses
- motion sequence
- 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.)
- Pending
Links
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
-
- 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/1612—Programme controls characterised by the hand, wrist, grip control
-
- 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/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- 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/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1669—Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/647—Three-dimensional objects by matching two-dimensional images to three-dimensional objects
-
- 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/39536—Planning of hand motion, grasping
-
- 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/40014—Gripping workpiece to place it in another place
-
- 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/40424—Online motion planning, in real time, use vision to detect workspace changes
-
- 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/40425—Sensing, vision based motion planning
-
- 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/40607—Fixed camera to observe workspace, object, workpiece, global
-
- 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/45—Nc applications
- G05B2219/45063—Pick and place manipulator
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30164—Workpiece; Machine component
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Multimedia (AREA)
- Manipulator (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zum Bestimmen eines Bewegungsablaufs (250) für einen Roboter, um ein Objekt in einer Arbeitsumgebung mittels eines Endeffektors des Roboters zu greifen und/oder zu bewegen, umfassend: Bereitstellen (206) von Umgebungsinformationen (202, 204), die mittels wenigstes eines Sensors von der Arbeitsumgebung erfasst worden sind; Bestimmen (210), basierend auf den Umgebungsinformationen, einer Pose für eines oder jedes von mehreren Objekten in der Arbeitsumgebung, um einen Objekt-Posen-Datensatz (228) zu erhalten; Bestimmen (230), basierend auf dem Objekt-Posen-Datensatz, einer oder mehrerer Posen für einen oder jeden von mehreren Endeffektoren, jeweils für das eine oder zumindest eines der mehreren Objekte des Objekt-Posen-Datensatzes, um einen Endeffektor-Posen-Datensatz (236) zu erhalten; Bestimmen (240), basierend auf dem Endeffektor-Posen-Datensatzes, des Bewegungsablaufs (250) für den Roboter, um das Objekt in der Arbeitsumgebung mittels des einen oder eines der mehreren Endeffektoren des Roboters zu greifen und/oder zu bewegen; und Bereitstellen (252) des Bewegungsablaufs (250), sowie insbesondere Veranlassen des Roboters, den Bewegungsablauf auszuführen. The invention relates to a method for determining a movement sequence (250) for a robot to grasp and/or move an object in a work environment by means of an end effector of the robot, comprising: providing (206) environmental information (202, 204) that has been acquired from the work environment by means of at least one sensor; determining (210), based on the environmental information, a pose for one or each of several objects in the work environment to obtain an object pose data set (228); determining (230), based on the object pose data set, one or more poses for one or each of several end effectors, in each case for one or at least one of the several objects of the object pose data set, to obtain an end effector pose data set (236); Determine (240), based on the end effector pose data set, the motion sequence (250) for the robot to grasp and/or move the object in the work environment using one or more end effectors of the robot; and provide (252) the motion sequence (250), and in particular cause the robot to execute the motion sequence.
Description
Die vorliegende Erfindung betrifft ein Verfahren zum Bestimmen eines Bewegungsablaufs für einen Roboter, um ein Objekt in einer Arbeitsumgebung mittels eines Endeffektors des Roboters zu greifen und/oder zu bewegen, eine Recheneinheit und ein Computerprogramm zu dessen Durchführung sowie einen Roboter.The present invention relates to a method for determining a movement sequence for a robot in order to grasp and/or move an object in a working environment by means of an end effector of the robot, a computing unit and a computer program for its execution, and a robot.
Hintergrund der ErfindungBackground of the invention
In Produktionsanlagen, in der Logistik und in anderen Anlagen können Roboter, oftmals auch als sog. Kinematiken bezeichnet, zum Einsatz kommen, um z.B. Teile zu transportieren oder zu montieren. Typische Arten von solchen Robotern sind kartesische Roboter, Scara-Roboter sowie Knickarmroboter.Robots, often also referred to as kinematics, can be used in production facilities, logistics, and other systems to, for example, transport or assemble parts. Typical types of such robots include Cartesian robots, SCARA robots, and articulated robots.
Offenbarung der ErfindungDisclosure of the invention
Erfindungsgemäß werden ein Verfahren zum Bestimmen eines Bewegungsablaufs für einen Roboter, eine Recheneinheit und ein Computerprogramm zu dessen Durchführung sowie ein mobiles Gerät mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.According to the invention, a method for determining a movement sequence for a robot, a computing unit and a computer program for its execution, as well as a mobile device with the features of the independent claims, are proposed. Advantageous embodiments are the subject of the dependent claims and the following description.
Die Erfindung beschäftigt sich allgemein mit Robotern, die z.B. in Produktionsanlagen, in der Logistik oder in anderen Anlagen zum Einsatz kommen können. Als Arten von solchen Robotern, oftmals auch als sog. Kinematiken bezeichnet, kommen z.B. kartesische Roboter, Scara-Roboter sowie Knickarmroboter in Betracht. Solche Roboter können verwendet werden, um Objekte (d.h. Gegenstände oder Teile) zu greifen und/oder zu bewegen. Ein typischer Anwendungsfall ist, ein Objekt aus einer Kiste, in der z.B. eine Vielzahl von (gleichen oder verschiedenen) Objekten vorhanden sind, zu entnehmen und z.B. irgendwo abzulegen oder ggf. auch zu montieren. Hierzu weist ein solcher Roboter z.B. einen Greifer oder allgemein einen Endeffektor auf. Solche Roboter können auch als Manipulatoren oder Manipulationsvorrichtungen bezeichnet werden.The invention relates generally to robots that can be used, for example, in production plants, logistics, or other facilities. Types of such robots, often also referred to as kinematics, include, for example, Cartesian robots, SCARA robots, and articulated robots. Such robots can be used to grasp and/or move objects (i.e., items or parts). A typical application is removing an object from a box containing, for example, a large number of (identical or different) objects and placing it somewhere or possibly assembling it. For this purpose, such a robot has, for example, a gripper or, more generally, an end effector. Such robots can also be referred to as manipulators or manipulation devices.
Damit der Roboter ein Objekt in einer Arbeitsumgebung, also z.B. in einer Kiste, mittels des Endeffektors greifen und/oder bewegen kann, muss der Roboter, insbesondere dessen Endeffektor, einen Bewegungsablauf ausführen, um den Endeffektor zur Position des Objekts zu bewegen und dann, z.B. nachdem das Objekt gegriffen worden ist, den Endeffektor von der Position des Objekts wieder weg zu bewegen, und z.B. zu einer gewünschten Ablageposition.In order for the robot to grasp and/or move an object in a work environment, e.g. in a box, using the end effector, the robot, in particular its end effector, must perform a movement sequence to move the end effector to the position of the object and then, e.g. after the object has been grasped, to move the end effector away from the position of the object again, e.g. to a desired storage position.
Die Bewegungen bzw. Aufgaben, die der Roboter abarbeiten soll, können z.B. von einem Applikateur (Techniker oder Ingenieur) programmiert werden Alle Positionen, die der Roboter in der konkreten Anwendung anfahren soll, sind dann von dem vom Applikateur bzw. Programmierer vorzugeben.The movements or tasks that the robot is to perform can be programmed, for example, by an application engineer (technician or engineer). All positions that the robot is to move to in the specific application must then be specified by the application engineer or programmer.
Handelt es sich um statische Punkte in der Anwendung, also Punkte, die sich zur Laufzeit der Anwendung nicht ändern, können diese vom Applikateur z.B. mittels eines Handbediengeräts präzise mit dem Roboter angefahren und im Programm übernommen werden.If the points in the application are static, i.e., points that do not change during the application's runtime, the applicator can precisely move the robot to them using a handheld control device and transfer them to the program.
Dynamische Punkte, also Punkte, die sich zur Laufzeit der Anwendung ändern, können z.B. unter Verwendung von Sensoren, insbesondere 3D-Sensoren, vorgegeben werden. Hierbei können insbesondere optische Sensoren zum Einsatz kommen. Dynamische Punkte sind dabei häufig Greifpunkte an beweglichen Objekten. Mittels des Sensors kann hierbei die Umgebung bzw. Arbeitsumgebung, z.B. als Punktwolke, erfasst werden, diese erfassten Umgebungsinformationen (Daten) können dann, z.B. mittels einer Softwarekomponente, ausgewertet werden, um so das Objekt im 3D-Raum mit seiner Position und Orientierung (allgemein und in Kombination auch als Pose bezeichnet) zu bestimmen oder lokalisieren.Dynamic points, meaning points that change during application runtime, can be defined using sensors, especially 3D sensors. Optical sensors are particularly suitable for this purpose. Dynamic points are often gripping points on moving objects. The sensor can capture the environment or workspace, for example, as a point cloud. This captured environmental information (data) can then be analyzed, for example, using a software component, to determine or locate the object in 3D space, including its position and orientation (generally and in combination also referred to as pose).
Vor allem bei modernen Anlagen können 3D-Sensoren zum Einsatz kommen, um Teile aus Kisten oder von Paletten zu greifen oder von Bandstrecken zu heben. Diese Technologie vereinfacht die Anlage mechanisch erheblich, da eine präzise mechanische Arretierung und Vorvereinzelung von Objekten entfallen. Especially in modern systems, 3D sensors can be used to pick parts from boxes or pallets, or to lift them from conveyor belts. This technology significantly simplifies the mechanical aspects of the system, as precise mechanical locking and pre-singulation of objects are no longer necessary.
Auf diese Weise kann die gesamte Anlage kostengünstiger werden, da standardisierte 3D Sensoren und Softwarekomponenten zum Einsatz kommen können. Anpassungen an neue Produkte bzw. Objekte oder die Wiederverwendung von Komponenten ist mit geringem Aufwand möglich. Insbesondere in der Intralogistik bei der Teilehandhabung und speziell beim Kommissionieren existiert eine sehr große, teils unüberschaubare Vielfalt an verschiedenen Objekten mit unterschiedlichen Oberflächen, Formen, Verpackungsmaterialien und weiteren physikalischen Eigenschaften.In this way, the entire system can become more cost-effective, as standardized 3D sensors and software components can be used. Adaptations to new products or objects, or the reuse of components, are possible with minimal effort. Particularly in intralogistics, especially in parts handling and order picking, there is a very large, sometimes unmanageable variety of different objects with varying surfaces, shapes, packaging materials, and other physical properties.
Vor diesem Hintergrund wird eine Möglichkeit vorgeschlagen, diesen Anforderungen gerecht zu werden, und zwar insbesondere über eine adaptive Software die mit Hilfe von intelligenten Strategien entscheidet, welche Objekte wie und wann aus einer Kiste entnommen werden sollen. Insbesondere wird hierzu vorgeschlagen, den komplexen Bewegungsablauf des Roboters mit Endeffektor zum Greifen bzw. Bewegen eines Objekts, also z.B. die Entnahme eines Objekts aus einer Kiste, generisch zu strukturieren und zu optimieren, um die Auswahl, den Endeffektor (Greifer) sowie auch den Griff der zu greifenden Objekte zu vereinfachen und gleichzeitig zu optimieren. Die einzelnen Schritte können hierbei insbesondere als Module in Software implementiert werden oder sein, sodass bei Anwendung nacheinander verschiedene Module zum Einsatz kommen, in denen die verschiedenen Schritte, zumindest soweit anwendbar, ausgeführt werden.Against this background, a way is proposed to meet these requirements, specifically through adaptive software that uses intelligent strategies to decide which objects should be removed from a box, how, and when. In particular, it is proposed to analyze the complex movement sequence of the robot with its end effector for grasping or moving an object, i.e., for example, the removal of the object. The process of picking an object from a box is to be generically structured and optimized to simplify and simultaneously optimize the selection, the end effector (gripper), and the gripping of the objects. The individual steps can be implemented as modules in software, so that different modules are used sequentially during application, executing the various steps, at least as applicable.
Hierbei werden zunächst Umgebungsinformationen, die mittels wenigstes eines Sensors von der Arbeitsumgebung erfasst worden sind, bereitgestellt. Dabei kommen insbesondere eine Kamera (insbesondere eine 2D-Kamera) und/oder ein Time of Flight (TOF) oder anderer Tiefensensor oder sonstiger 3D-Sensor in Betracht. Die Umgebungsinformationen umfassen dann insbesondere 2D-Umgebungsinformationen und/oder 3D-Umgebungsinformationen. Während die 2D-Umgebungsinformationen insbesondere Bilder, z.B. Farbbilder, Graustufenbilder oder Schwarz-Weiß-Bilder sein können, kommen bei den 3D-Umgebungsinformationen Punktwolken oder Tiefenkarten in Betracht, ebenso aber ggf. auch 3D-Bilder. Die Sensoren können hierbei z.B. am Roboter angeordnet sein oder Teil des Roboters sein, ebenso kann aber vorgesehen sein, dass solche Sensoren separat vorgesehen sind und verwendet werden können, um möglichst gut Umgebungsinformationen der Arbeitsumgebung, also z.B. einer Kiste mit darin befindlichen Objekten, erfassen zu können.This process begins by providing environmental information captured from the work environment by at least one sensor. This includes, in particular, a camera (especially a 2D camera) and/or a Time-of-Flight (TOF) sensor, another depth sensor, or another 3D sensor. The environmental information then comprises, in particular, 2D and/or 3D environmental information. While the 2D environmental information can be images, such as color, grayscale, or black-and-white images, the 3D environmental information can be point clouds or depth maps, and possibly also 3D images. The sensors can be mounted on the robot or be part of the robot; alternatively, they can be provided and used separately to capture environmental information about the work environment, such as a box containing objects, as accurately as possible.
Basierend auf den Umgebungsinformationen wird dann eine Pose für eines oder jedes von mehreren Objekten in der Arbeitsumgebung bestimmt. Je nachdem, ob die Umgebungsinformationen 2D- und/oder 3D-Umgebungsinformationen umfassen, können z.B. zunächst nur 3D-Umgebungsinformationen verarbeitet werden und dann nur 2D-Umgebungsinformationen. Denkbar ist auch, dass 2D- und 3D-Umgebungsinformationen (gemeinsam) verarbeitet werden. Dies kann ggf. aber auch für verschiedene Teile der Umgebungsinformationen unterschiedlich erfolgen.Based on the environmental information, a pose is then determined for one or more of the objects in the workspace. Depending on whether the environmental information includes 2D and/or 3D data, for example, only 3D environmental information might be processed initially, followed by only 2D environmental information. It is also conceivable that 2D and 3D environmental information are processed (together). This can also be done differently for different parts of the environmental information.
Basierend auf dem Objekt-Posen-Datensatz werden dann eine oder mehrere Posen für den Endeffektor für das eine oder zumindest eines der mehreren Objekte des Objekt-Posen-Datensatzes bestimmt, um einen Endeffektor-Posen-Datensatz zu erhalten. An dieser Stelle sei erwähnt, dass der Roboter auch mehrere Endeffektoren aufweisen kann, von denen z.B. ein geeigneter ausgewählt werden kann, z.B. je nach Art des Objekts, das zu greifen ist. Im Falle mehrerer Endeffektoren können für jeden davon eine oder mehrere Posen bestimmt werden.Based on the object pose data set, one or more end effector poses are then determined for one or at least one of the multiple objects in the object pose data set to obtain an end effector pose data set. It should be noted that the robot can also have multiple end effectors, from which a suitable one can be selected, for example, depending on the type of object to be grasped. In the case of multiple end effectors, one or more poses can be determined for each of them.
Basierend auf dem Endeffektor-Posen-Datensatz wird dann der Bewegungsablauf für den Roboter bestimmt, um ein Objekt in einer Arbeitsumgebung mittels des einen oder eines der mehreren Endeffektoren des Roboters zu greifen und/oder zu bewegen. Der so erhaltene Bewegungsablauf wird dann bereitgestellt, insbesondere wird der Roboter veranlasst, den Bewegungsablauf auszuführen. Konkret können z.B. basierend auf dem Bewegungsablauf Steuerungsinformationen zum Bewegen des Roboters bestimmt werden, die dann bereitgestellt werden, oder die zum Bewegen des Roboters verwendet werden.Based on the end-effector pose data set, the motion sequence for the robot is then determined to grasp and/or move an object in a work environment using one or more of the robot's end effectors. The resulting motion sequence is then deployed; in particular, the robot is instructed to execute it. Specifically, control information for moving the robot can be determined based on the motion sequence and then deployed, or used to move the robot.
Diese Vorgehensweise ist insbesondere für die automatisierte Entnahme von Objekten an Kommissionierarbeitsplätzen in der Intralogistik vorn Vorteil. Die automatische Auswahl eines Endeffektors und die automatische Generierung verschiedener Griffe auf Basis der Geometrie des Endeffektors erhöhen die Erfolgsquote abgegriffener Objekte sowie die Erfolgsquote der vollständig entleerten Kisten. An Kommissionierarbeitsplätzen werden nämlich unterschiedlichste Objekte aus Kisten entnommen. Die Produktportfolien umfassen häufig mehr als 100.000 unterschiedliche Artikel.This approach is particularly advantageous for the automated picking of objects at order picking workstations in intralogistics. The automatic selection of an end effector and the automatic generation of various grips based on the end effector's geometry increase both the success rate of picking objects and the success rate of completely emptying boxes. At order picking workstations, a wide variety of objects are removed from boxes. Product portfolios often comprise more than 100,000 different items.
Wie erwähnt, können die Umgebungsinformationen 2D- und/oder 3D-Umgebungsinformationen umfassen, die dann verschieden verarbeitet werden können. Dabei sei erwähnt, dass 2D- und/oder 3D-Umgebungsinformationen bzw. entsprechende 2D- und 3D-Bilder insbesondere zueinander rekalibriert sind, d.h. dass deren relativen Posen, insbesondere bezogen auf den jeweils erfassenden Sensor bekannt sind.As mentioned, the environmental information can include 2D and/or 3D environmental information, which can then be processed in various ways. It should be noted that the 2D and/or 3D environmental information, or corresponding 2D and 3D images, are recalibrated with respect to each other, meaning that their relative poses, especially in relation to the respective sensor, are known.
In einer Ausführungsform umfasst das Verarbeiten nur von 3D-Umgebungsinformationen das Bestimmen, basierend auf den 3D-Umgebungsinformationen, der Position und/oder Orientierung für das eine oder jedes der mehreren Objekte; und/oder das Zuordnen, basierend auf den 3D-Umgebungsinformationen, des einen oder zumindest eines der mehreren Objekte zu einer Objektklasse, wobei der Objekt-Posen-Datensatz eine Information über die zugeordnete Objektklasse umfasst.In one embodiment, processing only 3D environment information includes determining, based on the 3D environment information, the position and/or orientation for one or each of the multiple objects; and/or assigning, based on the 3D environment information, one or at least one of the multiple objects to an object class, wherein the object pose record includes information about the assigned object class.
In einer Ausführungsform umfasst das Verarbeiten nur von 2D-Umgebungsinformationen das Identifizieren, basierend auf den 2D-Umgebungsinformationen, eines Teils, z.B. einer Kante, des einen oder wenigstens eines der mehreren Objekte; und/oder das Zuordnen, basierend auf den 2D-Umgebungsinformationen, des einen oder zumindest eines der mehreren Objekte zu einer Objektklasse, wobei der Objekt-Posen-Datensatz eine Information über die zugeordnete Objektklasse umfasst.In one embodiment, processing only 2D environment information includes identifying, based on the 2D environment information, a part, e.g., an edge, of one or at least one of the multiple objects; and/or assigning, based on the 2D environment information, one or at least one of the multiple objects to an object class, wherein the object pose record includes information about the assigned object class.
In einer Ausführungsform umfasst das Verarbeiten von 2D- und 3D-Umgebungsinformationen das Klassifizieren und/oder Segmentieren, basierend auf den 2D-Umgebungsinformationen, des einen oder zumindest eines der mehreren Objekte; und das Bestimmen, basierend auf den 3D-Umgebungsinformationen, der Pose für das eine oder das zumindest eine der mehreren klassifizierten und/oder segmentierten Objekte.In one embodiment, the processing of 2D and 3D environment information includes classifying and/or segmenting, based on the 2D environment information, one or at least one of the multiple objects; and determining, based on the 3D environment information, the pose for one or at least one of the multiple classified and/or segmented objects.
Die getrennte Verarbeitung der 3D- und 2D-Umgebungsinformationen erlaubt eine effiziente und schnelle Verarbeitung der jeweils spezifischen Informationen. The separate processing of 3D and 2D environment information allows for efficient and fast processing of the respective specific information.
Die kombinierte Verarbeitung der 3D- und 2D-Umgebungsinformationen hingegen erlaubt den Erhalt genauerer Informationen, z.B. genauerer Posen.However, the combined processing of 3D and 2D environment information allows for the acquisition of more accurate information, e.g., more accurate poses.
In einer Ausführungsform ist, um den Objekt-Posen-Datensatz zu erhalten, wenigstens einer der folgenden Schritte vorgesehen. Es werden z.B. basierend auf wenigstens einem Objekt-Auswahlkriterium, eines oder mehrere ausgewählte Objekte, aus dem einen oder den mehreren Objekten, bestimmt. Der Objekt-Posen-Datensatz umfasst dann nur Posen für das eine oder die mehreren ausgewählten Objekte. So lassen sich z.B. Posen von Objekten, die außerhalb eines gültigen oder vorgegebenen Bereichs liegen, oder die z.B. eine zu starke Verkippung aufweisen, unberücksichtigt bleiben. Es kann z.B. auch eine Reihenfolge zu jedem der mehreren Objekte im Objekt-Posen-Datensatz zugeordnet werden, und zwar gemäß wenigstens einem Objekt-Ordnungskriterium. Hier können z.B. höher liegende Posen nach vorne sortiert werden, sodass diese später bevorzugt behandelt werden, da solche Objekte z.B. einfacher greifbar sind.In one embodiment, at least one of the following steps is provided to obtain the object-pose data set. For example, based on at least one object selection criterion, one or more selected objects are determined from the one or more objects. The object-pose data set then only includes poses for the one or more selected objects. This allows, for example, poses of objects that lie outside a valid or predefined range, or that exhibit excessive tilt, to be disregarded. Alternatively, a sequence can be assigned to each of the multiple objects in the object-pose data set according to at least one object ordering criterion. Here, for example, higher-ordered poses can be sorted to the front so that they are processed preferentially later, since such objects are, for example, easier to grasp.
In einer Ausführungsform ist, um den Endeffektor-Posen-Datensatz zu erhalten, wenigstens einer der folgenden Schritte vorgesehen. Es werden z.B. basierend auf wenigstens einem Endeffektor-Auswahlkriterium, eine oder mehrere ausgewählte Posen für den einen oder zumindest einen der mehreren Endeffektoren bestimmt, und zwar aus der einen oder den mehreren Posen des jeweiligen Endeffektors. Der Endeffektor-Posen-Datensatz umfasst dann nur die eine oder die mehreren ausgewählten Posen für den jeweiligen Endeffektor. Ähnlich wie bei den Posen der Objekte können hier z.B. Posen für einen Endeffektor unberücksichtigt bleiben, die schwierig anzufahren sind. Es kann z.B. auch eine Reihenfolge zu jeder der mehreren Posen für den einen oder zumindest einen der mehreren Endeffektoren im Endeffektor-Posen-Datensatz zugeordnet werden, und zwar gemäß wenigstens einem Endeffektor-Ordnungskriterium. Hier können z.B. höher liegende Posen nach vorne sortiert werden, sodass diese später bevorzugt behandelt werden, da solche Posen für einen Endeffektor z.B. einfacher erreichbar sind.In one embodiment, to obtain the end-effector pose data set, at least one of the following steps is provided. For example, based on at least one end-effector selection criterion, one or more selected poses are determined for one or at least one of the multiple end effectors, specifically from the one or more poses of the respective end effector. The end-effector pose data set then comprises only the one or more selected poses for the respective end effector. Similar to the poses of the objects, poses for an end effector that are difficult to access can be disregarded. Alternatively, a sequence can be assigned to each of the multiple poses for one or at least one of the multiple end effectors in the end-effector pose data set, according to at least one end-effector ordering criterion. Here, for example, higher-ordered poses can be sorted to the front so that they are given priority later, since such poses are, for example, easier to reach for an end effector.
In einer Ausführungsform umfasst das Bestimmen des Bewegungsablaufs das Bestimmen eines Achskonfigurations-Datensatzes, insbesondere basierend auf inverser Kinematik. Dabei umfasst der Achskonfigurations-Datensatz eine Achskonfiguration des Roboters für die eine oder zumindest eine der mehreren Posen des einen oder zumindest einen der mehreren Endeffektoren. Bevorzugt wird zudem, für die eine oder zumindest eine der mehreren Achskonfigurationen, ein potentielle Bewegungsablauf bestimmt. Im Falle eines potentiellen Bewegungsablaufs wird dieser als final zu verwendender Bewegungsablauf verwendet, oder im Falle mehrerer potentiellen Bewegungsabläufe wird einer davon als der zu verwendende Bewegungsablauf bestimmt. Dabei können die mehreren potentiellen Bewegungsabläufe für einen Endeffektor aber verschiedene Posen gelten, oder aber für verschiedene Endeffektoren, jeweils mit einer oder mehreren verschiedenen Posen. Die Wahl des finalen Bewegungsablaufs umfasst damit ggf. auch eine Wahl des Endeffektors.In one embodiment, determining the motion sequence includes determining an axis configuration data set, particularly based on inverse kinematics. This axis configuration data set comprises an axis configuration of the robot for one or at least one of the multiple poses of one or at least one of the multiple end effectors. Preferably, a potential motion sequence is also determined for one or at least one of the multiple axis configurations. In the case of a potential motion sequence, this is used as the final motion sequence, or in the case of multiple potential motion sequences, one of them is determined as the motion sequence to be used. The multiple potential motion sequences can represent different poses for one end effector, or they can represent different end effectors, each with one or more different poses. The selection of the final motion sequence thus may also include a selection of the end effector.
Der Bewegungsablauf kann insbesondere einen ersten Teil-Bewegungsablauf und einen zweiten Teil-Bewegungsablauf umfassen. Der erste Teil-Bewegungsablauf umfasst dabei eine Bewegung des einen oder des einen der mehreren Endeffektoren hin zu einer Position des Objekts umfasst, und der zweite Teil-Bewegungsablauf eine Bewegung des einen oder des einen der mehreren Endeffektoren weg von der Position des Objekts. Dies gilt entsprechend auch für die potentiellen Bewegungsabläufe.The motion sequence can, in particular, comprise a first sub-sequence and a second sub-sequence. The first sub-sequence involves a movement of one or more end effectors toward a position of the object, and the second sub-sequence involves a movement of one or more end effectors away from the object's position. This also applies accordingly to potential motion sequences.
Eine erfindungsgemäße Recheneinheit (d.h. allgemein ein System zur Datenverarbeitung), z.B. ein Steuergerät oder eine Steuereinheit eines Roboters, oder ein zentraler Server oder anderes Rechensystem, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.A computing unit according to the invention (i.e., generally a system for data processing), e.g., a control unit or a control unit of a robot, or a central server or other computing system, is, in particular in terms of programming, equipped to carry out a method according to the invention.
Die Erfindung betrifft auch einen Roboter, der eingerichtet ist, Steuerungsinformationen zu erhalten, die wie verstehend erwähnt bestimmt worden sind. Zudem oder alternativ weist der Roboter eine erfindungsgemäße Recheneinheit auf. Weiterhin weist der Roboter insbesondere eine Steuer- oder Regeleinheit und eine Antriebseinheit zum Bewegen des Roboters auf. Zudem kann der Roboter wenigstens einen Sensor zum Erfassen von Umgebungsinformationen aufweisen, z.B. eine Kamera und/oder einen 3D-Sensor.The invention also relates to a robot configured to receive control information as described above. In addition, or alternatively, the robot comprises a computing unit according to the invention. Furthermore, the robot comprises, in particular, a control unit and a drive unit for moving the robot. The robot may also have at least one sensor for acquiring environmental information, e.g., a camera and/or a 3D sensor.
Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Schließlich ist ein maschinenlesbares Speichermedium vorgesehen mit einem darauf gespeicherten Computerprogramm wie oben beschrieben. Geeignete Speichermedien bzw. Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich. Ein solcher Download kann dabei drahtgebunden bzw. kabelgebunden oder drahtlos (z.B. über ein WLAN-Netz, eine 3G-, 4G-, 5G- oder 6G-Verbindung, etc.) erfolgen.Implementing a method according to the invention in the form of a computer program or computer program product with program code for carrying out all method steps is also advantageous, as this incurs particularly low costs, especially if an executing control unit is already available for other tasks. Finally, a machine-readable storage medium is provided with a computer program stored on it as described above. Suitable storage media or data carriers for providing the computer program are, in particular, magnetic, optical, and electrical storage media, such as hard drives, flash memory, EEPROMs, DVDs, etc. Downloading a program via computer networks (Internet, intranet, etc.) is also possible. Such a download can be wired or wireless (e.g., via a WLAN network, a 3G, 4G, 5G, or 6G connection, etc.).
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.Further advantages and embodiments of the invention will become apparent from the description and the accompanying drawing.
Die Erfindung ist anhand eines Ausführungsbeispiels in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.The invention is schematically illustrated in the drawing using an exemplary embodiment and is described below with reference to the drawing.
Kurze Beschreibung der ZeichnungenBrief description of the drawings
-
1 zeigt schematisch einen Roboter zur Erläuterung der Erfindung.1 The image schematically shows a robot to illustrate the invention. -
2 zeigt schematisch einen Ablauf eines Verfahrens in einer Ausführungsform.2 schematically shows a sequence of steps in one embodiment of a process. -
3 ,4 ,5 bis6 zeigen schematisch Objekte und Roboter zur Erläuterung der Erfindung.3 ,4 ,5 until6 The images schematically show objects and robots to illustrate the invention.
Ausführungsform(en) der Erfindungembodiment(s) of the invention
In
Weiterhin weist der Roboter 100 einen Endeffektor 108, z.B. einen Greifer, auf. Der Endeffektor 108 ist mittels eines Gelenks 116 beweglich und bewegbar mit der Armkomponente 106 verbunden.Furthermore, the robot 100 has an end effector 108, e.g., a gripper. The end effector 108 is movably and movably connected to the arm component 106 by means of a joint 116.
Weiterhin weist der Roboter 100 ein hier nur schematisch angedeutetes Antriebssystem 120 auf, sowie eine als z.B. Steuer- oder Regeleinheit ausgebildete Recheneinheit 122. Damit kann das Antriebssystem 120 z.B. anhand von Steuerinformationen angesteuert werden, um den Roboter gemäß einem gewünschten Bewegungsablauf zu bewegen. Dies kann z.B. ein Bewegen der Achsen relativ zueinander, mittels der Gelenke, umfassen, aber auch eine Rotation der Achsen in sich, sofern entsprechende Antriebe vorhanden sind.Furthermore, the robot 100 has a drive system 120, shown only schematically here, as well as a computing unit 122 designed, for example, as a control or regulation unit. This allows the drive system 120 to be controlled, for example, using control information, in order to move the robot according to a desired sequence of movements. This can include, for example, moving the axes relative to each other by means of the joints, but also rotating the axes themselves, provided that appropriate drives are present.
Weiterhin ist in einer Arbeitsumgebung 130 eine Kiste 132 dargestellt, in der sich beispielhaft ein Objekt 140 befindet. Es kann der Roboter 100 nun z.B. derart angesteuert werden, dass der das Objekt 140 mittels des Endeffektors 108 greift und/oder bewegt.Furthermore, a box 132 is shown in a work environment 130, containing, for example, an object 140. The robot 100 can now be controlled, for example, in such a way that it grasps and/or moves the object 140 using the end effector 108.
Weiterhin ist beispielhaft ein Sensor 124 gezeigt, bei dem es sich z.B. um eine Kamera oder einen 3D-Sensor handeln kann. Auch beide Arten von Sensoren können vorgesehen sein. Ebenso können mehrere gleichartige Sensoren vorgesehen sein. Der Sensor 124 kann z.B. auf geeignete Weise in der Arbeitsumgebung angeordnet sein, z.B. an einer Decke und damit separat vom Robote 100. Der Sensor 124 könnte aber z.B. auch Teil des Roboters sein und z.B. an der Armkomponente 106 oder dem Endeffektor 108 angeordnet sein.Furthermore, an example sensor 124 is shown, which could be, for example, a camera or a 3D sensor. Both types of sensors can also be used. Likewise, several identical sensors can be used. The sensor 124 can, for example, be arranged in a suitable manner in the work environment, e.g., on a ceiling and thus separately from the robot 100. However, the sensor 124 could also be part of the robot and, for example, be arranged on the arm component 106 or the end effector 108.
Mittels des Sensors 124 kann nun die Arbeitsumgebung 130 und insbesondere die Kiste 132 bzw. deren Inneres einschließlich des Objekts 140 erfasst werden. Basierend auf so erhaltenen Umgebungsinformationen kann ein Bewegungsablauf für den Roboter erstellt werden, um das Objekt 140 mittels des Endeffektors 108 zu greifen und/oder zu bewegen. Dies soll nachfolgend näher erläutert werden.The sensor 124 can now detect the work environment 130, and in particular the box 132 and its interior, including the object 140. Based on this environmental information, a movement sequence can be created for the robot to grasp and/or move the object 140 using the end effector 108. This will be explained in more detail below.
In
Dabei wird auch auf die
In einem Schritt oder Modul 200 werden Umgebungsinformationen mittels wenigstes eines Sensors von der Arbeitsumgebung erfasst. Konkret kann da also z.B. eine Szenenaufnahme der Kiste bzw. der Arbeitsumgebung sein, in der Objekte erkannt werden sollen. Dabei nimmt der Sensor z.B. eines oder mehrere 3D- und/oder 2D-Abbilder - allgemein 3D-Umgebungsinformationen 202 und 2D-Umgebungsinformationen 204 - auf, die in nachfolgenden Schritten bzw. Modulen verarbeitet werden. Bei dem 2D-Abbild handelt es sich beispielsweise um ein RGB-Bild oder Grau-Wert-Bild. Bei dem 3D-Abbild handelt es sich z.B. um Punktwolken oder Tiefenbilder. In der Regel sind 2D-Abbild und 3D-Abbild zueinander kalibriert, d.h., sie stehen in Bezug zueinanderIn step or module 200, environmental information is captured from the work environment using at least one sensor. Specifically, this could be, for example, a scene recording of the box or the work environment in which objects are to be detected. The sensor captures, for example, one or more 3D and/or 2D images – generally referred to as 3D environmental information 202 and 2D environmental information 204 – which are then processed. The data is processed in several steps or modules. For example, the 2D image is an RGB image or a grayscale image. The 3D image is, for example, a point cloud or depth image. Typically, the 2D and 3D images are calibrated to each other, meaning they are aligned.
Diese so erfassten Umgebungsinformationen werden dann in Schritt 206 zur weiteren Verwendung bzw. Verarbeitung bereitgestellt.This environmental information, thus captured, is then made available for further use or processing in step 206.
In einem Schritt 210 wird dann, basierend auf den Umgebungsinformationen, eine Pose für eines oder jedes von mehreren Objekten in der Arbeitsumgebung bestimmt, um so dann einen Objekt-Posen-Datensatz 228 zu erhalten.In step 210, based on the environment information, a pose is determined for one or each of several objects in the work environment in order to obtain an object pose record 228.
Der Schritt 210 kann dabei drei verschiedene Schritte oder Module umfasst, nämlich das Verarbeiten nur von 3D-Umgebungsinformationen in Schritt bzw. Modul 212, das Verarbeiten nur von 2D-Umgebungsinformationen in Schritt bzw. Modul 214, sowie das Verarbeiten von 2D- und 3D-Umgebungsinformationen in Schritt bzw. Modul 216.Step 210 can comprise three different steps or modules: processing only 3D environment information in step or module 212, processing only 2D environment information in step or module 214, and processing 2D and 3D environment information in step or module 216.
Schritt bzw. Modul 212 kann umfassen, dass basierend auf den 3D-Umgebungsinformationen, die Pose für das eine oder jedes der mehreren Objekte bestimmt, sowie, dass basierend auf den 3D-Umgebungsinformationen, das eine oder zumindest eines der mehreren Objekte zu einer Objektklasse zugeordnet wird, wobei der Objekt-Posen-Datensatz dann eine Information über die zugeordnete Objektklasse umfasst.Step or module 212 can include determining the pose for one or each of the multiple objects based on the 3D environment information, and assigning one or at least one of the multiple objects to an object class based on the 3D environment information, with the object pose record then including information about the assigned object class.
Konkret können z.B. in Bildverarbeitungsprozessen die 3D-Abbilder verarbeitet und instanziiert werden. Solche Bildverarbeitungsprozesse können z.B. von einer einfachen Flächensegmentierung bis hin zu komplexen Algorithmen mit neuronalen Netzen reichen, die komplexe Objekte klassifizieren und segmentieren. Als Ergebnis ergibt sich dann z.B. ein Vektor mit Posen von Objekten. Bei diesen Posen kann auch von sog. Vision-Posen gesprochen werden, da diese Posen sich anhand der visuellen Umgebungsinformationen ergeben. Diese Posen repräsentieren insbesondere alle lokalisierten Objekte. Optional können den Posen und/oder den Objekten im Objekt-Posen-Datensatz z.B. Algorithmus-spezifische Parameter wie beispielsweise Flächeninformationen zugeordnet sein.Specifically, 3D images can be processed and instantiated in image processing workflows. Such workflows can range from simple surface segmentation to complex algorithms using neural networks to classify and segment complex objects. The result is, for example, a vector containing object poses. These poses can also be referred to as vision poses, as they are derived from visual environmental information. These poses represent all localized objects. Optionally, algorithm-specific parameters, such as surface information, can be assigned to the poses and/or the objects in the object-pose dataset.
Schritt bzw. Modul 214 kann umfassen, dass basierend auf den 2D-Umgebungsinformationen, ein Teil des einen oder wenigstens eines der mehreren Objekte identifiziert wird, oder dass, basierend auf den 2D-Umgebungsinformationen, das eine oder zumindest eines der mehreren Objekte zu einer Objektklasse zugeordnet wird, wobei der Objekt-Posen-Datensatz eine Information über die zugeordnete Objektklasse umfasst.Step or module 214 may include identifying a part of one or at least one of the multiple objects based on the 2D environment information, or assigning one or at least one of the multiple objects to an object class based on the 2D environment information, with the object pose record including information about the assigned object class.
Konkret können z.B. in Bildverarbeitungsprozessen die 2D-Abbilder verarbeitet und instanziiert werden. Solche Bildverarbeitungsprozesse können beispielweise eine Barcodeerkennung, eine Kantenerkennung von Objekten oder auch ein Klassifikator sein, der verschiedenartige Objekt-Klassen erkennt. Es können auch Algorithmen (mit und auch ohne KI, d.h. künstlicher Intelligenz) verwendet werden, mittels welcher 6D-Posen extrahiert werden können. Dies kann z.B. basierend auf formbasierten CAD-Matchern oder auch auf KI-Basis, beispielsweise über ein generiertes synthetisches Tiefenbild, das eine 3D Punktewolken Verarbeitung ermöglicht, erfolgen.Specifically, 2D images can be processed and instantiated in image processing workflows. Such workflows might include barcode recognition, object edge detection, or a classifier that identifies different object classes. Algorithms (with and without AI, i.e., artificial intelligence) can also be used to extract 6D poses. This can be achieved, for example, using shape-based CAD matchers or AI-based methods, such as generating a synthetic depth image that enables 3D point cloud processing.
Schritt bzw. Modul 216 kann umfassen, dass basierend auf den 2D-Umgebungsinformationen, das eine oder zumindest eines der mehreren Objekte klassifiziert und/oder segmentiert werden, und dass, basierend auf den 3D-Umgebungsinformationen, die Pose für das eine oder das zumindest eine der mehreren klassifizierten und/oder segmentierten Objekte bestimmt wird.Step or module 216 may include classifying and/or segmenting one or at least one of the multiple objects based on the 2D environment information, and determining the pose for one or at least one of the multiple classified and/or segmented objects based on the 3D environment information.
Konkret können in hybriden Bildverarbeitungsprozessen, aus 2D- und 3D-Abbilder kombinierte Abbilder oder Daten instanziiert werden. Dabei werden beispielsweise im 2D-Abbild Objekte klassifiziert und segmentiert und in der 3D-Punktwolke oder im Tiefenbild entsprechend ausgeschnitten. Mit dieser Vorgehensweise können beispielsweise komplexe Objekte im 3D-Abbild segmentiert werden. Als Ergebnis ergibt sich dann z.B. ein Vektor mit Posen von Objekten. Bei diesen Posen kann auch von sog. Vision-Posen gesprochen werden, da diese Posen sich anhand der visuellen Umgebungsinformationen ergeben. Diese Posen repräsentieren insbesondere alle lokalisierten Objekte. Optional können den Posen und/oder den Objekten im Objekt-Posen-Datensatz z.B. Algorithmus-spezifische Parameter wie beispielsweise Flächeninformationen zugeordnet sein.Specifically, hybrid image processing allows for the instantiation of images or data that combine 2D and 3D representations. For example, objects in the 2D image are classified and segmented, and then correspondingly cut out in the 3D point cloud or depth image. This approach enables the segmentation of complex objects within the 3D image. The result is, for instance, a vector containing object poses. These poses can also be referred to as vision poses, as they are derived from visual environment information. These poses represent all localized objects. Optionally, algorithm-specific parameters, such as area information, can be assigned to the poses and/or objects within the object-pose dataset.
Mittels der Schritte bzw. Module 212, 214, 216 - je nach Situation könne z.B. auch nur manche davon verwendet werden - ergibt sich dann zunächst ein vorläufiger Objekt-Posen-Datensatz 218, der Posen und ggf. die weiteren genannten Informationen zu den erkannten Objekten umfasst.Using steps or modules 212, 214, 216 - depending on the situation, for example, only some of them may be used - a preliminary object-pose data set 218 is then obtained, which includes poses and, if applicable, the other information mentioned about the recognized objects.
Um den (finalen) Objekt-Posen-Datensatz 228 zu erhalten, können noch weitere Schritte oder Module 222 und/oder 224 vorgesehen sein. Schritt bzw. Modul 222 umfasst z.B., dass, basierend auf wenigstens einem Objekt-Auswahlkriterium, eines oder mehrere ausgewählte Objekte bestimmt werden, und war aus dem einen oder den mehreren Objekten (also aus dem vorläufigen Objekt-Posen-Datensatz 218), wobei der (finale) Objekt-Posen-Datensatz 228 dann nur Posen für das eine oder die mehreren ausgewählten Objekte umfasst.To obtain the (final) object pose data record 228, further steps or modules 222 and/or 224 may be required. Step or module 222 includes, for example, determining one or more selected objects based on at least one object selection criterion, and selecting the object from this one or more objects. objects (i.e., from the preliminary object poses record 218), whereby the (final) object poses record 228 then only includes poses for the one or more selected objects.
Konkret können hier z.B. diverse Prozesse und/oder Filter instanziiert werden. Beispielsweise können hier die Posen den Schritten bzw. Modulen 212, 214, 216, die außerhalb eines gültigen oder sonst vorgegebenen Bereichs liegen, herausgefiltert werden. Beispielsweise können alle Posen von Objekten, die eine starke Verkippung relativ zum Kistenboden aufweisen, herausgefiltert werden. Specifically, various processes and/or filters can be instantiated here. For example, poses from steps or modules 212, 214, and 216 that lie outside a valid or otherwise predefined range can be filtered out. For instance, all poses of objects that exhibit a significant tilt relative to the bottom of the box can be filtered out.
Hierzu ist in
Mit 354 ist nun eine Differenz bzw. ein Differenzvektor zwischen den Normalen 350 und 352 bezeichnet, was ein Maß für eine Verkippung des Objekts 340 relativ zum Kistenboden 332 ist. Auf diese Weise können z.B. Posen mit sehr starker Verkippung relativ zum Kistenboden, wie das z.B. für das Objekt 343 der Fall wäre, aussortiert werden. Hier können z.B. geeignete Schwellwerte vorgegeben werden.The value 354 now denotes a difference or difference vector between the normals 350 and 352, which is a measure of the tilt of object 340 relative to the box bottom 332. In this way, poses with a very strong tilt relative to the box bottom, such as object 343, can be filtered out. Suitable threshold values can be specified here.
Schritt bzw. Modul 224 umfasst z.B. das Zuordnen einer Reihenfolge zu jedem der mehreren Objekte im Objekt-Posen-Datensatz gemäß wenigstens einem Objekt-Ordnungskriterium. Dies kann z.B. einfach nur das Umsortieren einer Reihenfolge der Einträge in einer dem Objekt-Posen-Datensatz entsprechenden Liste sein. Ein konkretes Beispiel ist z.B. eine Sortierung der Posen nach ihrer Höhenlage in der Kiste.Step or module 224 includes, for example, assigning a sequence to each of the multiple objects in the object-pose data record according to at least one object ordering criterion. This could simply be reordering the entries in a list corresponding to the object-pose data record. A concrete example is sorting the poses according to their height within the box.
In dem Beispiel in
Als Ergebnis ergibt sich dann z.B. ein Vektor mit den übrigen bzw. verbleibenden sowie ggf. umsortierten Posen von Objekten, also der (finale) Objekt-Posen-Datensatz 228.The result is, for example, a vector containing the remaining and possibly reordered poses of objects, i.e., the (final) object-pose data set 228.
In einem Schritt oder Modul 230 werden dann, basierend auf dem Objekt-Posen-Datensatz 228, eine oder mehrere Posen für einen oder jeden von mehreren Endeffektoren bestimmt, und zwar jeweils für das eine oder zumindest eines der mehreren Objekte des Objekt-Posen-Datensatzes 228, um einen Endeffektor-Posen-Datensatz 236 zu erhalten.In a step or module 230, based on the object poses record 228, one or more poses are determined for one or each of several end effectors, in each case for one or at least one of the several objects of the object poses record 228, in order to obtain an end effector poses record 236.
Konkret können in diesem Schritt bzw. Modul z.B. diverse Prozesse instanziiert werden, die der Konvertierung von Posen der Objekte (Vision-Posen) in Posen des Endeffektors (Greifposen) dienen. Dabei können in Abhängigkeit vom verwendeten Bildverarbeitungsalgorithmus und der zur Verfügung stehenden Endeffektoren (Greifer) z.B. verschiedene Posen von Endeffektoren generiert werden.Specifically, in this step or module, various processes can be instantiated that serve to convert object poses (vision poses) into end effector poses (gripping poses). Depending on the image processing algorithm used and the available end effectors (grippers), different end effector poses can be generated.
Beispielsweise gibt ein Zylinderfit-Algorithmus eine Vision-Pose aus, die axial in z-Richtung ausgerichtet ist.For example, a cylinder fitting algorithm outputs a vision pose that is axially aligned in the z-direction.
In
Die hierfür erforderlichen Greifposen liegen jedoch auf dem Zylindermantel. Mit Hilfe eines Vision-Pose-Parametersets, das für den Zylinderfit-Algorithmus den Radius des erkannten Zylinders umfasst, können z.B. die Greifpositionen berechnet werden.The required gripping poses, however, lie on the cylinder's surface. Using a vision-pose parameter set that includes the radius of the detected cylinder for the cylinder-fit algorithm, the gripping positions can be calculated, for example.
Hierzu ist in
Gegenüber der Pose 452 des Objekts ist die Pose 460 des Endeffektors 408 nochmals geändert; sie kann z.B. durch Translation und Rotation erhalten werden. Der Zylinder ist achssymmetrisch, demzufolge können mittels der Kenntnis des Radius auf der Manteloberfläche beliebig viele Griffe orthogonal zur Mantelfläche berechnet werden. Mit der (von der Vision) übermittelten Zylinder-Längenangabe ist zusätzlich eine translatorische Verschiebung denkbar, um weitere Griffe auf der Mantelfläche zu generieren.Compared to pose 452 of the object, pose 460 of the end effector 408 is modified again; it can be obtained, for example, by translation and rotation. The cylinder is axially symmetric; therefore, any number of handles can be orthogonally positioned on the surface of the cylinder using the known radius. The surface area can be calculated. Using the cylinder length information (transmitted by the vision), a translational shift is also conceivable to generate further handles on the surface.
Konkret können in diesem Modul aber auch weitere Prozesse und Filter instanziiert werden. Beispielsweise können Prozesse genutzt werden, um sekundäre Greifpositionen unter zur Hilfenahme des selektierten Endeffektors bzw. Greifers aus dem vorigen Schritt zu generieren, also die Anzahl der möglichen Posen des Endeffektors zu erweitern.Specifically, further processes and filters can also be instantiated in this module. For example, processes can be used to generate secondary gripping positions using the selected end effector or gripper from the previous step, thus expanding the number of possible poses of the end effector.
Handelt es sich beispielsweise um einen rotationssymmetrischen Greifer, können entsprechend rotationssymmetrische Griffe generiert werden, die die Erfolgsquote beim Abgriff schlussendlich erhöhenFor example, if it is a rotationally symmetrical gripper, correspondingly rotationally symmetrical handles can be generated, which ultimately increases the success rate of the gripping action.
Hierzu ist in
Weiterhin kann z.B. ein Schritt oder ein Modul 232 vorgesehen sein, in dem, basierend auf wenigstens einem Endeffektor-Auswahlkriterium, eine oder mehrere ausgewählte Posen für den einen oder zumindest einen der mehreren Endeffektoren bestimmt werden, und zwar aus der einen oder den mehreren Posen des einen der mehreren Endeffektoren. Der Endeffektor-Posen-Datensatz 236 umfasst dann nur die eine oder die mehreren ausgewählten Posen für den einen oder den wenigstens einen der mehreren Endeffektoren.Furthermore, for example, a step or module 232 may be provided in which, based on at least one end-effector selection criterion, one or more selected poses are determined for one or at least one of the several end-effectors, specifically from the one or more poses of that one of the several end-effectors. The end-effector pose data set 236 then comprises only the one or more selected poses for the one or at least one of the several end-effectors.
Dies kann z.B. auch einen Schritt oder ein Modul 234 umfassen, in dem eine Reihenfolge zu jeder der mehreren Posen für den einen oder zumindest einen der mehreren Endeffektoren im Endeffektor-Posen-Datensatz 236 gemäß wenigstens einem Endeffektor-Ordnungskriterium zugeordnet wird.This can, for example, also include a step or a module 234 in which an order is assigned to each of the several poses for one or at least one of the several end effectors in the end effector poses data set 236 according to at least one end effector ordering criterion.
Um die generierten Greifposen zu filtern, können z.B. auch Filterprozesse instanziiert werden, die beispielsweise Greifposen mit zu hohen Kosten oder zu starker Verkippung gegenüber dem Kistenboden herausfiltern. Es können beispielsweise auch Prozesse vorgesehen sein, die die Greifposen sortieren oder nach bestimmten Kriterien wie Höhenlage, Greiffläche oder Lokalisierungsgüte bewerten bzw. filtern.To filter the generated gripping poses, filter processes can be instantiated to, for example, remove gripping poses with excessively high costs or excessive tilt relative to the box bottom. Processes can also be implemented to sort the gripping poses or evaluate or filter them according to specific criteria such as height, gripping area, or localization accuracy.
Als Ergebnis steht ein Vektor mit den übrigen Greifer-Posen und deren Kosten zur Verfügung, also der Endeffektor-Posen-Datensatz 236The result is a vector containing the remaining gripper poses and their costs, i.e., the end effector pose dataset 236.
In einem Schritt oder Modul 240 wird dann, basierend auf dem Endeffektor-Posen-Datensatz 236, der Bewegungsablaufs 250 für den Roboter bestimmt, um das Objekt in der Arbeitsumgebung mittels des einen oder eines der mehreren Endeffektoren des Roboters zu greifen und/oder zu bewegen.In a step or module 240, based on the end effector pose data set 236, the motion sequence 250 for the robot is determined to grasp and/or move the object in the work environment using one or more end effectors of the robot.
Das kann z.B. einen Schritt oder ein Modul 242 umfassen, bei dem ein Achskonfigurations-Datensatz 244 bestimmt wird, insbesondere basierend auf inverser Kinematik. Der Achskonfigurations-Datensatz umfasst dabei eine Achskonfiguration des Roboters für die eine oder zumindest eine der mehreren Posen des einen oder zumindest einen der mehreren Endeffektoren.This can, for example, include a step or module 242 in which an axis configuration data set 244 is determined, in particular based on inverse kinematics. The axis configuration data set includes an axis configuration of the robot for one or at least one of the several poses of one or at least one of the several end effectors.
Konkret können z.B. für jede Greifpose die dazugehörige spezifischen Achskonfigurationen des verwendeten Roboters mit Hilfe der inversen Kinematik berechnet werden. Hierbei können die möglichen Bewegungen, und zwar insbesondere Rotationen der Gelenke wie in
Greifposen, die der Roboter physikalisch nicht erreichen kann, haben bei der inversen kinematischen Berechnung keine Lösung und entfallen daher automatisch.Gripping poses that the robot cannot physically reach have no solution in the inverse kinematic calculation and are therefore automatically eliminated.
Als Ergebnis steht ein Vektor mit den gültigen Roboterachskonfigurationen in den Greifpunkten zur Verfügung, also der Achskonfigurations-Datensatz 244. Dabei enthalten die Vektorelemente z.B. die Roboterachskonfiguration aller beweglichen Achsen im Greifpunkt sowie die zugehörige Greifpose.The result is a vector containing the valid robot axis configurations at the gripping points, i.e., axis configuration data set 244. The vector elements include, for example, the robot axis configuration of all movable axes at the gripping point and the corresponding gripping pose.
Das kann zudem auch einen Schritt oder ein Modul 246 umfassen, bei dem für die eine oder zumindest eine der mehreren Achskonfigurationen 244, ein potentieller Bewegungsablauf 248 bestimmt wird. Im Falle (nur) eines potentiellen Bewegungsablaufs wird dieser als Bewegungsablauf 250 verwenden, im Falle mehrerer potentiellen Bewegungsabläufe, wird einer davon als der Bewegungsablauf 250 bestimmt, z.B. gemäß einem Gütekriterium, anhand welchem entschieden werden kann, wie das Objekt oder welches Objekt am schnellsten gegriffen werden kann.This can also include a step or module 246 in which a potential motion sequence 248 is determined for one or at least one of the several axis configurations 244. In the case of (only) one potential motion sequence, this will be used as motion sequence 250; in the case of several potential motion sequences, one of them will be determined as motion sequence 250, e.g., according to a quality criterion that determines how or which object can be grasped most quickly.
Konkret können z.B. Prozesse bzw. Filter instanziiert werden, die dazu dienen, beispielsweise unerwünschte Roboterachskonfigurationen herauszufiltern. Konkret sollen beispielsweise Achskonfigurationen, bei denen eine bestimmte Achse um mehr als +/- 90° (z.B. gegenüber einer Standardstellung) positioniert ist, entfallen. Dies kann z.B. die Achse 106 gemäß
Der Bewegungsablauf 250 kann hierbei einen ersten Teil-Bewegungsablauf und einen zweiten Teil-Bewegungsablauf umfassen, wobei der erste Teil-Bewegungsablauf eine Bewegung des einen oder des einen der mehreren Endeffektoren hin zu einer Position des Objekts umfasst, und wobei der zweite Teil-Bewegungsablauf eine Bewegung des einen oder des einen der mehreren Endeffektoren weg von der Position des Objekts umfasst.The motion sequence 250 can comprise a first partial motion sequence and a second partial motion sequence, wherein the first partial motion sequence comprises a movement of one or one of the several end effectors towards a position of the object, and wherein the second partial motion sequence comprises a movement of one or one of the several end effectors away from the position of the object.
Für jede verfügbare Roboterachskonfiguration im Greifpunkt kann also eine kollisionsfreie Fahrt mittels des Endeffektors in die Kiste zum Objekt und aus der Kiste heraus berechnet werden, sofern eine physikalische Erreichbarkeit aus der gegebenen Startposition heraus möglich ist.For each available robot axis configuration at the gripping point, a collision-free movement using the end effector into the box to the object and out of the box can be calculated, provided that physical accessibility from the given starting position is possible.
Konkret können also z.B. in einem Modul Prozesse zur Berechnung des Anrückpfads (erster Teil-Bewegungsablauf) instanziiert werden. Solche Prozesse dienen dazu, Teilstücke des Anrückpfads oder den gesamten kollisionsfreien Anrückpfad zum vorgegebenen Greifpunkt zu ermitteln. Informationen über den verwendeten Roboter, Greifer, und Störkonturen in der Anlage sowie am Roboter sollten dabei berücksichtigt werden, um eine kollisionsfreie Bahn zu gewährleisten,Specifically, processes for calculating the approach path (first part of the movement sequence) can be instantiated in a module. Such processes serve to determine segments of the approach path or the entire collision-free approach path to the specified gripping point. Information about the robot, gripper, and interfering contours in the system and on the robot should be taken into account to ensure a collision-free path.
Entsprechend können, z.B. in einem separaten Modul, Prozesse zur Berechnung des Abrückpfads (zweiter Teil-Bewegungsablauf) instanziiert werden. Solche Prozesse dienen dazu, Teilstücke des Abrückpfads oder den gesamten kollisionsfreien Abrückpfad zum vorgegebenen Greifpunkt zu ermitteln. Informationen über den verwendeten Roboter, Greifer, und Störkonturen in der Anlage sowie am Roboter sollten dabei berücksichtigt werden, um eine kollisionsfreie Bahn zu gewährleisten.Accordingly, processes for calculating the retraction path (second part of the motion sequence) can be instantiated, for example, in a separate module. Such processes serve to determine segments of the retraction path or the entire collision-free retraction path to the specified gripping point. Information about the robot, gripper, and interfering contours in the system and on the robot should be taken into account to ensure a collision-free path.
In
Der so erstellte Bewegungsablauf 250 wird dann, Schritt 252, bereitgestellt, sodass basierend darauf der Roboter veranlasst werden kann, das Objekt zu greifen.The motion sequence 250 thus created is then provided in step 252, so that the robot can be instructed to grasp the object based on it.
Claims (13)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102024206901.9A DE102024206901A1 (en) | 2024-07-23 | 2024-07-23 | Method for determining a movement sequence for a robot |
| PCT/EP2025/070972 WO2026022138A1 (en) | 2024-07-23 | 2025-07-22 | Method for determining a movement sequence for a robot |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102024206901.9A DE102024206901A1 (en) | 2024-07-23 | 2024-07-23 | Method for determining a movement sequence for a robot |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE102024206901A1 true DE102024206901A1 (en) | 2026-01-29 |
Family
ID=96581659
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE102024206901.9A Pending DE102024206901A1 (en) | 2024-07-23 | 2024-07-23 | Method for determining a movement sequence for a robot |
Country Status (2)
| Country | Link |
|---|---|
| DE (1) | DE102024206901A1 (en) |
| WO (1) | WO2026022138A1 (en) |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11179852B2 (en) * | 2019-03-25 | 2021-11-23 | Dishcraft Robotics, Inc. | Automated manipulation of transparent vessels |
| US11813758B2 (en) * | 2019-04-05 | 2023-11-14 | Dexterity, Inc. | Autonomous unknown object pick and place |
| US11654564B2 (en) * | 2020-09-10 | 2023-05-23 | Fanuc Corporation | Efficient data generation for grasp learning with general grippers |
-
2024
- 2024-07-23 DE DE102024206901.9A patent/DE102024206901A1/en active Pending
-
2025
- 2025-07-22 WO PCT/EP2025/070972 patent/WO2026022138A1/en active Pending
Non-Patent Citations (8)
| Title |
|---|
| ARAKI, Ryosuke, et al. MT-DSSD: multi-task deconvolutional single shot detector for object detection, segmentation, and grasping detection. Advanced Robotics, 2022, 36. Jg., Nr. 8, S. 373-387. |
| Bild [HALCON Operator-Referenz - Version 20.05.0.1].pdf, Bearbeitungstand 2005, heruntergeladen am 20.05.2025 von https://www.mvtec.com/doc/halcon/2005/de/toc_image.html |
| HASEGAWA, Shun, et al. Graspfusion: Realizing complex motion by learning and fusing grasp modalities with instance segmentation. In: 2019 International Conference on Robotics and Automation (ICRA). IEEE, 2019. S. 7235-7241. |
| JIANG, Ping, et al. Learning suction graspability considering grasp quality and robot reachability for bin-picking. Frontiers in Neurorobotics, 2022, 16. Jg., S. 806898. |
| JIANG, Ping, et al. Multiple-object Grasping Using a Multiple-suction-cup Vacuum Gripper in Cluttered Scenes. arXiv e-prints, 2023, S. arXiv: 2304.10693. |
| MARTINOVIC, Andelo, et al. 3d all the way: Semantic segmentation of urban scenes from start to end in 3d. In: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015. S. 4456-4465. |
| RAJ, Prem, et al. Towards object agnostic and robust 4-dof table-top grasping. In: 2022 IEEE 18th International Conference on Automation Science and Engineering (CASE). IEEE, 2022. S. 963-970. |
| ZENG, Andy, et al. Robotic pick-and-place of novel objects in clutter with multi-affordance grasping and cross-domain image matching. The International Journal of Robotics Research, 2022, 41. Jg., Nr. 7, S. 690-705. |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2026022138A1 (en) | 2026-01-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE102014102943B4 (en) | Robot system with functionality for determining the location of a 3D box | |
| EP3966731B1 (en) | Machine learning of object recognition using a robot-guided camera | |
| DE102021107568A1 (en) | ADAPTIVE PLANNING OF ACCESS TO RELEASE CONTAINERS | |
| DE102016122678B4 (en) | Workpiece position / posture calculation system and handling system | |
| AT507339A1 (en) | METHOD AND APPARATUS FOR RECORDING AND / OR PROCESSING OBJECTS | |
| DE112018007727B4 (en) | robotic system | |
| DE102016001174A1 (en) | Robot system for removing workpieces with position and orientation conversion function and process for removing workpieces | |
| EP4064106A1 (en) | Method for generating training data for an ml model | |
| DE102021209646B4 (en) | Robot device, method for computer-implemented training of a robot control model and method for controlling a robot device | |
| DE102022203410B4 (en) | Method for controlling a robot device | |
| WO2023237323A1 (en) | Increasing gripping rate | |
| DE102023207208A1 (en) | Method for training a machine learning model for controlling a robot to manipulate an object | |
| DE102022206274B4 (en) | Method for controlling a robot for manipulating, in particular picking up, an object | |
| WO2025237941A1 (en) | Method for determining a gripping pose for a robot | |
| DE102022134367A1 (en) | AREA-BASED GRIP GENERATION | |
| DE102021212860B4 (en) | Method for picking up an object using a robot | |
| EP3870406B1 (en) | Method for creating an object model for gripping an object, computer-readable storage medium, and robot system | |
| EP4063081A1 (en) | Method for determining control data for a gripping device for gripping an object | |
| DE102024206901A1 (en) | Method for determining a movement sequence for a robot | |
| DE102023131279A1 (en) | AUTOMATIC GRIPPER FINGER TIP DESIGN TO REDUCE WASTE IN BOX PICK APPLICATIONS | |
| DE102024206911A1 (en) | Methods for determining object poses | |
| DE102024204748A1 (en) | Method for determining the poses of objects for a robot | |
| WO2026022139A1 (en) | Method for determining a gripping pose for a robot | |
| DE102020135011B3 (en) | Image recognition for custom execution of a control program of a robotic manipulator | |
| DE102024206908A1 (en) | Method for determining a gripping pose for a robot |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R163 | Identified publications notified |