RU2745380C1 - Method and system for capturing objects using robotic device - Google Patents
Method and system for capturing objects using robotic device Download PDFInfo
- Publication number
- RU2745380C1 RU2745380C1 RU2020129197A RU2020129197A RU2745380C1 RU 2745380 C1 RU2745380 C1 RU 2745380C1 RU 2020129197 A RU2020129197 A RU 2020129197A RU 2020129197 A RU2020129197 A RU 2020129197A RU 2745380 C1 RU2745380 C1 RU 2745380C1
- Authority
- RU
- Russia
- Prior art keywords
- objects
- key points
- robotic device
- capture
- data
- Prior art date
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert 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/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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/10—Image acquisition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Manipulator (AREA)
Abstract
Description
ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY
[0001] Представленное техническое решение относится, в общем, к области робототехники, а в частности к способу захвата объектов переменной массы и формы с помощью робота-манипулятора и к системе для осуществления упомянутого способа.[0001] The presented technical solution relates generally to the field of robotics, and in particular to a method for gripping objects of variable mass and shape using a robotic arm and to a system for implementing said method.
УРОВЕНЬ ТЕХНИКИLEVEL OF TECHNOLOGY
[0002] Роботы широко используются в производственных задачах для освобождения людей от монотонной работы. Методы для манипуляции твердотельными объектами широко распространены.[0002] Robots are widely used in industrial tasks to free people from repetitive work. Techniques for manipulating solid objects are widespread.
[0003] В сравнении с методами для манипуляции твердотельными объектами, методы для манипуляции деформируемыми объектами имеют дополнительные сложности. Например, в задаче выгрузки пластиковых мешков из телеги на стол, критическим является определение текущей формы, местоположения и захват мешка. Эти задачи легко могут быть выполнены человеком, но могут быть сложными для робота.[0003] Compared to methods for manipulating solid objects, methods for manipulating deformable objects have additional complexities. For example, in the task of unloading plastic bags from a cart onto a table, it is critical to determine the current shape, location and grip of the bag. These tasks can be easily performed by a human, but can be difficult for a robot.
[0004] В настоящее время для процесса обучения захвата объектов предлагаются различные подходы на базе алгоритмов и моделей машинного обучения, в частности с использованием нейронных сетей, с помощью которых выполняется обучение роботизированных манипуляторов для захватов объектов по обученным заранее точкам захвата. Такой подход раскрывается в работе Dense Object Nets: Learning Dense Visual Object Descriptors By and For Robotic Manipulation (Peter R. Florence et al., CSAIL, Massachusetts Institute of Technology, 07.09.2018). Известное решение предлагает использовать облака точек объектов в процессе обучения роботизированных устройств, для того чтобы сформировать дескрипторы объектов на основании фотографических и 3D моделей таких объектов для целей последующего указания точек захвата и взаимодействия с объектами в указанных точках.[0004] At present, various approaches based on algorithms and machine learning models are proposed for the process of training object gripping, in particular using neural networks, with the help of which robotic manipulators are trained to grip objects on the previously trained gripping points. This approach is disclosed in Dense Object Nets: Learning Dense Visual Object Descriptors By and For Robotic Manipulation (Peter R. Florence et al., CSAIL, Massachusetts Institute of Technology, 09/07/2018). The known solution proposes to use point clouds of objects in the process of training robotic devices in order to form object descriptors based on photographic and 3D models of such objects for the purpose of further specifying points of capture and interaction with objects at these points.
[0005] Также известны способ и система захвата объекта с помощью роботизированного устройства, раскрытые в патенте RU 2700246 С1, опубл. 20.09.2019. В известном решении обучают роботизированное устройство с помощью алгоритма машинного обучения для распознавания и запоминания точек захвата объектов, причем обучение выполняется на данных, характеризующих фотографические изображения объектов и соответствующие 3D модели объектов в различных ракурсах; формируют по меньшей мере одну точку захвата объекта, представленного на графическом изображении объекта; получают фотографическое изображение объекта с помощью камеры роботизированного устройства и определяют ракурс, отображающий сформированную точку захвата объекта; получают трехмерное облако точек объекта в ракурсе с помощью сенсора глубины роботизированного устройства; определяют по полученному облаку точек месторасположение точки захвата объекта; определяют ориентацию и положение захватного устройства роботизированного устройства в точке захвата с помощью вычисления матриц поворотов роботизированного устройства; осуществляют захват объекта с помощью роботизированного устройства на основании вычисления усредненной матрицы поворотов для заданной точки захвата.[0005] Also known is a method and a system for gripping an object using a robotic device, disclosed in patent RU 2700246 C1, publ. 20.09.2019. In the known solution, a robotic device is trained using a machine learning algorithm to recognize and memorize capture points of objects, and the training is performed on data characterizing photographic images of objects and corresponding 3D models of objects in various angles; form at least one gripping point of the object represented on the graphical image of the object; obtaining a photographic image of the object using the camera of the robotic device and determining the angle displaying the formed gripping point of the object; obtaining a three-dimensional cloud of points of the object in perspective using the depth sensor of the robotic device; determine by the obtained cloud of points the location of the point of capture of the object; determining the orientation and position of the gripper of the robotic device at the gripping point by calculating the rotation matrices of the robotic device; the object is gripped by a robotic device based on the calculation of the averaged rotation matrix for a given gripping point.
[0006] Недостатком известных решений является то, что они не предназначены для определения захвата объектов переменной массы и формы. Разработанная роботизированная система захвата объектов обеспечивает распознавание и манипуляцию объектами, которые имеют следующие характеристики: переменную форму при манипуляциях с ними; вес от нескольких десятков грамм до 6 кг и более; перемещаемый центр тяжести при манипуляциях с ними; легко рвется при неудачном захвате; располагаются в глубоких тележках на различной высоте.[0006] The disadvantage of the known solutions is that they are not intended to determine the capture of objects of variable mass and shape. The developed robotic system for capturing objects provides recognition and manipulation of objects that have the following characteristics: variable shape when manipulating with them; weight from several tens of grams to 6 kg or more; movable center of gravity when handling them; breaks easily if the grip is unsuccessful; are located in deep trolleys at different heights.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯESSENCE OF THE TECHNICAL SOLUTION
[0007] Решаемой технической задачей или технической проблемой является обеспечение нового процесса взаимодействия с объектами с помощью их захвата роботизированными устройствами. Одним из важнейших аспектов захватов вышеуказанного рода объектов является решение задачи позиционирования захвата относительно схватываемого объекта внутри сложных пространственных конструкций, причем алгоритму схвата необходимо иметь сложную модель, учитывающую вероятности смещения центра масс, захвата соседних объектов, деформации объекта.[0007] The technical problem or technical problem to be solved is to provide a new process of interaction with objects by means of their capture by robotic devices. One of the most important aspects of gripping the above kind of objects is the solution of the problem of positioning the gripper relative to the gripped object inside complex spatial structures, and the gripping algorithm needs to have a complex model that takes into account the probabilities of displacement of the center of mass, gripping of neighboring objects, and deformation of the object.
[0008] Техническим результатом, достигающимся при решении вышеуказанной технической проблемы, является повышение точности захвата объекта с помощью робота-манипулятора.[0008] The technical result achieved by solving the above technical problem is to improve the accuracy of gripping an object using a robotic arm.
[0009] Заявленный технический результат достигается благодаря осуществлению способа захвата объекта с помощью роботизированного устройства, содержащего этапы, на которых:[0009] The claimed technical result is achieved by implementing a method for gripping an object using a robotic device, comprising the steps of:
- получают цветное изображение и карту глубины;- get a color image and a depth map;
- осуществляют поиск объектов для захвата на изображении с учетом данных карты глубины;- search for objects to capture on the image, taking into account the data of the depth map;
- выбирают объект для захвата;- select an object to capture;
- на основе данных карты глубины формируют облако точек выбранного объекта;- based on the depth map data, a point cloud of the selected object is formed;
- осуществляют поиск в облаке точек заданное количество ключевых точек;- search in the cloud of points for a given number of key points;
- определяют арифметический центр между упомянутыми ключевыми точками;- determine the arithmetic center between the mentioned key points;
- определяют точку среди ключевых точек, наиболее близкую к арифметическому центру;- determine the point among the key points closest to the arithmetic center;
- на основе координат ключевых точек и точки, наиболее близкой к арифметическому центру, определяют положение выбранного объекта;- based on the coordinates of key points and the point closest to the arithmetic center, determine the position of the selected object;
- на основе данных о положении объекта и данных модели, построенной в результате машинного обучения, определяют ориентацию и положение устройства захвата роботизированного устройства;- based on the data on the position of the object and the data of the model built as a result of machine learning, determine the orientation and position of the gripping device of the robotic device;
- осуществляют захват выбранного объекта с помощью роботизированного устройства.- carry out the capture of the selected object using a robotic device.
[0010] В одном из частных примеров осуществления способа дополнительно выполняют этап, на котором в случае неудачного захвата выбирают новую позу захвата роботизированного устройства.[0010] In one of the particular embodiments of the method, a step is additionally performed at which, in the event of an unsuccessful grip, a new gripping position of the robotic device is selected.
[0011] В другом частном примере осуществления способа дополнительно выполняют этапы, на которых:[0011] In another particular embodiment of the method, the steps are additionally performed, in which:
- сегментируют изображение на отдельные изображения объектов;- segment the image into separate images of objects;
- полученные изображения объектов ранжируют для определения порядка захвата объектов;- the resulting images of objects are ranked to determine the order of capture of objects;
причем для захвата объекта выбирают первый объект согласно определенному порядку захвата объектов.and for capturing the object, the first object is selected according to a certain order of capturing the objects.
[0012] В другом частном примере осуществления способа этап поиска в облаке точек заданного количество ключевых точек включает этапы, на которых:[0012] In another particular embodiment of the method, the step of searching in a point cloud for a predetermined number of key points includes the steps at which:
- преобразуют облако точек в матричное представление;- convert the point cloud into a matrix representation;
- рассчитывают матрицу ковариации на основе матричного представления;- calculate the covariance matrix based on the matrix representation;
- осуществляют поиск собственных векторов матрицы ковариации;- search for eigenvectors of the covariance matrix;
- выбирают два первых собственных вектора матрицы ковариации;- choose the first two eigenvectors of the covariance matrix;
- осуществляет поиск заданного количества ключевых точек, имеющих минимальные и максимальные координаты вдоль осей, базисом которых являются собственные векторы.- searches for a given number of key points with minimum and maximum coordinates along the axes, the basis of which is the eigenvectors.
[0013] В другом частном примере осуществления способа дополнительно выполняют этап, на котором формируют список наблюдаемых параметров, в который заносятся данные об упомянутых ранее ключевых точках и точке, наиболее близкой к арифметическому центру для передачи сформированного списка в алгоритм обучения.[0013] In another particular embodiment of the method, the step is additionally performed, at which a list of observed parameters is formed, in which data about the previously mentioned key points and the point closest to the arithmetic center are entered to transfer the generated list to the learning algorithm.
[0014] В другом предпочтительном варианте осуществления заявленного решения представлена система захвата объекта с помощью роботизированного устройства, содержащая:[0014] In another preferred embodiment of the claimed solution, a system for gripping an object using a robotic device is provided, comprising:
- роботизированное устройство, содержащее по меньшей мере один сенсор глубины и захватное устройство;- a robotic device containing at least one depth sensor and a gripper;
- вычислительное устройство, соединенное с роботизированным устройством;- a computing device connected to the robotic device;
- по меньшей мере одну память, содержащую машиночитаемые инструкции, которые при их исполнении по меньшей мере одним вычислительным устройством выполняют способ по любому из пп. 1-5.- at least one memory containing machine-readable instructions that, when executed by at least one computing device, execute the method according to any one of claims. 1-5.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF DRAWINGS
[0015] Признаки преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания и прилагаемых чертежей, на которых:[0015] The advantages of the present technical solution will become apparent from the following detailed description and the accompanying drawings, in which:
[0016] На Фиг. 1 изображен общий вид системы захвата объектов для манипуляции объектами переменной массы.[0016] FIG. 1 shows a general view of the object gripping system for manipulating objects of variable mass.
[0017] На Фиг. 2 изображен общий алгоритм работы упомянутой системы.[0017] FIG. 2 shows the general algorithm of the above-mentioned system.
[0018] На Фиг. 3 изображена структурная схема блока управления системой.[0018] FIG. 3 shows a block diagram of the system control unit.
[0019] На Фиг. 4 изображен алгоритм принятия решений по захвату объектов.[0019] FIG. 4 shows an algorithm for making decisions on capturing objects.
[0020] На Фиг. 5 изображен алгоритм работы системы в режиме обучения.[0020] FIG. 5 shows the algorithm of the system in the learning mode.
[0021] На Фиг. 6 изображен алгоритм работы системы в режиме эксплуатации.[0021] FIG. 6 shows the algorithm of the system in operation mode.
[0022] На Фиг. 7 изображен общий вид вычислительного устройства.[0022] FIG. 7 shows a general view of a computing device.
ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION
[0023] Данное техническое решение может быть реализовано на компьютере, в виде автоматизированной информационной системы (АИС) или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.[0023] This technical solution can be implemented on a computer, in the form of an automated information system (AIS) or a computer-readable medium containing instructions for performing the above method.
[0024] Техническое решение может быть реализовано в виде распределенной компьютерной системы, которая может быть установлена на централизованном сервере (наборе серверов). Доступ пользователей к системе возможен как из сети Интернет, так и из внутренней сети предприятия/организации посредством мобильного устройства связи, на котором установлено программное обеспечение с соответствующим графическим интерфейсом пользователя, или персонального компьютера с доступом к веб-версии системы с соответствующим графическим интерфейсом пользователя.[0024] The technical solution can be implemented as a distributed computer system that can be installed on a centralized server (set of servers). User access to the system is possible both from the Internet and from the internal network of an enterprise / organization via a mobile communication device on which software with a corresponding graphical user interface is installed, or a personal computer with access to the web version of the system with a corresponding graphical user interface.
[0025] Ниже будут описаны термины и понятия, необходимые для реализации настоящего технического решения.[0025] The following will describe the terms and concepts necessary to implement the present technical solution.
[0026] В данном решении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность вычислительных операций (действий, инструкций).[0026] In this solution, the system means a computer system, a computer (electronic computer), CNC (numerical control), PLC (programmable logic controller), computerized control systems and any other devices capable of performing a given, well-defined sequence of computing operations (actions, instructions).
[0027] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).[0027] By a command processor is meant an electronic unit or an integrated circuit (microprocessor) that executes machine instructions (programs).
[0028] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.[0028] An instruction processing device reads and executes machine instructions (programs) from one or more storage devices. The role of data storage devices can be, but are not limited to, hard disks (HDD), flash memory, ROM (read only memory), solid state drives (SSD), optical drives.
[0029] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд. [0030] В соответствии со схемой, приведенной на Фиг 1, система 100 захвата объектов для манипуляции деформируемыми объектами включает блок управления захватом 101: формирующий управляющее воздействие на манипулятор 102 и устройство захвата 103 (например, электромеханическое захватное устройство, раскрытое в патенте RU 198037 U1); определяющий геометрические параметры деформируемого объекта, с целью перемещения деформируемого объекта из зоны 105 в целевую зону 106. Система 100 также включает: сенсор глубины 104, размещенный на устройстве захвата 103, и подключенный к блоку управлению захватом 101; и оптический сенсор 107, подключенный к блоку управления захватом 101.[0029] A program is a sequence of instructions for execution by a computer control device or command processing device. [0030] In accordance with the diagram shown in FIG. 1, the
[0031] В качестве оптического сенсора 107 может быть использован любой широко известный оптический датчик, например, датчик модели OMRON E3Z-D61, который используется для детектирования материала деформируемого тела внутри захвата на основе величины поглощаемого или отражаемого деформируемым телом светового потока.[0031] As the
[0032] Блок управления захватом 101 предназначен для определения на основе поступающих от сенсора 104 данных положения деформируемого объекта, его зоны и ориентации в пространстве, и может быть реализован на базе по меньшей мере одного вычислительного устройства, оснащенного соответствующим программным обеспечением для выполнения приписанных ему ниже функций. В качестве вычислительного устройства может использоваться, например, персональный компьютер, ноутбук, планшет, сервер, смартфон, серверный кластер, мейнфрейм, суперкомпьютер, тонкий клиент, система на кристалле (англ. «System on а Chip», сокр. SoC) и т.п. Конкретная аппаратная реализация вычислительного устройства зависит от предъявляемых требований и должна обеспечивать необходимые процессы вычислительной обработки цифровой информации для обеспечения должного функционирования блока управления захватом 101 в составе системы 100.[0032] The
[0033] В качестве манипулятора 102 может применяться как стационарный роботизированный манипулятор промышленного или коллаборативного назначения, например, Universal Robotics™, KUKA™, Fanuc™, ABB™ и т.п., так и роботизированные манипуляторы, устанавливаемые на подвижные автономные роботизированные устройства, в качестве конечностей, в частности роботизированные руки. Манипулятор 102 подключен к блоку управления, может иметь как минимум 6 степеней свободы и оснащен как минимум одним устройством захвата 103 для возможности манипулирования деформируемыми объектами. В качестве канала передачи данных между упомянутыми элементами системы 100 может применяться различный вид связи, например, проводного и/или беспроводного типа, в частности: LAN, WAN, WLAN, Bluetooth, Wi-Fi, GSM/GPRS/LTE/5G, Ethernet, USB, RS232, RJ45 и т.п.[0033] As a
[0034] В качестве сенсора глубины 104 может быть использована широко известная Red-Green-Blue-Depth (RGB-D) камера, предназначенная для определения глубины, которая работает в сочетании с RGB-камерой и способна дополнять обычное изображение информацией о глубине (связанной с расстоянием до датчика) на основе пикселей изображения.[0034] A well-known Red-Green-Blue-Depth (RGB-D) depth camera can be used as the
[0035] Для решения поставленной задачи захвата и манипулирования объектами был разработан порядок 200 работы с деформируемыми объектами, показанный на Фиг. 2. Он состоит из этапа обучения алгоритма с подкреплением 201 и этапа эксплуатации системы 202. Обучение с подкреплением (англ. reinforcement learning) - один из способов машинного обучения, в ходе которого испытуемая система (агент) обучается, взаимодействуя с некоторой средой. С точки зрения кибернетики, является одним из видов кибернетического эксперимента.[0035] To solve the problem of gripping and manipulating objects, an
[0036] Этап 202 состоит из создания описания последовательности работы системы, определения структуры итераций и эпизодов работы алгоритма с подкреплением, определения управляющих воздействий алгоритма с подкреплением, и выполняется разработчиком системы 100.[0036]
[0037] В соответствии со схемой, приведенной на Фиг. 3, блок управления захватом 101 состоит из: модуля 301 определения захвата объекта; модуль 302 планирования траектории движения манипулятора; модуля 303 сбора данных с сенсора глубины 104; и модуля 304 управления устройством захвата 103.[0037] In accordance with the diagram of FIG. 3, the
[0038] Модуль 301 может быть реализован на базе по меньшей мере одной нейронной сети для выполнения RL (reinforcement learning) алгоритмов и генерации и выдачи рекомендации по расположению и ориентации устройства захвата 103 для успешного захвата очередного объекта воздействия, в зависимости от извлеченных параметров из модуля 303 сбора данных. Упомянутые сгенерированные рекомендации затем передаются в модуль 302 планирования траектории движения манипулятора с учетом коллизий в рабочей области робота для осуществления перемещений объектов, который генерирует управляющие воздействия, передающиеся в модуля 304 управления манипулятором для перемещения манипулятора 102 по траектории движения и захвата объекта с помощью устройства захвата 103. Упомянутые модули 302, 303 и 304 могут быть реализованы на базе программно-аппаратных средств блока управления захватом 101, оснащенных соответствующим программным обеспечением для выполнения приписанных им ниже функций.[0038]
[0039] На Фиг. 4 показан алгоритм 400 принятия решений по захвату объектов. На первом этапе 401 модуль 303 сбора данных с сенсора глубины 104 получает цветное изображение и карту глубины. Управление сенсором глубины 104 для сбора данных может осуществляться посредством блока управления захватом 101 известными из уровня техники методами, раскрытыми, например, в наиболее близком аналоге - патенте RU 2700246 С1.[0039] FIG. 4 shows an
[0040] Далее цветное изображение и карта глубины направляются упомянутым модулем 303 в модуль 301 определения захвата объекта, который переходит к выполнению этапа 402. На этапе 402 с помощью нейросети глубокого обучения упомянутым модулем 301 известными из уровня техники методами осуществляется поиск объектов для захвата на изображении с учетом данных карты глубины, после чего изображение сегментируется на отдельные изображения упомянутых объектов. Для выполнения сегментации могут быть использованы любые широко известные алгоритмы сегментации, раскрытые, например, в статье «Detectron2: A PyTorch-based modular object detection library», размещенной 09.10.2019 в Интернет по адресу: https://ai.facebook.com/blog/-detectron2-a-pytorch-based-modular-object-detection-library-/. После этого полученные изображения объектов ранжируются упомянутым модулем 301 для определения порядка захвата объектов.[0040] Next, the color image and the depth map are sent by said
[0041] На следующем этапе 403 упомянутый модуль 301 согласно порядку захвата объектов выбирает первый объект для захвата и на основе данных карты глубины формирует облако точек выбранного объекта, затем на основе этого облака точек модулем 301 рассчитываются ключевые точки объекта (этап 404), за параметрами которых будет осуществляться наблюдение и которые будут использованы для определения положения и ориентации объекта. Для расчета упомянутых ключевых точек предлагается использовать новый метод, основанный на методе главных компонент, раскрытый в статье Principal component analysis (Jolliffe I.Т., Technometrics. - 2003. - Т. 45. - №. 3. - С.276), для определения геометрических характеристик формы объекта в 3х мерном пространстве.[0041] In the
[0042] Для реализации метода главных компонент облако точек модуль 301 преобразуются в матричное представление X, где каждая строка представляет собой точку облака точек, а столбцы представляют собой компоненты [х, у, z], которые представляют собой координаты каждой точки облака точек, затем рассчитывается матрица ковариации по формуле:[0042] To implement the principal component method, the
где X - матричное представление облака точек, X' - математическое ожидание матрицы X, n - количество точек в облаке точек, Т - операция транспонирования матрицы. Затем, в полученной матрице широко известными методами, например, с помощью математических пакетов, происходит поиск 3 собственных векторов, например, способом, раскрытым в книге «А guide to NumPy» (Oliphant Т. E., Trelgol Publishing, 2006. - Т. 1. - C. 179), полученные вектора сортируются в порядке уменьшения собственных чисел матрицы. Для дальнейшей обработки данных, модуль 301 выбирает два первых собственных вектора матрицы ковариации, которые представляют собой вектора в трехмерном пространстве. Затем, модуль 301 осуществляет поиск заданного разработчиком в программном алгоритме количества ключевых точек, например, четырех точек, имеющих минимальные и максимальные координаты вдоль осей, базисом которых являются собственные векторы, найденные на предыдущем этапе.where X is the matrix representation of the point cloud, X 'is the mathematical expectation of the matrix X, n is the number of points in the point cloud, T is the matrix transposition. Then, in the resulting matrix by widely known methods, for example, using mathematical packages, there is a search for 3 eigenvectors, for example, by the method disclosed in the book "A guide to NumPy" (Oliphant T. E., Trelgol Publishing, 2006. - T. 1. - P. 179), the resulting vectors are sorted in decreasing order of matrix eigenvalues. To further process the data,
[0043] На следующем этапе модуль 301 осуществляет поиск существующей средней точки в облаке точек среди ключевых точек, в частности четырех точек, имеющих минимальные и максимальные координаты вдоль осей. Для этого модуль 301 осуществляет определение арифметического центра между ключевыми точками, извлекая их координаты вдоль плоскостей собственных векторов, и проводя сортировку массива облака точек в порядке близости точек к арифметическому центру, модуль 301 выбирает дополнительную точку, среди упомянутых ключевых точек, наиболее близкую к упомянутому арифметическому центру. Далее на основе координат ключевых точек и точки, наиболее близкой к упомянутому арифметическому центру, модуль 301 определяет положение объекта. Далее на основе данных о положении объекта, в частности его координат, координат упомянутых ключевых точек и точки, наиболее близкой к арифметическому центру, и данных модели, построенной в результате машинного обучения, модуль 301 определяет ориентацию и положение устройства захвата 103 роботизированного устройства, после чего генерирует рекомендации по расположению и ориентации устройства захвата 103 для успешного захвата очередного объекта для их передачи в модуль 302 планирования траектории движения манипулятора.[0043] In the next step, the
[0044] Дополнительно модуль 301 определения захвата объекта может быть выполнен с возможностью формирования списка наблюдаемых параметров, в который заносятся данные о упомянутых ранее ключевых точках и точке, наиболее близкой к арифметическому центру, для передачи сформированного списка в алгоритм обучения, целью которого является определение наилучшей позы захватного устройства в пространстве для захвата объекта в рабочей зоне, с учетом деформации и смещения центра тяжести объекта а также геометрических коллизий в рабочей зоне.[0044] Additionally, the object
[0045] В режиме обучения используется симуляция робототехнической установки и ее рабочего окружения, а также модели объектов манипулирования. Симулятор должен позволять рассчитывать взаимодействия между объектами моделируемой сцены, способом так называемого мягкого контакта, и поддерживать возможность моделирования деформируемых или мягких объектов с наполнением. Обучение алгоритмов глубокого обучения с подкреплением происходит одновременно в большом количестве симуляторов, в которых положения и ориентация объектов манипуляции генерируются случайно в заданных рабочих зонах.[0045] In the training mode, a simulation of a robotic installation and its working environment, as well as a model of objects to be manipulated, is used. The simulator should allow calculating the interactions between objects of the simulated scene, using the so-called soft contact method, and support the ability to simulate deformable or soft objects with filling. The training of deep reinforcement learning algorithms occurs simultaneously in a large number of simulators, in which the positions and orientations of manipulated objects are generated randomly in specified work areas.
[0046] Алгоритм работы системы в режиме обучения, который выполняется посредством нейронный сетей, которые также могут быть размещены в модуле 301 определения захвата объект, показан на Фиг. 5 На этапе 501 происходит запрос данных из модуля 303 сбора данных с сенсора глубины 104 и извлечения списка наблюдаемых параметров, которые передаются в алгоритм обучения, на следующем этапе 502 алгоритм обучения с подкреплением предлагает положения и ориентации захватного устройства робота(координаты [x, y, z] и кватернион [x, y, z, w]), однако не все из них могут быть достижимы в условиях заданного расположения робота и параметров кинематической цепи робота. Для отсечения недостижимых позиций захвата на следующем этапе 503 используется дополнительное окружение в симуляторе, позволяющее по значениям целевой позы захвата определить все возможные геометрические конфигурации звеньев робота в пространстве методом решения обратной задачи кинематики. Для каждой из этих возможных конфигураций производится расчет коллизионной модели и проверяется не имеются ли коллизии внутри сцены между объектами (этап 508), чтобы отклонять заведомо невозможные конфигурации робота-манипулятора. Если целевая поза не в коллизии, то выполняется попытка захватить объект внутри симулятора на этапе 505, который реализует расчет физических взаимодействий захвата с объектом манипуляции. По результатам симуляции происходит расчет функции вознаграждения, величина которой пересылается в алгоритм обучения с подкреплением для коррекции управляющих воздействий 506. Таким образом алгоритм обучения формирует внутреннюю модель деформируемого тела с учетом переменного центра тяжести возможности, модели деформации как мешка, так и окружения. Процесс обучения заканчивается по истечении определенного количества итераций обучения.[0046] the Algorithm of the system in the learning mode, which is performed by means of neural networks, which can also be placed in the
[0047] Оценка качества обученности алгоритма обучения с подкреплением подсчитывается путем запуска нескольких параллельных процессов в симуляторах для ряда характерных случайных начальных ситуаций в зонах расположений объектов манипуляции. Результаты выполнения этих симуляций сохраняются и производится их статистический анализ, в результате которого выясняется, сколько удачных попыток захвата объектов было для каждой из зон расположений объектов манипуляции.[0047] The assessment of the quality of learning of the reinforcement learning algorithm is calculated by running several parallel processes in simulators for a number of typical random initial situations in the zones of the manipulation objects. The results of these simulations are saved and their statistical analysis is performed, as a result of which it is found out how many successful attempts to capture objects were for each of the zones where the objects of manipulation were located.
[0048] В режиме эксплуатации 600, показанной на Фиг. 6 робот, инициализируется в заранее определенной позиций для получения данных о расположении объектов в рабочей зоне. Алгоритм 400 выбирает кандидата для захвата, и на этапе 601 вычисляются данные о его расположении, система принятия решений рекомендует целевое положение и ориентацию захватного устройства на этапе 602. Для перемещения захватного устройства в целевую позу задействуется подсистема быстрого планирования траекторий движений 603, которая предлагает траекторию движения робота. Для того, чтобы избежать столкновения робота с объектом целевая поза корректируется так, чтобы по окончании исполнения траектории движения от захватного устройства до объекта оставалось небольшое расстояние. Это расстояние преодолевается роботом в податливом режиме так, что при достижении захватным устройством контакта с объектом движение робота останавливается. Далее осуществляется захват и перемещение объекта манипуляции, информация об успешности захвата с датчика 107 захватного устройства передается в алгоритм обучения с подкреплением на этапе 604, который в случае неудачной попытки рекомендует другую позу захвата роботизированного устройства. Процесс продолжается, пока не будет освобождена рабочая зона от всех объектов манипуляции.[0048] In the
[0049] Таким образом, за счет того, что при определении положения объекта учитываются его ключевые точки и точка среди ключевых точек, наиболее близкая к их арифметическому центру, повышается точность распознавания положения объекта и точность в выборе ориентации и положении устройства захвата роботизированного устройства для захвата этого объекта, т.е. повышается точность захвата объекта с помощью робота-манипулятора.[0049] Thus, due to the fact that when determining the position of an object, its key points and the point among the key points closest to their arithmetic center are taken into account, the accuracy of recognizing the position of the object and the accuracy in choosing the orientation and position of the gripping device of the robotic device for gripping are increased. of this object, i.e. the accuracy of gripping the object with the help of a robotic arm is increased.
[0050] В общем виде (см. Фиг. 7) вычислительное устройство содержит объединенные общей шиной информационного обмена один или несколько процессоров (701), средства памяти, такие как ОЗУ (702) и ПЗУ (703), интерфейсы ввода/вывода (704), устройства ввода/вывода (705), и устройство для сетевого взаимодействия (706).[0050] In general terms (see Fig. 7), the computing device contains one or more processors (701) united by a common data exchange bus, memory means such as RAM (702) and ROM (703), input / output interfaces (704 ), input / output devices (705), and a device for networking (706).
[0051] Процессор (701) (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в устройстве (700) также необходимо учитывать графический процессор, например, GPU NVIDIA или Graphcore, тип которых также является пригодным для полного или частичного выполнения способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.[0051] The processor (701) (or multiple processors, multi-core processor, etc.) can be selected from a range of devices currently widely used, for example, manufacturers such as: Intel ™, AMD ™, Apple ™, Samsung Exynos ™, MediaTEK ™, Qualcomm Snapdragon ™, etc. Under the processor or one of the processors used in the device (700), it is also necessary to take into account the GPU, for example, NVIDIA GPU or Graphcore, the type of which is also suitable for full or partial execution of the method, and can also be used for training and applying machine learning models in various information systems.
[0052] ОЗУ (702) представляет собой оперативную память и предназначено для хранения исполняемых процессором (701) машиночитаемых инструкций для выполнение необходимых операций по логической обработке данных. ОЗУ (702), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (702) может выступать доступный объем памяти графической карты или графического процессора.[0052] RAM (702) is a random access memory and is intended for storing machine-readable instructions executed by the processor (701) for performing the necessary operations for logical processing of data. RAM (702) typically contains executable instructions of the operating system and associated software components (applications, software modules, etc.). In this case, the available memory of the graphics card or graphics processor can act as RAM (702).
[0053] ПЗУ (703) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.[0053] ROM (703) is one or more persistent storage devices such as a hard disk drive (HDD), solid state data storage device (SSD), flash memory (EEPROM, NAND, etc.), optical storage media ( CD-R / RW, DVD-R / RW, BlueRay Disc, MD), etc.
[0054] Для организации работы компонентов устройства (700) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (704). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п.[0054] Various types of I / O interfaces (704) are used to organize the operation of the components of the device (700) and to organize the operation of external connected devices. The choice of the appropriate interfaces depends on the specific version of the computing device, which can be, but are not limited to: PCI, AGP, PS / 2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS / Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232, etc.
[0055] Для обеспечения взаимодействия пользователя с устройством (700) применяются различные средства (705) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.[0055] To ensure the interaction of the user with the device (700), various means (705) of I / O information are used, for example, a keyboard, display (monitor), touch display, touch pad, joystick, mouse manipulator, light pen, stylus, touch panel, trackball, speakers, microphone, augmented reality, optical sensors, tablet, light indicators, projector, camera, biometric identification (retina scanner, fingerprint scanner, voice recognition module), etc.
[0056] Средство сетевого взаимодействия (706) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (706) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.[0056] The networking tool (706) provides data transmission via an internal or external computer network, for example, Intranet, Internet, LAN, and the like. One or more means (706) may be used, but not limited to: Ethernet card, GSM modem, GPRS modem, LTE modem, 5G modem, satellite communication module, NFC module, Bluetooth and / or BLE module, Wi-Fi module, and dr.
[0057] Дополнительно могут применяться также средства спутниковой навигации в составе системы (700), например, GPS, ГЛОНАСС, BeiDou, Galileo. Конкретный выбор элементов устройства (700) для реализации различных программно-аппаратных архитектурных решений может варьироваться с сохранением обеспечиваемого требуемого функционала.[0057] Additionally, satellite navigation means can be used as part of the system (700), for example, GPS, GLONASS, BeiDou, Galileo. The specific choice of elements of the device (700) for the implementation of various software and hardware architectural solutions can vary while maintaining the required functionality provided.
[0058] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы изобретения.[0058] Modifications and improvements to the above-described embodiments of the present technical solution will be clear to those skilled in the art. The foregoing description is provided by way of example only and is not intended to be limiting in any way. Thus, the scope of the present technical solution is limited only by the scope of the attached claims.
Claims (27)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2020129197A RU2745380C1 (en) | 2020-09-03 | 2020-09-03 | Method and system for capturing objects using robotic device |
EA202092863A EA202092863A1 (en) | 2020-09-03 | 2020-12-23 | METHOD AND SYSTEM FOR CAPTURING OBJECTS USING A ROBOTIC DEVICE |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2020129197A RU2745380C1 (en) | 2020-09-03 | 2020-09-03 | Method and system for capturing objects using robotic device |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2745380C1 true RU2745380C1 (en) | 2021-03-24 |
Family
ID=75159098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2020129197A RU2745380C1 (en) | 2020-09-03 | 2020-09-03 | Method and system for capturing objects using robotic device |
Country Status (2)
Country | Link |
---|---|
EA (1) | EA202092863A1 (en) |
RU (1) | RU2745380C1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2587104C2 (en) * | 2010-11-16 | 2016-06-10 | ЮНИВЕРСАЛ РОБОТС АпС | Method and device to control robot |
US10089575B1 (en) * | 2015-05-27 | 2018-10-02 | X Development Llc | Determining grasping parameters for grasping of an object by a robot grasping end effector |
US10099369B2 (en) * | 2013-05-21 | 2018-10-16 | The University Of Birmingham | Grasp modelling |
WO2019136124A1 (en) * | 2018-01-04 | 2019-07-11 | X Development Llc | Grasping of an object by a robot based on grasp strategy determined using machine learning model(s) |
RU2700246C1 (en) * | 2019-03-21 | 2019-09-20 | Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) | Method and system for capturing an object using a robot device |
-
2020
- 2020-09-03 RU RU2020129197A patent/RU2745380C1/en active
- 2020-12-23 EA EA202092863A patent/EA202092863A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2587104C2 (en) * | 2010-11-16 | 2016-06-10 | ЮНИВЕРСАЛ РОБОТС АпС | Method and device to control robot |
US10099369B2 (en) * | 2013-05-21 | 2018-10-16 | The University Of Birmingham | Grasp modelling |
US10089575B1 (en) * | 2015-05-27 | 2018-10-02 | X Development Llc | Determining grasping parameters for grasping of an object by a robot grasping end effector |
WO2019136124A1 (en) * | 2018-01-04 | 2019-07-11 | X Development Llc | Grasping of an object by a robot based on grasp strategy determined using machine learning model(s) |
RU2700246C1 (en) * | 2019-03-21 | 2019-09-20 | Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) | Method and system for capturing an object using a robot device |
Also Published As
Publication number | Publication date |
---|---|
EA202092863A1 (en) | 2022-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9811074B1 (en) | Optimization of robot control programs in physics-based simulated environment | |
RU2700246C1 (en) | Method and system for capturing an object using a robot device | |
US20220105624A1 (en) | Efficient adaption of robot control policy for new task using meta-learning based on meta-imitation learning and meta-reinforcement learning | |
KR102023149B1 (en) | In-Depth Machine Learning Method and Device for Robot Gripping | |
Herzog et al. | Learning of grasp selection based on shape-templates | |
Bagnell et al. | An integrated system for autonomous robotics manipulation | |
Zapata-Impata et al. | Fast geometry-based computation of grasping points on three-dimensional point clouds | |
JP2019217632A (en) | Deep machine learning method and apparatus for robotic grasping | |
Dogar et al. | Physics-Based Grasp Planning Through Clutter. | |
Saut et al. | Efficient models for grasp planning with a multi-fingered hand | |
JP2020532440A (en) | Robot systems and methods for robustly gripping and targeting objects | |
Cruciani et al. | Benchmarking in-hand manipulation | |
Dang et al. | Semantic grasping: planning task-specific stable robotic grasps | |
Kasaei et al. | Mvgrasp: Real-time multi-view 3d object grasping in highly cluttered environments | |
Tian et al. | Realtime hand-object interaction using learned grasp space for virtual environments | |
CN114299150A (en) | Depth 6D pose estimation network model and workpiece pose estimation method | |
Das et al. | Fastron: An online learning-based model and active learning strategy for proxy collision detection | |
US11203116B2 (en) | System and method for predicting robotic tasks with deep learning | |
JP7200610B2 (en) | POSITION DETECTION PROGRAM, POSITION DETECTION METHOD, AND POSITION DETECTION DEVICE | |
El-Khoury et al. | 3d objects grasps synthesis: A survey | |
Detry et al. | Unsupervised learning of predictive parts for cross-object grasp transfer | |
RU2745380C1 (en) | Method and system for capturing objects using robotic device | |
Biza et al. | One-shot imitation learning via interaction warping | |
EA041202B1 (en) | METHOD AND SYSTEM FOR CAPTURING OBJECTS USING A ROBOTIC DEVICE | |
WO2018161305A1 (en) | Grasp quality detection method, and method and system employing same |