<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.2 20120330//EN"
        "http://jats.nlm.nih.gov/publishing/1.2/JATS-journalpublishing1.dtd">
<!--<?xml-stylesheet type="text/xsl" href="article.xsl"?>-->
<article article-type="research-article" dtd-version="1.2" xml:lang="en" xmlns:mml="http://www.w3.org/1998/Math/MathML"
         xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <front>
        <journal-meta>
            <journal-id journal-id-type="issn">2303-9868</journal-id>
            <journal-id journal-id-type="eissn">2227-6017</journal-id>
            <journal-title-group>
                <journal-title>Международный научно-исследовательский журнал</journal-title>
            </journal-title-group>
            <issn pub-type="epub">2303-9868</issn>
            <publisher>
                <publisher-name>ООО Цифра</publisher-name>
            </publisher>
        </journal-meta>
        <article-meta>
            <article-id pub-id-type="doi">10.60797/IRJ.2024.143.156</article-id>
            <article-categories>
                <subj-group>
                    <subject>Brief communication</subject>
                </subj-group>
            </article-categories>
            <title-group>
                <article-title>ОПРЕДЕЛЕНИЕ ПОЛОЖЕНИЯ РАБОЧЕГО ИНСТРУМЕНТА РОБОТА-МАНИПУЛЯТОРА С ПОМОЩЬЮ КАМЕРЫ И МАШИННОГО ЗРЕНИЯ
                </article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    
                    <name>
                        <surname>Мудрич</surname>
                        <given-names>Анна Бобановна</given-names>
                    </name>
                    <email>muanya@mail.ru</email>
                    <xref ref-type="aff" rid="aff-1">1</xref>

                </contrib><contrib contrib-type="author" corresp="yes">
                    <contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-3978-1484</contrib-id>
                    <name>
                        <surname>Рублева</surname>
                        <given-names>Елена Алексеевна</given-names>
                    </name>
                    <email>elena@erubleva.ru</email>
                    <xref ref-type="aff" rid="aff-2">2</xref>

                </contrib>
            </contrib-group>
            <aff id="aff-1"><label>1</label>Национальный исследовательский университет ИТМО</aff><aff id="aff-2"><label>2</label>Уральский федеральный университет имени первого Президента России Б.Н. Ельцина</aff>
            
        <pub-date publication-format="electronic" date-type="pub" iso-8601-date="2024-05-31">
            <day>31</day>
            <month>05</month>
            <year>2024</year>
        </pub-date>
        
            
        <pub-date pub-type="collection">
            <year>2024</year>
        </pub-date>
        
            <volume>8</volume>
            <issue>143</issue>
            <fpage>1</fpage>
            <lpage>8</lpage>
            <history>
                
        <date date-type="received" iso-8601-date="2024-05-22">
            <day>22</day>
            <month>05</month>
            <year>2024</year>
        </date>
        
                
        <date date-type="accepted" iso-8601-date="2024-05-22">
            <day>22</day>
            <month>05</month>
            <year>2024</year>
        </date>
        
            </history>
            <permissions>
                <copyright-statement>Copyright: &#x00A9; 2022 The Author(s)</copyright-statement>
                <copyright-year>2022</copyright-year>
                <license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open-access article distributed under the terms of the Creative Commons
                        Attribution 4.0 International License (CC-BY 4.0), which permits unrestricted use, distribution,
                        and reproduction in any medium, provided the original author and source are credited. See <uri
                                xlink:href="http://creativecommons.org/licenses/by/4.0/">
                            http://creativecommons.org/licenses/by/4.0/</uri>.
                    </license-p>
                </license>
            </permissions>
            <self-uri xlink:href="https://research-journal.org/archive/5-143-2024-may/10.60797/IRJ.2024.143.156"/>
            <abstract>
                <p>В статье рассматривается проблематика управления роботом-манипулятором и определения координат объектов в пространстве с использованием технологий машинного зрения. Главная задача исследования – разработка метода позиционирования рабочего инструмента манипулятора через анализ изображения камеры. Для описания модели робота и расчета движений применяется кинематический подход с параметрами Денавита-Хартенберга. В качестве практической реализации для определения отклонений, корректировки положения рабочего инструмента и написания программного кода используется OpenCV и Robot Operating System (ROS). Результаты обработки изображений с камеры выводятся в пользовательский интерфейс. Эксперименты проводились на небольшом настольном роботе-манипуляторе с параллельным механизмом.  В конечном итоге получается рабочее приложение, которое способно улучшить точность позиционирования роботизированных систем. Тем не менее для практического использования системы необходимо сначала провести калибровку оборудования и адаптировать камеры к условиям освещения.</p>
            </abstract>
            <kwd-group>
                <kwd>обработка изображений</kwd>
