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 PDF

Info

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
Application number
RU2020129196A
Other languages
Russian (ru)
Inventor
Александр Николаевич Семочкин
Елена Владимировна Селиверстова
Алексей Сергеевич Гонноченко
Original Assignee
Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) filed Critical Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк)
Priority to RU2020129196A priority Critical patent/RU2756437C1/en
Priority to EA202092865A priority patent/EA202092865A1/en
Application granted granted Critical
Publication of RU2756437C1 publication Critical patent/RU2756437C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme 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

FIELD: robotics.
SUBSTANCE: method for planning the movement of a manipulator robot comprises the following stages: receiving the information on the preset position and orientation of the working body whereto the working body of the manipulator robot is to be moved; determining the current position and orientation of the working body of the manipulator robot; determining the cell of the area of interest whereto the working body of the manipulator robot is to be moved; determining the closest possible orientation of the working body of the manipulator robot to the preset orientation; extracting a pregenerated straight reference trajectory from the list; determining a set of angles of the hinges of the manipulator robot in a point of the preset position with the preset orientation; consecutively removing points from the end of the extracted straight reference trajectory until the length of the trajectory is reduced by the value of the size of the cell; adding a point corresponding to the preset position with the preset orientation to the end of the trajectory and a point corresponding to the current position of the working body of the manipulator robot to the beginning; moving the working body of the manipulator robot in accordance with the trajectory obtained at the previous stage.
EFFECT: reduced time for planning the movement of the manipulator robot.
10 cl, 18 dwg

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 system 100 for planning the movement of the robot manipulator includes a computing device 107 that provides the necessary computational processing of the algorithm for the operation of the robot 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.

[0046] В качестве вычислительного устройства 107, с которым взаимодействует пользователь 108, может использоваться, например, персональный компьютер, ноутбук, планшет, сервер, смартфон, серверный кластер, мейнфрейм, суперкомпьютер, тонкий клиент, система на кристалле (англ. «System on а Chip», сокр. SoC) и т.п. Конкретная аппаратная реализация вычислительного устройства 107 зависит от предъявляемых требований и должна обеспечивать необходимые процессы вычислительной обработки цифровой информации для обеспечения должного функционирования устройства 107 в составе системы 100.[0046] As the computing device 107, with which the user 108 interacts, can be used, for example, a personal computer, laptop, tablet, server, smartphone, server cluster, mainframe, supercomputer, thin client, system on a chip (English "System on a Chip ", abbreviated SoC), etc. The specific hardware implementation of the computing device 107 depends on the requirements and must provide the necessary computational processing of digital information to ensure the proper functioning of the device 107 as part of the system 100.

[0047] В качестве канала передачи данных 106 может применяться различный вид связи, например, проводного и/или беспроводного типа, в частности: LAN, WAN, WLAN, Bluetooth, Wi-Fi, GSM/GPRS/LTE/5G, Ethernet, USB, RS232, RJ45 и т.п.[0047] As a data transmission channel 106 can be used a different type of communication, for example, wired and / or wireless type, in particular: LAN, WAN, WLAN, Bluetooth, Wi-Fi, GSM / GPRS / LTE / 5G, Ethernet, USB , RS232, RJ45, etc.

[0048] Удаленное вычислительное устройство 105, как правило, представляет собой облачное хранилище данных или сервер для решения специализированных задач или программной логики. Описание работы устройства 105 будет раскрыто далее в настоящем описании.[0048] The remote computing device 105 is typically a cloud storage or server for specialized tasks or program logic. The description of the operation of the device 105 will be described later in the present description.

[0049] В качестве робота-манипулятор 103 может применяться как стационарный роботизированный манипулятор промышленного или коллаборативного назначения, например, Universal Robotics™, KUKA™, Fanuc™, ABB™ и т.п., так и роботизированные манипуляторы, устанавливаемые на подвижные автономные роботизированные устройства, в качестве конечностей, в частности роботизированные руки.[0049] As a robotic arm 103 can be used as a stationary robotic arm for industrial or collaborative purposes, for example, Universal Robotics ™, KUKA ™, Fanuc ™, ABB ™, etc., and robotic manipulators installed on mobile autonomous robotic devices such as limbs, in particular robotic arms.

