СПОСОБ И СИСТЕМА ПЛАНИРОВАНИЯ ДВИЖЕНИЯ РОБОТА-МАНИПУЛЯТОРА ПУТЕМ КОРРЕКЦИИ ОПОРНЫХ ТРАЕКТОРИЙ
METHOD AND SYSTEM FOR PLANNING THE MOVEMENT OF A MANIPULATOR ROBOT BY CORRECTING THE REFERENCE TRAJECTORIES

ОБЛАСТЬ ТЕХНИКИ
[001] Представленное техническое решение относится, в общем, к области робототехники, а в частности к способу и системе планирования движения робота-манипулятора путем коррекции опорных траекторий и может быть использовано для создания систем управления роботами-манипуляторами в качестве модуля планирования траекторий перемещения робота-манипулятора в условиях статической коллизионной сцены, в частности, хотя не исключительно, для решения задач манипулирования объектами.
УРОВЕНЬ ТЕХНИКИ
[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 моделей таких объектов для целей последующего указания точек захвата и взаимодействия с объектами в указанных точках.
[004] Также известны способ и система захвата объекта с помощью роботизированного устройства, раскрытые в патенте RU 2700246 С1, опубл. 20.09.2019. В известном решении обучают роботизированное устройство с помощью алгоритма машинного обучения для распознавания и запоминания точек захвата объектов, причем обучение выполняется на данных, характеризующих фотографические изображения объектов и соответствующие 3D модели объектов в различных ракурсах; формируют по меньшей мере одну точку захвата объекта, представленного на графическом изображении объекта; получают фотографическое изображение объекта с помощью камеры роботизированного устройства и определяют ракурс, отображающий сформированную точку захвата объекта; получают трехмерное облако точек объекта в ракурсе с помощью сенсора глубины роботизированного устройства; определяют по полученному облаку точек месторасположение точки захвата объекта; определяют ориентацию и положение захватного устройства роботизированного устройства в точке захвата с помощью вычисления матриц поворотов роботизированного устройства; осуществляют захват объекта с помощью роботизированного устройства на основании вычисления усредненной матрицы поворотов для заданной точки захвата.
[005] В сравнении с существующими подходами планирования траекторий перемещения робота-манипулятора предложенный подход решает аналогичную задачу быстрее за счет отсутствия необходимости формирования полной траектории, не допускающей столкновения с объектами статической коллизионной сцены.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ
[006] Технической проблемой или технической задачей, поставленной в данном техническом решении, является создание нового эффективного, простого и надежного способа планирования движения робота-манипулятора.
[007] Техническим результатом, достигаемым при решении вышеуказанной технической проблемы, является уменьшение времени планирования движения робота-манипулятора.
[008] Указанный технический результат достигается благодаря осуществлению способа планирования движения робота-манипулятора, выполняемого по меньшей мере одним вычислительным устройством, содержащего этапы, на которых:
- получают информацию о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган робота-манипулятора;
- определяют текущие положение и ориентацию рабочего органа робота-манипулятора;
- определяют на основе информации о заданном положении и ориентации рабочего органа ячейку области интереса, в которую необходимо переместить рабочий орган робота-манипулятора, причем область интереса находится внутри рабочего пространства робота-манипулятора;
- на основе набора возможных ориентаций рабочего органа робота-манипулятора при его нахождении в области упомянутой ячейки определяют ближайшую возможную ориентацию рабочего органа робота-манипулятора к заданной ориентации;
- на основе данных о ячейке и ближайшей возможной ориентации рабочего органа робота-манипулятора извлекают из сохраненного на вычислительном устройстве списка предварительно сгенерированную прямую опорную траекторию, причем прямая опорная траектория описывает перемещение робота-манипулятора из начального положения, соответствующего области интереса, в положение, при котором рабочий орган робота-манипулятора находится внутри области интереса;
- определяют набор углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией;
- удаляют от конца извлеченной прямой опорной траектории последовательно точки до тех пор, пока длина траектории не уменьшится на величину, равную размеру ячейки;
- добавляют к концу траектории точку, соответствующую значениям набора углов шарниров робота-манипулятора, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, а в начало - точку, соответствующую текущему положению рабочего органа робота-манипулятора;
- перемещают рабочий орган робота-манипулятора в соответствии с полученной на предыдущем этапе траекторией.
[009] В одном из частных примеров осуществления способа дополнительно выполняют этапы, на которых:
- определяют, что точка заданного положения рабочего органа находится внутри области интереса;
- определяют величину отклонения углов шарниров робота-манипулятора в текущем положении от углов шарниров, заданных для начального положения, соответствующего области интереса;
- сравнивают полученную на предыдущем этапе величину отклонения с пороговым значением, причем этап определения ближайшей возможной ориентации рабочего органа робота-манипулятора к заданной ориентации выполняется в случае, если упомянутая величина отклонения не превышает пороговое значение.
[0010] В другом частном примере осуществления способа определение текущего положения и ориентации рабочего органа робота-манипулятора осуществляется посредством решения прямой задачи кинематики на основе его текущих значений углов шарниров.
[0011] В другом частном примере осуществления способа этап, на котором определяют наборы углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, содержит этапы, на которых:
- для заданного положения и ориентации рабочего органа робота-манипулятора выполняется решение обратной задачи кинематики для получения множества наборов углов шарниров, при которых рабочий орган робота манипулятора находится в точке заданного положения с заданной ориентацией;
- определяют наборы углов шарниров, удовлетворяющие коллизионным ограничениям;
- выбирают в качестве набора углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, из набора углов шарниров, удовлетворяющих коллизионным ограничениям, тот набор, который является наиболее близким по значениям углов шарниров к последней точке извлеченной прямой опорной траектории.
[0012] В другом предпочтительном варианте осуществления заявленного решения представлена система планирования движения робота-манипулятора, содержащая:
- робота-манипулятора;
- вычислительное устройство, соединенное с роботом-манипулятором;
- по меньшей мере одну память, содержащую машиночитаемые инструкции, которые при их исполнении по меньшей мере одним вычислительным устройством выполняют вышеуказанный способ.
[0013] В другом предпочтительном варианте осуществления заявленного решения представлен способ планирования движения робота-манипулятора, выполняемый по меньшей мере одним вычислительным устройством, содержащий этапы, на которых:
- получают информацию о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган робота-манипулятора;
- определяют текущие положение и ориентацию рабочего органа робота-манипулятора;
- определяют на основе информации о текущем положении и ориентации рабочего органа ячейку области интереса, из которой необходимо переместить рабочий орган робота-манипулятора, причем область интереса находится внутри рабочего пространства робота-манипулятора;
- на основе набора возможных ориентаций рабочего органа робота-манипулятора при его нахождении в области упомянутой ячейки определяют ближайшую возможную ориентацию рабочего органа робота-манипулятора к текущей ориентации;
- на основе данных о ячейке и ближайшей возможной ориентации рабочего органа робота-манипулятора извлекают из сохраненного на вычислительном устройстве списка предварительно сгенерированную обратную опорную траекторию, причем обратная опорная траектория описывает перемещение робота из положения, при котором рабочий орган робота-манипулятора находится внутри области интереса, в начальное положения, соответствующее области интереса;
- определяют набор углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией;
- удаляют от начала извлеченной обратной опорной траектории последовательно точки до тех пор, пока длина траектории не уменьшится на величину, равную размеру ячейки;
- добавляют к концу траектории точку, соответствующую значениям набора углов шарниров робота-манипулятора, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, а в начало - точку, соответствующую текущему положению рабочего органа робота-манипулятора;
- перемещают рабочий орган робота-манипулятора в соответствии с полученной на предыдущем этапе траекторией.
[0014] В одном из частных примеров осуществления способа дополнительно выполняют этапы, на которых:
- определяют величину отклонения заданного положения и «начального положения» рабочего органа робота-манипулятора, соответствующего области интереса;
- сравнивают полученную на предыдущем этапе величину отклонения с пороговым значением, причем этап определения ближайшей возможной ориентации рабочего органа робота-манипулятора к текущей ориентации выполняется в случае, если упомянутая величина отклонения не превышает пороговое значение.
[0015] В другом частном примере осуществления способа определение текущего положения и ориентации рабочего органа робота-манипулятора осуществляется посредством решения прямой задачи кинематики на основе его текущих значений углов шарниров.
[0016] В другом частном примере осуществления способа этап, на котором определяют наборы углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, содержит этапы, на которых:
- для заданного положения и ориентации рабочего органа робота-манипулятора выполняется решение обратной задачи кинематики для получения множества наборов углов шарниров, при которых рабочий орган робота манипулятора находится в точке заданного положения с заданной ориентацией;
- определяют наборы углов шарниров, удовлетворяющие коллизионным ограничениям;
- выбирают в качестве набора углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, из набора углов шарниров, удовлетворяющих коллизионным ограничениям, тот набор, который является наиболее близким по значениям углов шарниров к последней точке извлеченной обратной опорной траектории.
[0017] В другом предпочтительном варианте осуществления заявленного решения представлена система планирования движения робота-манипулятора, содержащая:
- робота-манипулятора;
- вычислительное устройство, соединенное с роботом-манипулятором;
- по меньшей мере одну память, содержащую машиночитаемые инструкции, которые при их исполнении по меньшей мере одним вычислительным устройством выполняют вышеуказанный способ.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0018] Признаки преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания и прилагаемых рисунков, на которых:
[0019] На Фиг. 1 изображен общий вид системы планирования движения робота-манипулятора.
[0020] На Фиг. 2 изображены примеры ориентаций рабочего органа вдоль вертикальной оси из набора возможных ориентаций рабочего органа робота-манипулятора, соответствующего «области интереса».
[0021] На Фиг. 3 изображены примеры ориентаций рабочего органа вдоль отклоненных от вертикали осей из набора возможных ориентаций рабочего органа робота-манипулятора, соответствующего «области интереса».
[0022] На Фиг. 4 изображен пример прямой опорной траектории.
[0023] На Фиг. 5 изображен пример обратной опорной траектории.
[0024] На Фиг. 6 изображена первая часть блок-схемы алгоритма режима эксплуатации.
[0025] На Фиг. 7 изображена вторая часть блок-схемы алгоритма режима эксплуатации.
[0026] На Фиг. 8 изображена третья часть блок-схемы алгоритма режима эксплуатации.
[0027] На Фиг. 9 изображена четвертая часть блок-схемы алгоритма режима эксплуатации.
[0028] На Фиг. 10 изображена пятая часть блок-схемы алгоритма режима эксплуатации.
[0029] На Фиг. 11 изображена шестая часть блок-схемы алгоритма режима эксплуатации.
[0030] На Фиг. 12 изображен пример скорректированной опорной траекторий.
[0031] На Фиг. 13 изображен пример заданных положения и ориентации рабочего органа робота-манипулятора.
[0032] На Фиг. 14 изображен пример заданной ориентация рабочего органа и выбранной возможная ориентация рабочего органа.
[0033] На Фиг. 15 изображены примеры решения обратной задачи кинематики для заданного положения рабочего органа робота-манипулятора.
[0034] На Фиг. 16 изображен пример результата перемещения робота манипулятора вдоль выбранной прямой траектории.
[0035] На Фиг. 17 изображен пример результата перемещения робота манипулятора вдоль откорректированной прямой траектории.
[0036] На Фиг. 18 представлен пример общего вида вычислительного устройства.
ПОДРОБНОЕ ОПИСАНИЕ
[0037] Данное техническое решение может быть реализовано на компьютере, в виде автоматизированной информационной системы (АИС) или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.
[0038] Также техническое решение может быть реализовано в виде распределенной компьютерной системы, которая может быть установлена на централизованном сервере (наборе серверов). Доступ пользователей к системе возможен как из сети Интернет, так и из внутренней сети предприятия/организации посредством мобильного устройства связи, на котором установлено программное обеспечение с соответствующим графическим интерфейсом пользователя, или персонального компьютера с доступом к веб-версии системы с соответствующим графическим интерфейсом пользователя.
[0039] Ниже будут описаны термины и понятия, необходимые для реализации настоящего технического решения.
[0040] В данном решении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность вычислительных операций (действий, инструкций).
[0041] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).
[0042] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.
[0043] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
[0044] Рабочий орган промышленного робота - составная часть манипулятора, предназначенная для взаимодействия с объектами манипулирования или непосредственного выполнения технологических операций.
[0045] Как представлено на Фиг. 1, система 100 планирования движения робота-манипулятора содержит вычислительное устройство 107, обеспечивающее необходимые процессы вычислительной обработки алгоритма для функционирования робота-манипулятора 103, канал передачи данных 106, обеспечивающий процессы приема/передачи данных между элементами системы 100, а также удаленное вычислительное устройство 105, например, облачный сервер для специализированного выполнения задач.
[0046] В качестве вычислительного устройства 107, с которым взаимодействует пользователь 108, может использоваться, например, персональный компьютер, ноутбук, планшет, сервер, смартфон, серверный кластер, мейнфрейм, суперкомпьютер, тонкий клиент, система на кристалле (англ. «System on а Chip», сокр. SoC) и т.п. Конкретная аппаратная реализация вычислительного устройства 107 зависит от предъявляемых требований и должна обеспечивать необходимые процессы вычислительной обработки цифровой информации для обеспечения должного функционирования устройства 107 в составе системы 100.
[0047] В качестве канала передачи данных 106 может применяться различный вид связи, например, проводного и/или беспроводного типа, в частности: LAN, WAN, WLAN, Bluetooth, Wi-Fi, GSM/GPRS/LTE/5G, Ethernet, USB, RS232, RJ45 и т.п.
[0048] Удаленное вычислительное устройство 105, как правило, представляет собой облачное хранилище данных или сервер для решения специализированных задач или программной логики. Описание работы устройства 105 будет раскрыто далее в настоящем описании.
[0049] В качестве робота-манипулятор 103 может применяться как стационарный роботизированный манипулятор промышленного или коллаборативного назначения, например, Universal Robotics™, KUKA™, Fanuc™, ABB™ и т.п., так и роботизированные манипуляторы, устанавливаемые на подвижные автономные роботизированные устройства, в качестве конечностей, в частности роботизированные руки.
[0050] Различаются два режима работы системы (100) планирования движения робота-манипулятора: режим формирования опорных траекторий и режим эксплуатации.
[0051] В режиме формирования опорных траекторий в рабочей зоне робота-манипулятора 103 пользователем 108 посредством вычислительного устройства 107 известными из уровня техники методами выбираются одна или несколько «областей интереса», например, в области стола 104 (Фиг. 1). «Область интереса» - это область рабочего пространства робота-манипулятора, представляющая собой, например, параллелепипед 101, состоящий из ячеек 102. На Фиг. 1 ячейка, отмеченная позицией 102, находится в седьмом ряду по длине, в первом ряду ширине, в первом ряду по высоте и имеет порядковый номер 31. Пользователь задает положение и ориентацию «области интереса», а также габариты и количество ячеек по высоте, длине и ширине параллелепипеда 101. «Области интереса» соответствует «начальное положение» робота-манипулятора 103, которое также задается пользователем 108 посредством вычислительного устройства 107 в виде набора углов шарниров, характеризующего положение и ориентацию рабочего органа робота-манипулятора 103. Также упомянутые углы шарниров робота-манипулятора 103 могут быть получены от виртуальной модели робота-манипулятор, реализованной на базе вычислительного устройства 105, или от контроллера реального робота-манипулятора 103, и по ним вычислительное устройство 105 рассчитывает положение и ориентация рабочего органа робота-манипулятора 103 путем решения прямой задачи кинематики. При этом «начальное положение» робота-манипулятора должно быть таким, чтобы рабочий орган находился вне «области интереса».
[0052] Также «области интереса» соответствует набор возможных ориентаций рабочего органа робота-манипулятора 103 (Фиг. 2 и Фиг. 3), который формируется пользователем 108 и сохраняется в вычислительном устройстве 105 в виде списка. В списке для каждой ячейки 102 параллелепипеда 101 пользователем 108 определяется/задается набор ориентаций рабочего органа робота-манипулятора 103 при его нахождении в области ячейки 102. Набор ориентаций рабочего органа робота-манипулятора 103 для ячейки может содержать в себе, например, ориентации рабочего органа вдоль вертикальной оси (Фиг. 2, позиции 201-208), а также ориентации вдоль осей, отклоненных от вертикальной оси на заданные пользователем 108 углы (Фиг. 3, позиции 301-308). Эти ориентации вместе с координатами центров ячеек используются при формировании прямых опорных траекторий в качестве целевых положений и ориентаций, в которые должен выходить рабочий орган робота-манипулятора 103 из «начального положения» при перемещении по опорным траекториям (Фиг. 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.
[0054] Обратная траектория описывает перемещение робота-манипулятора 103 от ячейки 102 к «начальному положению» робота-манипулятора 103, соответствующему «области интереса». Для формирования обратной траектории последовательность точек прямой траектории, каждой из которой соответствует наборы углов, скоростей и ускорений шарниров робота-манипулятора, задается вычислительным устройством 105 в обратном порядке. При этом углы шарниров остаются неизменными, а скорости и ускорения шарниров робота-манипулятора 103 пересчитываются таким образом, чтобы при движении робота-манипулятора 103 по траектории, его перемещение было плавным. Все опорные траектории записываются в базу данных, которой дополнительно может быть оснащено вычислительное устройство 105.
[0055] В режиме эксплуатации (Фиг. 6-11) от системы управления более высокого уровня (на чертежах не изображена) или от вычислительного устройства 107 на вход вычислительного устройства 105 подается информация о заданном (желаемом) положении и ориентации 601 (Фиг. 6), с которыми необходимо переместить рабочий орган робота-манипулятора. В начале путем решения прямой задачи кинематики по информации об углах шарниров робота-манипулятора, поступающей от виртуальной модели робота или от контроллера реального робота, рассчитываются текущие положение и ориентация рабочего органа 602. Затем отыскивается «область интереса» 603 из i областей и порядковый номер ячейки, внутри которой находится точка желаемого или текущего положения рабочего органа. Если и точка желаемого, и точка текущего положения рабочего органа находятся вне областей интереса, то выполняется любой доступный известный алгоритм планирования траекторий для желаемого положения и ориентации рабочего органа 1101 (Фиг. 11). Иначе возможны два варианта работы системы 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.
[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.
ПРИМЕР РЕАЛИЗАЦИИ ИЗОБРЕТЕНИЯ
[0058] Рассмотри работу системы (100) планирования движения робота-манипулятора на конкретном примере. На Фиг. 1 изображена рабочая зона робота-манипулятора 103, внутри которой расположен стол 104. Ось Z инерциальной системы координат направлена вверх, ось X ориентирована по направлению от центра стола к роботу-манипулятору, ось Y дополняет оси X и Z до правой тройки векторов. Положение робота-манипулятора 103 совпадает с положением инерциальной системы координат. База робота развернута относительно инерциальной системы координат вокруг оси Z на угол, равный -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.
[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].
[0061] Набор возможных ориентаций рабочего органа робота-манипулятора 103, заданные пользователем 108 для каждой ячейки, может состоять из 16 поворотов, приведенных на Фиг. 2 и Фиг. 3. Они представляют собой 8 ориентаций вдоль вертикальной оси и 8 ориентаций вдоль осей, угол между каждой из которых и вертикальной осью составляет 30°.
[0062] Далее на основе информации о «начальном положении» и координат центов ячеек 102 вычислительное устройство 105 генерирует опорные траекторий для каждой ячейки параллелепипеда 101 и для каждой возможной ориентации рабочего органа робота-манипулятора 103 из ранее сформированного набора, заданного для ячеек 102. При формировании прямых опорных траекторий координаты центров ячеек 102 «области интереса» и возможные ориентации рабочего органа используются в качестве целевых положений и ориентаций, в которые рабочий орган робота-манипулятора 103 выходит из «начального положения», соответствующего «области интереса». Обратные опорные траектории получаются системой путем инверсии прямых опорных траекторий. Опорные траектории записываются в базу данных с полями: уникальный идентификатор «области интереса», порядковый номер ячейки, порядковый номер ориентации рабочего органа, идентификатор типа опорной траектории (прямая или обратная) и опорная траектория.
[0063] В режиме эксплуатации на вход системы 100, например, от пользователя 108 поступает информация о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган робота-манипулятора 103. Вычислительное устройство 105 запрашивает текущие значениям углов шарниров от виртуальной модели робота или от контроллера робота-манипулятора 103. По текущим значениям углов шарниров вычислительное устройство 105 осуществляет выполнение прямой задачи кинематики, решением которой является информация о текущем положении и ориентации рабочего органа робота-манипулятора 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].
[0065] В приведенном на Фиг. 13 примере точка заданного положения рабочего органа, в которое необходимо переместить рабочий орган робота-манипулятора 1302, находится внутри «области интереса» 1303, а именно внутри ячейки 1304, которая находится в шестом ряду по длине, во третьем ряду по ширине, во втором ряду по высоте и имеет порядковый номер 63.
[0066] Далее вычислительное устройство 105 определяет величину отклонения углов шарниров робота-манипулятора 1302 в «начальном положении» от углов шарниров робота-манипулятора 1302 в текущем положении, после чего величина отклонения вычислительным устройством 105 робота-манипулятора 1302 сравнивается с пороговым значением. В представленном примере углы шарниров робота-манипулятора 1302 в «начальном положении», соответствующем «области интереса», отличаются от углов шарниров робота-манипулятора 1302 в текущем положении на величину, не превышающую пороговое значение.
[0067] На следующем этапе вычислительное устройство 105 для найденной ячейки 1304 извлекает из базы данных, которой упомянутое устройство 105 может быть оснащено, набор возможных ориентаций рабочего органа робота-манипулятора 1302 при его нахождении в области ячейки 1304, после чего вычислительное устройство 105 на основе значений углов шарниров, содержащихся в информации о заданном положении и ориентации рабочего органа, в которые необходимо переместить рабочий орган робота-манипулятора 1302, и значений углов шарниров упомянутого извлеченного набора возможных ориентаций рабочего органа определяет ближайшую возможную ориентацию рабочий орган робота-манипулятора 1302, доступную для его нахождения в области ячейки 1304.
[0068] В представленном примере ближайшей ориентацией рабочего органа робота-манипулятора 1302, доступной для его нахождения в области ячейки 1304, является возможная ориентация рабочего номера под номером 10 (позиция 302 на Фиг. 3), заданная в инерциальной системе координат кватернионом [-0,456; -0,195; 0,794; -0,350]. То есть угол, на который необходимо довернуть рабочий орган из выбранной возможной ориентации в заданную пользователем 108 ориентацию рабочего органа в соответствии с информацией о положении и ориентации рабочего органа, минимален среди аналогичных углов из набора возможных ориентаций. На Фиг. 14 представлены примеры заданной ориентации рабочего органа 1401 и выбранная возможная ориентация рабочего органа 1402.
[0069] Далее по номеру ячейки 1304, в которой находится точка заданного положения рабочего органа, и данных ближайшей возможной ориентации рабочего органа робота-манипулятора 1302 из базы данных вычислительным устройством 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 как решение обратной задачи кинематики.
[0071] Далее вычислительное устройство 105 от конца извлеченной прямой траектории последовательно удаляет точки до тех пор, пока длина траектории не уменьшится за длину ребра ячейки 1304 (Фиг. 13). Затем к концу этой траектории добавляется точка, соответствующая значениям углов шарниров робота-манипулятора 1302 выбранного решения обратной задачи кинематики, а в начало - точка, соответствующая текущим углам шарниров робота-манипулятора 1302. В конце вычислительное устройство 105 пересчитывает значения скоростей и ускорений углов шарниров в каждой точке для обеспечения плавного перемещения робота манипулятора по траектории. Для сравнения на Фиг. 16 приведен результат перемещения робота манипулятора вдоль выбранной прямой траектории, а на Фиг. 17 - вдоль этой же траектории после коррекции.
[0072] Соответственно, если точка текущего положения рабочего органа робота-манипулятора 1302 (Фиг. 13) находится в области интереса 1303, то вычислительное устройство 105 описанным ранее способом: определяет на основе информации о текущем положении и ориентации рабочего органа ячейку области интереса, из которой необходимо переместить рабочий орган робота-манипулятора; на основе набора возможных ориентаций рабочего органа робота-манипулятора при его нахождении в области упомянутой ячейки определяет ближайшую возможную ориентацию рабочего органа робота-манипулятора к текущей ориентации; на основе данных о ячейке и ближайшей возможной ориентации рабочего органа робота-манипулятора извлекает из сохраненного на вычислительном устройстве списка предварительно сгенерированную обратную опорную траекторию, причем обратная опорная траектория описывает перемещение робота из положения, при котором рабочий орган робота-манипулятора находится внутри области интереса, в начальное положения, соответствующее области интереса; определяет на основе информации о заданном положении и ориентации рабочего органа ячейку области интереса, в которую необходимо переместить рабочий орган робота-манипулятора; определяет набор углов шарниров, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией; удаляет от начала извлеченной обратной опорной траектории последовательно точки до тех пор, пока длина траектории не уменьшится на величину, равную размеру ячейки; добавляет к концу траектории точку, соответствующую значениям набора углов шарниров робота-манипулятора, при которых рабочий орган робота-манипулятора находится в точке заданного положения с заданной ориентацией, а в начало - точку, соответствующую текущему положению рабочего органа робота-манипулятора. В конце вычислительное устройство 105 аналогичным образом пересчитывает значения скоростей и ускорений углов шарниров в каждой точке для обеспечения плавного перемещения робота манипулятора по траектории.
[0073] Полученные вычислительным устройством 105 траектории могут быть далее направлены на контроллер робота-манипулятора 103 для перемещения рабочего органа робота-манипулятора в соответствии с полученной траекторией.
[0074] Таким образом, за счет того, что в представленном решении при планировании движения робота-манипулятора корректируют только лишь начальные и конечные точки опорных траекторий, заранее сгенерированных для робота-манипулятора, уменьшается время планирования движения робота-манипулятора, а также повышается скорость его управления.
[0075] В общем виде (см. фиг. 18) вычислительное устройство 1600 содержит объединенные общей шиной информационного обмена один или несколько процессоров 1601, средства памяти, такие как ОЗУ 1602 и ПЗУ 1603, интерфейсы ввода/вывода 1604, устройства ввода/вывода 1605, и устройство для сетевого взаимодействия 1606.
[0076] Процессор 1601 (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в устройстве 1600 также необходимо учитывать графический процессор, например, GPU NVIDIA или Graphcore, тип которых также является пригодным для полного или частичного выполнения способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.
[0077] ОЗУ 1602 представляет собой оперативную память и предназначено для хранения исполняемых процессором 1601 машиночитаемых инструкций для выполнение необходимых операций по логической обработке данных. ОЗУ 1602, как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ 1602 может выступать доступный объем памяти графической карты или графического процессора.
[0078] ПЗУ 1603 представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.
[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 и т.п.
[0080] Для обеспечения взаимодействия пользователя с устройством 1600 применяются различные средства 1605 В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.
[0081] Средство сетевого взаимодействия 1606 обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств 1606 может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.
[0082] Дополнительно могут применяться также средства спутниковой навигации в составе устройства 1600, например, GPS, ГЛОНАСС, BeiDou, Galileo. Конкретный выбор элементов устройства 1600 для реализации различных программно-аппаратных архитектурных решений может варьироваться с сохранением обеспечиваемого требуемого функционала.
[0083] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы изобретения.