Американский Научный Журнал ПОСТРОЕНИЕ ОБЛАКА ТОЧЕК ПО ДАННЫМ СТЕРЕОПАРЫ, ЛИДАРА И РАСПОЗНАВАНИЕ ОБЪЕКТОВ В НЕМ

Для осуществления захвата роботу необходимо знать позицию и ориентацию объекта в пространстве. Чтобы ее определить, необходимо с помощью 3D-сканера, который располагается в голове робота, построить облако точек. Это набор вершин в трехмерном пространстве, который описывает находящиеся перед роботом объекты. Скачать в формате PDF
American Scientific Journal № ( 32) / 2019 51

ПОСТРОЕНИЕ ОБЛАКА ТО ЧЕК ПО ДАННЫМ СТЕРЕО ПАРЫ, ЛИДАРА И РАСПО ЗНАВАНИЕ
ОБЪЕКТОВ В НЕМ

Попков Е.В., Котлобай В.Н., Спирин В.В., Шарамет А.А.

Введение
Для осуществления захв ата роботу
необходимо знать позицию и ориентацию объекта
в пространстве. Чтобы ее определить, необходимо
с помощью 3 D-сканера, который располагается в
голове робота, построить облако точек. Это набор
вершин в трехмерном прос транстве, который
описывает нахо дящиеся перед роботом объекты.

Рис 1. Облако точек.

В качестве 3 D-сканера для построения облака
точек может использоваться:
Лидар [1]
Стереопара [2]
Сенсор «Кинект» [3]
Сенсор, состоящий из лидара и стереопары [4]
Затем в облаке точек происходит
расп ознавание образов на основе имеющихся в
памяти робота моделей. Подобно е распознавание
можно осуществить с помощью алгоритмов
библиотеки PCL (Point Cloud Library ),
искусственных нейронных сетей или эвристик. [5,
6] В данной работе рассматривается эвристичес кий
подход.
Система технического зрения
В данной работе для получения облака точек
используется стереопара, потому что с ее помощью
можно построить облако точек с погрешностью 3
мм на расстоянии 1 м. Этого будет достаточно для
решения поставленной задачи, потому что
манипулятор робота имеет длину около 60 см. С
помощью лида ра, как правило, строят облако точек
на более дальние дистанции. Лидары обладают
высокой стоимостью. Сенсор «Кинект» по
сравнению со стереопарой создает облако более
низкого качества, а также чувствителен к
ультрафиолетовому излучению, из -за чего
попадание прямых солнечных лучей его
«ослепляют».
Стереопара состоит из двух видеокамер,
расположенных таким образом, что их главные
оптические оси параллельны. Расстояние между
оптическими осями называется базисом
стереосистемы. Изменение базиса влияет на
дистанци ю, в пределах которой будет создаваться
облако точек.

Рис 2. Система технического зрения робота АР -600

52 American Scientific Journal № ( 32) / 20 19
Для получения изображений с камер
используется пакет ROS usb _cam . [12] Две USB
камеры будут работать с интерфейсом USB 3.0 в
любом случае. Если их подключать через
интерфейс USB 2.0, необходимо сделать это так,
чтобы разъемы подключались к разным USB -
контроллерам. У одного контроллера USB 2.0 не
хватает пропускной способности.
Пакет usb_cam создает два топика, которые
публикуют в систему ROS изображения в виде
массива байтов. У каждого сообщения есть
временная метка. Изображения синхронизируются
по временной метке в пакете pstreamer .

Рис 3. Изображ ения с левой и правой камер, получа емые с помощью узла usb _cam .

На основе двух изображений с левой и правой
камеры строится карта глубины: для каждой точки
на одном изображении выполняется поиск
соответствующей ей точки на другом изображении.
По полученно й паре точек выполняется
триангуляц ия, в результате которой
рассчитываются трехмерные координаты
прообраза исходных точек. Глубина равняется
расстоянию от плоскости камеры до точки -
прообраза. [7, 8]

Рис 4. Пример карт ы глубины