[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 robot arm 103, the user 108 using the computing device 107 selects one or more “regions of interest” by methods known from the prior art, for example, in the area of the table 104 (Fig. 1). The “region of interest” is an area of the workspace of the robot arm, for example, a parallelepiped 101 composed of cells 102. In FIG. 1 cell, marked with the position 102, is in the seventh row in length, in the first row in width, in the first row in height and has a serial number 31. The user sets the position and orientation of the "area of interest", as well as the dimensions and number of cells in height, length and the width of the parallelepiped 101. The "area of interest" corresponds to the "initial position" of the robot arm 103, which is also set by the user 108 via the computing device 107 in the form of a set of hinge angles characterizing the position and orientation of the working body of the robot manipulator 103. Also, the aforementioned hinge angles of the robot -manipulator 103 can be obtained from the virtual model of the robot-manipulator, implemented on the basis of the computing device 105, or from the controller of the real robot-manipulator 103, and from them the computing device 105 calculates the position and orientation of the working body of the robot-manipulator 103 by solving the direct problem of kinematics ... In this case, the "initial position" of the robotic arm should be such that the working body is outside the "area of interest".

[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 user 108 and stored in the computing device 105 in the form of a list. In the list for each cell 102 of the parallelepiped 101, the user 108 defines / sets a set of orientations of the working body of the robot-manipulator 103 when it is in the area of the cell 102. The set of orientations of the working body of the robot-manipulator 103 for the cell may contain, for example, the orientations of the working body along the vertical axis (Fig. 2, positions 201-208), as well as orientations along the axes deviated from the vertical axis at angles specified by the user 108 (Fig. 3, positions 301-308). These orientations, together with the coordinates of the centers of the cells, are used in the formation of straight reference trajectories as target positions and orientations to which the working body of the robot manipulator 103 should go out of the "initial position" when moving along the reference trajectories (Fig. 4).

[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 cell 102 and a set of possible orientations of the working body of the robot manipulator 103, the computing device 105 generates a forward and reverse reference trajectory of movement of the robot manipulator 103 (Fig. 4 and Fig. 5), which are specified in space by a set of angles hinges of the robot manipulator 103 for each point of the mentioned trajectory. A straight trajectory is formed by executing any available known planning algorithms, for example, the algorithm disclosed in RRT-connect: An efficient approach to single-query path planning (J. Kuffher 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 straight path describes the movement of the robot manipulator 103 from the "initial position" corresponding to the "area of interest" to the position in which the working body of the robot manipulator 103 is 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 information about the straight path generated by the computing device 105 contains a sequence of points of the path, each of which corresponds to a set of angles, velocities and accelerations of the joints of the robot arm 103.

[0054] Обратная траектория описывает перемещение робота-манипулятора 103 от ячейки 102 к «начальному положению» робота-манипулятора 103, соответствующему «области интереса». Для формирования обратной траектории последовательность точек прямой траектории, каждой из которой соответствует наборы углов, скоростей и ускорений шарниров робота-манипулятора, задается вычислительным устройством 105 в обратном порядке. При этом углы шарниров остаются неизменными, а скорости и ускорения шарниров робота-манипулятора 103 пересчитываются таким образом, чтобы при движении робота-манипулятора 103 по траектории, его перемещение было плавным. Все опорные траектории записываются в базу данных, которой дополнительно может быть оснащено вычислительное устройство 105.[0054] The return path describes the movement of the robot arm 103 from the cell 102 to the "start position" of the robot arm 103 corresponding to the "region of interest". To generate a reverse trajectory, a sequence of points of a straight trajectory, each of which corresponds to a set of angles, velocities and accelerations of the joints of the robotic arm, is set by the computing device 105 in reverse order. In this case, the angles of the hinges remain unchanged, and the speeds and accelerations of the hinges of the robot-manipulator 103 are recalculated so that when the robot-manipulator 103 moves along the trajectory, its movement is smooth. All reference paths are recorded in a database, which can be additionally equipped with the computing device 105.

[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 computing device 107 to the input of the computing device 105 information is supplied about the specified (desired) position and orientation 601 (Fig. 6 ), with which it is necessary to move the working body of the robotic arm. At the beginning, by solving the direct kinematics problem from the information about the hinge angles of the robotic arm, coming from the virtual robot model or from the real robot controller, the current position and orientation of the working body 602 are calculated. , inside which the point of the desired or current position of the working body is located. If both the point of the desired and the point of the current position of the working member are outside the regions of interest, then any available known algorithm for planning trajectories for the desired position and orientation of the working member 1101 is performed (Fig. 11). Otherwise, there are two options for the operation of the system 100.

[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 tool 1101 is performed (FIG. 11). If the difference between the angles of the joints does not exceed the threshold value, then among all straight trajectories recorded in the database for the found cell, a trajectory 703 is found, at the last point of which the possible orientation of the working body of the robotic arm is closest to the given orientation. For a given position and orientation of the working body, the system solves the inverse kinematics problem (OZK) 704. Its solutions are sets of angles of the joints of the robot-manipulator, at which the working body is in a given position with a given orientation. The virtual robot model is set to the configuration corresponding to the hinge angles of each solution (j) of the inverse kinematics problem 901 (Fig. 9), and is checked for self-intersection and intersection with objects on the virtual scene (for example, with the table 104 in Fig. 1) by performing any known collision detection algorithms 902. If no solution (j) satisfies the collision constraints imposed by objects located in the working area of the robotic arm, then any available known algorithm for planning trajectories for the desired position and orientation of the working body 1101 is performed (Fig. 11 ). Otherwise, among the solutions (j) that satisfy the collision constraints 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 903. FIG. 12 the dashed line shows the selected reference path, 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 decreases by an amount equal to the size of cell 904. Point 1204 is added to the end of this trajectory, containing the hinge angles of the selected solution of the inverse kinematics problem 905 (Fig. 9), and at the beginning - point 1201 containing the hinge angles of the robot arm 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 speeds and accelerations of the joints 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 the speeds and accelerations of the joints of the robotic arm depend on the desired speed profile. There are many well-known algorithms for solving 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.

[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 cell 802 containing this point is calculated, and the proximity of the points of the predetermined position and the "initial position" of the working member of the robot 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 for the desired position and orientation of the implement 1101 is performed (FIG. 11). If the distance between these points does not exceed a threshold value, then, among all the back trajectories recorded for the found cell, a trajectory 804 is found, at the first point of which the hinge angles are closest to the current hinge angles of the robot arm. For a given position and orientation of the worker, the system solves the inverse problem of kinematics 805. Its solutions are sets of hinge angles of the robot-manipulator, at which the working body is in a given position with a given orientation. The virtual robot model is set to the configuration corresponding to the hinge angles of each solution to the inverse kinematics problem 1001 (Fig. 10), and is checked for self-intersection and intersection with objects on the virtual scene (for example, with the table in Fig. 1) by executing 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 algorithm for planning trajectories for the desired position and orientation of the working body 1101 is performed (Fig. 11). Otherwise, among the solutions that satisfy the collision constraints imposed by objects located in the working area of the robot-arm, one is selected, the hinge angles of which are closest to the angles of the joints of the robot-arm at the end of the selected trajectory 1003. FIG. 12 the dashed line shows the selected reference path, 1203 is the first point of the selected reference path, 1202 is the last point of the selected reference path. Several points are removed from the beginning of the selected trajectory so that the length of the trajectory decreases by an amount equal to the size of cell 1004. Point 1204 is added to the beginning of this trajectory, which contains the corners of the joints of the robotic arm at the current position 1005, and to the end, point 1201, which contains the corners hinges of the selected solution of the inverse problem of kinematics 1006. Then, for the points of the obtained trajectory, the speeds and accelerations of the joints 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 the speeds and accelerations of the joints of the robotic arm depend on the desired speed profile set, for example, by the user 108. There are many 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.

ПРИМЕР РЕАЛИЗАЦИИ ИЗОБРЕТЕНИЯ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 robot manipulator 103, inside which the table 104 is located. The Z axis of the inertial coordinate system is directed upward, 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 triplet of vectors. The position of the robot manipulator 103 coincides with the position of the inertial coordinate system. The base of the robot is rotated relative to the inertial coordinate system around the Z axis at an angle equal to -42.5 °.

[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 user 108 through the computing device 107 above the table 104 selects one “region of interest” 101. For example, the center of the “region of interest” can be specified by the vector [-0.730; 0.0; 0.230] and quaternion [0.0; 0.0; 0.0; 1,0] in the inertial coordinate system. Each ROI cell 102 may be cube-shaped with an edge length of 0.088 m. The ROI cell may contain, for example, 7 cells in length, 5 cells in width, and 4 cells in height of box 101.

[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 user 108 through the computing device 107 selects the "home position" of the robot arm 103 corresponding to the "region of interest". For example, as the aforementioned "initial position" can be set the angles of the joints of the manipulator 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 in the form of a vector [ -0.543; 0.075; 0.716] and quaternion [0.737; 0.0; -0.676; 0.016].

[0061] Набор возможных ориентаций рабочего органа робота-манипулятора 103, заданные пользователем 108 для каждой ячейки, может состоять из 16 поворотов, приведенных на Фиг. 2 и Фиг. 3. Они представляют собой 8 ориентаций вдоль вертикальной оси и 8 ориентаций вдоль осей, угол между каждой из которых и вертикальной осью составляет 30°.[0061] The set of possible orientations of the working body of the robotic arm 103, specified by the user 108 for each cell, may consist of the 16 rotations shown in FIG. 2 and FIG. 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 °.

[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 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 formed set specified for the cells 102. When the formation of direct reference trajectories, the coordinates of the centers of the cells 102 "area of interest" and possible orientations of the working body are used as target positions and orientations, in which the working body of the robot manipulator 103 leaves the "initial position" corresponding to the "area of interest". Backward reference paths are obtained by the system by inverting direct reference paths. The reference trajectories are recorded in the database with the following fields: a unique identifier of the "area of interest", the ordinal number of the cell, the ordinal number of the orientation of the working body, the identifier of the type of the reference trajectory (forward or backward) and the reference trajectory.

[0063] В режиме эксплуатации на вход системы 100, например, от пользователя 108 поступает информация о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган робота-манипулятора 103. Вычислительное устройство 105 запрашивает текущие значениям углов шарниров от виртуальной модели робота или от контроллера робота-манипулятора 103. По текущим значениям углов шарниров вычислительное устройство 105 осуществляет выполнение прямой задачи кинематики, решением которой является информация о текущем положении и ориентации рабочего органа робота-манипулятора 103.[0063] In the operating mode, the input of the system 100, for example, from the user 108, receives information about the predetermined position and orientation of the working body to which the working body of the robot manipulator 103 needs to be moved. The computing device 105 requests the current values of the hinge angles from the virtual model of the robot or from the controller of the robot-manipulator 103. According to the current values of the angles of the joints, 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.

[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, information 1301 about the target position and orientation of the working body to which it is necessary to move the working body of the robot manipulator 1302 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 hinge angles of the robot arm 1302, for example, the values of which can be represented by the sequence from the base of the robot to the working body - [49.466; -80.140; -81,054; -113.738; 91.489; 2.133]. The current position and orientation of the robot manipulator 1302, calculated by the computing device 105 as a result of solving the direct problem of kinematics for the specified set of angles, in the inertial coordinate system will represent the vector [-0.544; 0.073; 0.715] and the quaternion [0.739; 0.002; -0.671; 0.019].

[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 robotic arm 1302, is inside the "area 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 a serial number 63.

[0066] Далее вычислительное устройство 105 определяет величину отклонения углов шарниров робота-манипулятора 1302 в «начальном положении» от углов шарниров робота-манипулятора 1302 в текущем положении, после чего величина отклонения вычислительным устройством 105 робота-манипулятора 1302 сравнивается с пороговым значением. В представленном примере углы шарниров робота-манипулятора 1302 в «начальном положении», соответствующем «области интереса», отличаются от углов шарниров робота-манипулятора 1302 в текущем положении на величину, не превышающую пороговое значение.[0066] Next, the computing device 105 determines the amount of deviation of the hinge angles of the robot arm 1302 in the "initial position" from the angles of the joints of the robot arm 1302 in the current position, after which the amount of deviation is compared with the threshold value by the computing device 105 of the robot arm 1302. In the example shown, the hinge angles of the robot arm 1302 at the "start position" corresponding to the "region of interest" differ from the hinge angles of the robot arm 1302 in the current position by an amount not exceeding a threshold value.

[0067] На следующем этапе вычислительное устройство 105 для найденной ячейки 1304 извлекает из базы данных, которой упомянутое устройство 105 может быть оснащено, набор возможных ориентаций рабочего органа робота-манипулятора 1302 при его нахождении в области ячейки 1304, после чего вычислительное устройство 105 на основе значений углов шарниров, содержащихся в информации о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган робота-манипулятора 1302, и значений углов шарниров упомянутого извлеченного набора возможных ориентаций рабочего органа определяет ближайшую возможную ориентацию рабочий орган робота-манипулятора 1302, доступную для его нахождения в области ячейки 1304.[0067] At the next stage, the computing device 105 for the found cell 1304 retrieves from the database with which the said device 105 can be equipped, 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 hinge angles contained in the information about the given position and orientation of the working body, into which the working member of the robot manipulator 1302 must be moved, and the values of the hinge angles of the mentioned extracted set of possible orientations of the working member determines the closest possible orientation of the working member of the robot manipulator 1302 available for its location in the area of cell 1304.

[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 robot manipulator 1302, available for its location in the area of cell 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 [-0.456 ; -0.195; 0.794; -0.350]. That is, the angle to which it is necessary to turn the working member from the selected possible orientation to the orientation of the working member specified by the user 108 in accordance with the information about the position and orientation of the working member is minimal among similar angles from the set of possible orientations. FIG. 14 shows examples of a predetermined orientation of the implement 1401 and a selected possible orientation of the implement 1402.

[0069] Далее по номеру ячейки 1304, в которой находится точка заданного положения рабочего органа, и данных ближайшей возможной ориентации рабочего органа робота-манипулятора 1302 из базы данных вычислительным устройством 105 извлекается прямая опорная траектория.[0069] Next, according to the number of the cell 1304, in which the point of the specified position of the working member is located, and the data of the nearest possible orientation of the working member of the robotic arm 1302, a direct reference trajectory is retrieved from the database by the computing device 105.

[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 robot arm 1302, the computing device 105 solves the inverse problem of kinematics to obtain sets of hinge angles of the robot arm 1302, at 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 working body of the manipulator robot is at a point of a given position with a given orientation. 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 hinge angles 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, satisfying the collision constraints, the closest in the values of the hinge angles to the last point of the chosen trajectory is the solution [48,960; -114.466; -101.212; -35.291; 87.414; -33,630] (position 1505 in Fig. 15), the set of hinge angles which are selected by the computing device 105 as a solution to the inverse problem of kinematics.

[0071] Далее вычислительное устройство 105 от конца извлеченной прямой траектории последовательно удаляет точки до тех пор, пока длина траектории не уменьшится за длину ребра ячейки 1304 (Фиг. 13). Затем к концу этой траектории добавляется точка, соответствующая значениям углов шарниров робота-манипулятора 1302 выбранного решения обратной задачи кинематики, а в начало - точка, соответствующая текущим углам шарниров робота-манипулятора 1302. В конце вычислительное устройство 105 пересчитывает значения скоростей и ускорений углов шарниров в каждой точке для обеспечения плавного перемещения робота манипулятора по траектории. Для сравнения на Фиг. 16 приведен результат перемещения робота манипулятора вдоль выбранной прямой траектории, а на Фиг. 17 - вдоль этой же траектории после коррекции.[0071] 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 the cell 1304 (Fig. 13). Then, to the end of this trajectory, a point is added corresponding to the values of the hinge angles of the robot-manipulator 1302 of the selected solution of the inverse kinematics problem, and to the beginning - a point corresponding to the current angles of the hinges of the robot-manipulator 1302. At the end, the computing device 105 recalculates the values of the speeds and accelerations of the hinge angles into each point to ensure smooth movement of the manipulator robot along the trajectory. For comparison, FIG. 16 shows the result of moving the manipulator robot along the selected straight path, and FIG. 17 - along the same trajectory after correction.

[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 computing device 105 similarly recalculates the values of the speeds and accelerations of the hinge angles at each point to ensure smooth movement of the manipulator robot along the trajectory.

[0073] Полученные вычислительным устройством 105 траектории могут быть далее направлены на контроллер робота-манипулятора 103 для перемещения рабочего органа робота-манипулятора в соответствии с полученной траекторией.[0073] The trajectories obtained by the computing device 105 can be further directed to the controller of the robot manipulator 103 to move the working body of the robot manipulator in accordance with the obtained trajectory.

[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 computing device 1600 includes one or more processors 1601 united by a common data bus, memory means such as RAM 1602 and ROM 1603, I / O interfaces 1604, I / O devices 1605 , and a device for networking 1606.

[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] RAM 1602 is a random access memory and is intended for storing machine-readable instructions executed by the processor 1601 for performing the necessary operations for logical processing of data. RAM 1602 typically contains executable instructions of an operating system and associated software components (applications, software modules, and the like). In this case, the RAM 1602 can be the available amount of memory of the graphics card or GPU.

[0078] ПЗУ 1603 представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.[0078] ROM 1603 is one or more persistent storage devices, such as a hard disk drive (HDD), solid state data storage device (SSD), flash memory (EEPROM, NAND, etc.), optical storage media (CD- R / RW, DVD-R / RW, BlueRay Disc, MD), etc.

[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 device 1600 and the organization of the operation of external connected devices, various types of I / O interfaces 1604 are used. The choice of the appropriate interfaces depends on the specific execution of the computing device, which can be, but are not limited to: PCI, AGP, PS / 2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS / Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port , RJ45, RS232, etc.

[0080] Для обеспечения взаимодействия пользователя с устройством 1600 применяются различные средства 1605 В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.[0080] To ensure user interaction with the device 1600, various I / O means 1605 are used, for example, a keyboard, display (monitor), touch display, touch pad, joystick, mouse manipulator, light pen, stylus, touch panel, trackball, speakers, microphone, augmented reality, optical sensors, tablet, light indicators, projector, camera, biometric identification (retina scanner, fingerprint scanner, voice recognition module), etc.

[0081] Средство сетевого взаимодействия 1606 обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств 1606 может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.[0081] The networking tool 1606 provides data transmission over an internal or external computer network, such as an Intranet, Internet, LAN, and the like. One or more means 1606 can be used, but not limited to: Ethernet card, GSM modem, GPRS modem, LTE modem, 5G modem, satellite communication module, NFC module, Bluetooth and / or BLE module, Wi-Fi module, etc.

[0082] Дополнительно могут применяться также средства спутниковой навигации в составе устройства 1600, например, GPS, ГЛОНАСС, BeiDou, Galileo. Конкретный выбор элементов устройства 1600 для реализации различных программно-аппаратных архитектурных решений может варьироваться с сохранением обеспечиваемого требуемого функционала.[0082] In addition, satellite navigation aids can also be used as part of the device 1600, for example, GPS, GLONASS, BeiDou, Galileo. The specific choice of elements of the device 1600 to implement various software and hardware architectures can vary while maintaining the required functionality.

[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)

1. Способ планирования движения робота-манипулятора, выполняемый по меньшей мере одним вычислительным устройством, содержащий этапы, на которых:1. A method for planning the movement of a robot manipulator, performed by at least one computing device, 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 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. 2. Способ по п. 1, характеризующийся тем, что дополнительно содержит этапы, на которых:2. The method according to claim 1, characterized in that it further comprises the stages at 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. 3. Способ по п. 1, характеризующийся тем, что определение текущего положения и ориентации рабочего органа робота-манипулятора осуществляется посредством решения прямой задачи кинематики на основе его текущих значений углов шарниров.3. The method according to claim 1, characterized in that the determination of the current position and orientation of the working body of the robot-manipulator is carried out by solving the direct problem of kinematics based on its current values of the hinge angles. 4. Способ по п. 1, характеризующийся тем, что этап, на котором определяют наборы углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, содержит этапы, на которых:4. The method according to claim 1, characterized in that the stage at which the sets of hinge angles are determined, at which the working body of the robotic arm is at a point of 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. 5. Система планирования движения робота-манипулятора, содержащая:5. A system for planning the movement of a robotic arm, containing: - робота-манипулятора;- robot manipulator; - вычислительное устройство, соединенное с роботом-манипулятором;- a computing device connected to a robot manipulator; - по меньшей мере одну память, содержащую машиночитаемые инструкции, которые при их исполнении по меньшей мере одним вычислительным устройством выполняют способ по любому из пп. 1-4.- at least one memory containing machine-readable instructions that, when executed by at least one computing device, perform the method according to any one of claims. 1-4. 6. Способ планирования движения робота-манипулятора, выполняемый по меньшей мере одним вычислительным устройством, содержащий этапы, на которых:6. A method for planning the movement of a robot manipulator, performed by at least one computing device, 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; - на основе данных о ячейке и ближайшей возможной ориентации рабочего органа робота-манипулятора извлекают из сохраненного на вычислительном устройстве списка предварительно сгенерированную обратную опорную траекторию, причем обратная опорная траектория описывает перемещение робота из положения, при котором рабочий орган робота-манипулятора находится внутри области интереса, в начальное положение, соответствующее области интереса;- based on the data on the cell and the closest possible orientation of the working body of the robotic arm, a previously generated backward reference trajectory is retrieved 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 member of the robotic arm is inside the region of interest, to the initial 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. 7. Способ по п. 6, характеризующийся тем, что дополнительно содержит этапы, на которых:7. The method according to claim 6, characterized in that it further comprises the steps at 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. 8. Способ по п. 6, характеризующийся тем, что определение текущего положения и ориентации рабочего органа робота-манипулятора осуществляется посредством решения прямой задачи кинематики на основе его текущих значений углов шарниров.8. The method according to claim 6, characterized in that the determination of the current position and orientation of the working body of the robot-manipulator is carried out by solving the direct problem of kinematics based on its current values of the hinge angles. 9. Способ по п. 6, характеризующийся тем, что этап, на котором определяют наборы углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, содержит этапы, на которых:9. The method according to claim 6, characterized in that 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, 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. 10. Система планирования движения робота-манипулятора, содержащая:10. A system for planning the movement of a robotic arm, containing: - робота-манипулятора;- robot manipulator; - вычислительное устройство, соединенное с роботом-манипулятором;- a computing device connected to a robot manipulator; - по меньшей мере одну память, содержащую машиночитаемые инструкции, которые при их исполнении по меньшей мере одним вычислительным устройством выполняют способ по любому из пп. 6-9.- at least one memory containing machine-readable instructions that, when executed by at least one computing device, perform the method according to any one of claims. 6-9.
RU2020129196A 2020-09-03 2020-09-03 Method and system for planning the movement of a manipulator robot by correcting the reference trajectories RU2756437C1 (en)

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)

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

Patent Citations (6)

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