RU2756437C1 - Method and system for planning the movement of a manipulator robot by correcting the reference trajectories - Google Patents
Method and system for planning the movement of a manipulator robot by correcting the reference trajectories Download PDFInfo
- Publication number
- RU2756437C1 RU2756437C1 RU2020129196A RU2020129196A RU2756437C1 RU 2756437 C1 RU2756437 C1 RU 2756437C1 RU 2020129196 A RU2020129196 A RU 2020129196A RU 2020129196 A RU2020129196 A RU 2020129196A RU 2756437 C1 RU2756437 C1 RU 2756437C1
- Authority
- RU
- Russia
- Prior art keywords
- robot
- manipulator
- working body
- orientation
- given
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
Description
ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY
[001] Представленное техническое решение относится, в общем, к области робототехники, а в частности к способу и системе планирования движения робота-манипулятора путем коррекции опорных траекторий и может быть использовано для создания систем управления роботами-манипуляторами в качестве модуля планирования траекторий перемещения робота-манипулятора в условиях статической коллизионной сцены, в частности, хотя не исключительно, для решения задач манипулирования объектами.[001] The presented technical solution relates, in general, to the field of robotics, and in particular to a 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 a robot-manipulator. manipulator in a static collision scene, in particular, although not exclusively, for solving problems of manipulating objects.
УРОВЕНЬ ТЕХНИКИLEVEL OF TECHNOLOGY
[002] Роботы получили широкое применение для автоматизации производственных задач. Их использование позволяет освободить людей от тяжелого и монотонного труда. В основе любой производственной задачи лежит перемещение робота-манипулятора. [003] В настоящее время для процесса обучения захвата объектов предлагаются различные подходы на базе алгоритмов и моделей машинного обучения, в частности с использованием нейронных сетей, с помощью которых выполняется обучение роботизированных манипуляторов для захватов объектов по обученным заранее точкам захвата. Такой подход раскрывается в работе 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 моделей таких объектов для целей последующего указания точек захвата и взаимодействия с объектами в указанных точках.[002] Robots are widely used to automate production tasks. Their use allows you to free people from hard and monotonous work. At the heart of any production task is the movement of a robotic arm. [003] 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 from pre-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.
[004] Также известны способ и система захвата объекта с помощью роботизированного устройства, раскрытые в патенте RU 2700246 С1, опубл. 20.09.2019. В известном решении обучают роботизированное устройство с помощью алгоритма машинного обучения для распознавания и запоминания точек захвата объектов, причем обучение выполняется на данных, характеризующих фотографические изображения объектов и соответствующие 3D модели объектов в различных ракурсах; формируют по меньшей мере одну точку захвата объекта, представленного на графическом изображении объекта; получают фотографическое изображение объекта с помощью камеры роботизированного устройства и определяют ракурс, отображающий сформированную точку захвата объекта; получают трехмерное облако точек объекта в ракурсе с помощью сенсора глубины роботизированного устройства; определяют по полученному облаку точек месторасположение точки захвата объекта; определяют ориентацию и положение захватного устройства роботизированного устройства в точке захвата с помощью вычисления матриц поворотов роботизированного устройства; осуществляют захват объекта с помощью роботизированного устройства на основании вычисления усредненной матрицы поворотов для заданной точки захвата.[004] 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 the foreshortening 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.
[005] В сравнении с существующими подходами планирования траекторий перемещения робота-манипулятора предложенный подход решает аналогичную задачу быстрее за счет отсутствия необходимости формирования полной траектории, не допускающей столкновения с объектами статической коллизионной сцены.[005] In comparison with the existing approaches to planning the trajectories of movement of the 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 collisions with objects of a static collision scene.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯESSENCE OF THE TECHNICAL SOLUTION
[006] Технической проблемой или технической задачей, поставленной в данном техническом решении, является создание нового эффективного, простого и надежного способа планирования движения робота-манипулятора.[006] The technical problem or the technical problem posed in this technical solution is to create a new effective, simple and reliable method for planning the movement of a robot manipulator.
[007] Техническим результатом, достигаемым при решении вышеуказанной технической проблемы, является уменьшение времени планирования движения робота-манипулятора.[007] The technical result achieved by solving the above technical problem is to reduce the time of planning the movement of the robot manipulator.
[008] Указанный технический результат достигается благодаря осуществлению способа планирования движения робота-манипулятора, выполняемого по меньшей мере одним вычислительным устройством, содержащего этапы, на которых:[008] The specified technical result is achieved due to the implementation of the method of planning the movement of the robot manipulator, performed by at least one computing device, containing the steps in which:
- получают информацию о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган робота-манипулятора;- receive information about the specified position and orientation of the working body, into which it is necessary to move the working body of the robotic manipulator;
- определяют текущие положение и ориентацию рабочего органа робота-манипулятора;- determine the current position and orientation of the working body of the robotic arm;
- определяют на основе информации о заданном положении и ориентации рабочего органа ячейку области интереса, в которую необходимо переместить рабочий орган робота-манипулятора, причем область интереса находится внутри рабочего пространства робота-манипулятора;- based on information about a given position and orientation of the working body, a cell of the region of interest is determined, into which it is necessary to move the working body of the robot-manipulator, and the region of interest is located inside the working space of the robot-manipulator;
- на основе набора возможных ориентаций рабочего органа робота-манипулятора при его нахождении в области упомянутой ячейки определяют ближайшую возможную ориентацию рабочего органа робота-манипулятора к заданной ориентации;- on the basis of the set of possible orientations of the working body of the robot-manipulator when it is in the region of the said cell, determine the closest possible orientation of the working body of the robot-manipulator to the given orientation;
- на основе данных о ячейке и ближайшей возможной ориентации рабочего органа робота-манипулятора извлекают из сохраненного на вычислительном устройстве списка предварительно сгенерированную прямую опорную траекторию, причем прямая опорная траектория описывает перемещение робота-манипулятора из начального положения, соответствующего области интереса, в положение, при котором рабочий орган робота-манипулятора находится внутри области интереса;- on the basis of the data on the cell and the nearest possible orientation of the working body of the robot-manipulator, a previously generated direct reference trajectory is extracted from the list saved on the computing device, and the direct reference trajectory describes the movement of the robot-manipulator from the initial position corresponding to the region of interest to the position at which the working body of the robotic arm is located inside the region of interest;
- определяют набор углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией;- determine the set of hinge angles at which the working body of the robotic arm is at the point of a given position with a given orientation;
- удаляют от конца извлеченной прямой опорной траектории последовательно точки до тех пор, пока длина траектории не уменьшится на величину, равную размеру ячейки;- remove from the end of the extracted straight reference trajectory successively points until the length of the trajectory decreases 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 joints of the robot-manipulator, at which the working body of the robot-manipulator is at a point of a given position with a given orientation, and at the beginning - a point corresponding to the current position of the working body of the robot-manipulator;
- перемещают рабочий орган робота-манипулятора в соответствии с полученной на предыдущем этапе траекторией.- move the working body of the robotic arm in accordance with the trajectory obtained at the previous stage.
[009] В одном из частных примеров осуществления способа дополнительно выполняют этапы, на которых:[009] In one of the particular examples of the method, the steps are additionally performed, in which:
- определяют, что точка заданного положения рабочего органа находится внутри области интереса;- determine that the point of the given position of the working body is inside the region of interest;
- определяют величину отклонения углов шарниров робота-манипулятора в текущем положении от углов шарниров, заданных для начального положения, соответствующего области интереса;- determine the deviation of the angles of the joints of the robot-manipulator in the current position from the angles of the joints specified for the initial position corresponding to the region of interest;
- сравнивают полученную на предыдущем этапе величину отклонения с пороговым значением, причем этап определения ближайшей возможной ориентации рабочего органа робота-манипулятора к заданной ориентации выполняется в случае, если упомянутая величина отклонения не превышает пороговое значение.- comparing the deviation value obtained at the previous stage with a threshold value, and the step of determining the closest possible orientation of the working body of the robot-manipulator to a given orientation is performed if the said deviation value does not exceed the threshold value.
[0010] В другом частном примере осуществления способа определение текущего положения и ориентации рабочего органа робота-манипулятора осуществляется посредством решения прямой задачи кинематики на основе его текущих значений углов шарниров.[0010] In another particular embodiment of the method, the determination of the current position and orientation of the working body of the robotic arm is carried out by solving the direct problem of kinematics based on its current values of the hinge angles.
[0011] В другом частном примере осуществления способа этап, на котором определяют наборы углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, содержит этапы, на которых:[0011] In another particular embodiment of the method, the step of determining the sets of hinge angles at which the working body of the robotic arm is at a given position with a given orientation comprises the steps at which:
- для заданного положения и ориентации рабочего органа робота-манипулятора выполняется решение обратной задачи кинематики для получения множества наборов углов шарниров, при которых рабочий орган робота манипулятора находится в точке заданного положения с заданной ориентацией;- for a given position and orientation of the working body of the robot-manipulator, the solution of the inverse problem of kinematics is performed to obtain a set of sets of hinge angles at which the working body of the robot-manipulator is at a point of a given position with a given orientation;
- определяют наборы углов шарниров, удовлетворяющие коллизионным ограничениям;- define sets of hinge angles that satisfy collision constraints;
- выбирают в качестве набора углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, из набора углов шарниров, удовлетворяющих коллизионным ограничениям, тот набор, который является наиболее близким по значениям углов шарниров к последней точке извлеченной прямой опорной траектории.- select 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 a 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 reference straight line trajectories.
[0012] В другом предпочтительном варианте осуществления заявленного решения представлена система планирования движения робота-манипулятора, содержащая:[0012] In another preferred embodiment of the claimed solution, a motion planning system for a robotic arm is presented, comprising:
- робота-манипулятора;- robot manipulator;
- вычислительное устройство, соединенное с роботом-манипулятором;- a computing device connected to a robot manipulator;
- по меньшей мере одну память, содержащую машиночитаемые инструкции, которые при их исполнении по меньшей мере одним вычислительным устройством выполняют вышеуказанный способ.- at least one memory containing machine-readable instructions that, when executed by at least one computing device, perform the above method.
[0013] В другом предпочтительном варианте осуществления заявленного решения представлен способ планирования движения робота-манипулятора, выполняемый по меньшей мере одним вычислительным устройством, содержащий этапы, на которых:[0013] In another preferred embodiment of the claimed solution, a method for planning the movement of a robot manipulator performed by at least one computing device is presented, comprising the steps of:
- получают информацию о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган робота-манипулятора;- receive information about the specified position and orientation of the working body, into which it is necessary to move the working body of the robotic manipulator;
- определяют текущие положение и ориентацию рабочего органа робота-манипулятора;- determine the current position and orientation of the working body of the robotic arm;
- определяют на основе информации о текущем положении и ориентации рабочего органа ячейку области интереса, из которой необходимо переместить рабочий орган робота-манипулятора, причем область интереса находится внутри рабочего пространства робота-манипулятора;- based on information about the current position and orientation of the working body, a cell of the region of interest is determined, from which it is necessary to move the working body of the robot-manipulator, and the region of interest is located inside the working space of the robot-manipulator;
- на основе набора возможных ориентаций рабочего органа робота-манипулятора при его нахождении в области упомянутой ячейки определяют ближайшую возможную ориентацию рабочего органа робота-манипулятора к текущей ориентации;- on the basis of the set of possible orientations of the working body of the robot-manipulator when it is in the region of the said cell, determine the closest possible orientation of the working body of the robot-manipulator to the current orientation;
- на основе данных о ячейке и ближайшей возможной ориентации рабочего органа робота-манипулятора извлекают из сохраненного на вычислительном устройстве списка предварительно сгенерированную обратную опорную траекторию, причем обратная опорная траектория описывает перемещение робота из положения, при котором рабочий орган робота-манипулятора находится внутри области интереса, в начальное положения, соответствующее области интереса;- on the basis of the data on the cell and the nearest possible orientation of the working body of the robot manipulator, a previously generated backward reference trajectory is extracted from the list saved on the computing device, and the backward reference trajectory describes the movement of the robot from a position in which the working body of the robot manipulator is inside the region of interest, to the start position corresponding to the area of interest;
- определяют набор углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией;- determine the set of hinge angles at which the working body of the robotic arm is at the point of a given position with a given orientation;
- удаляют от начала извлеченной обратной опорной траектории последовательно точки до тех пор, пока длина траектории не уменьшится на величину, равную размеру ячейки;- remove from the beginning of the extracted back reference trajectory successively points until the length of the trajectory decreases 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 joints of the robot-manipulator, at which the working body of the robot-manipulator is at a point of a given position with a given orientation, and at the beginning - a point corresponding to the current position of the working body of the robot-manipulator;
- перемещают рабочий орган робота-манипулятора в соответствии с полученной на предыдущем этапе траекторией.- move the working body of the robotic arm in accordance with the trajectory obtained at the previous stage.
[0014] В одном из частных примеров осуществления способа дополнительно выполняют этапы, на которых:[0014] In one of the particular embodiments of the method, the steps are additionally performed, in which:
- определяют величину отклонения заданного положения и «начального положения» рабочего органа робота-манипулятора, соответствующего области интереса;- determine the amount of deviation of the given position and the "initial position" of the working body of the robot-manipulator corresponding to the area of interest;
- сравнивают полученную на предыдущем этапе величину отклонения с пороговым значением, причем этап определения ближайшей возможной ориентации рабочего органа робота-манипулятора к текущей ориентации выполняется в случае, если упомянутая величина отклонения не превышает пороговое значение.- comparing the deviation value obtained at the previous stage with the threshold value, and the step of determining the closest possible orientation of the working body of the robotic arm to the current orientation is performed if the said deviation value does not exceed the threshold value.
[0015] В другом частном примере осуществления способа определение текущего положения и ориентации рабочего органа робота-манипулятора осуществляется посредством решения прямой задачи кинематики на основе его текущих значений углов шарниров.[0015] In another particular embodiment of the method, the determination of the current position and orientation of the working body of the robotic arm is carried out by solving the direct problem of kinematics based on its current values of the hinge angles.
[0016] В другом частном примере осуществления способа этап, на котором определяют наборы углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, содержит этапы, на которых:[0016] In another particular embodiment of the method, the step, which determines the sets of hinge angles at which the working body of the robotic arm is at a given position with a given orientation, comprises the steps at which:
- для заданного положения и ориентации рабочего органа робота-манипулятора выполняется решение обратной задачи кинематики для получения множества наборов углов шарниров, при которых рабочий орган робота манипулятора находится в точке заданного положения с заданной ориентацией;- for a given position and orientation of the working body of the robot-manipulator, the solution of the inverse problem of kinematics is performed to obtain a set of sets of hinge angles at which the working body of the robot-manipulator is at a point of a given position with a given orientation;
- определяют наборы углов шарниров, удовлетворяющие коллизионным ограничениям;- define 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 a 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 reverse reference trajectories.
[0017] В другом предпочтительном варианте осуществления заявленного решения представлена система планирования движения робота-манипулятора, содержащая:[0017] In another preferred embodiment of the claimed solution, a motion planning system for a robotic arm is presented, comprising:
- робота-манипулятора;- robot manipulator;
- вычислительное устройство, соединенное с роботом-манипулятором;- a computing device connected to a robot manipulator;
- по меньшей мере одну память, содержащую машиночитаемые инструкции, которые при их исполнении по меньшей мере одним вычислительным устройством выполняют вышеуказанный способ.- at least one memory containing machine-readable instructions that, when executed by at least one computing device, perform the above method.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF DRAWINGS
[0018] Признаки преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания и прилагаемых рисунков, на которых:[0018] The advantages of the present technical solution will become apparent from the following detailed description and the accompanying drawings, in which:
[0019] На Фиг. 1 изображен общий вид системы планирования движения робота-манипулятора.[0019] FIG. 1 shows a general view of the movement planning system of a robotic arm.
[0020] На Фиг. 2 изображены примеры ориентаций рабочего органа вдоль вертикальной оси из набора возможных ориентаций рабочего органа робота-манипулятора, соответствующего «области интереса».[0020] FIG. 2 shows examples of orientations 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 "region of interest".
[0021] На Фиг. 3 изображены примеры ориентаций рабочего органа вдоль отклоненных от вертикали осей из набора возможных ориентаций рабочего органа робота-манипулятора, соответствующего «области интереса».[0021] FIG. 3 shows examples of the orientations 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 "region of interest".
[0022] На Фиг. 4 изображен пример прямой опорной траектории.[0022] FIG. 4 shows an example of a straight reference path.
[0023] На Фиг. 5 изображен пример обратной опорной траектории.[0023] FIG. 5 shows an example of a reverse reference path.
[0024] На Фиг. 6 изображена первая часть блок-схемы алгоритма режима эксплуатации.[0024] FIG. 6 depicts the first part of a flow diagram of a mode of operation.
[0025] На Фиг. 7 изображена вторая часть блок-схемы алгоритма режима эксплуатации.[0025] FIG. 7 shows the second part of the flow diagram of the operating mode.
[0026] На Фиг. 8 изображена третья часть блок-схемы алгоритма режима эксплуатации.[0026] FIG. 8 shows the third part of the operating mode flowchart.
[0027] На Фиг. 9 изображена четвертая часть блок-схемы алгоритма режима эксплуатации.[0027] FIG. 9 depicts the fourth part of the operating mode flowchart.
[0028] На Фиг. 10 изображена пятая часть блок-схемы алгоритма режима эксплуатации.[0028] FIG. 10 depicts the fifth part of the operating mode flowchart.
[0029] На Фиг. 11 изображена шестая часть блок-схемы алгоритма режима эксплуатации.[0029] FIG. 11 depicts the sixth part of the operating mode flowchart.
[0030] На Фиг. 12 изображен пример скорректированной опорной траекторий.[0030] FIG. 12 shows an example of the corrected reference paths.
[0031] На Фиг. 13 изображен пример заданных положения и ориентации рабочего органа робота-манипулятора.[0031] FIG. 13 shows an example of the predetermined position and orientation of the working body of the robotic arm.
[0032] На Фиг. 14 изображен пример заданной ориентация рабочего органа и выбранной возможная ориентация рабочего органа.[0032] FIG. 14 shows an example of a given orientation of the working member and a selected possible orientation of the working member.
[0033] На Фиг. 15 изображены примеры решения обратной задачи кинематики для заданного положения рабочего органа робота-манипулятора.[0033] FIG. 15 shows examples of solving the inverse problem of kinematics for a given position of the working body of the robotic arm.
[0034] На Фиг. 16 изображен пример результата перемещения робота манипулятора вдоль выбранной прямой траектории.[0034] FIG. 16 shows an example of the result of moving the manipulator robot along the selected straight path.
[0035] На Фиг. 17 изображен пример результата перемещения робота манипулятора вдоль откорректированной прямой траектории.[0035] FIG. 17 shows an example of the result of moving a robot arm along a corrected straight path.
[0036] На Фиг. 18 представлен пример общего вида вычислительного устройства.[0036] FIG. 18 is an example of a general view of a computing device.
ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION
[0037] Данное техническое решение может быть реализовано на компьютере, в виде автоматизированной информационной системы (АИС) или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.[0037] 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.
[0038] Также техническое решение может быть реализовано в виде распределенной компьютерной системы, которая может быть установлена на централизованном сервере (наборе серверов). Доступ пользователей к системе возможен как из сети Интернет, так и из внутренней сети предприятия/организации посредством мобильного устройства связи, на котором установлено программное обеспечение с соответствующим графическим интерфейсом пользователя, или персонального компьютера с доступом к веб-версии системы с соответствующим графическим интерфейсом пользователя.[0038] Also, the technical solution can be implemented in the form of 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.
[0039] Ниже будут описаны термины и понятия, необходимые для реализации настоящего технического решения.[0039] The following will describe the terms and concepts necessary to implement the present technical solution.
[0040] В данном решении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность вычислительных операций (действий, инструкций).[0040] 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).
[0041] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).[0041] By a command processor is meant an electronic unit or an integrated circuit (microprocessor) that executes machine instructions (programs).
[0042] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.[0042] 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.
[0043] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.[0043] A program is a sequence of instructions for execution by a computer control device or command processing device.
[0044] Рабочий орган промышленного робота - составная часть манипулятора, предназначенная для взаимодействия с объектами манипулирования или непосредственного выполнения технологических операций.[0044] The working body of an industrial robot is a component part of a manipulator designed to interact with objects to be manipulated or directly perform technological operations.
[0045] Как представлено на Фиг. 1, система 100 планирования движения робота-манипулятора содержит вычислительное устройство 107, обеспечивающее необходимые процессы вычислительной обработки алгоритма для функционирования робота-манипулятора 103, канал передачи данных 106, обеспечивающий процессы приема/передачи данных между элементами системы 100, а также удаленное вычислительное устройство 105, например, облачный сервер для специализированного выполнения задач.[0045] As shown in FIG. 1, the
[0046] В качестве вычислительного устройства 107, с которым взаимодействует пользователь 108, может использоваться, например, персональный компьютер, ноутбук, планшет, сервер, смартфон, серверный кластер, мейнфрейм, суперкомпьютер, тонкий клиент, система на кристалле (англ. «System on а Chip», сокр. SoC) и т.п. Конкретная аппаратная реализация вычислительного устройства 107 зависит от предъявляемых требований и должна обеспечивать необходимые процессы вычислительной обработки цифровой информации для обеспечения должного функционирования устройства 107 в составе системы 100.[0046] As the
[0047] В качестве канала передачи данных 106 может применяться различный вид связи, например, проводного и/или беспроводного типа, в частности: LAN, WAN, WLAN, Bluetooth, Wi-Fi, GSM/GPRS/LTE/5G, Ethernet, USB, RS232, RJ45 и т.п.[0047] As a
[0048] Удаленное вычислительное устройство 105, как правило, представляет собой облачное хранилище данных или сервер для решения специализированных задач или программной логики. Описание работы устройства 105 будет раскрыто далее в настоящем описании.[0048] The
[0049] В качестве робота-манипулятор 103 может применяться как стационарный роботизированный манипулятор промышленного или коллаборативного назначения, например, Universal Robotics™, KUKA™, Fanuc™, ABB™ и т.п., так и роботизированные манипуляторы, устанавливаемые на подвижные автономные роботизированные устройства, в качестве конечностей, в частности роботизированные руки.[0049] As a
[0050] Различаются два режима работы системы (100) планирования движения робота-манипулятора: режим формирования опорных траекторий и режим эксплуатации.[0050] There are two modes of operation of the system (100) for planning the movement of the robot-manipulator: the mode of forming the reference trajectories and the mode of operation.
[0051] В режиме формирования опорных траекторий в рабочей зоне робота-манипулятора 103 пользователем 108 посредством вычислительного устройства 107 известными из уровня техники методами выбираются одна или несколько «областей интереса», например, в области стола 104 (Фиг. 1). «Область интереса» - это область рабочего пространства робота-манипулятора, представляющая собой, например, параллелепипед 101, состоящий из ячеек 102. На Фиг. 1 ячейка, отмеченная позицией 102, находится в седьмом ряду по длине, в первом ряду ширине, в первом ряду по высоте и имеет порядковый номер 31. Пользователь задает положение и ориентацию «области интереса», а также габариты и количество ячеек по высоте, длине и ширине параллелепипеда 101. «Области интереса» соответствует «начальное положение» робота-манипулятора 103, которое также задается пользователем 108 посредством вычислительного устройства 107 в виде набора углов шарниров, характеризующего положение и ориентацию рабочего органа робота-манипулятора 103. Также упомянутые углы шарниров робота-манипулятора 103 могут быть получены от виртуальной модели робота-манипулятор, реализованной на базе вычислительного устройства 105, или от контроллера реального робота-манипулятора 103, и по ним вычислительное устройство 105 рассчитывает положение и ориентация рабочего органа робота-манипулятора 103 путем решения прямой задачи кинематики. При этом «начальное положение» робота-манипулятора должно быть таким, чтобы рабочий орган находился вне «области интереса».[0051] In the mode of generating reference trajectories in the working area of the
[0052] Также «области интереса» соответствует набор возможных ориентаций рабочего органа робота-манипулятора 103 (Фиг. 2 и Фиг. 3), который формируется пользователем 108 и сохраняется в вычислительном устройстве 105 в виде списка. В списке для каждой ячейки 102 параллелепипеда 101 пользователем 108 определяется/задается набор ориентаций рабочего органа робота-манипулятора 103 при его нахождении в области ячейки 102. Набор ориентаций рабочего органа робота-манипулятора 103 для ячейки может содержать в себе, например, ориентации рабочего органа вдоль вертикальной оси (Фиг. 2, позиции 201-208), а также ориентации вдоль осей, отклоненных от вертикальной оси на заданные пользователем 108 углы (Фиг. 3, позиции 301-308). Эти ориентации вместе с координатами центров ячеек используются при формировании прямых опорных траекторий в качестве целевых положений и ориентаций, в которые должен выходить рабочий орган робота-манипулятора 103 из «начального положения» при перемещении по опорным траекториям (Фиг. 4).[0052] Also, the "area of interest" corresponds to a set of possible orientations of the working body of the robot manipulator 103 (Fig. 2 and Fig. 3), which is generated by the
[0053] Для каждой ячейки 102 и набора заданных для них возможных ориентации рабочего органа робота-манипулятора 103 вычислительное устройство 105 формирует прямую и обратную опорную траекторию перемещения робота-манипулятора 103 (Фиг. 4 и Фиг. 5), которые задаются в пространстве набором углов шарниров робота-манипулятора 103 для каждой точки упомянутой траектории. Прямая траектория формируется путем выполнения любых доступных известных алгоритмов планирования, например, алгоритма, раскрытого в работе RRT-connect: An efficient approach to single-query path planning (J. Kuffher 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.[0053] For each
[0054] Обратная траектория описывает перемещение робота-манипулятора 103 от ячейки 102 к «начальному положению» робота-манипулятора 103, соответствующему «области интереса». Для формирования обратной траектории последовательность точек прямой траектории, каждой из которой соответствует наборы углов, скоростей и ускорений шарниров робота-манипулятора, задается вычислительным устройством 105 в обратном порядке. При этом углы шарниров остаются неизменными, а скорости и ускорения шарниров робота-манипулятора 103 пересчитываются таким образом, чтобы при движении робота-манипулятора 103 по траектории, его перемещение было плавным. Все опорные траектории записываются в базу данных, которой дополнительно может быть оснащено вычислительное устройство 105.[0054] The return path describes the movement of the
[0055] В режиме эксплуатации (Фиг. 6-11) от системы управления более высокого уровня (на чертежах не изображена) или от вычислительного устройства 107 на вход вычислительного устройства 105 подается информация о заданном (желаемом) положении и ориентации 601 (Фиг. 6), с которыми необходимо переместить рабочий орган робота-манипулятора. В начале путем решения прямой задачи кинематики по информации об углах шарниров робота-манипулятора, поступающей от виртуальной модели робота или от контроллера реального робота, рассчитываются текущие положение и ориентация рабочего органа 602. Затем отыскивается «область интереса» 603 из i областей и порядковый номер ячейки, внутри которой находится точка желаемого или текущего положения рабочего органа. Если и точка желаемого, и точка текущего положения рабочего органа находятся вне областей интереса, то выполняется любой доступный известный алгоритм планирования траекторий для желаемого положения и ориентации рабочего органа 1101 (Фиг. 11). Иначе возможны два варианта работы системы 100.[0055] In the operating mode (Fig. 6-11) from the higher-level control system (not shown in the drawings) or from the
[0056] Если внутри «области интереса» находится точка заданного положения рабочего органа 604 (случай, представленный на Фиг. 4), то вычисляется порядковый номер ячейки 701 (Фиг. 7), содержащий в себе эту точку, и проверяется близость углов шарниров робота-манипулятора в текущем и «начальном положении» 702, соответствующем «области интереса». Если разница между углами шарниров превышает пороговое значение, то выполняется любой доступный известный алгоритм планирования траекторий для желаемого положения и ориентации рабочего органа 1101 (Фиг. 11). Если разница между углами шарниров не превышает порогового значения, то среди всех прямых траекторий, записанных в базу данных для найденной ячейки, отыскивается траектория 703, в последней точке которой возможная ориентация рабочего органа робота-манипулятора наиболее близка к заданной ориентации. Для заданного положения и ориентации рабочего органа системой решается обратная задача кинематики (ОЗК) 704. Ее решения представляют собой наборы углов шарниров робота-манипулятора, при которых рабочий орган находится в заданном положении с заданной ориентацией. Виртуальная модель робота выставляется в конфигурацию, соответствующую углам шарниров каждого решения (j) обратной задачи кинематики 901 (Фиг. 9), и проверяется на самопересечение и пересечение с предметами на виртуальной сцене (например, со столом 104 на Фиг. 1) путем выполнения любых известных алгоритмов определения коллизии 902. Если ни одно решение (j) не удовлетворяет коллизионным ограничениям, которые налагаются предметами, расположенными в рабочей зоне робота-манипулятора, то выполняется любой доступный известный алгоритм планирования траекторий для желаемого положения и ориентации рабочего органа 1101 (Фиг. 11). Иначе среди решений (j), удовлетворяющих коллизионным ограничениям, которые налагаются предметами, расположенными в рабочей зоне робота-манипулятора, выбирается одно, углы шарниров которого наиболее близки к углам шарниров робота-манипулятора в конце выбранной траектории 903. На Фиг. 12 пунктирной линией изображена выбранная опорная траектория, 1202 - первая точка выбранной опорной траектории, 1203 - последняя точка выбранной опорной траектории. От конца выбранной опорной траектории удаляются несколько точек таким образом, чтобы длина траектории уменьшилась на величину, равную размеру ячейки 904. В конец этой траектории добавляется точка 1204, содержащая углы шарниров выбранного решения обратной задачи кинематики 905 (Фиг. 9), а в начало - точка 1201, содержащая углы шарниров робота-манипулятора в текущем положении 906. Полученная траектория изображена на Фиг. 12 сплошной линией. Затем для точек полученной траектории рассчитываются скорости и ускорения шарниров робота-манипулятора таким образом, чтобы при движении робота-манипулятора по траектории, его перемещение было плавным 1102 (Фиг. 11). Значения скоростей и ускорений шарниров робота-манипулятора зависят от желаемого профиля скорости. Существует множество известных алгоритмов, решающих эту задачу. Выбор конкретного алгоритма не влияет на работу рассматриваемой системы. После этого траектория готова к отправке на выполнение 1103.[0056] If inside the "region 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 corners of the robot's hinges is checked -manipulator in the current and "start position" 702, corresponding to the "area of interest". If the difference between the hinge angles exceeds a threshold value, then any available known trajectory planning algorithm for the desired position and orientation of the
[0057] Если внутри «области интереса» находится точка текущего положения рабочего органа 801 (случай, представленный на Фиг. 5), то в соответствии с алгоритмом, представленном на Фиг. 8, вычисляется порядковый номер ячейки 802, содержащий в себе эту точку, и проверяется близость точек заданного положения и «начального положения» рабочего органа робота-манипулятора 803, соответствующего «области интереса». Если расстояние между этими точками превышает пороговое значение, то выполняется любой доступный известный алгоритм планирования траекторий для желаемого положения и ориентации рабочего органа 1101 (Фиг. 11). Если расстояние между этими точками не превышает порогового значения, то среди всех обратных траекторий, записанных для найденной ячейки, отыскивается траектория 804, в первой точке которой углы шарниров наиболее близки к текущим углам шарниров робота-манипулятора. Для заданного положения и ориентации рабочего системой решается обратная задача кинематики 805. Ее решения представляют собой наборы углов шарниров робота-манипулятора, при которых рабочий орган находится в заданном положении с заданной ориентацией. Виртуальная модель робота выставляется в конфигурацию, соответствующую углам шарниров каждого решения обратной задачи кинематики 1001 (Фиг. 10), и проверяется на самопересечение и пересечение с предметами на виртуальной сцене (например, со столом на Фиг. 1) путем выполнения любых доступных алгоритмов определения коллизии 1002. Если ни одно решение (j) не удовлетворяет коллизионным ограничениям, которые налагаются предметами, расположенными в рабочей зоне робота-манипулятора, то выполняется любой доступный известный алгоритм планирования траекторий для желаемого положения и ориентации рабочего органа 1101 (Фиг. 11). Иначе среди решений, удовлетворяющих коллизионным ограничениям, которые налагаются предметами, расположенными в рабочей зоне робота-манипулятора, выбирается одно, углы шарниров которого наиболее близки к углам шарниров робота-манипулятора в конце выбранной траектории 1003. На Фиг. 12 пунктирной линией изображена выбранная опорная траектория, 1203 - первая точка выбранной опорной траектории, 1202 - последняя точка выбранной опорной траектории. От начала выбранной траектории удаляются несколько точек таким образом, чтобы длина траектории уменьшилась на величину, равную размеру ячейки 1004. В начало этой траектории добавляется точка 1204, содержащая углы шарниров робота-манипулятора в текущем положении 1005, а в конец -точка 1201, содержащая углы шарниров выбранного решения обратной задачи кинематики 1006. Затем для точек полученной траектории рассчитываются скорости и ускорения шарниров робота-манипулятора таким образом, чтобы при движении робота-манипулятора по траектории, его перемещение было плавным 1102 (Фиг. 11). Значения скоростей и ускорений шарниров робота-манипулятора зависят от желаемого профиля скорости, заданного, например, пользователем 108. Существует множество известных алгоритмов, решающих эту задачу. Выбор конкретного алгоритма не влияет на работу рассматриваемой системы. После этого траектория готова к отправке на выполнение 1103.[0057] If inside the "region of interest" is the point of the current position of the working body 801 (the case shown in Fig. 5), then in accordance with the algorithm presented in Fig. 8, the serial number of the
ПРИМЕР РЕАЛИЗАЦИИ ИЗОБРЕТЕНИЯEXAMPLE OF IMPLEMENTATION OF THE INVENTION
[0058] Рассмотри работу системы (100) планирования движения робота-манипулятора на конкретном примере. На Фиг. 1 изображена рабочая зона робота-манипулятора 103, внутри которой расположен стол 104. Ось Z инерциальной системы координат направлена вверх, ось X ориентирована по направлению от центра стола к роботу-манипулятору, ось Y дополняет оси X и Z до правой тройки векторов. Положение робота-манипулятора 103 совпадает с положением инерциальной системы координат. База робота развернута относительно инерциальной системы координат вокруг оси Z на угол, равный -42,5°.[0058] Consider the operation of the system (100) for planning the movement of the robot arm using a specific example. FIG. 1 shows the working area of the
[0059] В режиме формирования опорных траекторий пользователем 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.[0059] In the mode of generating reference trajectories, the
[0060] Далее пользователем 108 посредством вычислительного устройства 107 выбирается «начальное положение» робота-манипулятора 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].[0060] Next, the
[0061] Набор возможных ориентаций рабочего органа робота-манипулятора 103, заданные пользователем 108 для каждой ячейки, может состоять из 16 поворотов, приведенных на Фиг. 2 и Фиг. 3. Они представляют собой 8 ориентаций вдоль вертикальной оси и 8 ориентаций вдоль осей, угол между каждой из которых и вертикальной осью составляет 30°.[0061] The set of possible orientations of the working body of the
[0062] Далее на основе информации о «начальном положении» и координат центов ячеек 102 вычислительное устройство 105 генерирует опорные траекторий для каждой ячейки параллелепипеда 101 и для каждой возможной ориентации рабочего органа робота-манипулятора 103 из ранее сформированного набора, заданного для ячеек 102. При формировании прямых опорных траекторий координаты центров ячеек 102 «области интереса» и возможные ориентации рабочего органа используются в качестве целевых положений и ориентаций, в которые рабочий орган робота-манипулятора 103 выходит из «начального положения», соответствующего «области интереса». Обратные опорные траектории получаются системой путем инверсии прямых опорных траекторий. Опорные траектории записываются в базу данных с полями: уникальный идентификатор «области интереса», порядковый номер ячейки, порядковый номер ориентации рабочего органа, идентификатор типа опорной траектории (прямая или обратная) и опорная траектория.[0062] Further, based on the information about the "initial position" and the coordinates of the cents of the
[0063] В режиме эксплуатации на вход системы 100, например, от пользователя 108 поступает информация о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган робота-манипулятора 103. Вычислительное устройство 105 запрашивает текущие значениям углов шарниров от виртуальной модели робота или от контроллера робота-манипулятора 103. По текущим значениям углов шарниров вычислительное устройство 105 осуществляет выполнение прямой задачи кинематики, решением которой является информация о текущем положении и ориентации рабочего органа робота-манипулятора 103.[0063] In the operating mode, the input of the
[0064] Например, в соответствии с Фиг. 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].[0064] For example, in accordance with FIG. 13,
[0065] В приведенном на Фиг. 13 примере точка заданного положения рабочего органа, в которое необходимо переместить рабочий орган робота-манипулятора 1302, находится внутри «области интереса» 1303, а именно внутри ячейки 1304, которая находится в шестом ряду по длине, во третьем ряду по ширине, во втором ряду по высоте и имеет порядковый номер 63.[0065] Referring to 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
[0066] Далее вычислительное устройство 105 определяет величину отклонения углов шарниров робота-манипулятора 1302 в «начальном положении» от углов шарниров робота-манипулятора 1302 в текущем положении, после чего величина отклонения вычислительным устройством 105 робота-манипулятора 1302 сравнивается с пороговым значением. В представленном примере углы шарниров робота-манипулятора 1302 в «начальном положении», соответствующем «области интереса», отличаются от углов шарниров робота-манипулятора 1302 в текущем положении на величину, не превышающую пороговое значение.[0066] Next, the
[0067] На следующем этапе вычислительное устройство 105 для найденной ячейки 1304 извлекает из базы данных, которой упомянутое устройство 105 может быть оснащено, набор возможных ориентаций рабочего органа робота-манипулятора 1302 при его нахождении в области ячейки 1304, после чего вычислительное устройство 105 на основе значений углов шарниров, содержащихся в информации о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган робота-манипулятора 1302, и значений углов шарниров упомянутого извлеченного набора возможных ориентаций рабочего органа определяет ближайшую возможную ориентацию рабочий орган робота-манипулятора 1302, доступную для его нахождения в области ячейки 1304.[0067] At the next stage, the
[0068] В представленном примере ближайшей ориентацией рабочего органа робота-манипулятора 1302, доступной для его нахождения в области ячейки 1304, является возможная ориентация рабочего номера под номером 10 (позиция 302 на Фиг. 3), заданная в инерциальной системе координат кватернионом [-0,456; -0,195; 0,794; -0,350]. То есть угол, на который необходимо довернуть рабочий орган из выбранной возможной ориентации в заданную пользователем 108 ориентацию рабочего органа в соответствии с информацией о положении и ориентации рабочего органа, минимален среди аналогичных углов из набора возможных ориентаций. На Фиг. 14 представлены примеры заданной ориентации рабочего органа 1401 и выбранная возможная ориентация рабочего органа 1402.[0068] In the example shown, the closest orientation of the working body of the
[0069] Далее по номеру ячейки 1304, в которой находится точка заданного положения рабочего органа, и данных ближайшей возможной ориентации рабочего органа робота-манипулятора 1302 из базы данных вычислительным устройством 105 извлекается прямая опорная траектория.[0069] Next, according to the number of the
[0070] После этого для заданного положения и ориентации рабочего органа робота-манипулятора 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 как решение обратной задачи кинематики.[0070] After that, for a given position and orientation of the working body of the
[0071] Далее вычислительное устройство 105 от конца извлеченной прямой траектории последовательно удаляет точки до тех пор, пока длина траектории не уменьшится за длину ребра ячейки 1304 (Фиг. 13). Затем к концу этой траектории добавляется точка, соответствующая значениям углов шарниров робота-манипулятора 1302 выбранного решения обратной задачи кинематики, а в начало - точка, соответствующая текущим углам шарниров робота-манипулятора 1302. В конце вычислительное устройство 105 пересчитывает значения скоростей и ускорений углов шарниров в каждой точке для обеспечения плавного перемещения робота манипулятора по траектории. Для сравнения на Фиг. 16 приведен результат перемещения робота манипулятора вдоль выбранной прямой траектории, а на Фиг. 17 - вдоль этой же траектории после коррекции.[0071] Next, the
[0072] Соответственно, если точка текущего положения рабочего органа робота-манипулятора 1302 (Фиг. 13) находится в области интереса 1303, то вычислительное устройство 105 описанным ранее способом: определяет на основе информации о текущем положении и ориентации рабочего органа ячейку области интереса, из которой необходимо переместить рабочий орган робота-манипулятора; на основе набора возможных ориентаций рабочего органа робота-манипулятора при его нахождении в области упомянутой ячейки определяет ближайшую возможную ориентацию рабочего органа робота-манипулятора к текущей ориентации; на основе данных о ячейке и ближайшей возможной ориентации рабочего органа робота-манипулятора извлекает из сохраненного на вычислительном устройстве списка предварительно сгенерированную обратную опорную траекторию, причем обратная опорная траектория описывает перемещение робота из положения, при котором рабочий орган робота-манипулятора находится внутри области интереса, в начальное положения, соответствующее области интереса; определяет на основе информации о заданном положении и ориентации рабочего органа ячейку области интереса, в которую необходимо переместить рабочий орган робота-манипулятора; определяет набор углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией; удаляет от начала извлеченной обратной опорной траектории последовательно точки до тех пор, пока длина траектории не уменьшится на величину, равную размеру ячейки; добавляет к концу траектории точку, соответствующую значениям набора углов шарниров робота-манипулятора, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, а в начало - точку, соответствующую текущему положению рабочего органа робота-манипулятора. В конце вычислительное устройство 105 аналогичным образом пересчитывает значения скоростей и ускорений углов шарниров в каждой точке для обеспечения плавного перемещения робота манипулятора по траектории.[0072] 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 manner: determines, based on the 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 the working body of the robotic arm; on the basis of the set of possible orientations of the working body of the robot-manipulator, when it is in the region of the said cell, determines the closest possible orientation of the working body of the robot-manipulator to the current orientation; on the basis of the data on the cell and the closest possible orientation of the working body of the robotic arm, extracts from the list saved on the computing device a previously generated back reference trajectory, and the back reference trajectory describes the movement of the robot from a position in which the working member of the robot manipulator is inside the region of interest, to an initial position corresponding to the area of interest; determines, on the basis of information about a given position and orientation of the working body, the cell of the region of interest, into which it is necessary to move the working body of the robotic arm; determines the 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; deletes from the beginning of the extracted back reference trajectory successively points until the length of the trajectory decreases 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 joints of the robotic arm, at which the working body of the robotic arm is at a point of a given position with a given orientation, and at the beginning - a point corresponding to the current position of the working member of the robotic arm. At the end, the
[0073] Полученные вычислительным устройством 105 траектории могут быть далее направлены на контроллер робота-манипулятора 103 для перемещения рабочего органа робота-манипулятора в соответствии с полученной траекторией.[0073] The trajectories obtained by the
[0074] Таким образом, за счет того, что в представленном решении при планировании движения робота-манипулятора корректируют только лишь начальные и конечные точки опорных траекторий, заранее сгенерированных для робота-манипулятора, уменьшается время планирования движения робота-манипулятора, а также повышается скорость его управления.[0074] 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 generated in advance for the robot-manipulator are corrected, the time for planning the movement of the robot-manipulator is reduced, and its speed also increases. management.
[0075] В общем виде (см. фиг. 18) вычислительное устройство 1600 содержит объединенные общей шиной информационного обмена один или несколько процессоров 1601, средства памяти, такие как ОЗУ 1602 и ПЗУ 1603, интерфейсы ввода/вывода 1604, устройства ввода/вывода 1605, и устройство для сетевого взаимодействия 1606.[0075] In general (see Fig. 18), the
[0076] Процессор 1601 (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в устройстве 1600 также необходимо учитывать графический процессор, например, GPU NVIDIA или Graphcore, тип которых также является пригодным для полного или частичного выполнения способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.[0076] The processor 1601 (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 1600 device, it is also necessary to take into account a graphics processor, 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 to train and apply machine learning models in various information systems. ...
[0077] ОЗУ 1602 представляет собой оперативную память и предназначено для хранения исполняемых процессором 1601 машиночитаемых инструкций для выполнение необходимых операций по логической обработке данных. ОЗУ 1602, как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ 1602 может выступать доступный объем памяти графической карты или графического процессора.[0077]
[0078] ПЗУ 1603 представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.[0078]
[0079] Для организации работы компонентов устройства 1600 и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В 1604. Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: 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 и т.п.[0079] To organize the operation of the components of the
[0080] Для обеспечения взаимодействия пользователя с устройством 1600 применяются различные средства 1605 В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.[0080] To ensure user interaction with the
[0081] Средство сетевого взаимодействия 1606 обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств 1606 может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.[0081] The
[0082] Дополнительно могут применяться также средства спутниковой навигации в составе устройства 1600, например, GPS, ГЛОНАСС, BeiDou, Galileo. Конкретный выбор элементов устройства 1600 для реализации различных программно-аппаратных архитектурных решений может варьироваться с сохранением обеспечиваемого требуемого функционала.[0082] In addition, satellite navigation aids can also be used as part of the
[0083] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы изобретения.[0083] Modifications and improvements to the above described embodiments of the present technical solution will be apparent 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 (45)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2020129196A RU2756437C1 (en) | 2020-09-03 | 2020-09-03 | Method and system for planning the movement of a manipulator robot by correcting the reference trajectories |
EA202092865A EA202092865A1 (en) | 2020-09-03 | 2020-12-23 | METHOD AND SYSTEM FOR ROBOT-MANIPULATOR MOVEMENT PLANNING BY CORRECTION OF BASE TRAJECTORIES |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2020129196A RU2756437C1 (en) | 2020-09-03 | 2020-09-03 | Method and system for planning the movement of a manipulator robot by correcting the reference trajectories |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2756437C1 true RU2756437C1 (en) | 2021-09-30 |
Family
ID=77999908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2020129196A RU2756437C1 (en) | 2020-09-03 | 2020-09-03 | Method and system for planning the movement of a manipulator robot by correcting the reference trajectories |
Country Status (2)
Country | Link |
---|---|
EA (1) | EA202092865A1 (en) |
RU (1) | RU2756437C1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2587104C2 (en) * | 2010-11-16 | 2016-06-10 | ЮНИВЕРСАЛ РОБОТС АпС | Method and device to control robot |
DE102016213999B3 (en) * | 2016-07-29 | 2017-07-27 | Deutsches Zentrum für Luft- und Raumfahrt e.V. | Method for planning the trajectory of a robot arm |
RU2664257C2 (en) * | 2013-06-19 | 2018-08-15 | Зе Боинг Компани | Systems and methods for tracking location of mobile target objects |
US10112303B2 (en) * | 2013-10-25 | 2018-10-30 | Aleksandar Vakanski | Image-based trajectory robot programming planning approach |
US20190143518A1 (en) * | 2016-01-25 | 2019-05-16 | Canon Kabushiki Kaisha | Robot trajectory generation method, robot trajectory generation apparatus, product fabrication method, recording medium, program, and robot system |
RU2700246C1 (en) * | 2019-03-21 | 2019-09-20 | Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) | Method and system for capturing an object using a robot device |
-
2020
- 2020-09-03 RU RU2020129196A patent/RU2756437C1/en active
- 2020-12-23 EA EA202092865A patent/EA202092865A1/en unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2587104C2 (en) * | 2010-11-16 | 2016-06-10 | ЮНИВЕРСАЛ РОБОТС АпС | Method and device to control robot |
RU2664257C2 (en) * | 2013-06-19 | 2018-08-15 | Зе Боинг Компани | Systems and methods for tracking location of mobile target objects |
US10112303B2 (en) * | 2013-10-25 | 2018-10-30 | Aleksandar Vakanski | Image-based trajectory robot programming planning approach |
US20190143518A1 (en) * | 2016-01-25 | 2019-05-16 | Canon Kabushiki Kaisha | Robot trajectory generation method, robot trajectory generation apparatus, product fabrication method, recording medium, program, and robot system |
DE102016213999B3 (en) * | 2016-07-29 | 2017-07-27 | Deutsches Zentrum für Luft- und Raumfahrt e.V. | Method for planning the trajectory of a robot arm |
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 |
---|---|
EA202092865A1 (en) | 2022-03-31 |
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 | |
Ciocarlie et al. | Towards reliable grasping and manipulation in household environments | |
Sayour et al. | Autonomous robotic manipulation: real‐time, deep‐learning approach for grasping of unknown objects | |
CN107085428B (en) | Intelligent moving method, device, robot and storage medium | |
Janabi-Sharifi et al. | Automatic selection of image features for visual servoing | |
JP2022542239A (en) | Autonomous Task Execution Based on Visual Angle Embedding | |
Sanz et al. | Vision-guided grasping of unknown objects for service robots | |
Husain et al. | Realtime tracking and grasping of a moving object from range video | |
CN113327281A (en) | Motion capture method and device, electronic equipment and flower drawing system | |
Klingensmith et al. | Closed-loop servoing using real-time markerless arm tracking | |
WO2020069379A1 (en) | Training a deep neural network model to generate rich object-centric embeddings of robotic vision data | |
US20150314439A1 (en) | End effector controlling method | |
Lloyd et al. | Programming contact tasks using a reality-based virtual environment integrated with vision | |
WO2021117479A1 (en) | Information processing device, method, and program | |
US10035264B1 (en) | Real time robot implementation of state machine | |
Teke et al. | Real-time and robust collaborative robot motion control with Microsoft Kinect® v2 | |
Xue et al. | Gesture-and vision-based automatic grasping and flexible placement in teleoperation | |
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 | |
CN115635482A (en) | Vision-based robot-to-human body transfer method, device, medium and terminal | |
Lei et al. | Unknown object grasping using force balance exploration on a partial point cloud | |
EA040444B1 (en) | METHOD AND SYSTEM FOR ROBOT-MANIPULATOR MOVEMENT PLANNING BY CORRECTION OF BASE TRAJECTORIES | |
Pedrosa et al. | A skill-based architecture for pick and place manipulation tasks | |
CN112847340B (en) | Control method, control device and robot |