EA040444B1 - METHOD AND SYSTEM FOR ROBOT-MANIPULATOR MOVEMENT PLANNING BY CORRECTION OF BASE TRAJECTORIES - Google Patents
METHOD AND SYSTEM FOR ROBOT-MANIPULATOR MOVEMENT PLANNING BY CORRECTION OF BASE TRAJECTORIES Download PDFInfo
- Publication number
- EA040444B1 EA040444B1 EA202092865 EA040444B1 EA 040444 B1 EA040444 B1 EA 040444B1 EA 202092865 EA202092865 EA 202092865 EA 040444 B1 EA040444 B1 EA 040444B1
- Authority
- EA
- Eurasian Patent Office
- Prior art keywords
- working body
- manipulator
- orientation
- robot
- robotic arm
- Prior art date
Links
Description
Область техникиTechnical field
Представленное техническое решение относится, в общем, к области робототехники, а в частности к способу и системе планирования движения робота-манипулятора путем коррекции опорных траекторий, и может быть использовано для создания систем управления роботами-манипуляторами в качестве модуля планирования траекторий перемещения робота-манипулятора в условиях статической коллизионной сцены, в частности, хотя не исключительно, для решения задач манипулирования объектами.The presented technical solution relates, in general, to the field of robotics, and in particular to the method and system for planning the movement of a robot-manipulator by correcting reference trajectories, and can be used to create control systems for robotic manipulators as a module for planning trajectories of movement of a robot-manipulator in conditions of a static collision scene, in particular, although not exclusively, for solving problems of manipulating objects.
Уровень техникиState of the art
Роботы получили широкое применение для автоматизации производственных задач. Их использование позволяет освободить людей от тяжелого и монотонного труда. В основе любой производственной задачи лежит перемещение робота-манипулятора. В настоящее время для процесса обучения захвата объектов предлагаются различные подходы на базе алгоритмов и моделей машинного обучения, в частности с использованием нейронных сетей, с помощью которых выполняется обучение роботизированных манипуляторов для захватов объектов по обученным заранее точкам захвата. Такой подход раскрывается в работе 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 моделей таких объектов для целей последующего указания точек захвата и взаимодействия с объектами в указанных точках.Robots have been widely used to automate production tasks. Their use allows you to free people from heavy and monotonous work. At the heart of any production task is the movement of the robotic arm. Currently, for the process of learning to capture objects, various approaches are proposed based on algorithms and machine learning models, in particular, using neural networks, which are used to train robotic manipulators for capturing objects using previously trained capture points. This approach is explored 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). A well-known solution proposes to use point clouds of objects in the process of training robotic devices in order to generate object descriptors based on photographic and 3D models of such objects for the purpose of subsequently specifying capture points and interacting with objects at these points.
Также известны способ и система захвата объекта с помощью роботизированного устройства, раскрытые в патенте RU 2700246 С1, опубл. 20.09.2019. В известном решении обучают роботизированное устройство с помощью алгоритма машинного обучения для распознавания и запоминания точек захвата объектов, причем обучение выполняется на данных, характеризующих фотографические изображения объектов и соответствующие 3D модели объектов в различных ракурсах; формируют по меньшей мере одну точку захвата объекта, представленного на графическом изображении объекта; получают фотографическое изображение объекта с помощью камеры роботизированного устройства и определяют ракурс, отображающий сформированную точку захвата объекта; получают трехмерное облако точек объекта в ракурсе с помощью сенсора глубины роботизированного устройства; определяют по полученному облаку точек месторасположение точки захвата объекта; определяют ориентацию и положение захватного устройства роботизированного устройства в точке захвата с помощью вычисления матриц поворотов роботизированного устройства; осуществляют захват объекта с помощью роботизированного устройства на основании вычисления усредненной матрицы поворотов для заданной точки захвата.Also known is a method and system for capturing an object using a robotic device, disclosed in patent RU 2700246 C1, publ. 09/20/2019. In the known solution, a robotic device is trained using a machine learning algorithm for recognizing and remembering the capture points of objects, and training is performed on data characterizing photographic images of objects and corresponding 3D models of objects in various angles; form at least one point of capture of the object presented on the graphic image of the object; receiving a photographic image of the object using the camera of the robotic device and determine the angle that displays the formed capture point of the object; receiving a three-dimensional point cloud of the object in perspective using the depth sensor of the robotic device; determine the location of the capture point of the object based on the obtained point cloud; determining the orientation and position of the gripper of the robotic device at the gripping point by calculating rotation matrices of the robotic device; the object is captured using the robotic device based on the calculation of the average rotation matrix for a given capture point.
В сравнении с существующими подходами планирования траекторий перемещения роботаманипулятора предложенный подход решает аналогичную задачу быстрее за счет отсутствия необходимости формирования полной траектории, не допускающей столкновения с объектами статической коллизионной сцены.In comparison with existing approaches to planning the trajectories of a robotic arm, the proposed approach solves a similar problem faster due to the absence of the need to form a complete trajectory that does not allow collision with objects of a static collision scene.
Сущность технического решенияThe essence of the technical solution
Технической проблемой или технической задачей, поставленной в данном техническом решении, является создание нового эффективного, простого и надежного способа планирования движения роботаманипулятора.The technical problem or technical challenge posed in this technical solution is to create a new efficient, simple and reliable way to plan the motion of a robotic arm.
Техническим результатом, достигаемым при решении вышеуказанной технической проблемы, является уменьшение времени планирования движения робота-манипулятора. Указанный технический результат достигается благодаря осуществлению способа планирования движения робота-манипулятора, выполняемого по меньшей мере одним вычислительным устройством, содержащего этапы, на которых:The technical result achieved by solving the above technical problem is to reduce the planning time of the movement of the robotic arm. The specified technical result is achieved due to the implementation of a method for planning the movement of a robotic arm, performed by at least one computing device, comprising the steps in which:
получают информацию о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган робота-манипулятора;receive information about the specified position and orientation of the working body, in which it is necessary to move the working body of the robotic arm;
определяют текущие положение и ориентацию рабочего органа робота-манипулятора;determine the current position and orientation of the working body of the robotic arm;
определяют на основе информации о заданном положении и ориентации рабочего органа ячейку области интереса, в которую необходимо переместить рабочий орган робота-манипулятора, причем область интереса находится внутри рабочего пространства робота-манипулятора;determining, on the basis of information about the predetermined position and orientation of the working body, a cell of the area of interest into which it is necessary to move the working body of the robotic arm, the area of interest being inside the working space of the robotic manipulator;
на основе набора возможных ориентаций рабочего органа робота-манипулятора при его нахождении в области упомянутой ячейки определяют ближайшую возможную ориентацию рабочего органа робота-манипулятора к заданной ориентации;on the basis of a set of possible orientations of the working body of the robotic arm when it is in the area of the said cell, the nearest possible orientation of the working body of the robotic manipulator to a given orientation is determined;
на основе данных о ячейке и ближайшей возможной ориентации рабочего органа роботаманипулятора извлекают из сохраненного на вычислительном устройстве списка предварительно сгенерированную прямую опорную траекторию, причем прямая опорная траектория описывает перемещение робота-манипулятора из начального положения, соответствующего области интереса, в положение, при котором рабочий орган робота-манипулятора находится внутри области интереса;Based on the data on the cell and the nearest possible orientation of the working body of the robot manipulator, a pre-generated direct reference trajectory is retrieved from the list stored on the computing device, moreover, the direct reference trajectory describes the movement of the robot manipulator from the initial position corresponding to the area of interest to the position in which the working body of the robot - the manipulator is inside the area of interest;
определяют набор углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией;determine a set of hinge angles at which the working body of the robotic arm is at a point of a given position with a given orientation;
удаляют от конца извлеченной прямой опорной траектории последовательно точки до тех пор, пока длина траектории не уменьшится на величину, равную размеру ячейки;remove from the end of the extracted direct reference trajectory successively points until the length of the trajectory is reduced by an amount equal to the size of the cell;
добавляют к концу траектории точку, соответствующую значениям набора углов шарниров роботаadd a point to the end of the trajectory corresponding to the values of the set of angles of the robot's joints
- 1 040444 манипулятора, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, а в начало - точку, соответствующую текущему положению рабочего органа робота-манипулятора;- 1 040444 manipulators, in which the working body of the robotic manipulator is at a point of a given position with a given orientation, and to the beginning - a point corresponding to the current position of the working body of the robotic manipulator;
перемещают рабочий орган робота-манипулятора в соответствии с полученной на предыдущем этапе траекторией.move the working body of the robot-manipulator in accordance with the trajectory obtained at the previous stage.
В одном из частных примеров осуществления способа дополнительно выполняют этапы, на которых:In one of the particular examples of the implementation of the method, the steps are additionally performed, at which:
определяют, что точка заданного положения рабочего органа находится внутри области интереса;determine that the point of a given position of the working body is inside the region of interest;
определяют величину отклонения углов шарниров робота-манипулятора в текущем положении от углов шарниров, заданных для начального положения, соответствующего области интереса;determining the amount of deviation of the angles of the hinges of the robot-manipulator in the current position from the angles of the hinges specified for the initial position corresponding to the region of interest;
сравнивают полученную на предыдущем этапе величину отклонения с пороговым значением, причем этап определения ближайшей возможной ориентации рабочего органа робота-манипулятора к заданной ориентации выполняется в случае, если упомянутая величина отклонения не превышает пороговое значение.the deviation value obtained at the previous stage is compared with the threshold value, and the step of determining the nearest possible orientation of the working body of the robot-manipulator to the given orientation is performed if the mentioned deviation value does not exceed the threshold value.
В другом частном примере осуществления способа определение текущего положения и ориентации рабочего органа робота-манипулятора осуществляется посредством решения прямой задачи кинематики на основе его текущих значений углов шарниров. В другом частном примере осуществления способа этап, на котором определяют наборы углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, содержит этапы, на которых:In another particular example of the implementation of the method, the determination of the current position and orientation of the working body of the robot-manipulator is carried out by solving a direct kinematics problem based on its current values of the angles of the hinges. In another particular example of the implementation of the method, the stage at which the sets of hinge angles are determined, at which the working body of the robot-manipulator is at a point of a given position with a given orientation, contains the stages at which:
для заданного положения и ориентации рабочего органа робота-манипулятора выполняется решение обратной задачи кинематики для получения множества наборов углов шарниров, при которых рабочий орган робота манипулятора находится в точке заданного положения с заданной ориентацией;for a given position and orientation of the working body of the robot-manipulator, the inverse problem of kinematics is solved to obtain a set of sets of hinge angles at which the working body of the robotic manipulator is at a point of a given position with a given orientation;
определяют наборы углов шарниров, удовлетворяющие коллизионным ограничениям;determine sets of hinge angles that satisfy collision constraints;
выбирают в качестве набора углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, из набора углов шарниров, удовлетворяющих коллизионным ограничениям, тот набор, который является наиболее близким по значениям углов шарниров к последней точке извлеченной прямой опорной траектории.choose as a set of hinge angles at which the working body of the robot-manipulator is at a point of a given position with a given orientation, from the set of hinge angles that satisfy collision restrictions, the set that is closest in terms of hinge angles to the last point of the extracted straight reference trajectory .
В другом предпочтительном варианте осуществления заявленного решения представлена система планирования движения робота-манипулятора, содержащая:In another preferred embodiment of the claimed solution, a motion planning system for a robotic arm is provided, comprising:
робот-манипулятор;robotic arm;
вычислительное устройство, соединенное с роботом-манипулятором;a computing device connected to the robotic arm;
по меньшей мере одну память, содержащую машиночитаемые инструкции, которые при их исполнении по меньшей мере одним вычислительным устройством выполняют вышеуказанный способ.at least one memory containing machine-readable instructions that, when executed by at least one computing device, perform the above method.
В другом предпочтительном варианте осуществления заявленного решения представлен способ планирования движения робота-манипулятора, выполняемый по меньшей мере одним вычислительным устройством, содержащий этапы, на которых:In another preferred embodiment of the claimed solution, a method for planning the motion of a robotic arm is presented, performed by at least one computing device, comprising the steps of:
получают информацию о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган робота-манипулятора;receive information about the specified position and orientation of the working body, in which it is necessary to move the working body of the robotic arm;
определяют текущие положение и ориентацию рабочего органа робота-манипулятора;determine the current position and orientation of the working body of the robotic arm;
определяют на основе информации о текущем положении и ориентации рабочего органа ячейку области интереса, из которой необходимо переместить рабочий орган робота-манипулятора, причем область интереса находится внутри рабочего пространства робота-манипулятора;determining, on the basis of information about the current position and orientation of the working body, a cell of the area of interest from which it is necessary to move the working body of the robotic arm, the area of interest being inside the working space of the robotic manipulator;
на основе набора возможных ориентаций рабочего органа робота-манипулятора при его нахождении в области упомянутой ячейки определяют ближайшую возможную ориентацию рабочего органа робота-манипулятора к текущей ориентации;based on a set of possible orientations of the working body of the robotic arm when it is in the area of the said cell, the closest possible orientation of the working body of the robotic manipulator to the current orientation is determined;
на основе данных о ячейке и ближайшей возможной ориентации рабочего органа роботаманипулятора извлекают из сохраненного на вычислительном устройстве списка предварительно сгенерированную обратную опорную траекторию, причем обратная опорная траектория описывает перемещение робота из положения, при котором рабочий орган робота-манипулятора находится внутри области интереса, в начальное положения, соответствующее области интереса;Based on the data on the cell and the nearest possible orientation of the working body of the robotic arm, a previously generated reverse reference trajectory is retrieved from the list stored on the computing device, and the reverse reference trajectory describes the movement of the robot from the position in which the working member of the robotic manipulator is inside the area of interest, to the initial position , corresponding to the area of interest;
определяют набор углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией;determine a set of hinge angles at which the working body of the robotic arm is at a point of a given position with a given orientation;
удаляют от начала извлеченной обратной опорной траектории последовательно точки до тех пор, пока длина траектории не уменьшится на величину, равную размеру ячейки;remove from the beginning of the retrieved reverse reference trajectory successively points until the length of the trajectory is reduced by an amount equal to the size of the cell;
добавляют к концу траектории точку, соответствующую значениям набора углов шарниров роботаманипулятора, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, а в начало - точку, соответствующую текущему положению рабочего органа робота-манипулятора;add to the end of the trajectory a point corresponding to the values of the set of angles of the robotic arm hinges, at which the working body of the robotic manipulator is at a point of a given position with a given orientation, and to the beginning - a point corresponding to the current position of the working body of the robotic manipulator;
перемещают рабочий орган робота-манипулятора в соответствии с полученной на предыдущем этапе траекторией.move the working body of the robot-manipulator in accordance with the trajectory obtained at the previous stage.
В одном из частных примеров осуществления способа дополнительно выполняют этапы, на которых:In one of the particular examples of the implementation of the method, the steps are additionally performed, at which:
- 2 040444 определяют величину отклонения заданного положения и начального положения рабочего органа робота-манипулятора, соответствующего области интереса;- 2 040444 determine the amount of deviation of the specified position and the initial position of the working body of the robotic arm corresponding to the area of interest;
сравнивают полученную на предыдущем этапе величину отклонения с пороговым значением, причем этап определения ближайшей возможной ориентации рабочего органа робота-манипулятора к текущей ориентации выполняется в случае, если упомянутая величина отклонения не превышает пороговое значение.the deviation value obtained at the previous stage is compared with the threshold value, and the step of determining the nearest possible orientation of the working body of the robot-manipulator to the current orientation is performed if the said deviation value does not exceed the threshold value.
В другом частном примере осуществления способа определение текущего положения и ориентации рабочего органа робота-манипулятора осуществляется посредством решения прямой задачи кинематики на основе его текущих значений углов шарниров. В другом частном примере осуществления способа этап, на котором определяют наборы углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, содержит этапы, на которых: для заданного положения и ориентации рабочего органа робота-манипулятора выполняется решение обратной задачи кинематики для получения множества наборов углов шарниров, при которых рабочий орган робота манипулятора находится в точке заданного положения с заданной ориентацией;In another particular example of the implementation of the method, the determination of the current position and orientation of the working body of the robot-manipulator is carried out by solving a direct kinematics problem based on its current values of the angles of the hinges. In another particular example of the implementation of the method, the stage at which sets of hinge angles are determined, at which the working body of the robot-manipulator is at a point of a given position with a given orientation, contains the steps at which: for a given position and orientation of the working body of the robot-manipulator, the solution of the inverse kinematics tasks for obtaining a set of sets of hinge angles, in which the working body of the robotic arm is at a point of a given position with a given orientation;
определяют наборы углов шарниров, удовлетворяющие коллизионным ограничениям;determine sets of hinge angles that satisfy collision constraints;
выбирают в качестве набора углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, из набора углов шарниров, удовлетворяющих коллизионным ограничениям, тот набор, который является наиболее близким по значениям углов шарниров к последней точке извлеченной обратной опорной траектории.choose as a set of hinge angles at which the working body of the robotic arm is at a point of a given position with a given orientation, from the set of hinge angles that satisfy collision constraints, the set that is closest in terms of hinge angles to the last point of the extracted back reference trajectory .
В другом предпочтительном варианте осуществления заявленного решения представлена система планирования движения робота-манипулятора, содержащая:In another preferred embodiment of the claimed solution, a motion planning system for a robotic arm is provided, comprising:
робот-манипулятор;robotic arm;
вычислительное устройство, соединенное с роботом-манипулятором;a computing device connected to the robotic arm;
по меньшей мере одну память, содержащую машиночитаемые инструкции, которые при их исполнении по меньшей мере одним вычислительным устройством выполняют вышеуказанный способ.at least one memory containing machine-readable instructions that, when executed by at least one computing device, perform the above method.
Краткое описание чертежейBrief description of the drawings
Признаки преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания и прилагаемых рисунков, на которых:Signs of the advantage of the present technical solution will become apparent from the following detailed description and the accompanying drawings, in which:
на фиг. 1 изображен общий вид системы планирования движения робота-манипулятора;in fig. 1 shows a general view of the motion planning system of a robotic arm;
на фиг. 2 изображены примеры ориентации рабочего органа вдоль вертикальной оси из набора возможных ориентаций рабочего органа робота-манипулятора, соответствующего области интереса;in fig. 2 shows examples of the orientation of the working body along the vertical axis from the set of possible orientations of the working body of the robot-manipulator corresponding to the area of interest;
на фиг. 3 изображены примеры ориентации рабочего органа вдоль отклоненных от вертикали осей из набора возможных ориентаций рабочего органа робота-манипулятора, соответствующего области интереса;in fig. 3 shows examples of the orientation of the working body along the axes deviated from the vertical from the set of possible orientations of the working body of the robot-manipulator corresponding to the area of interest;
на фиг. 4 изображен пример прямой опорной траектории;in fig. 4 shows an example of a straight reference path;
на фиг. 5 изображен пример обратной опорной траектории;in fig. 5 shows an example of a reverse reference path;
на фиг. 6 изображена первая часть блок-схемы алгоритма режима эксплуатации;in fig. 6 shows the first part of the operating mode flow diagram;
на фиг. 7 изображена вторая часть блок-схемы алгоритма режима эксплуатации;in fig. 7 shows the second part of the operating mode flow diagram;
на фиг. 8 изображена третья часть блок-схемы алгоритма режима эксплуатации;in fig. 8 shows the third part of the operating mode flow diagram;
на фиг. 9 изображена четвертая часть блок-схемы алгоритма режима эксплуатации;in fig. 9 shows the fourth part of the operating mode flow diagram;
на фиг. 10 изображена пятая часть блок-схемы алгоритма режима эксплуатации;in fig. 10 shows the fifth part of the operating mode flow diagram;
на фиг. 11 изображена шестая часть блок-схемы алгоритма режима эксплуатации;in fig. 11 shows the sixth part of the operating mode flowchart;
на фиг. 12 изображен пример скорректированной опорной траекторий;in fig. 12 shows an example of corrected reference paths;
на фиг. 13 изображен пример заданных положения и ориентация рабочего органа роботаманипулятора;in fig. 13 shows an example of the given position and orientation of the working body of the robotic arm;
на фиг. 14 изображен пример заданной ориентация рабочего органа и выбранной возможная ориентация рабочего органа;in fig. 14 shows an example of a given orientation of the working body and a selected possible orientation of the working body;
на фиг. 15 изображены примеры решения обратной задачи кинематики для заданного положения рабочего органа робота-манипулятора;in fig. 15 shows examples of solving the inverse problem of kinematics for a given position of the working body of the robotic arm;
на фиг. 16 изображен пример результата перемещения робота манипулятора вдоль выбранной прямой траектории;in fig. 16 shows an example of the result of moving the robotic arm along the selected straight trajectory;
на фиг. 17 изображен пример результата перемещения робота манипулятора вдоль откорректированной прямой траектории;in fig. 17 shows an example of the result of moving the robotic arm along the corrected straight path;
на фиг. 18 представлен пример общего вида вычислительного устройства.in fig. 18 shows an example of a general view of a computing device.
Подробное описаниеDetailed description
Данное техническое решение может быть реализовано на компьютере в виде автоматизированной информационной системы (АИС) или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.This technical solution can be implemented on a computer in the form of an automated information system (AIS) or a machine-readable medium containing instructions for performing the above method.
Также техническое решение может быть реализовано в виде распределенной компьютерной системы, которая может быть установлена на централизованном сервере (наборе серверов). Доступ пользователей к системе возможен как из сети Интернет, так и из внутренней сети предприятия/организации посредством мобильного устройства связи, на котором установлено программное обеспечение с соответст- 3 040444 вующим графическим интерфейсом пользователя, или персонального компьютера с доступом к вебверсии системы с соответствующим графическим интерфейсом пользователя.Also, 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 through a mobile communication device on which software is installed with an appropriate graphical user interface, or a personal computer with access to the web version of the system with an appropriate graphical interface user.
Ниже будут описаны термины и понятия, необходимые для реализации настоящего технического решения.The terms and concepts necessary for the implementation of the present technical solution will be described below.
В данном решении под системой подразумевается компьютерная система, ЭВМ (электронновычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность вычислительных операций (действий, инструкций).In this solution, a system means a computer system, computer (electronic computer), CNC (computer numerical control), PLC (programmable logic controller), computerized control systems and any other devices capable of performing a given, well-defined sequence of computational operations (actions, instructions ).
Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).A command processing device is an electronic unit or an integrated circuit (microprocessor) that executes machine instructions (programs).
Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.An instruction processing device reads and executes machine instructions (programs) from one or more data storage devices. The role of a storage device can be, but not limited to, hard disk drives (HDD), flash memory, ROM (read only memory), solid state drives (SSD), optical drives.
Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.Program - a sequence of instructions intended for execution by a computer control device or a command processing device.
Рабочий орган промышленного робота - составная часть манипулятора, предназначенная для взаимодействия с объектами манипулирования или непосредственного выполнения технологических операций.The working body of an industrial robot is an integral part of the manipulator, designed to interact with objects of manipulation or directly perform technological operations.
Как представлено на фиг. 1, система 100 планирования движения робота-манипулятора содержит вычислительное устройство 107, обеспечивающее необходимые процессы вычислительной обработки алгоритма для функционирования робота-манипулятора 103, канал передачи данных 106, обеспечивающий процессы приема/передачи данных между элементами системы 100, а также удаленное вычислительное устройство 105, например облачный сервер для специализированного выполнения задач.As shown in FIG. 1, the motion planning system 100 of the robotic arm contains a computing device 107 that provides the necessary processes for computing the algorithm for the operation of the robotic manipulator 103, a data transmission channel 106 that provides processes for receiving / transmitting data between elements of the system 100, as well as a remote computing device 105, for example, a cloud server for specialized tasks.
В качестве вычислительного устройства 107, с которым взаимодействует пользователь 108, может использоваться, например, персональный компьютер, ноутбук, планшет, сервер, смартфон, серверный кластер, мейнфрейм, суперкомпьютер, тонкий клиент, система на кристалле (англ. System on a Chip, сокр. SoC) и т.п. Конкретная аппаратная реализация вычислительного устройства 107 зависит от предъявляемых требований и должна обеспечивать необходимые процессы вычислительной обработки цифровой информации для обеспечения должного функционирования устройства 107 в составе системы 100.As a computing device 107 with which the user 108 interacts, for example, a personal computer, laptop, tablet, server, smartphone, server cluster, mainframe, supercomputer, thin client, system on a chip (eng. System on a Chip, abbr. .SoC), etc. The specific hardware implementation of the computing device 107 depends on the requirements and must provide the necessary digital information processing processes to ensure the proper functioning of the device 107 as part of the system 100.
В качестве канала передачи данных 106 может применяться различный вид связи, например, проводного и/или беспроводного типа, в частности: LAN, WAN, WLAN, Bluetooth, Wi-Fi, GSM/GPRS/LTE/5G, Ethernet, USB, RS232, RJ45 и т.п. Удаленное вычислительное устройство 105, как правило, представляет собой облачное хранилище данных или сервер для решения специализированных задач или программной логики. Описание работы устройства 105 будет раскрыто далее в настоящем описании.Various types of communication can be used as a data transmission channel 106, for example, wired and / or wireless type, in particular: LAN, WAN, WLAN, Bluetooth, Wi-Fi, GSM/GPRS/LTE/5G, Ethernet, USB, RS232, RJ45 etc. Remote computing device 105 is typically a cloud storage or server for specialized tasks or program logic. A description of the operation of the device 105 will be disclosed later in this description.
В качестве робота-манипулятор 103 может применяться как стационарный роботизированный манипулятор промышленного или коллаборативного назначения, например Universal Robotics™, KUKA™, Fanuc™, ABB™ и т.п., так и роботизированные манипуляторы, устанавливаемые на подвижные автономные роботизированные устройства, в качестве конечностей, в частности роботизированные руки. Различаются два режима работы системы (100) планирования движения робота-манипулятора: режим формирования опорных траекторий и режим эксплуатации.As a robotic arm 103, it can be used as a stationary robotic arm for industrial or collaborative purposes, for example, Universal Robotics™, KUKA™, Fanuc™, ABB™, etc., and robotic manipulators mounted on mobile autonomous robotic devices, as limbs, in particular robotic arms. There are two modes of operation of the system (100) planning the motion of the robotic arm: the mode of formation of reference trajectories and the mode of operation.
В режиме формирования опорных траекторий в рабочей зоне робота-манипулятора 103 пользователем 108 посредством вычислительного устройства 107 известными из уровня техники методами выбираются одна или несколько областей интереса, например в области стола 104 (фиг. 1). Область интереса - это область рабочего пространства робота-манипулятора, представляющая собой, например, параллелепипед 101, состоящий из ячеек 102. На фиг. 1 ячейка, отмеченная позицией 102, находится в седьмом ряду по длине, в первом ряду ширине, в первом ряду по высоте и имеет порядковый номер 31. Пользователь задает положение и ориентацию области интереса, а также габариты и количество ячеек по высоте, длине и ширине параллелепипеда 101. Области интереса соответствует начальное положение робота-манипулятора 103, которое также задается пользователем 108 посредством вычислительного устройства 107 в виде набора углов шарниров, характеризующего положение и ориентацию рабочего органа робота-манипулятора 103. Также упомянутые углы шарниров робота-манипулятора 103 могут быть получены от виртуальной модели робота-манипулятора, реализованной на базе вычислительного устройства 105, или от контроллера реального робота-манипулятора 103, и по ним вычислительное устройство 105 рассчитывает положение и ориентация рабочего органа робота-манипулятора 103 путем решения прямой задачи кинематики. При этом начальное положение робота-манипулятора должно быть таким, чтобы рабочий орган находился вне области интереса.In the mode of formation of reference trajectories in the working area of the robotic arm 103, the user 108 selects one or more areas of interest by means of the prior art methods known from the prior art, for example, in the area of the table 104 (Fig. 1). The region of interest is the region of the workspace of the robotic arm, which is, for example, a box 101, consisting of cells 102. In FIG. 1 cell, marked with position 102, is in the seventh row in length, in the first row in width, in the first row in height and has serial number 31. The user sets the position and orientation of the region of interest, as well as the dimensions and number of cells in height, length and width parallelepiped 101. The area of interest corresponds to the initial position of the robotic arm 103, which is also set by the user 108 by means of the computing device 107 in the form of a set of hinge angles that characterizes the position and orientation of the working body of the robotic arm 103. from the virtual model of the robotic arm implemented on the basis of the computing device 105, or from the controller of the real robotic manipulator 103, and from them the computing device 105 calculates the position and orientation of the working body of the robotic manipulator 103 by solving a direct kinematics problem. In this case, the initial position of the robotic arm must be such that the working body is outside the area of interest.
Также области интереса соответствует набор возможных ориентаций рабочего органа роботаманипулятора 103 (фиг. 2 и 3), который формируется пользователем 108 и сохраняется в вычислительAlso, the area of interest corresponds to a set of possible orientations of the working body of the robotic arm 103 (Fig. 2 and 3), which is formed by the user 108 and stored in the computer
- 4 040444 ном устройстве 105 в виде списка. В списке для каждой ячейки 102 параллелепипеда 101 пользователем 108 определяется/задается набор ориентации рабочего органа робота-манипулятора 103 при его нахождении в области ячейки 102. Набор ориентации рабочего органа робота-манипулятора 103 для ячейки может содержать в себе, например, ориентации рабочего органа вдоль вертикальной оси (фиг. 2, позиции 201-208), а также ориентации вдоль осей, отклоненных от вертикальной оси на заданные пользователем 108 углы (фиг. 3, позиции 301-308). Эти ориентации вместе с координатами центров ячеек используются при формировании прямых опорных траекторий в качестве целевых положений и ориентации, в которые должен выходить рабочий орган робота-манипулятора 103 из начального положения при перемещении по опорным траекториям (фиг. 4).- 4 040444 on the device 105 as a list. In the list for each cell 102 of the box 101, the user 108 defines/sets the set of orientation of the working body of the robot manipulator 103 when it is in the area of the cell 102. The orientation set of the working body of the robot manipulator 103 for the cell may contain, for example, vertical axis (FIG. 2, positions 201-208), as well as orientation along axes deviated from the vertical axis by user-specified angles 108 (FIG. 3, positions 301-308). These orientations, together with the coordinates of the cell centers, are used in the formation of straight reference trajectories as target positions and orientations into which the working body of the robot manipulator 103 should go from the initial position when moving along the reference trajectories (Fig. 4).
Для каждой ячейки 102 и набора заданных для них возможных ориентаций рабочего органа роботаманипулятора 103 вычислительное устройство 105 формирует прямую и обратную опорную траекторию перемещения робота-манипулятора 103 (фиг. 4 и 5), которые задаются в пространстве набором углов шарниров робота-манипулятора 103 для каждой точки упомянутой траектории. Прямая траектория формируется путем выполнения любых доступных известных алгоритмов планирования, например алгоритма, раскрытого в работе RRT-connect: An efficient approach to single-query path planning (J. Kuffner et. al., Computer Science Dept, Stanford University, 2000) или алгоритма, описанного в работе CHOMP: Gradient Optimization Techniques for Efficient Motion Planning (N. Ratliffy et. al., Robotics Institute, Carnegie Mellon University, 2009). Прямая траектория описывает перемещение робота-манипулятора 103 из начального положения, соответствующего области интереса, в положение, при котором рабочий орган роботаманипулятора 103 находится в центре ячейки 102 с заданной (возможной) для данной ячейки 102 ориентацией в соответствии со списком, сохраненном в вычислительном устройстве 105. Соответственно, информация о прямой траектории, сформированная вычислительным устройством 105, содержит последовательность точек траектории, каждой из которой соответствует наборы углов, скоростей и ускорений шарниров робота-манипулятора 103.For each cell 102 and a set of possible orientations of the working body of the robotic manipulator 103 given for them, the computing device 105 generates a forward and reverse reference trajectory of the robotic manipulator 103 (Fig. 4 and 5), which are set in space by a set of angles of the hinges of the robotic manipulator 103 for each points of the mentioned trajectory. A direct path is formed by executing any available known planning algorithms, such as the algorithm disclosed in RRT-connect: An efficient approach to single-query path planning (J. Kuffner et. al., Computer Science Dept, Stanford University, 2000) or the algorithm described in CHOMP: Gradient Optimization Techniques for Efficient Motion Planning (N. Ratliffy et. al., Robotics Institute, Carnegie Mellon University, 2009). The direct trajectory describes the movement of the robotic arm 103 from the initial position corresponding to the area of interest to the position in which the working body of the robotic arm 103 is located in the center of the cell 102 with a given (possible) orientation for this cell 102 in accordance with the list stored in the computing device 105 Accordingly, the direct path information generated by the computing device 105 contains a sequence of path points, each of which corresponds to a set of angles, velocities and accelerations of the joints of the robot manipulator 103.
Обратная траектория описывает перемещение робота-манипулятора 103 от ячейки 102 к начальному положению робота-манипулятора 103, соответствующему области интереса. Для формирования обратной траектории последовательность точек прямой траектории, каждой из которой соответствует наборы углов, скоростей и ускорений шарниров робота-манипулятора, задается вычислительным устройством 105 в обратном порядке. При этом углы шарниров остаются неизменными, а скорости и ускорения шарниров робота-манипулятора 103 пересчитываются таким образом, чтобы при движении робота-манипулятора 103 по траектории, его перемещение было плавным. Все опорные траектории записываются в базу данных, которой дополнительно может быть оснащено вычислительное устройство 105.The reverse trajectory describes the movement of the robot arm 103 from the cell 102 to the initial position of the robot arm 103 corresponding to the region of interest. To form a reverse trajectory, a sequence of points of a direct trajectory, each of which corresponds to a set of angles, velocities and accelerations of the robotic arm joints, is set by the computing device 105 in reverse order. At the same time, the angles of the hinges remain unchanged, and the speeds and accelerations of the hinges of the robot-manipulator 103 are recalculated in such a way that when the robot-manipulator 103 moves along the trajectory, its movement is smooth. All reference trajectories are recorded in a database, which can optionally be equipped with the computing device 105.
В режиме эксплуатации (фиг. 6-11) от системы управления более высокого уровня (на чертежах не изображена) или от вычислительного устройства 107 на вход вычислительного устройства 105 подается информация о заданном (желаемом) положении и ориентации 601 (фиг. 6), с которыми необходимо переместить рабочий орган робота-манипулятора. В начале путем решения прямой задачи кинематики по информации об углах шарниров робота-манипулятора, поступающей от виртуальной модели робота или от контроллера реального робота, рассчитываются текущие положение и ориентация рабочего органа 602. Затем отыскивается область интереса 603 из i областей и порядковый номер ячейки, внутри которой находится точка желаемого или текущего положения рабочего органа. Если и точка желаемого, и точка текущего положения рабочего органа находятся вне областей интереса, то выполняется любой доступный известный алгоритм планирования траекторий для желаемого положения и ориентации рабочего органа 1101 (фиг. 11). Иначе возможны два варианта работы системы 100.In the operating mode (Fig. 6-11) from a higher-level control system (not shown in the drawings) or from a computing device 107, information about a given (desired) position and orientation 601 (Fig. 6) is supplied to the input of the computing device 105 (Fig. 6), with which it is necessary to move the working body of the robot-manipulator. At the beginning, by solving the direct kinematics problem, using information about the angles of the robotic arm joints coming from the virtual model of the robot or from the controller of the real robot, the current position and orientation of the working body 602 are calculated. which is the point of the desired or current position of the working body. If both the point of the desired and the point of the current position of the working body are outside the areas of interest, then any available known algorithm for planning trajectories for the desired position and orientation of the working body 1101 (Fig. 11) is performed. Otherwise, two options for the operation of the system 100 are possible.
Если внутри области интереса находится точка заданного положения рабочего органа 604 (случай, представленный на фиг. 4), то вычисляется порядковый номер ячейки 701 (фиг. 7), содержащий в себе эту точку, и проверяется близость углов шарниров робота-манипулятора в текущем и начальном положении 702, соответствующем области интереса. Если разница между углами шарниров превышает пороговое значение, то выполняется любой доступный известный алгоритм планирования траекторий для желаемого положения и ориентации рабочего органа 1101 (фиг. 11). Если разница между углами шарниров не превышает порогового значения, то среди всех прямых траекторий, записанных в базу данных для найденной ячейки, отыскивается траектория 703, в последней точке которой возможная ориентация рабочего органа робота-манипулятора наиболее близка к заданной ориентации. Для заданного положения и ориентации рабочего органа системой решается обратная задача кинематики (ОЗК) 704. Ее решения представляют собой наборы углов шарниров робота-манипулятора, при которых рабочий орган находится в заданном положении с заданной ориентацией. Виртуальная модель робота выставляется в конфигурацию, соответствующую углам шарниров каждого решения (j) обратной задачи кинематики 901 (фиг. 9), и проверяется на самопересечение и пересечение с предметами на виртуальной сцене (например, со столом 104 на фиг. 1) путем выполнения любых известных алгоритмов определения коллизии 902. Если ни одно решение (j) не удовлетворяет коллизионным ограничениям, которые налагаются предметами, расположенными в рабочей зоне робота-манипулятора, то выполняется любой доступный известный алгоритм планирования траекторий для желаемого положения и ориентации рабочего органа 1101 (фиг. 11). Иначе среди решений (j), удовлетворяющих коллизионным ограничениям, которые налаIf inside the area of interest there is a point of the specified position of the working body 604 (the case shown in Fig. 4), then the serial number of the cell 701 (Fig. 7) containing this point is calculated, and the proximity of the angles of the hinges of the robot-manipulator in the current and initial position 702 corresponding to the region of interest. If the difference between the angles of the hinges exceeds a threshold value, then any available known path planning algorithm is executed for the desired position and orientation of the end effector 1101 (FIG. 11). If the difference between the angles of the hinges does not exceed the threshold value, then among all the direct trajectories recorded in the database for the found cell, a trajectory 703 is searched for, at the last point of which the possible orientation of the working body of the robot manipulator is closest to the specified orientation. For a given position and orientation of the working body, the system solves the inverse kinematic problem (IKP) 704. Its solutions are sets of angles of the hinges of the robot-manipulator, in which the working body is in a given position with a given orientation. The virtual robot model is set up in a configuration corresponding to the hinge angles of each solution (j) of the kinematics inverse problem 901 (FIG. 9) and checked for self-intersection and intersection with objects in the virtual scene (for example, table 104 in FIG. 1) by performing any known collision detection algorithms 902. If no solution (j) satisfies the collision restrictions imposed by objects located in the working area of the robotic arm, then any available known trajectory planning algorithm is performed for the desired position and orientation of the working body 1101 (Fig. 11 ). Otherwise, among the solutions (j) satisfying the collision constraints that
- 5 040444 гаются предметами, расположенными в рабочей зоне робота-манипулятора, выбирается одно, углы шарниров которого наиболее близки к углам шарниров робота-манипулятора в конце выбранной траектории 903. на фиг. 12 пунктирной линией изображена выбранная опорная траектория, 1202 - первая точка выбранной опорной траектории, 1203 - последняя точка выбранной опорной траектории. От конца выбранной опорной траектории удаляются несколько точек таким образом, чтобы длина траектории уменьшилась на величину, равную размеру ячейки 904. В конец этой траектории добавляется точка 1204, содержащая углы шарниров выбранного решения обратной задачи кинематики 905 (фиг. 9), а в начало - точка 1201, содержащая углы шарниров робота-манипулятора в текущем положении 906. Полученная траектория изображена на фиг. 12 сплошной линией. Затем для точек полученной траектории рассчитываются скорости и ускорения шарниров робота-манипулятора таким образом, чтобы при движении роботаманипулятора по траектории, его перемещение было плавным 1102 (фиг. 11). Значения скоростей и ускорений шарниров робота-манипулятора зависят от желаемого профиля скорости. Существует множество известных алгоритмов, решающих эту задачу. Выбор конкретного алгоритма не влияет на работу рассматриваемой системы. После этого траектория готова к отправке на выполнение 1103.- 5 040444 objects are located in the working area of the robotic arm, one is selected, the hinge angles of which are closest to the hinge angles of the robotic arm at the end of the selected trajectory 903. in FIG. 12 shows the selected reference path in dashed line, 1202 the first point of the selected reference path, 1203 the last point of the selected reference path. Several points are removed from the end of the selected reference trajectory so that the length of the trajectory is reduced by an amount equal to the size of the cell 904. A point 1204 is added to the end of this trajectory, containing the angles of the hinges of the selected solution of the inverse problem of kinematics 905 (Fig. 9), and to the beginning - point 1201 containing the angles of the robotic arms at the current position 906. The resulting trajectory is shown in FIG. 12 as a solid line. Then, for the points of the obtained trajectory, the velocities and accelerations of the hinges of the robot-manipulator are calculated so that when the robot-manipulator moves along the trajectory, its movement is smooth 1102 (Fig. 11). The values of speeds and accelerations of the joints of the robotic arm depend on the desired speed profile. There are many well-known algorithms that solve this problem. The choice of a specific algorithm does not affect the operation of the system under consideration. After that, the trajectory is ready to be sent for execution 1103.
Если внутри области интереса находится точка текущего положения рабочего органа 801 (случай, представленный на фиг. 5), то в соответствии с алгоритмом, представленном на фиг. 8, вычисляется порядковый номер ячейки 802, содержащий в себе эту точку, и проверяется близость точек заданного положения и начального положения рабочего органа робота-манипулятора 803, соответствующего области интереса. Если расстояние между этими точками превышает пороговое значение, то выполняется любой доступный известный алгоритм планирования траекторий для желаемого положения и ориентации рабочего органа 1101 (фиг. 11). Если расстояние между этими точками не превышает порогового значения, то среди всех обратных траекторий, записанных для найденной ячейки, отыскивается траектория 804, в первой точке которой углы шарниров наиболее близки к текущим углам шарниров роботаманипулятора. Для заданного положения и ориентации рабочего системой решается обратная задача кинематики 805. Ее решения представляют собой наборы углов шарниров робота-манипулятор, при которых рабочий орган находится в заданном положении с заданной ориентацией.If inside the area of interest there is a point of the current position of the working body 801 (the case presented in Fig. 5), then in accordance with the algorithm presented in Fig. 8, the sequence number of the cell 802 containing this point is calculated, and the proximity of the specified position points and the initial position of the robotic arm 803 corresponding to the region of interest is checked. If the distance between these points exceeds a threshold value, then any available known trajectory planning algorithm is executed for the desired position and orientation of the end effector 1101 (FIG. 11). If the distance between these points does not exceed the threshold value, then among all the return trajectories recorded for the found cell, a trajectory 804 is searched for, at the first point of which the hinge angles are closest to the current robotic arm hinge angles. For a given position and orientation of the worker, the system solves the inverse problem of kinematics 805. Its solutions are sets of angles of the robot-manipulator hinges, in which the working body is in a given position with a given orientation.
Виртуальная модель робота выставляется в конфигурацию, соответствующую углам шарниров каждого решения обратной задачи кинематики 1001 (фиг. 10), и проверяется на самопересечение и пересечение с предметами на виртуальной сцене (например, со столом на фиг. 1) путем выполнения любых доступных алгоритмов определения коллизии 1002. Если ни одно решение (j) не удовлетворяет коллизионным ограничениям, которые налагаются предметами, расположенными в рабочей зоне роботаманипулятора, то выполняется любой доступный известный алгоритм планирования траекторий для желаемого положения и ориентации рабочего органа 1101 (фиг. 11). Иначе среди решений, удовлетворяющих коллизионным ограничениям, которые налагаются предметами, расположенными в рабочей зоне робота-манипулятора, выбирается одно, углы шарниров которого наиболее близки к углам шарниров робота-манипулятора в конце выбранной траектории 1003. на фиг. 12 пунктирной линией изображена выбранная опорная траектория, 1203 - первая точка выбранной опорной траектории, 1202 -последняя точка выбранной опорной траектории. От начала выбранной траектории удаляются несколько точек таким образом, чтобы длина траектории уменьшилась на величину, равную размеру ячейки 1004. В начало этой траектории добавляется точка 1204, содержащая углы шарниров робота-манипулятора в текущем положении 1005, а в конец - точка 1201, содержащая углы шарниров выбранного решения обратной задачи кинематики 1006. Затем для точек полученной траектории рассчитываются скорости и ускорения шарниров робота-манипулятора таким образом, чтобы при движении робота-манипулятора по траектории, его перемещение было плавным 1102 (фиг. 11). Значения скоростей и ускорений шарниров роботаманипулятора зависят от желаемого профиля скорости, заданного, например, пользователем 108. Существует множество известных алгоритмов, решающих эту задачу. Выбор конкретного алгоритма не влияет на работу рассматриваемой системы. После этого траектория готова к отправке на выполнение 1103.The virtual robot model is set up in a configuration corresponding to the hinge angles of each solution to the inverse kinematics problem 1001 (FIG. 10) and checked for self-intersection and intersection with objects in the virtual scene (for example, with the table in FIG. 1) by running any available collision detection algorithms 1002. If no solution (j) satisfies the collision constraints imposed by objects located in the working area of the robotic arm, then any available known trajectory planning algorithm is executed for the desired position and orientation of the working body 1101 (Fig. 11). Otherwise, among the solutions that satisfy the collision constraints that are imposed by objects located in the working area of the robot manipulator, one is selected, the hinge angles of which are closest to the angles of the hinges of the robot manipulator at the end of the selected trajectory 1003. in FIG. 12 shows the selected reference path in dashed line, 1203 the first point of the selected reference path, 1202 the last point of the selected reference path. Several points are removed from the beginning of the selected trajectory in such a way that the length of the trajectory is reduced by an amount equal to the size of cell 1004. A point 1204 is added to the beginning of this trajectory, containing the angles of the joints of the robot-manipulator in the current position 1005, and to the end - a point 1201 containing the angles hinges of the chosen solution of the inverse problem of kinematics 1006. Then, for the points of the obtained trajectory, the velocities and accelerations of the robot-manipulator hinges are calculated so that when the robot-manipulator moves along the trajectory, its movement is smooth 1102 (Fig. 11). The velocities and accelerations of the robotic arm hinges depend on the desired velocity profile set, for example, by the user 108. There are many well-known algorithms that solve this problem. The choice of a specific algorithm does not affect the operation of the system under consideration. After that, the trajectory is ready to be sent for execution 1103.
Пример реализации изобретенияAn example of the implementation of the invention
Рассмотрим работу системы (100) планирования движения робота-манипулятора на конкретном примере. На фиг. 1 изображена рабочая зона робота-манипулятора 103, внутри которой расположен стол 104. Ось Z инерциальной системы координат направлена вверх, ось X ориентирована по направлению от центра стола к роботу-манипулятору, ось Y дополняет оси X и Z до правой тройки векторов. Положение робота-манипулятора 103 совпадает с положением инерциальной системы координат. База робота развернута относительно инерциальной системы координат вокруг оси Z на угол, равный -42,5°.Let us consider the operation of the system (100) for planning the motion of a robotic arm using a specific example. In FIG. 1 shows the working area of the robot manipulator 103, inside which the table 104 is located. The Z axis of the inertial coordinate system is directed upwards, the X axis is oriented in the direction from the center of the table to the robot manipulator, the Y axis complements the X and Z axes to the right trio of vectors. The position of the robotic arm 103 coincides with the position of the inertial coordinate system. The base of the robot is deployed relative to the inertial coordinate system around the Z axis at an angle equal to -42.5°.
В режиме формирования опорных траекторий пользователем 108 посредством вычислительного устройства 107 над столом 104 выбирается одна область интереса 101. Например, центр области интереса может быть задан вектором [-0,730; 0,0; 0,230] и кватернионом [0,0; 0,0; 0,0; 1,0] в инерциальной системе координат. Каждая ячейка области интереса 102 может иметь форму куба с длиной ребра 0,088 м. Область интереса может содержать, например, 7 ячеек по длине, 5 ячеек по ширине и 4 ячеек по высоте параллелепипеда 101.In the mode of generating reference trajectories, the user 108 selects one region of interest 101 by means of a computing device 107 above the table 104. For example, the center of the region of interest can be specified by the vector [-0.730; 0.0; 0.230] and the quaternion [0.0; 0.0; 0.0; 1,0] in the inertial coordinate system. Each cell of the region of interest 102 may be in the form of a cube with an edge length of 0.088 m. The region of interest may contain, for example, 7 cells in length, 5 cells in width, and 4 cells in height of box 101.
Далее пользователем 108 посредством вычислительного устройства 107 выбирается начальное поNext, the user 108 by means of the computing device 107 selects the initial
- 6 040444 ложение робота-манипулятора 103, соответствующее области интереса. Например, в качестве упомянутого начального положения могут быть заданы углы шарниров манипулятора последовательно от базы робота до рабочего органа - [50,0; -80,0; -80,0; -115,0; 90,0; 0,0]. Информация о начальном положении от вычислительного устройства 107 поступает в вычислительное устройство 105, которое на ее основе известными из уровня техники методами рассчитывает положение и ориентация рабочего органа робота-манипулятора 103 в инерциальной системе координат, информация о которых может быть представлена в виде вектора [-0,543; 0,075; 0,716] и кватерниона [0,737; 0,0; -0.676; 0,016].- 6 040444 position of the robotic arm 103 corresponding to the region of interest. For example, as the mentioned initial position, the angles of the manipulator hinges can be set sequentially from the base of the robot to the working body - [50.0; -80.0; -80.0; -115.0; 90.0; 0.0]. Information about the initial position from the computing device 107 enters the computing device 105, which on its basis, using methods known from the prior art, calculates the position and orientation of the working body of the robot-manipulator 103 in the inertial coordinate system, information about which can be represented as a vector [-0.543 ; 0.075; 0.716] and quaternion [0.737; 0.0; -0.676; 0.016].
Набор возможных ориентаций рабочего органа робота-манипулятора 103, заданные пользователем 108 для каждой ячейки, может состоять из 16 поворотов, приведенных на фиг. 2 и 3. Они представляют собой 8 ориентаций вдоль вертикальной оси и 8 ориентаций вдоль осей, угол между каждой из которых и вертикальной осью составляет 30°.The set of possible orientations of the end effector of the robot manipulator 103, specified by the user 108 for each cell, may consist of 16 rotations shown in FIG. 2 and 3. They are 8 orientations along the vertical axis and 8 orientations along the axes, the angle between each of which and the vertical axis is 30°.
Далее на основе информации о начальном положении и координат центов ячеек 102 вычислительное устройство 105 генерирует опорные траекторий для каждой ячейки параллелепипеда 101 и для каждой возможной ориентации рабочего органа робота-манипулятора 103 из ранее сформированного набора, заданного для ячеек 102. При формировании прямых опорных траекторий координаты центров ячеек 102 области интереса и возможные ориентации рабочего органа используются в качестве целевых положений и ориентации, в которые рабочий орган робота-манипулятора 103 выходит из начального положения, соответствующего области интереса. Обратные опорные траектории получаются системой путем инверсии прямых опорных траекторий. Опорные траектории записываются в базу данных с полями: уникальный идентификатор области интереса, порядковый номер ячейки, порядковый номер ориентации рабочего органа, идентификатор типа опорной траектории (прямая или обратная) и опорная траектория. В режиме эксплуатации на вход системы 100, например, от пользователя 108 поступает информация о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган робота-манипулятора 103. Вычислительное устройство 105 запрашивает текущие значениям углов шарниров от виртуальной модели робота или от контроллера робота-манипулятора 103. По текущим значениям углов шарниров вычислительное устройство 105 осуществляет выполнение прямой задачи кинематики, решением которой является информация о текущем положении и ориентации рабочего органа робота-манипулятора 103.Further, based on the information about the initial position and the coordinates of the centers of cells 102, the computing device 105 generates reference trajectories for each cell of the parallelepiped 101 and for each possible orientation of the working body of the robot-manipulator 103 from the previously generated set specified for cells 102. When forming direct reference trajectories, the coordinates the centers of the cells 102 of the region of interest and the possible orientations of the end effector are used as target positions and orientations to which the end effector of the robotic arm 103 exits the start position corresponding to the area of interest. The reverse reference paths are obtained by the system by inverting the forward reference paths. The reference trajectories are recorded in the database with the following fields: unique identifier of the region of interest, cell serial number, ordinal number of the working body orientation, identifier of the reference trajectory type (forward or reverse) and reference trajectory. In the operating mode, the input of the system 100, for example, from the user 108 receives information about the specified position and orientation of the working body, in which it is necessary to move the working body of the robot-manipulator 103. The computing device 105 requests the current values of the angles of the hinges from the virtual model of the robot or from the robot controller -manipulator 103. According to the current values of the angles of the hinges, the computing device 105 performs the direct task of kinematics, the solution of which is information about the current position and orientation of the working body of the robot-manipulator 103.
Например, в соответствии с фиг. 13, информация 1301 о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган робота-манипулятора 1302, может быть представлена в инерциальной системе координат вектором [-0,892; 0,061; 0,205] и кватернионом [-0,539; -0,280; 0,770; -0,196]. Информация о текущем положении робота-манипулятора 1302, запрошенная вычислительным устройство 105 от виртуальной модели робота или от контроллера робота-манипулятора 1302, может содержать набор углов шарниров робота-манипулятора 1302, например, значения которых может быть представлено последовательностью от базы робота до рабочего органа - [49,466; -80,140; -81,054; -113,738; 91,489; 2,133]. Текущие положение и ориентация робота-манипулятора 1302, рассчитанные вычислительным устройство 105 в результате решения прямой задачи кинематики для указанного набора углов, в инерциальной системе координат будет представлять вектор [-0,544; 0,073; 0,715] и кватернион [0,739; 0,002; -0.671; 0,019].For example, in accordance with FIG. 13, information 1301 about the target position and orientation of the end effector to which the end effector of the robot arm 1302 needs to be moved can be represented in the inertial coordinate system by the vector [-0.892; 0.061; 0.205] and quaternion [-0.539; -0.280; 0.770; -0.196]. Information about the current position of the robot arm 1302, requested by the computing device 105 from the virtual model of the robot or from the controller of the robot arm 1302, may contain a set of angles of the robot arm 1302, for example, the values of which can be represented by a sequence from the robot base to the end effector - [49,466; -80.140; -81.054; -113.738; 91.489; 2.133]. The current position and orientation of the robotic arm 1302, calculated by the computing device 105 as a result of solving the direct kinematics problem for the specified set of angles, in the inertial coordinate system will be represented by the vector [-0.544; 0.073; 0.715] and quaternion [0.739; 0.002; -0.671; 0.019].
В приведенном на фиг. 13 примере точка заданного положения рабочего органа, в которое необходимо переместить рабочий орган робота-манипулятора 1302, находится внутри области интереса 1303, а именно внутри ячейки 1304, которая находится в шестом ряду по длине, во третьем ряду по ширине, во втором ряду по высоте и имеет порядковый номер 63.In FIG. 13 example, the point of the specified position of the working body, to which it is necessary to move the working body of the robot manipulator 1302, is located inside the region of interest 1303, namely, inside the cell 1304, which is in the sixth row in length, in the third row in width, in the second row in height and has serial number 63.
Далее вычислительное устройство 105 определяет величину отклонения углов шарниров роботаманипулятора 1302 в начальном положении от углов шарниров робота-манипулятора 1302 в текущем положении, после чего величина отклонения вычислительным устройством 105 робота-манипулятора 1302 сравнивается с пороговым значением. В представленном примере углы шарниров роботаманипулятора 1302 в начальном положении, соответствующем области интереса, отличаются от углов шарниров робота-манипулятора 1302 в текущем положении на величину, не превышающую пороговое значение.Next, the computing device 105 determines the amount of deviation of the angles of the joints of the robot arm 1302 at the initial position from the angles of the joints of the robot arm 1302 at the current position, after which the amount of deviation by the computing device 105 of the robot arm 1302 is compared with a threshold value. In the example shown, the articulated angles of the robotic arm 1302 at the initial position corresponding to the region of interest differ from the articulated angles of the robotic arm 1302 at the current position by an amount not exceeding a threshold value.
На следующем этапе вычислительное устройство 105 для найденной ячейки 1304 извлекает из базы данных, которой упомянутое устройство 105 может быть оснащено, набор возможных ориентаций рабочего органа робота-манипулятора 1302 при его нахождении в области ячейки 1304, после чего вычислительное устройство 105 на основе значений углов шарниров, содержащихся в информации о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган роботаманипулятора 1302, и значений углов шарниров упомянутого извлеченного набора возможных ориентаций рабочего органа определяет ближайшую возможную ориентацию рабочий орган роботаманипулятора 1302, доступную для его нахождения в области ячейки 1304.At the next stage, the computing device 105 for the found cell 1304 retrieves from the database, which the said device 105 can be equipped with, a set of possible orientations of the working body of the robot-manipulator 1302 when it is in the area of the cell 1304, after which the computing device 105, based on the values of the angles of the hinges , contained in the information about the specified position and orientation of the working body, in which it is necessary to move the working body of the robotic arm 1302, and the values of the angles of the hinges of the mentioned extracted set of possible orientations of the working body determines the nearest possible orientation of the working body of the robotic arm 1302, available for its location in the area of the cell 1304.
В представленном примере ближайшей ориентацией рабочего органа робота-манипулятора 1302, доступной для его нахождения в области ячейки 1304, является возможная ориентация рабочего номера под номером 10 (позиция 302 на фиг. 3), заданная в инерциальной системе координат кватерниономIn the presented example, the closest orientation of the working body of the robot manipulator 1302, available for its location in the cell area 1304, is the possible orientation of the working number at number 10 (position 302 in Fig. 3), specified in the inertial coordinate system by the quaternion
- 7 040444- 7 040444
[-0,456; -0,195; 0,794; -0,350]. Т.е. угол, на который необходимо довернуть рабочий орган из выбранной возможной ориентации в заданную пользователем 108 ориентацию рабочего органа в соответствии с информацией о положении и ориентации рабочего органа, минимален среди аналогичных углов из набора возможных ориентаций. На фиг. 14 представлены примеры заданной ориентации рабочего органа 1401 и выбранная возможная ориентация рабочего органа 1402.[-0.456; -0.195; 0.794; -0.350]. Those. the angle by which it is necessary to turn the working body from the selected possible orientation to the orientation of the working body specified by the user 108 in accordance with the information about the position and orientation of the working body is minimal among similar angles from the set of possible orientations. In FIG. 14 shows examples of a given orientation of the end effector 1401 and a selected possible orientation of the end effector 1402.
Далее по номеру ячейки 1304, в которой находится точка заданного положения рабочего органа, и данных ближайшей возможной ориентации рабочего органа робота-манипулятора 1302 из базы данных вычислительным устройством 105 извлекается прямая опорная траектория.Next, according to the cell number 1304, in which the point of the specified position of the working body is located, and the data of the nearest possible orientation of the working body of the robot manipulator 1302, the direct reference trajectory is retrieved from the database by the computing device 105.
После этого для заданного положения и ориентации рабочего органа робота-манипулятора 1302 вычислительным устройством 105 решается обратная задача кинематики для получения наборов углов шарниров робота-манипулятора 1302, при которых рабочий орган находится в заданном положении с заданной ориентацией. В соответствии с представленным примером для данного робота-манипулятора 1302 в общем случае существует 8 решений, которые представляют собой наборы углов шарниров (фиг. 15), при которых рабочий орган робота манипулятора находится в точке заданного положения с заданной ориентацией. Четыре решения не удовлетворяют коллизионным ограничениям, потому что при такой конфигурации локоть робота-манипулятора 1302 находится в контакте со столом. В последней точке выбранной траектории углы шарниров робота-манипулятора 1302 имеют значения [45,745; -115,115; -105,229; -27,290; 109,951; -39,276]. Среди решений обратной задачи кинематики, удовлетворяющих коллизионным ограничениям, наиболее близким по значениям углов шарниров к последней точке выбранной траектории является решение [48,960; -114,466; -101,212; -35,291; 87,414; -33,630] (позиция 1505 на фиг. 15), набор углов шарниров которых и выбирается вычислительным устройством 105 как решение обратной задачи кинематики.After that, for a given position and orientation of the working body of the robot-manipulator 1302, the inverse kinematics problem is solved by the computing device 105 to obtain sets of angles of the hinges of the robot-manipulator 1302, in which the working body is in a given position with a given orientation. In accordance with the presented example, for a given robot manipulator 1302, in the general case, there are 8 solutions, which are sets of hinge angles (Fig. 15), in which the end effector of the robot manipulator is at a given position with a given orientation. The four solutions do not satisfy the collision constraints because, in this configuration, the elbow of the robot arm 1302 is in contact with the table. At the last point of the selected trajectory, the angles of the joints of the robotic arm 1302 have the values [45.745; -115.115; -105.229; -27.290; 109.951; -39,276]. Among the solutions of the inverse problem of kinematics that satisfy collision constraints, the solution [48,960; -114.466; -101.212; -35.291; 87.414; -33.630] (position 1505 in Fig. 15), the set of hinge angles of which is selected by the computing device 105 as a solution to the inverse problem of kinematics.
Далее вычислительное устройство 105 от конца извлеченной прямой траектории последовательно удаляет точки до тех пор, пока длина траектории не уменьшится за длину ребра ячейки 1304 (фиг. 13). Затем к концу этой траектории добавляется точка, соответствующая значениям углов шарниров роботаманипулятора 1302 выбранного решения обратной задачи кинематики, а в начало - точка, соответствующая текущим углам шарниров робота-манипулятора 1302. В конце вычислительное устройство 105 пересчитывает значения скоростей и ускорений углов шарниров в каждой точке для обеспечения плавного перемещения робота манипулятора по траектории. Для сравнения на фиг. 16 приведен результат перемещения робота манипулятора вдоль выбранной прямой траектории, а на фиг. 17 - вдоль этой же траектории после коррекции. Соответственно, если точка текущего положения рабочего органа робота-манипулятора 1302 (фиг. 13) находится в области интереса 1303, то вычислительное устройство 105 описанным ранее способом: определяет на основе информации о текущем положении и ориентации рабочего органа ячейку области интереса, из которой необходимо переместить рабочий орган робота-манипулятора; на основе набора возможных ориентаций рабочего органа робота-манипулятора при его нахождении в области упомянутой ячейки определяет ближайшую возможную ориентацию рабочего органа робота-манипулятора к текущей ориентации; на основе данных о ячейке и ближайшей возможной ориентации рабочего органа робота-манипулятора извлекает из сохраненного на вычислительном устройстве списка предварительно сгенерированную обратную опорную траекторию, причем обратная опорная траектория описывает перемещение робота из положения, при котором рабочий орган робота-манипулятора находится внутри области интереса, в начальное положения, соответствующее области интереса; определяет на основе информации о заданном положении и ориентации рабочего органа ячейку области интереса, в которую необходимо переместить рабочий орган робота-манипулятора; определяет набор углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией; удаляет от начала извлеченной обратной опорной траектории последовательно точки до тех пор, пока длина траектории не уменьшится на величину, равную размеру ячейки; добавляет к концу траектории точку, соответствующую значениям набора углов шарниров робота-манипулятора, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, а в начало - точку, соответствующую текущему положению рабочего органа робота- манипулятора. В конце вычислительное устройство 105 аналогичным образом пересчитывает значения скоростей и ускорений углов шарниров в каждой точке для обеспечения плавного перемещения робота манипулятора по траектории. Полученные вычислительным устройством 105 траектории могут быть далее направлены на контроллер робота-манипулятора 103 для перемещения рабочего органа робота-манипулятора в соответствии с полученной траекторией. Таким образом, за счет того, что в представленном решении при планировании движения робота-манипулятора корректируют только лишь начальные и конечные точки опорных траекторий, заранее сгенерированных для робота-манипулятора, уменьшается время планирования движения робота-манипулятора, а также повышается скорость его управления.Next, the computing device 105 sequentially removes points from the end of the extracted straight trajectory until the length of the trajectory decreases beyond the length of the edge of cell 1304 (Fig. 13). Then, a point is added to the end of this trajectory corresponding to the values of the angles of the joints of the robotic arm 1302 of the selected solution of the inverse kinematics problem, and to the beginning - a point corresponding to the current angles of the joints of the robot manipulator 1302. At the end, the computing device 105 recalculates the values of the velocities and accelerations of the angles of the joints at each point to ensure smooth movement of the robot manipulator along the trajectory. For comparison, in Fig. 16 shows the result of moving the robotic arm along the selected straight trajectory, and FIG. 17 - along the same trajectory after correction. Accordingly, if the point of the current position of the working body of the robotic arm 1302 (Fig. 13) is in the region of interest 1303, then the computing device 105 in the previously described way: determines, based on information about the current position and orientation of the working body, the cell of the region of interest from which it is necessary to move working body of the robotic manipulator; based on a set of possible orientations of the working body of the robotic arm when it is in the area of the said cell, determines the closest possible orientation of the working body of the robotic manipulator to the current orientation; on the basis of data about the cell and the nearest possible orientation of the working body of the robot-manipulator, extracts from the list stored on the computing device a previously generated back reference trajectory, and the back reference trajectory describes the movement of the robot from the position in which the working body of the robot-manipulator is inside the area of interest, to initial position corresponding to the area of interest; determines, on the basis of information about the specified position and orientation of the working body, the cell of the area of interest into which it is necessary to move the working body of the robotic arm; defines a set of hinge angles at which the working body of the robotic arm is at a point of a given position with a given orientation; removes successively points from the beginning of the extracted reverse reference trajectory until the length of the trajectory is reduced by an amount equal to the size of the cell; adds to the end of the trajectory a point corresponding to the values of the set of angles of the robot-manipulator's hinges, at which the working body of the robot-manipulator is at a point of a given position with a given orientation, and to the beginning - a point corresponding to the current position of the working body of the robot-manipulator. Finally, the computing device 105 similarly recalculates the values of the velocities and accelerations of the angles of the joints at each point to ensure smooth movement of the robotic arm along the path. The trajectories obtained by the computing device 105 can then be sent to the robotic arm controller 103 to move the robotic arm in accordance with the obtained trajectory. Thus, due to the fact that in the presented solution, when planning the movement of the robot-manipulator, only the start and end points of the reference trajectories, previously generated for the robot-manipulator, are corrected, the time for planning the movement of the robot-manipulator is reduced, and the speed of its control is also increased.
В общем виде (см. фиг. 18) вычислительное устройство 1600 содержит объединенные общей шиной информационного обмена один или несколько процессоров 1601, средства памяти, такие как ОЗУ 1602 и ПЗУ 1603, интерфейсы ввода/вывода 1604, устройства ввода/вывода 1605, и устройство для сетевого взаимодействия 1606. Процессор 1601 (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких проIn general terms (see Fig. 18), the computing device 1600 includes one or more processors 1601, memory means such as RAM 1602 and ROM 1603, input/output interfaces 1604, input/output devices 1605, and a device for networking 1606. The processor 1601 (or multiple processors, multi-core processor, etc.) may be selected from a variety of devices currently widely used, for example, such
--
Claims (7)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2020129196 | 2020-09-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
EA040444B1 true EA040444B1 (en) | 2022-06-03 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2700246C1 (en) | Method and system for capturing an object using a robot device | |
Bagnell et al. | An integrated system for autonomous robotics manipulation | |
Tang et al. | A framework for manipulating deformable linear objects by coherent point drift | |
Sayour et al. | Autonomous robotic manipulation: real‐time, deep‐learning approach for grasping of unknown objects | |
US9981381B1 (en) | Real time generation of phase synchronized trajectories | |
JP2022542239A (en) | Autonomous Task Execution Based on Visual Angle Embedding | |
Husain et al. | Realtime tracking and grasping of a moving object from range video | |
CN115464659B (en) | Mechanical arm grabbing control method based on visual information deep reinforcement learning DDPG algorithm | |
US20150314439A1 (en) | End effector controlling method | |
WO2021117479A1 (en) | Information processing device, method, and program | |
Teke et al. | Real-time and robust collaborative robot motion control with Microsoft Kinect® v2 | |
Militaru et al. | Object handling in cluttered indoor environment with a mobile manipulator | |
US10035264B1 (en) | Real time robot implementation of state machine | |
CN109542094B (en) | Mobile robot vision stabilization control without desired images | |
Huang et al. | A novel robotic grasping method for moving objects based on multi-agent deep reinforcement learning | |
RU2756437C1 (en) | Method and system for planning the movement of a manipulator robot by correcting the reference trajectories | |
RU2745380C1 (en) | Method and system for capturing objects using robotic device | |
EA040444B1 (en) | METHOD AND SYSTEM FOR ROBOT-MANIPULATOR MOVEMENT PLANNING BY CORRECTION OF BASE TRAJECTORIES | |
Ostanin et al. | Programming by Demonstration Using Two-Step Optimization for Industrial Robot. | |
Seyboldt et al. | Sampling-based path planning to cartesian goal positions for a mobile manipulator exploiting kinematic redundancy | |
Tokuda et al. | Neural Network based Visual Servoing for Eye-to-Hand Manipulator | |
CN115635482A (en) | Vision-based robot-to-human body transfer method, device, medium and terminal | |
Kabutan et al. | Development of robotic intelligent space using multiple RGB-D cameras for industrial robots | |
EA041202B1 (en) | METHOD AND SYSTEM FOR CAPTURING OBJECTS USING A ROBOTIC DEVICE | |
Xu et al. | Vision‐Based Intelligent Perceiving and Planning System of a 7‐DoF Collaborative Robot |