<kwd> машинное зрение</kwd>
<kwd> управление роботом-манипулятором</kwd>
<kwd> OpenCV</kwd>
</kwd-group>
        </article-meta>
    </front>
    <body> 
        
 
        
<sec>
	<title>HTML-content</title>
	<p>1. Введение</p>
	<p>Для решения различных задач движения робототехнических комплексов и определения координат предметов в пространстве в современных информационных науках наиболее эффективно применяются алгоритмы машинного зрения и алгоритмы глубокого машинного обучения. Они дают возможность распознать текущее положение предмета в пространстве, предсказать его дальнейшее движение и оптимальную траекторию перемещения. В исследовании алгоритмы машинного зрения применяются для решения практической задачи определения текущего положения рабочего инструмента робота-манипулятора после завершения роботом движения и возврата в исходную позицию. В случае наличия несоответствия рассчитывается отклонение по осям x, y, z для перемещения рабочего органа в правильное положение. Проблема возможного расхождения между фактическим положением рабочего органа и планируемым актуальна для проверки точности работы любого робота-манипулятора, не имеющего альтернативных механизмов, реализующих обратную связь (например, энкодеров на двигателях).</p>
	<p>2. Методы исследования</p>
	<p>2.1. Цели и задачи исследования</p>
	<p>Целью исследования является разработка системы корректировки положения рабочего инструмента робота-манипулятора с использованием камеры и алгоритмов машинного зрения. Конструкция робота представляет собой разомкнутую кинематическую цепь с параллельным механизмом. Для перемещения звеньев в пространстве используются шаговые двигатели стандарта NEMA17 с планетарным редуктором.</p>
	<p>Для определения фактического положения рабочего инструмента робота-манипулятора и вычисления отклонения текущего положения от исходного на основе полученных координат необходимо:</p>
	<p>Установить и подключить камеру, с которой будет считываться изображение;</p>
	<p>Обработать изображение с камеры;</p>
	<p>Исследовать библиотеку машинного зрения OpenCV [4];</p>
	<p>Разработать методику определения положения рабочего инструмента робота-манипулятора с помощью OpenCV;</p>
	<p>Выполнить расчеты и вывести результаты в пользовательский интерфейс;</p>
	<p>Протестировать написанное программное обеспечение.</p>
	<fig id="F1">
		<label>Figure 1</label>
		<caption>
			<p>Симуляция модели</p>
		</caption>
		<alt-text>Симуляция модели</alt-text>
		<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/media/images/2024-05-22/c9e81224-70ee-46d7-8cf8-70251e935ad6.png"/>
	</fig>
	<p>Исследование проводилось на модели робота-манипулятора (рисунок 1). Для написания программного обеспечения использовался фреймворк Robot Operating System (ROS) [3], [6].</p>
	<p>Кинематическая схема модели робота-манипулятора</p>
	<fig id="F2">
		<label>Figure 2</label>
		<caption>
			<p>Кинематическая схема модели робота-манипулятора</p>
		</caption>
		<alt-text>Кинематическая схема модели робота-манипулятора</alt-text>
		<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/media/images/2024-05-22/f09dafb7-e6f5-4e60-9470-4727ba98798c.png"/>
	</fig>
	<p>Кинематическая схема модели робота-манипулятора представлена на рисунке 2 [7]. Все звенья модели являются вращательными. За счет привязки координат к звеньям манипулятора используются параметры Денавита-Хартенберга: то есть вместо 6 координат (3 по положению и 3 по ориентации) нужны только 4 (таблица 1).</p>
	<table-wrap id="T1">
		<label>Table 1</label>
		<caption>
			<p> Параметры Денавита-Хартенберга</p>
		</caption>
		<table>
			<tr>
				<td>Link, i</td>
				<td>i</td>
				<td>i</td>
				<td>i</td>
				<td>i</td>
			</tr>
			<tr>
				<td>1</td>
				<td>0</td>
				<td>π/2</td>
				<td>1</td>
				<td>1</td>
			</tr>
			<tr>
				<td>2</td>
				<td>a2</td>
				<td>0</td>
				<td>0</td>
				<td>2</td>
			</tr>
			<tr>
				<td>3</td>
				<td>a3</td>
				<td>0</td>
				<td>0</td>
				<td>3</td>
			</tr>
			<tr>
				<td>4</td>
				<td>0</td>
				<td>π/2</td>
				<td>0</td>
				<td>+ π/2</td>
			</tr>
			<tr>
				<td>5</td>
				<td>0</td>
				<td>0</td>
				<td>5</td>
				<td>5</td>
			</tr>
		</table>
	</table-wrap>
	<fig id="F3">
		<label>Figure 3</label>
		<caption>
			<p>Кинематическая схема модели робота-манипулятора</p>
		</caption>
		<alt-text>Кинематическая схема модели робота-манипулятора</alt-text>
		<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/media/images/2024-05-22/d74d1fcd-6e3f-4e73-b493-0a9d11f20912.png"/>
	</fig>
	<fig id="F4">
		<label>Figure 4</label>
		<caption>
			<p>Геометрическая схема робота</p>
		</caption>
		<alt-text>Геометрическая схема робота</alt-text>
		<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/media/images/2024-05-22/9ae832a2-fbd7-4dcd-8c8e-68130ac6c0dc.png"/>
	</fig>
	<p>Глобальная система координат модели изображена на рисунке 3.Смещение конечной системы координат относительно базовой произведено с помощью матричных однородных преобразований.Решение задачи обратной кинематики можно разделить на 2 части:</p>
	<p>решение задачи обратной кинематики по положению;</p>
	<p>решение задачи обратной кинематики по ориентации [10].</p>
	<p>В рамках исследования была решена только одна задача обратной кинематики по положению – задача поиска обобщенных координат при известных координатах положения рабочего инструмента с помощью геометрической схемы модели робота (рисунок 4). Это позволило вычислить углы между звеньями каждой кинематической пары [5], [8].</p>
	<p>Техническое зрение</p>
	<p>В проекте используется функциональная схема аппаратной части робототехнического комплекса с сервером данных и системой технического зрения [11].</p>
	<p>Для работы с изображением была произведена бинаризация исходного изображения: уменьшено количество информации, полученной с камеры. Исходное изображение с камеры до преобразований по умолчанию сохраняется в формате RGB, неудобном для последующего использования и обработки. Для очищения изображения от фона производится его преобразование в формат HSV (Hue, Saturation, Value – тон, насыщенность, значение) и определяются верхний и нижний пределы заданного цвета. На основе полученных значений проводится последующая обработка изображения.</p>
	<p>3. Основные результаты</p>
	<p>В качестве идентификатора положения рабочего инструмента робота-манипулятора служит специальный маркер, установленный на верхний сервопривод. Он позволяет после обработки изображения по цвету определять местоположение отслеживаемого объекта.</p>
	<p>Для получения информации о текущем положении фиксируемого объекта в модель были добавлены датчики камеры. Пример получаемых с камер изображений представлен на рисунке 5.</p>
	<fig id="F5">
		<label>Figure 5</label>
		<caption>
			<p> Изображения с камер в симуляторе</p>
		</caption>
		<alt-text> Изображения с камер в симуляторе</alt-text>
		<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/media/images/2024-05-22/9f7de6b9-2e81-4f31-aea5-a82cca1256f0.jpg"/>
	</fig>
	<p>1. Получение оригинального изображения;</p>
	<p>2. Конвертация полученного изображения в формат в HSV;</p>
	<p>3. Наложение маски на маркер, установленный на месте крепления рабочего инструмента;</p>
	<p>4. Наложение линии, соединяющей начальное и конечное положение рабочего инструмента.</p>
	<p>Основной датчик камеры, с помощью которого происходит фиксация, расположен сверху над центром основания модели робота. Данные о размерах основных предметов внешней среды и самого робота-манипулятора (размеры робота, стола, высоту крепления камеры и т.д.) позволяют найти отклонение точки по оси x, y.</p>
	<fig id="F6">
		<label>Figure 6</label>
		<caption>
			<p>Поэтапная обработка изображения</p>
		</caption>
		<alt-text>Поэтапная обработка изображения</alt-text>
		<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/media/images/2024-05-22/044b9d1a-2a4e-4f54-a324-ce2ec37c1287.png"/>
	</fig>
	<p>На рисунке 7 на схеме справа изображена мировая система координат комнаты (показана оранжевым цветом) и система координат камеры (показана красным цветом). Системы координат связаны 6 параметрами: 3-мя для перемещения и 3-мя для вращения. На снимке камеры необходимо найти координаты точки P (нас интересует только Z – высота). Зная местоположение камеры и местоположение рабочего инструмента, которое найдено по камере сверху, рассчитывается высота точки.</p>
	<fig id="F7">
		<label>Figure 7</label>
		<caption>
			<p>Геометрическое решение задачи нахождения местоположения рабочего инструмента</p>
		</caption>
		<alt-text>Геометрическое решение задачи нахождения местоположения рабочего инструмента</alt-text>
		<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/media/images/2024-05-22/37718e19-f34a-4183-a9c0-d4268d7a606c.png"/>
	</fig>
	<p>Чтобы построить карту глубины, в модели необходимо разместить еще одну камеру, т.к. нужно получать изображение с 2-х ракурсов. При трансляции картинки с камеры трехмерный объект на изображении проецируется из трехмерного пространства в двухмерное плоское пространство. Это называется  планарной проекцией. Проблема в том, что при этой операции теряется информация о глубине. И для восстановления этих данных недостаточно использовать одно изображение. Двух снимков вполне достаточно, потому что лучи, исходящие из точки C1 и C2 пересекаются в одной единственной точке X (см. рисунок 9b) </p>
	<p>[9]</p>
	<p>На рисунке 9a показана связь между глубиной Z и диспарантностью, то есть разностью точки на изображениях, представленных с разных ракурсов </p>
	<fig id="F8">
		<label>Figure 8</label>
		<caption>
			<p>Симуляция модели</p>
		</caption>
		<alt-text>Симуляция модели</alt-text>
		<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/media/images/2024-05-22/5ab0f252-35aa-4198-af03-417714c7c8c6.png"/>
	</fig>
	<fig id="F9">
		<label>Figure 9</label>
		<caption>
			<p>Построение карты глубины</p>
		</caption>
		<alt-text>Построение карты глубины</alt-text>
		<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/media/images/2024-05-22/e462723f-7c9d-46a2-832a-ba11746b40ca.png"/>
	</fig>
	<p>[2]</p>
	<p>В качестве альтернативного решения задачи рассматривается разработка сверхточной нейронной сети. Первая задача, которая ставится для нейросети – это задача классификации. Необходимо определить по снимку с камеры – находится ли инструмент робота-манипулятора в исходном положении или нет. Это – задача будущих исследований.</p>
	<p>4. Заключение</p>
	<p>Подводя итоги проведенного исследования, можно кратко описать промежуточные этапы и достигнутые результаты:</p>
	<p>1. Подготовлена модель для симуляции;</p>
	<p>2. Найдено оптимальное положение камер для получения информации о положении рабочего инструмента робота-манипулятора;</p>
	<p>3. Подготовлен алгоритм для идентификации текущего положения рабочего инструмента робота манипулятора;</p>
	<p>4. Разработан алгоритм возвращения модели в исходную позицию;</p>
	<p>5. Построена карта глубины;</p>
	<p>6. Информация выведена в пользовательский интерфейс.</p>
	<p>Полученные результаты можно использовать на практике. Для этого необходимо откалибровать камеру, т.к. картинка с камеры может быть с искажениями, а также нужно учитывать уровень освещения в помещении.</p>
