СПОСОБ И СИСТЕМА ПРЕДИКТИВНОГО ИЗБЕГАНИЯ СТОЛКНОВЕНИЯ МАНИПУЛЯТОРА С ЧЕЛОВЕКОМ
METHOD AND SYSTEM FOR PREDICTIVE AVOIDANCE OF MANIPULATOR COLLISION WITH HUMAN BEING

ОБЛАСТЬ ТЕХНИКИ
[001] Данное техническое решение в общем относится к области вычислительной техники, а в частности к способам и системам избегания столкновений промышленного робота-манипулятора с человеком, который находится в рабочей зоне манипулятора.
УРОВЕНЬ ТЕХНИКИ
[002] Наиболее близким к заявленному техническому решению является метод предотвращения столкновений, основанный на измерении расстояния между промышленным роботом и потенциальным объектом коллизии (патентная заявка DE 102016200455 А1 «Security apparatus and method for the safe operation of a robot»). Отличием описанного метода от заявленного способа является возможность изменения пути перемещения робота в зависимости от положения человека, а в случае приближения человека к роботу на расстояние меньшее чем радиус виртуальной зоны безопасности, робот должен полностью остановиться и ожидать пока человек не покинет опасную зону, поскольку все допустимые пути перемещения робота будут исключены из графа проходимости. Кроме того, поскольку заявленный способ учитывает будущее положение человека, она имеет больший уровень безопасности, и позволяет учитывать запаздывание реакции системы на быстрое перемещение человека в рабочей зоне робота.
[003] Близким к заявленному решению является устройство контроля зоны безопасности (патентная заявка DE 102005011143 A1). Отличием от предложенного способа является то, что устройство не позволяет сохранять частичную производительность робота перемещаясь по доступным вершинам графа проходимости, когда человек находится в рабочей зоне робота. Кроме того, поскольку предлагаемый способ учитывает будущее положение человека, он имеет больший уровень безопасности, и позволяет учитывать запаздывание реакции системы на быстрое перемещение человека в рабочей зоне робота.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[004] Решаемой технической проблемой или технической задачей является обеспечение предиктивного избегания столкновения промышленного манипулятора с человеком.
[005] Техническим результатом, достигаемым при решении вышеуказанной задачи, является повышение уровня безопасности работы персонала вблизи промышленного манипулятора.
[006] Дополнительным результатом является снижение времени простоя роботизированной системы за счет отсутствия необходимости остановки промышленного манипулятора, при нахождении человека в рабочей зоне промышленного манипулятора, что обеспечивает повышение производительности и отказоустойчивости роботизированной системы.
[007] Указанный технический результат достигается благодаря осуществлению способа предиктивного избегания столкновения манипулятора с человеком, выполняемый вычислительным устройством и в котором формируют по меньшей мере один виртуальный граф проходимости промышленного манипулятора; получают по меньшей мере одно RGB изображение и по меньшей мере одну карту глубины из по меньшей мере одной камеры, направленной на рабочую зону промышленного манипулятора; сегментируют каждое полученное RGB изображение посредством использования глубокой сверточной нейронной сети, определяющей какой пиксель изображения относится к человеку; формируют облако точек по меньшей мере одного человека посредством преобразования каждого пикселя, относящегося к человеку, и удаленности этого пикселя в карте глубины; определяют расстояние каждой трехмерной точки из сформированного облака точек до каждой вершины виртуального графа проходимости промышленного манипулятора; получают значение расстояния между человеком и точками работы промышленного манипулятора; сравнивают определенное расстояние каждой трехмерной точки облака точек и пороговое значение, причем если расстояние меньше порогового, вершина графа вместе со всеми исходящими ребрами временно удаляется из виртуального графа проходимости и граф перестраивается.
[008] В некоторых вариантах реализации технического решения виртуальный граф проходимости формируют путем ввода координат узлов графа и их связей между собой в запись структуры JSON.
[009] В некоторых вариантах реализации технического решения при формировании виртуального графа указывают параметры действий промышленного манипулятора.
[0010] В некоторых вариантах реализации технического решения виртуальный граф проходимости формируют полностью или частично.
[0011] В некоторых вариантах реализации технического решения для формирования виртуального графа проходимости промышленного манипулятора используют заранее заданные данные и полученные в процессе работы промышленного манипулятора в режиме реального времени.
[0012] В некоторых вариантах реализации технического решения при удалении вершин графа или ребер, соединяющих вершины графа, используется свето-шумовая сигнализация.
[0013] Также указанный технический результат достигается благодаря осуществлению системы предиктивного избегания столкновения манипулятора с человеком, которая содержит по меньшей мере один промышленный манипулятор, выполненный с возможностью перемещения по построенному виртуальному графу проходимости; по меньшей мере одна камера, направленная на рабочую зону промышленного манипулятора и выполненная с возможностью формирования по меньшей мере одного RGB изображения и по меньшей мере одной карты глубины рабочей зоны промышленного манипулятора; направления полученного по меньшей мере одного RGB изображения и по меньшей мере одной карты глубины рабочей зоны промышленного манипулятора на вычислительное устройство; по меньшей мере одно вычислительное устройство, выполненное с возможностью формирования по меньшей мере одного виртуального графа проходимости промышленного манипулятора; сегментирования каждого полученного RGB изображения посредством использования глубокой сверточной нейронной сети, определяющей какой пиксель изображения относится к человеку; формирования облака точек по меньшей мере одного человека посредством преобразования каждого пикселя, относящегося к человеку, и удаленности этого пикселя в карте глубины; определения расстояния каждой трехмерной точки из сформированного облака точек до каждой вершины виртуального графа проходимости промышленного манипулятора; получения порогового значения допустимого расстояния между человеком и точками работы промышленного манипулятора; сравнения определенного расстояния каждой трехмерной точки облака точек и порогового значения, причем если расстояние меньше порогового, вершина графа вместе со всеми исходящими ребрами временно удаляется из виртуального графа проходимости и граф перестраивается.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0014] Признаки и преимущества настоящего технического решения станут очевидными из приведенного ниже подробного описания и прилагаемых чертежей, на которых:
[0015] Фиг. 1 иллюстрирует набор устройств системы, реализующей описываемый способ, и необходимые потоки данных между ними. Блоки с темным фоном являются обязательными для реализации способа, блоки с светлым фоном являются возможными участниками, позволяющими повысить точность определения положения динамических объектов - датчики, дополнительные камеры, повысить информативность работы системы - устройства оповещения и повысить производительность системы дополнительные манипуляторы. Линиями между блоками обозначены потоки данных между устройствами, а стрелками обозначены устройства потребители информации.
[0016] Фиг. 2-3 иллюстрируют архитектуру работы системы 110 - вершина графа, 120 - манипулятор, 130.а - ребро графа, 130.б - исключенное ребро графа, 140 - рабочая зона робота, 150.а - виртуальная сфера безопасности, 150.б - виртуальная сфера безопасности с учетом перемещения человека D, 160.а - предполагаемое положение человека, 160.б - текущее положение человека, 170 - камера.
[0017] Фиг. 4 иллюстрирует возможные варианты перемещения манипулятору по участку графа, с учетом направленности ребер графа. 120 - манипулятор, 110 - вершина графа, 130.а - ребро графа, 180.а - первый вариант перемещения, 180.б - второй вариант перемещения.
[0018] Фиг. 5 иллюстрирует составные части графа проходимости. 120 - манипулятор, 110.а - ключевая точка (вершина графа), 110.б - путевая точка (вершина графа), 131.а - однонаправленное ребро графа, 131.б - двунаправленное ребро графа.
[0019] Фиг. 6 иллюстрирует пример реализации способ предиктивного избегания столкновения манипулятора с человеком, показанный в виде блок-схемы.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0020] В контексте настоящего описания, если четко не указано иное, «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технологии. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные инструкции или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может являться одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».
[0021] В контексте настоящего описания, если четко не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, которое выполняет процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.
[0022] В контексте настоящего описания, если четко не указано иное, термин «информация» включает в себя любую информацию, которая может храниться в базе данных. Таким образом, информация включает в себя, среди прочего, аудиовизуальные произведения (изображения, видео, звукозаписи, презентации и т.д.), данные (данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.
[0023] При описании способа и системы предиктивного избегания столкновения манипулятора с человеком использованы следующие термины и определения, приведенные ниже для понимания сущности технического решения.
[0024] Предиктивное избегание столкновения - заблаговременное избегание столкновения основываясь на предположении о вероятности его возникновения с учетом запланированного пути перемещения.
[0025] Промышленный робот - автоматическая машина, состоящая из манипулятора и устройства программного управления его движением, предназначенная для замены человека при выполнении основных и вспомогательных операций в производственных процессах.
[0026] Манипулятор - совокупность пространственного рычажного механизма и системы приводов, осуществляющая под управлением программируемого автоматического устройства или человека-оператора действия (манипуляции), аналогичные действиям руки человека.
[0027] Рабочая зона промышленного манипулятора - расстояние от крайней точки рабочего органа в виде захватывающего устройства или технологического инструмента до основания манипулятора либо заданная, в устройство программного управления, человеком трехмерная область пространства.
[0028] Граф проходимости манипулятора - направленный граф, который в качестве вершин графа содержит координаты в трехмерном пространстве и необходимую устройству программного управления промышленного робота, информацию для достижения данного положения.
[0029] Промышленный манипулятор, выполняя заранее предопределенный алгоритм работы, например, перемещая объекты с одного конвейера на другой, перемещается в рамках его рабочей зоны, как показано на Фиг. 2-130. Реализация промышленного манипулятора в данном техническом решении может быть использована любая, не ограничиваясь.
[0030] Способ предиктивного избегания столкновения манипулятора с человеком подробно показан по вычислительным шагам на Фиг. 6 в виде блок-схемы и включает следующие шаги.
[0031] Шаг 610: формируют по меньшей мере один виртуальный граф проходимости промышленного манипулятора.
[0032] Для определения пути перемещения промышленного манипулятора, с использованием специализированных библиотек программного кода, исполняемых на локальном вычислительном устройстве, к которому подключен промышленный манипулятор, и датчиков, позволяющих получить информацию о состоянии объектов в рабочей зоне манипулятора, например датчики прерывания луча типа световые барьеры, позволяющие получить информацию о пересечении объектом линии, или датчики расстояния, позволяющие получать информацию о текущем расстоянии до объекта, формируют виртуальный граф проходимости, а его отображение в виде схемы или рисунка может быть выведено на дисплее вычислительного устройства, являющийся программной интерпретацией алгоритма работы промышленного манипулятора, как показано на Фиг. 3-110, 130.а.
[0033] В качестве промышленного манипулятора, используемого в данном техническом решении, может использоваться любой манипулятор, например, мобильный манипулятор на приводном основании, или подвесной потолочный манипулятор, или пневмо-управляемый промышленный манипулятор с жестким рычажным механизмом и т.д., не ограничиваясь.
[0034] Граф формируется заранее, путем ввода координат и связей пользователем, например запись в файл структуры типа JSON списка именованных координат в трехмерном пространстве с необходимыми параметрами действий, например «открыть захват на заданную величину», и списка связей между именованными координатами с необходимыми флагами направления и параметрами перемещения, например скорость движения, ускорение движения, ограничение на применяемое усилие, вид движения (например вдоль линии, аппроксимируя движение по скорости углов поворота звеньев, по окружности), который используется программа управления промышленным роботом, либо с помощью библиотек программного кода, позволяющих автоматизировать данный процесс, на этапе проектирования работы промышленного манипулятора для решения конкретной задачи выполнения полезной работы. Некоторые способы, например, описываемый способ, изменения или генерирования графа проходимости, заложенные в алгоритм работы библиотек программного кода также позволяют генерировать граф проходимости как полностью, так и частично, изменяя координаты или параметры действий узлов графа, изменяя направление или параметры перемещения ребер графа в процессе работы манипулятора для достижения большей производительности и безопасности при выполнении полезной работы. При этом при расчете графа используется информация как предопределенная на этапе проектирования, например ключевые координаты, действия необходимые для выполнения полезной работы, ограничения рабочей зоны, ограничения скорости перемещения, ограничения ускорения, так и информация, полученная в процессе работы манипулятора с использованием внешних датчиков, предоставляющих информацию об изменении положения и физических параметров объектов, с которыми манипулятор взаимодействует, либо которые могут находится на пересечении с его траекториями перемещения согласно графу проходимости. Возможные варианты перемещения манипулятора между вершинами графа задаются ребрами, соединяющими вершины графа. При этом ребра графа могут быть однонаправленным, допускающим перемещение между вершинами графа только в одну сторону и двунаправленным, допускающим прямое и обратное перемещение между связываемыми вершинами графа.
[0035] Граф проходимости промышленного манипулятора рассчитывается на этапе проектирования системы. В первую очередь в трехмерном пространстве относительно выбранной системы координат, например, базы или места крепления промышленного манипулятора, задаются ключевые точки (являющиеся вершинами графа), в которых промышленный манипулятор должен совершать полезные действия (в качестве примера такими действиями могут быть захват объектов/ манипуляция с объектами/ сварка и т.д.). Затем, в зависимости от наличия и положения посторонних статических объектов вокруг манипулятора (конвейер, линия подачи, стойка промышленного манипулятора), в полуавтоматическом режиме генерируются путевые точки, также являющиеся вершинами графа, которые необходимы для построения путей перемещения между ключевыми точками. Все возможные варианты перемещения манипулятора между вершинами графа (ребра графа) генерируются автоматически, соединяя все вершины графа.
[0036] Промышленный манипулятор перемещается между ключевыми точками графа, необходимыми для совершения полезной работы. В некоторых вариантах реализации промышленный манипулятор перемещается циклически или может перемещаться по изменяемому во времени маршруту на основании измеряемых параметров (например, приближение человека).
[0037] Шаг 620: получают по меньшей мере одно RGB изображение и по меньшей мере одну карту глубины из по меньшей мере одной камеры, направленной на рабочую зону промышленного манипулятора.
[0038] На рабочую зону манипулятора направлено не менее одной оптической камеры (Фиг. 3-170). В качестве оптических камер используются камеры, предоставляющие RGB изображение и карту глубины (дальность до объектов, находящихся в рабочей зоне), которая используется далее для анализа местоположения препятствий относительно позиции промышленного манипулятора.
[0039] Карта глубины представляет собой двумерное одноканальное изображение, содержащее информацию о расстоянии от плоскости сенсора (или камеры) до объектов сцены. Она создается, например, с помощью активных или пассивных 3D сканеров, например, системой Microsoft Kinect, которая состоит из инфракрасного проектора, RGB камеры и датчика глубины. Оценка расстояния до различных точек сцены производится с помощью измерения относительного смещения точек, проецируемых проектором на изображении с инфракрасной камеры. В ряде случаев спроецированные точки могут быть не найдены, что приводит к появлению дефектов - это могут быть потерянные и искаженные значения глубины, случайный шум, неравномерные края и поверхности объектов, а также неверно измеренные значения глубины для некоторых материалов с зеркальными или мелкозернистыми поверхностями. В уровне техники существует множество методов заполнения областей карты глубины, которые основаны на алгоритмах реконструкции изображений.
[0040] Шаг 630: сегментируют каждое полученное RGB изображение посредством использования глубокой сверточной нейронной сети, определяющей какой пиксель изображения относится к человеку.
[0041] Используя эти данные (RGB и карту глубины), алгоритм компьютерного зрения, основанный на глубоких сверточных нейронных сетях и описанный в источнике информации [1], использует в качестве входных данных RGB изображение с камеры, сегментирует входное изображение, определяя какие пиксели из общего набора входного изображения относятся к человеку или нескольким (если таковой присутствует в зоне видимости камеры). Под сегментированием понимается применение обученной нейронной сети, получающей на входе RGB изображение, а на выходе формирующую то же изображение, с попиксельно помеченной принадлежностью пикселя к тому или иному классу (человек, кот, поезд, компьютер и т.д.). Также возможно использование алгоритма, основанного на источнике информации [2], использующего в качестве входных данных RGB изображение и карту глубины, в результате дающего информацию о ограничивающих параллелепипедах (параллелепипед, описанный вокруг объекта) каждого человека, присутствующего в кадре (англ. термин «bounding box»).
[0042] Алгоритм сопоставления каждого пикселя изображения из сегментированной RGB картинки, относящийся к человеку, и удаленности этого пикселя в карте глубины, преобразовывает каждый пиксель, относящийся к человеку, преобразуется в трехмерную точку согласно формуле:
где u - индекс пикселя по оси x, v - индекс пикселя по оси у,
x, y, z - положение преобразованной точки в 3D пространстве, k - внутренняя матрица (англ. «intrinsic matrix») камеры, получаемая в результате калибровки камеры, или получаемая от производителя камеры, d(u,v) - дальность соответствующего пикселя на карте глубины.
[0043] Шаг 640: формируют облако точек по меньшей мере одного человека посредством преобразования каждого пикселя, относящегося к человеку, и удаленности этого пикселя в карте глубины.
[0044] Поэлементно сопоставляя каждый пиксель, относящийся к человеку и удаленности этого пикселя в карте глубины, получают представление человека (в случае его попадания в зону видимости камеры) в виде облака точек (англ. «point cloud»).
[0045] В некоторых вариантах реализации может использоваться обработка облака точек, в частности удаление «мусорных» точек, вызванных помехами при съемке, удаление перемещающихся объектов и т.п.
[0046] В некоторых вариантах реализации изобретения осуществляют импорт точек из популярных форматов обмена (LAS, BIN, PTS, РТХ, PCD, XYZ).
[0047] Шаг 650: определяют расстояние каждой трехмерной точки из сформированного облака точек до каждой вершины виртуального графа проходимости промышленного манипулятора.
[0048] Алгоритм управления виртуальным графом, получая на вход облака точек, проверяет расстояние каждой трехмерной точки, с учетом предположения о движении человека, основываясь на предыдущем положении человека и параметре D (как показано на Фиг. 2) - расстояние которое человек прошел с предыдущего цикла алгоритма, из облака точек, до каждой вершины виртуального графа, сравнивая это расстояние с пороговым значением.
[0049] Шаг 660: получают пороговое значение допустимого расстояния между человеком и точками работы промышленного манипулятора.
[0050] Данное значение (например, в диапазоне 850 мм - 1100 мм), определяется ГОСТ ISO 13857-2012, и считается безопасным для человека. В некоторых вариантах реализации технического решения данное пороговое значение может изменяться в процессе работы технического решения, или задаваться заранее и не изменяться в процессе работы промышленного манипулятора.
[0051] Шаг 670: сравнивают определенное расстояние каждой трехмерной точки облака точек и пороговое значение, причем если расстояние меньше порогового, вершина графа вместе со всеми исходящими ребрами временно удаляется из виртуального графа проходимости и граф перестраивается
[0052] Если расстояние меньше порогового значения - вершина графа вместе со всем исходящими ребрами временно удаляются из виртуального графа проходимости (остаются только те вершины и ребра, которые считаются безопасными, т.е. расстояние до которых больше порога), восстанавливаясь только в том случае, если в последующих итерациях/циклах работы алгоритма не будет выполнено условие, приведшее эту вершину к удалению, как показано на Фиг 3.а, Фиг 3.б. Тем самым исключается возможность перемещения манипулятора по опасной для человека траектории и столкновения промышленного манипулятора с человеком, сохраняется при этом частичная производительность, позволяющая перемещаться манипулятору по той части виртуального графа, которая не вошла в опасную зону для человека, либо перемещаться по динамически сгенерированной части графа или созданному новому графу при помощи специализированной библиотеки программного кода на основании полученной, в ходе работы манипулятора, информации от датчиков, расположенных в рабочей зоны и выполнять полезную работу используя не исключенные вершины и ребра виртуального графа в качестве навигации при достижении необходимых для выполнения работы координат.
[0053] При удалении вершин графа, либо ребер, соединяющих вершины графа, может использоваться свето-шумовая сигнализация, оповещающая человека об изменении траектории движения манипулятора. Свето-шумовая сигнализация может включать в себя: сигнализацию каким-либо звуком, изменение цвета поверхности, видимой человеку, находящемуся в рабочей зоне манипулятора, выводом текущего состояния графа проходимости на экран монитора, проецированием текущего состояния графа проходимости при помощи проектора.
ИСПОЛЬЗУЕМЫЕ ИСТОЧНИКИ ИНФОРМАЦИИ
[0054] 1. Chen L.С. et al. Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs // IEEE transactions on pattern analysis and machine intelligence. - 2018. - T. 40. - №. 4. - C. 834-848.
[0055] 2. Munaro M., Menegatti E. Fast RGB-D people tracking for service robots // Autonomous Robots. - 2014. - T. 37. - №. 3. - C. 227-242.