Совокупность точек -прообразов образует
облако точек, которое в формате PointCloud 2
публикуется в топик points .

American Scientific Journal № ( 32) / 2019 53

Рис 5. Облако точек

Для построения качественной карты глубины
необходимо выполнить калибровку камер.
Калибровка выполняется путем многократной
съемки некоторого калибровочного шаблона, на
котором можно выделить ключевые точки,
относительные расстояния между которыми
известны. На основе полученных данных численно
решаются уравнения, связывающие матрицы
камер, координаты проекций и положения
ключевых точек шаблона в пространстве. В
качестве шаблона примен яют шахматную доск у.
В библиотеке OpenCV реализован алгоритм
калибровки. На его основе создан пакет системы
ROS camera _calibration [13].

Рис 6. Камера снимает калибровочную шахматную доску, на которой алгоритм калибровки
распознает клю чевые точки.

Для того чтобы манипулятор робота не
сталкивался с объектами окружающего мира,
используется карта препятствий. Она строится
исходя из результатов лазерного сканирования
лидаром hokuyo urg -04lx. Это однолучевой сканер,
работающий в диапазоне о т 0.3 до 5 метров. Угол
обзора составляет 240 градусов. [14] Лидар
расположен на голове работа, поэтому для

54 American Scientific Journal № ( 32) / 20 19
построения карты препятствий необходимо
осуществить перемещение головы вверх -вниз.
В системе ROS используется пакет octomap .
[15] Он получает облако точек от лидара в формате
PointCloud 2 и производит их обработку и хранение.
Данные с лидара hokuyo поступает в виде
сообщений LaserScan . Для преобразования из
LaserScan в PointCloud 2 используется отдельный
узел.

Ри с 7. Карта препятствий, получаемая с помощью лидара (ц ветные кубики),
и облако точек со стереопары.

Эвристика распознавания образов
Входными данными алгоритма является
облако точек, полученное в результате обработки
изображений со стереопары. А также набо р
моделей, которые предстоит в этом облаке искать.
Мод ель представляется в виде набора
ключевых точек. Обязательно должна быть точка,
указывающая центр модели.

Рис 8. Ключевые точки модели цилиндра.

Остальные точки ра сполагаются на видимой
стороне объекта. Такой подход к представлению
моделей позволяет за давать и искать объекты,
симметричные относительно центральной точки.
В этом облаке содержится большое число
точек, но использоваться будут только те, которые
находятс я в конфигурационном пространстве
манипуляторов робота. Поэтому входные данные

American Scientific Journal № ( 32) / 2019 55

фильтруютс я по дистанции. Выбирается дистанция
не больше 1 м, потому что максимальная
дистанция, до которой может дотянуться
манипулятор робота, составляет 80 см.
Чаще всего, об ъекты располагаются на какой -
либо плоскости: стол, полка и т.д. Для уменьшения
числа расс матриваемых в процессе распознавания
точек можно применить алгоритм отсечения
плоскости.
Чтобы определить потенциальные области
скопления точек, предлагается произвести
кластеризацию облака по двум параметрам:
удаленность точек друг от друга и цветовой
при знак. Из произвольной точки пространства
запускается алгоритм поиска в ширину, который из
текущей точки u осуществляет переход в точку v
только в том случае, если расстояния между
точками u и v меньше параметры кластеризации
d_eps , а разница между цветовым признаком
текущей точки и рассматриваемого кластера
меньше r_eps , g_eps и b_eps по каждому каналу
соответственно. Точкам каждого найденного
кластера присваивается порядковый номер
кластера. Запоминается количество точек кластера.

Рис 9. Облако точек пос ле кластеризации

После выделения кластеров в облаке для
каждого кластера вычисляется центр, координаты
которого равны среднему арифметическому всех
точек по каждой координате. В найденный центр
кластера помещается модель и происходит подбор
оптимального по ложения модели относительно
кластера. Ключево й признак – наименьшее
расстояние между точками модели и
соответствующими точками облака.