</sec>
        <sec sec-type="supplementary-material">
            <title>Additional File</title>
            <p>The additional file for this article can be found as follows:</p>
            <supplementary-material id="S1" xmlns:xlink="http://www.w3.org/1999/xlink"
                                    xlink:href="https://doi.org/10.5334/cpsy.78.s1">
                <!--[<inline-supplementary-material xlink:title="local_file" xlink:href="https://research-journal.org/media/articles/13417.docx">13417.docx</inline-supplementary-material>]-->
                <!--[<inline-supplementary-material xlink:title="local_file" xlink:href="https://research-journal.org/media/articles/13417.pdf">13417.pdf</inline-supplementary-material>]-->
                <label>Online Supplementary Material</label>
                <caption>
                    <p>Further description of analytic pipeline and patient demographic information. DOI:
                        <italic>
                            <uri>https://doi.org/10.60797/IRJ.2024.143.156</uri>
                        </italic>
                    </p>
                </caption>
            </supplementary-material>
        </sec>
    </body>
    <back>
        <ack>
            <title>Acknowledgements</title>
            <p>None</p>
        </ack>
        <sec>
            <title>Competing Interests</title>
            <p>None</p>
        </sec>
        <ref-list>
            <ref id="B1">
                    <label>1</label>
                    <mixed-citation publication-type="confproc">
                        Gazebo (Robot simulation): documentation for Gazebo. — USA. — URL: https://gazebosim.org/ (accessed: 15.07.2023)
                    </mixed-citation>
                </ref><ref id="B2">
                    <label>2</label>
                    <mixed-citation publication-type="confproc">
                        Depth Map from Stereo Images: documentation for OpenCV. — USA. — URL: https://docs.opencv.org/4.x/dd/d53/tutorial_py_depthmap.html (accessed: 24.08.2023)
                    </mixed-citation>
                </ref><ref id="B3">
                    <label>3</label>
                    <mixed-citation publication-type="confproc">
                        O’Kane J.M. A Gentle Introduction to ROS / J. M. O’Kane. — Columbia: University of South Carolina, 2014. — 156 p.
                    </mixed-citation>
                </ref><ref id="B4">
                    <label>4</label>
                    <mixed-citation publication-type="confproc">
                        OpenCV: documentation for OpenCV. — USA. — URL: https://opencv.org/ (accessed: 12.09.2023)
                    </mixed-citation>
                </ref><ref id="B5">
                    <label>5</label>
                    <mixed-citation publication-type="confproc">
                        	Park F.C. Introduction to robotics. Mechanics, planning, and control / F.C. Park, K. M. Lynch. — USA: Pearson Education International, 2016. — 400 p.
                    </mixed-citation>
                </ref><ref id="B6">
                    <label>6</label>
                    <mixed-citation publication-type="confproc">
                        ROS — Robot Operating System: documentation for ROS. — USA. — URL:  https://www.ros.org/ (accessed: 15.07.2023)
                    </mixed-citation>
                </ref><ref id="B7">
                    <label>7</label>
                    <mixed-citation publication-type="confproc">
                        Rubleva E.A. Kinematic Model of a Desktop Robot Manipulator with 5 Degrees of Freedom / E.A. Rubleva, A.B. Mudrich // Journal of Physics: Conference Series. — vol. 2096. — № 1. — 012178 
                    </mixed-citation>
                </ref><ref id="B8">
                    <label>8</label>
                    <mixed-citation publication-type="confproc">
                        Spong W.M. Robot Modelling and Control / W.M. Spong, S. Hutchinson, M. Vidyasagar. — New York: Wiley. — 2 ed. — 2020. — 407 p.
                    </mixed-citation>
                </ref><ref id="B9">
                    <label>9</label>
                    <mixed-citation publication-type="confproc">
                        Stereo Camera Depth Estimation With OpenCV (Python/C++) // LearnOpenCV blog. — USA. — URL: https://learnopencv.com/depth-perception-using-stereo-camera-python-c/ (accessed: 24.08.2023)
                    </mixed-citation>
                </ref><ref id="B10">
                    <label>10</label>
                    <mixed-citation publication-type="confproc">
                        	Zhang J. Performance optimization and implementation of evolutionary inverse kinematics in ROS / J. Zhang. — Hamburg: Hamburg University, 2017. — 69 p.
                    </mixed-citation>
                </ref><ref id="B11">
                    <label>11</label>
                    <mixed-citation publication-type="confproc">
                        Борисов О.И. Методы управления робототехническими приложениями: учебное пособие / О.И. Борисов, В.С. Громов, А.А. Пыркин. — Санкт-Петербург: Университет ИТМО, 2016. — 110 с.
                    </mixed-citation>
                </ref><ref id="B12">
                    <label>12</label>
                    <mixed-citation publication-type="confproc">
                        Жавнер В.Л. Мехатронные системы: учебное пособие / В.Л. Жавнер, А.Б.  Смирнов. — Санкт-Петербург: Издательство Политехнического университета, 2011. —  131 с.
                    </mixed-citation>
                </ref><ref id="B13">
                    <label>13</label>
                    <mixed-citation publication-type="confproc">
                        Разработка управляющих программ промышленных роботов / А.С. Климчик, Р.И. Гомолицкий, Ф.В. Фурман [и др.] — Минск: Белорусский государственный университет информатики и радиоэлектроники, 2008. — 131 с.
                    </mixed-citation>
                </ref><ref id="B14">
                    <label>14</label>
                    <mixed-citation publication-type="confproc">
                        Колюбин С.А. Динамика робототехнических систем: учебное пособие / С.А. Колюбин. — Санкт-Петербург: Университет ИТМО, 2017. — 119 с.
                    </mixed-citation>
                </ref>
        </ref-list>
    </back>
    <fundings>
        
    </fundings>
</article>