СПОСОБ И СИСТЕМА ОПРЕДЕЛЕНИЯ МЕСТОПОЛОЖЕНИЯ СКЛАДСКИХ ПАЛЛЕТ НА ОСНОВЕ ИЗОБРАЖЕНИЙ ТРЕХМЕРНЫХ ДАТЧИКОВ
METHOD AND SYSTEM FOR DETERMINING LOCATION OF WAREHOUSE PALLETS BASED ON IMAGES OF THREE-DIMENSIONAL SENSORS

ОБЛАСТЬ ТЕХНИКИ
[1] Данное техническое решение в целом относится к области вычислительной техники, в частности к способам и системам обнаружения паллет в облаке точек и вычисления их координат.
УРОВЕНЬ ТЕХНИКИ
[2] В текущем уровне техники не выявлено аналогов к данному техническому решению. Актуальность технического решения появилась лишь в последние годы в связи с появлением новых технологий распознавания трехмерной сцены и удешевлением аппаратуры, необходимой для экономически целесообразной автоматизации логистических процессов на не автоматизированных складах.
[3] Единственным выявленным похожим решением в уровне техники является способ от американской компании Love Park Robotics: «Real-Time Pallet Tracking in 3D with Time-of-Flight Depth Sensors» (источник - официальный сайт компании: http://loveparkrobotics.com/?p=1041). Демонстрируемое решение находится на стадии прототипа; компания планирует выводить технологию на рынок, информация о способе ее реализации не разглашается.
[4] На рекламном видео показано распознавание пустой паллеты, стоящей отдельно от других предметов и развернутой к камере стороной для вилочного захвата. Демонстрируется сопровождение паллеты на дистанциях от 1,8 до 2,2 метра и при небольшом повороте камеры. Визуализация показывает выделение фронтальных участков паллеты (шашки, верхнюю и нижнюю планку), что позволяет считать, что способ использует их для локализации. Однако не показана способность способа детектировать паллету на дистанции менее 1.8 м или более 2.2 м, детектировать повернутую паллету, паллету в пленке и паллету с грузом, детектировать паллеты разных видов, выделять паллету из окружения и обрабатывать случаи плотной установки паллет. Нет оснований считать показанное решение промышленно применимым.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[5] Данное техническое решение направлено на устранение недостатков, присущих существующим техническим решениям.
[6] Технической задачей в данном техническом решении является обнаружение паллеты в облаке точек и вычисление ее координат.
[7] Техническим результатом, достигаемым в данном техническом решении, является повышение точности и скорости автоматического обнаружения паллеты.
[8] Указанный технический результат достигается благодаря способу определения местоположения складских паллет на основе изображений трехмерных датчиков, характеризующийся тем, что для определения местоположения паллеты получают облако точек от по меньшей мере одного трехмерного датчика; осуществляют фильтрацию полученных на предыдущем шаге точек, оставляя только те, которые лежат на фронтальных поверхностях объектов; выполняют проекцию отфильтрованных точек на вертикальную плоскость, получая матрицу проекции; осуществляют локализацию фронта паллеты на матрице проекции, полученной на предыдущем шаге; аппроксимируют фронт паллеты отфильтрованными точками облака точек, лежащими в области локализованного фронта паллеты; определяют координаты складской паллеты на основании результатов аппроксимации фронта паллеты, полученных на предыдущем шаге.
[9] В некоторых вариантах осуществления трехмерным датчиком является времяпролетный датчик, или активная и пассивная стереокамера, или триангуляционный сканер, или лидар.
[10] В некоторых вариантах осуществления трехмерный датчик перемещается в процессе работы.
[11] В некоторых вариантах осуществления при фильтрации облака точек используют способы выделения плоскостей в облаке точек.
[12] В некоторых вариантах осуществления при локализации фронта паллета на матрице проекции паллеты, используют маску профиля паллеты.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[13] Признаки и преимущества настоящего изобретения станут очевидными из приведенного ниже подробного описания технического решения и прилагаемых чертежей, на которых:
[14] Фиг. 1 показывает основной принцип функционирования одного из классов трехмерных датчиков - времяпролетных камер.
[15] Фиг. 2 показывает пример сцены с искомой паллетой и тремя посторонними объектами различных форм, также показана базовая система координат (xyz) и искомые координаты паллеты: X, Y, Z.
[16] Фиг. 3 показывает выделение фронтальных поверхностей объектов на примере сцены из Фиг. 2.
[17] Фиг. 4 показывает преобразование фронтальных поверхностей объектов для получения матрицы проекции.
[18] Фиг. 5 показывает получение масок проекций паллеты.
[19] Фиг. 6 показывает пример осуществления способа определения местоположения складских паллет на основе изображений трехмерных датчиков;
[20] Фиг. 7 показывает пример осуществления карты откликов при поиске паллеты.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[21] Данное техническое решение может быть реализовано в виде системы, осуществляющей выполнение инструкций для реализации вышеупомянутого способа.
[22] Техническое решение может быть реализовано в виде распределенной в пространстве системы.
Ниже будут описаны термины и понятия, необходимые для осуществления настоящего технического решения.
[23] Система - это компьютерная система, ЭВМ (электронно-вычислительная машина), СЧПУ (система с числовым программным управлением), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять определенную последовательность операций (действий, инструкций).
[24] Вычислительное устройство - это устройство, под которым может пониматься удаленный или локальный контроллер, или микроконтроллер, или ЭВМ, или ПЛК, или центральный процессор, или графический процессор, исполняющий машинные инструкции (программы).
[25] Устройство управления - устройство, осуществляющее управление процессами реализации способа. Может быть вычислительным устройством.
[26] Устройства хранения - это устройства хранения данных, в роли которых могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.
[27] Программа - последовательность инструкций, предназначенных для исполнения устройством управления или вычислительным устройством.
[28] На Фиг. 8 показана блок-схема способа определения местоположения складских паллет на основе изображений трехмерных датчиков, в котором:
[29] Шаг 101: получают облако точек паллеты от по меньшей мере одного трехмерного датчика;
[30] В качестве трехмерного датчика могут использоваться устройства, основанные на различных физических принципах: времяпролетные датчики, активные и пассивные стереокамеры, триангуляционные сканеры, лидары и прочие.
[31] Трехмерный датчик может в процессе работы перемещаться в пространстве. В этом случае для осуществления технического решения движение датчика компенсируется, чтобы получаемые входные данные представляли собой облако точек, отражающее сцену - например, показания датчика представляются в системе координат, неподвижной относительно сцены.
[32] Облако точек состоит из трехмерных векторов в заданной системе координат, каждый из которых соответствует малой видимой области сцены.
[33] Шаг 102: осуществляют фильтрацию полученных на предыдущем шаге точек, оставляя только те, которые лежат на фронтальных поверхностях объектов.
[34] Фильтрация облака точек производится для отбрасывания точек, гарантированно не лежащих на фронтальной плоскости паллеты. Для этого используются способы выделения плоскостей в облаке точек, известные из уровня техники, например, локальный RANSAC (Random Sample Consensus), классификатор на картах градиентов, бинаризация по карте нормалей или другие.
[35] Шаг 103: выполняют проекцию точек, прошедших фильтрацию, на вертикальную плоскость, получая матрицу проекции паллеты.
[36] Угол поворота проекционной плоскости в горизонтальной плоскости может определяться априорной информацией об ожидаемом повороте паллеты или варьироваться итерационно в заданных пределах. В простейшем случае он нулевой - используется проекционная плоскость камеры.
[37] Точки, прошедшие фильтрацию, ортогонально проецируются на проекционную плоскость, их координаты дискретизируются и представляются в виде координат элементов матрицы проекции. Для дискретизации проекционная плоскость разбивается прямоугольной сеткой с заранее заданным постоянным шагом - проекционным разрешением. Ячейки этой сетки соответствуют элементам матрицы проекции. Каждой точке облака, таким образом, соответствует определенная ячейка сетки на проекционной плоскости и определенный элемент матрицы проекции.
[38] Для ячеек сетки, построенной на предыдущем шаге, вводится функционал, характеризующий качество аппроксимации плоскостью спроецированных в них точек. В простейшем случае это булева функция: 1 - спроецированные точки есть, 0 - точек нет. Значения функционала для ячеек заносятся в соответствующие элементы матрицы проекции.
[39] Шаг 104: осуществляют локализацию фронта паллеты на матрице проекции, полученной на предыдущем шаге.
[40] Для локализации фронта паллеты или его элементов используются маски профиля паллеты - матрицы одного размера, описывающие профиль паллеты. Размер маски профиля определяется размером профиля паллеты и ранее принятым проекционным разрешением. Элемент маски профиля соответствует прямоугольному участку на фронтальной плоскости паллеты.
[41] Матрицы профиля паллеты описывают различные элементы паллеты: шашки, доску настила, отверстия для вилочного захвата, и заполняются ненулевыми элементами в областях, соответствующих описываемым ими элементам паллеты. В простейшем случае используется всего одна маска профиля паллеты с отрицательными элементами на отверстиях для вилочного захвата и положительными в остальных областях.
[42] Для матрицы проекции и каждой из масок профиля паллеты, полученных на предыдущем шаге, методом цифровой корреляции изображений получают карту откликов - массив, составленный из коэффициентов взаимной корреляции элементов матрицы проекции и рассматриваемой маски профиля паллеты.
[43] Множество двумерных карт отклика, полученных на предыдущем шаге, можно представить в виде трехмерной карты отклика, размерность элемента которой равна числу используемых масок профиля. Проекция элемента такой карты на заданный вектор образует скалярный отклик элемента матрицы проекции. Выполняя такую проекцию для всех элементов, получают итоговую карту отклика.
[44] Локальные максимумы итоговой карты отклика, полученной на предыдущем шаге, соответствуют перспективным локализациям паллеты - областям матрицы проекции, наилучшим образом совпадающим с маской профиля паллеты. Для определения положения паллеты используется наилучшая локализация паллеты - область матрицы проекции, соответствующая глобальному максимуму итоговой карты отклика.
[45] Шаг 105: аппроксимируют фронт паллеты отфильтрованными точками облака точек, лежащими в области локализованного фронта паллеты.
[46] Помещают маску профиля паллеты на наилучшую локализацию паллеты и выделяют области маски профиля паллеты, описывающие шашки паллеты. Выделяют покрываемые ими элементы матрицы проекции и ячейки на проекционной плоскости, соответствующие этим элементам. Затем выделяют точки входного облака точек, спроецированные в выделенные ячейки, и используют эти точки для определения положения паллеты.
[47] Аппроксимируют плоскостью точки, выделенные на предыдущем шаге: отсеивают выбросы, используя RANSAC или другой робастный способ, и минимизируют отклонение остальных точек от искомой плоскости, варьируя ее положение. Для минимизации может быть использован алгоритм Левенберга-Марквардта, алгоритм Ньютона или любой другой алгоритм численной оптимизации, известный из уровня техники.
[48] Шаг 106: определяют координаты складской паллеты на основании результатов аппроксимации фронта паллеты, полученных на предыдущем шаге.
[49] Определяют координаты центра проекции паллеты - геометрического центра области матрицы проекции, соответствующей наилучшей локализации паллеты - в координатах проекционной плоскости. Данные координаты описывают боковое и вертикальное смещение паллеты в координатах проекционной плоскости.
[50] Вычисляют проекцию центра проекции паллеты на вычисленную плоскость фронта паллеты. Расстояние от полученной точки до проекционной плоскости определяет расстояние от паллеты до проекционной плоскости.
[51] Переводят смещение паллеты относительно проекционной плоскости, вычисленное на предыдущих шагах, в исходную систему координат. Переводят поворот плоскости фронта паллеты относительно проекционной плоскости в исходную систему координат.
ПРИМЕРЫ ОСУЩЕСТВЛЕНИЯ
На Фиг. 2 приведен пример сцены, содержащей паллету с грузом (по центру), коробку без паллеты (слева) и бочку (справа).
1
2
3
4
5
6
7
8
9
1…9
Точки P, P, P лежат на фронтальной части паллеты, Р - на крышке паллеты, Р - на фронтальной поверхности груза, стоящего на полу, Р и Р - на бочке, Р - на полу перед паллетой, Р - на грузе над паллетой. Допустим, точки P имеют координаты в системе координат камеры XYZ
1
T
Р=[2 -0.3 -0.4],
2
T
P=[1.8 -0.6 -0.4],
3
T
Р=[2.2 0 -0.4],
4
T
Р=[2.5 -0.3 -0.35],
5
T
Р=[2.2 0.6 -0.2],
6
T
Р=[1.8-1.2 -0.1],
7
T
Р=[1.7 -1.3 -0.2],
8
T
P=[1.6 -0.4 -0,4],
9
T
Р=[2.2 0 -0.39].
Для фильтрации облака точек используется карта нормалей, описывающая ориентацию окрестностей точек облака: она состоит из единичных векторов, направленных перпендикулярно поверхностям, задаваемым точками облака. Для построения такого вектора в каждой точке облака вычисляются частные производные по нормализованным координатам, результат их векторного произведения нормируется и принимается в качестве нормали. Для вычисления частных производных применяются численные методы, например метод Собеля.
1…9
Допустим, нормали в рассматриваемых точках P таковы:
1
2
N=N=[-0.95 0.31 0],
3
N=[-0.93 0.31 0.2],
4
8
N=N=[0 0 1],
5
N=[-1 0 0],
6
N=[0 0.10],
7
9
N=N=[-0.85 0.53 0].
1-3
5
7
9
Фронтальными считаются поверхности, нормаль к которым имеет модуль глубинной составляющей X не ниже порогового значения: в данном примере осуществления для заранее заданного порога 0.8 проверку пройдут только точки Р, Р, Р иР - они будут спроецированы.
1
1
2
3
5
7
9
При проецировании на проекционную плоскость (Фиг. 2) координаты Y и Z точек дискретизируются в соответствии с принятым проекционным разрешением s и переводятся в координаты элементов матрицы проекции. Так, при s=0.01 м / пкс и окне проекции размером 6×3 метра с серединой в начале координат матрица проекции будет иметь разрешение [600×300], а точке P будет соответствовать элемент с координатами M=[270 110] (точка [0 0] находится в левом нижнем углу). Аналогично, точкам Р, Р, P, Р и Р будут соответствовать точки
2
T
М=[360 100],
3
T
М=[300 100],
5
T
М=[240 130],
7
T
М=[430 130],
9
T
М=[300 100].
Данные элементы и другие элементы, соответствующие фронтальным поверхностям, в матрице проекции будут единичными, а остальные - нулевыми (Фиг. 3).
Для локализации фронта паллеты на матрице проекции используются маски профиля, каждая из которых соответствует структурному элементу профиля поддона. Например, для этого используются пять масок: три для шашек и две для отверстий для вилочного захвата. При ширине профиля в 800 мм, высоте в 100 мм и проекционном разрешении 0.01 маски профиля имеют разрешение [80×10] элементов.
Область маски профиля паллеты, соответствующая описываемому ей материальному элементу паллеты, заполняется положительными значениями, а соответствующая его отсутствию - отрицательными, остальная часть маски заполняется нулями (Фиг. 5). Заполняющие значения выбраны таким образом, чтобы обеспечить единичный модуль их суммы: так, например, центральной шашке шириной 80 мм соответствует маска с прямоугольной областью [8×10], каждый элемент которой равен 0.0125.
Корреляция матрицы проекции с пятью заданными масками профиля формирует пять карт отклика. Например, большие значения на карте отклика для центральной шашки паллеты будут на заполненных областях, а на карте для левого отверстия - на слабо заполненных областях. Карта откликов для левого бруска будет напоминать карту отклика для центрального, сдвинутую вправо на половину ширины маски профиля.
Отклик элемента маски проекции может быть представлен в виде пятимерного вектора в пространстве заполненностей. Проекция этого вектора на заданный вектор (его координаты - параметры алгоритма) образует итоговый отклик, для данной точки описывающий меру соответствия ее окрестности шаблону паллеты.
Локальные максимумы итоговой карты откликов по очереди перебираются до достижения условия окончания поиска (максимальное число итераций или минимальная величина очередного максимума) или до успешного обнаружения паллеты.
1-3
9
3
Для аппроксимации фронта паллеты в облаке точек используются точки облака, соответствующие элементам матрицы проекции, совпавшим с положительными элементами масок профиля (Фиг. 7). Так, в аппроксимации будут участвовать точки Р, лежащие на искомом профиле, и Р, лежащая вне профиля, но попавшая в ту же ячейку проекционной плоскости, что Р.
1-3
9
При аппроксимации методом RANSAC с большой вероятностью будет принята гипотеза, которой будут хорошо удовлетворять точки Р и плохо - точка Р, в результате чего последняя будет исключена из рассмотрения. Минимизация отклонений оставшихся точек достигается решением СЛАУ
(P-C)⋅n=0,
T
где P - матрица, строки которой представляют собой координаты точек облака, C - матрица, составленная из строк c - координат центра масс используемых точек, n - искомая нормаль к плоскости. Определив c и решив данную систему, получим
T
c=[2 -0.3 -0.4],
T
n=[-0.95 0.31 0],
что полностью описывает положение плоскости относительно камеры. Для проверки возможности и безопасности захвата обнаруженной паллеты проводится ряд дополнительных проверок. Так, например, проверяется наличие точек облака непосредственно над отверстиями для вилочного захвата паллеты - до этого момента способ мог принять за паллету отдельно стоящие кубики. Проверяется разреженность облака в отверстиях для вилочного захвата - наличие там посторонних предметов сделает захват опасным. Наконец, участок пола перед паллетой проверяется на отсутствие мелких объектов и неровностей.
Если локализованная и аппроксимированная паллета проходит эти проверки, она принимается в качестве результата работы технического решения и захватывается роботом.