56 American Scientific Journal № ( 32) / 20 19
Рис 10. Маленькие розовые точки – выделенный кластер. Синяя точка – центр кластера. Желтые
точки – ключевые точки модел и. Больши е розовые точки – наиболее близкие к модели точки облака.

Рис 11. Блок -схема алгоритма распознавания.

Для данной модели кластер может быть
исключен из рассмотрения, если количество точек
в нем слишком мало или слишком велико. Либо
велико расхож дение по цветовому признаку.
Результаты распознавания
Для тестирования системы распознавания
образов было выбрано три объекта: коробка для
автоматов, конденсатор и гравер. Было
произведено 10 попыток распознавания и
вычисления п озиции и ориентации объекта . 3 из 10
попыток можно признать успешными. Ошибка по
позиции в среднем составляла 2 -3 см. Ошибка по
ориентации – 20 градусов.
Вычисления производились на компьютере со
следующей конфигурацией.

American Scientific Journal № ( 32) / 2019 57

Таблица 1
Конфигурация компьютера для распознавания
Параметр Значение
Процессор Intel Core i3, 2 физ . ядра + 2 лог . ядра
ОЗУ 8 Гб
ПЗУ SSD 128 Гб
Видеокарта Интегрированная в процессор

В среднем, на распознавание было затрачено
29 секунд. Стоит отметить, что время
распознавания зависит от количества точек в
об лаке и количества моделей в базе знаний робота.

СПИСОК ЛИТЕРАТУРЫ
Yue X., Wu B., Seshia S. A., Keutzer K.,
Sangiovanni -Vincentelli A. L. A LiDA R Point Cloud
Generator: from a Virtual World to Autonomous
Driving. University of California, Berkeley, 2018
Mohand Chand H. Calibrating and Creating Point
Cloud from a Stereo Camera Setup Using OpenCV.
Department of Industrial System Engineering Asian
Institute of Technology Pathumthani, Thailand, 2016
Coscia P., Palmieri F. A.N., Castaldo F., Cavallo
A. 3 -D Han d Pose Estimation from Kinect's Point
Cloud Using Appearance Matching. Seconda
Universit ́a di Napoli (SUN ), 2016.
Перминов И.К. Разработка мод ели,
имитирующей работу видеокамер и лидара для
системы распознавания образов. Сборник статей
XV Международной н аучно -практической
конференции. В 2 ч. Ч. 1. С 11.
Aldoma A. 3D Object Recognition and 6DOF
Pose Estimation, 2013
Xiang Y., Schmidt T., Naraya nan V., Fox D.
PoseCNN: A Convolutional Neural Network for 6D
Object Pose Estimation in Cluttered Scenes. NVIDIA
Research, University of Washington, Carnegie Mellon
University, 2018
Hartley R. and Zisserman A. Multiple view
geometry in computer vision. Ca mbridge University
Press, 2004.
Bradski G., Kaehler A. Learning OpenCV.
O'Reilly Media, 2008
Mahtani A., Sanch ez L., Fernandez E., Martinez
A. Effective Robotics Programming with ROS. Packt
Publishing Ltd., 2016. C. 129
Joseph L. Mastering ROS for robot ics
programming. Packt Publishing Ltd., С. 115
SRDF // WIKI.ROS.ORG. [ Электрон . ресурс ].
Режим доступа: http ://wiki .ros .org /srdf (дата
обращения 14.05.2018)
Описание пакета usb _cam // WIKI .ROS .ORG .
[Электрон. ресурс]. Режим доступа:
http ://wiki .ros .org /usb _cam (дата обращения
14.0 5.2018)
Описание пакета camera _calibration //
WIKI .ROS .ORG . [Электрон. ресурс]. Режим
доступа: http ://wiki .ros .org /camera _calibration (дата
обращения 14.05.2018)
Scanning Laser Range Finder URG -04LX -UG01
// Specification. 2009
Описание пакета octomap // WIKI .ROS .ORG .
[Электрон. ресурс]. Режим доступа:
http ://wiki .ros .org /octomap (дата обращения
14.05.2018)
Joseph L. Mastering ROS for robotics
programming. Packt Publishing Ltd., С. 11 7