Development of software simulator for the motion and colreg obstacle avoidance of unmanned ship

Cover Page


Cite item

Full Text

Abstract

The article discusses the development of a software simulator for the motion and COLREG obstacle avoidance of unmanned ship, the use of which simplifies the process of creating and testing unmanned vessels. The main requirements for the simulator, its purpose, structure, and capabilities are presented. The algorithmic basis of the developed simulator is described: the trajectory tracking subsystem uses the gradient algorithm of the auxiliary function, and the obstacle avoidance subsystem is implemented using the velocity obstacle method adapted for the COLREG. The general logic diagram of the program is presented, containing basic subsystems, elements that provide flexibility in configuring the simulator, and elements for analyzing the results of its work. The most common programming languages in the field of robotics are considered, and the suitable language for developing the software simulator – the C++ programming language – is chosen. The graphical interface of the developed program and its main elements are presented. To test the functionality of the software simulator, modeling of the main obstacle avoidance situations was carried out: head-on, crossing (obstacle moves to the left or right), and overtaking. The results of this modeling are presented. The created software simulator for the motion and obstacle avoidance of unmanned ship meets the requirements set for it in the work, allows modeling of the motion of unmanned ship and to perform avoidance according to COLREG. The implementation of trajectory tracking and obstacle avoidance subsystems as separate software elements makes it possible to use them without significant modifications in the onboard control systems of unmanned ships.

Full Text

Введение

В современном мире безэкипажные суда (БЭС) становятся все более популярными, что обусловлено возможностью их применения в широком спектре задач в различных сферах. Они используются для мониторинга состояния окружающей среды, выполнения научных исследований, обеспечивают проведение подводных работ, выполняют спасательные и военные функции [1]. Перспективным направлением являются морские безэкипажные грузоперевозки [2, 3].

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

Для упрощения процесса разработки и тестирования безэкипажных судов программные симуляторы могут быть использованы для создания виртуальных моделей судов и их движения. Эти симуляторы могут быть настроены для воспроизведения различных маршрутов движения, погодных условий, морских течений, волнения и других факторов, которые могут повлиять на движение судна [4, 5].

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

Задача автоматического расхождения безэкипажного судна с подвижными или неподвижными препятствиями в соответствии с «Международными правилами предупреждения столкновения судов в море (МППСС‑72)» является одной из важнейших [6, 7]. Разработка программного симулятора движения и расхождения позволяет оценить работоспособность и эффективность применяемых алгоритмов и является важным шагом в разработке безопасных и эффективных безэкипажных судов, которые могут успешно выполнять задачи в различных областях.

Основные требования

Разрабатываемый симулятор предназначен в первую очередь для проверки алгоритма движения по заданной траектории и расхождения с представляющими опасность препятствиями в соответствии с МППСС-72. К моделированию динамических характеристик БЭС и подвижных объектов не предъявляется особых требований, и оно допускается в упрощенном виде.

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

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

Симулятор должен обеспечивать гибкость в настройке параметров, таких как размеры и характеристики движения судов, маршруты движения и условия на море, чтобы пользователи могли создавать разнообразные ситуации для тестирования.

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

Реализация

В качестве алгоритмической основы разрабатываемого симулятора используются способы движения и расхождения, предложенные в статье «Система управления движением и расхождением безэкипажного судна в соответствии с МППСС-72» [8].

В симуляторе реализована подсистема удержания траектории, основанная на алгоритме градиента вспомогательной функции [9]. Суть этого алгоритма заключается в формирование векторного поля – набора векторов, показывающих требуемое направления движения БЭС в конкретной точке. Ниже приведены обобщенные формулы для расчета требуемого курса БЭС при движении по заданному участку маршрута:

ψset=arctg2dFidyi+αwyi,dFidxi+αwxi,

gradFi=aaxusv+byusv+c,baxusv+byusv+c,

a=yiyi+1μ, b=xixi+1μ, c=xiyi+1xi+1yiμ,

μ=±1yiyi+12+xi+1xi2,

wxi=xi+1xixi+1xi2+yi+1yi2,

wyi=yi+1yixi+1xi2+yi+1yi2,

где ψset – требуемый курс; Fi – функция, достигающая экстремума на i-ом участке маршрута [9]; (wxi, wyi)– вспомогательный вектор единичной длины, направленный вдоль траектории движения БЭС; α – весовой коэффициент, определяющий степень схождения векторного поля к заданному участку маршрута (α > 0); a, b, c– некоторые действительные числа; (xusv,yusv) – текущие координаты БЭС; (xi, yi)– путевые точки маршрута; μ – нормирующий множитель (берется по знаку, противоположному знаку c).

Необходимый маршрут движения БЭС задается путем создания набора путевых точек, последовательно соединенных прямыми линиями. Таким образом создается кусочно-линейный маршрут движения БЭС.

Подсистема обхода препятствий, используемая в симуляторе, обеспечивает вычисление безопасного курса и скорости БЭС для предотвращения столкновения с угрожающими препятствиями и соблюдения при этом правил МППСС-72. В ней применяется метод скоростных препятствий [10], доработанный с учетом требований МППСС-72 [8]. Для каждого возможного варианта курса и скорости рассчитывается стоимостная функция:

C=k1Ui,jTUi,j+k2FcollisionVi,ψj+k3FCOLREGVi,ψj,

Ui,j=VsetcosψsetVicosψjVsetsinψsetVisinψj,

Где k1, k2, k3 – постоянные коэффициенты; Fcollision – логическая функция опасной ситуации [8]; FCOLREG – логическая функция МППСС-72 [8]; Vi, ψj – текущая скорость и курс БЭС; Ui,j – вектор ошибки; Vset, ψset – заданная пользователем скорость и рассчитанный подсистемой удержания траектории курс.

Далее выбирается вариант курса и скорости с минимальным значением стоимостной функции, что будет соответствовать курсу и скорости БЭС, максимально близким к курсу подсистемы удержания траектории и заданной скорости и при этом позволяющим разойтись с препятствием, соблюдая правила МППСС-72.

Общая логическая схема программного симулятора показана на рис. 1.

 

Рис. 1. Логическая схема программного симулятора движения и расхождения безэкипажного судна

 

Пользователь программного симулятора в полях настроек вводит параметры для расчета симуляции, включая коэффициенты, необходимые для работы подсистемы удержания траектории и подсистемы обхода препятствий, радиусы, описывающие БЭС и препятствия, требуемую скорость движения БЭС и заданные курсы и скорости движения препятствий. Маршрут движения БЭС задается интерактивным способом: пользователь активирует на панели инструментов режим создания путевых точек и отмечает их на виртуальной карте, точкам автоматически присваиваются порядковые номера, и они последовательно соединяются прямыми линиями, тем самым формируя маршрут движения.

Начальные положения БЭС и препятствий также задаются пользователем на карте интерактивно. Динамика безэкипажного судна (динамика изменения курса и скорости) в симуляторе реализована в упрощенной форме. Переход судна с одной скорости на другую определяется ускорением, задаваемым пользователем. Также задается угловая скорость для реализации изменения курса БЭС. При нажатии на кнопку начала симуляции производится выполнение алгоритмов подсистемы удержания траектории и подсистемы обхода препятствий, расчет и отрисовка перемещения безэкипажного судна и препятствий на карте.

Для анализа работы алгоритмов движения и расхождения в симуляторе предусмотрена функция отображения пройденной траектории БЭС и подвижных препятствий в течение заданного интервала времени. Также в отдельном окне возможен вывод сетки вариантов курсов и скоростей с весовыми коэффициентами в графическом виде. Это позволяет оценить корректность работы алгоритма расхождения с угрожаемыми подвижными препятствиями в соответствии с МППСС-72 в реальном времени. Дополнительно возможен вывод рассчитываемых в реальном времени параметров, интересующих пользователя. Например, вывод дистанции и времени кратчайшего сближения БЭС с подвижным препятствием [11].

Наиболее распространенными языками программирования в робототехнике, к которой в том числе можно отнести безэкипажные суда, являются MATLAB, Python, C++ [12, 13].

MATLAB [14] – это язык программирования, который часто используется в робототехнике для моделирования и анализа динамических систем. Он имеет богатую библиотеку инструментов для решения различных задач. MATLAB больше ориентирован на математические расчеты и имеет ограниченные возможности для создания сложных систем управления. Также он может быть очень ресурсоемким при работе с большими объемами данных и вычислений, что может привести к проблемам с памятью и производительностью.

Python [15] широко используется в робототехнике для создания высокоуровневых систем управления, обработки изображений, анализа данных и машинного обучения. Python отличается простотой и легкостью в изучении и использовании. Основным его недостатком является невысокая скорость работы. Он является интерпретируемым языком, что означает, что его скорость выполнения ниже, чем у компилируемых языков. Это может быть проблемой при выполнении задач, требующих высокой производительности.

С++ [16] – один из наиболее популярных языков в робототехнике. C++ позволяет написать очень эффективный и быстрый код, что может быть важно для систем управления роботами с высокими требованиями к скорости и производительности. C++ является стандартным языком программирования для различных аппаратных платформ, что обеспечивает широкую совместимость и переносимость кода между различными системами. Недостатком С++ является его сложность. У него более сложный синтаксис и более сложные концепции, такие как управление памятью и указатели, что может затруднить разработку программ.

Исходным языком программирования для программного симулятора движения и расхождения безэкипажного судна выбран C++ как наиболее подходящий под требования к разработке. Для разработки графического интерфейса программы (рис. 2) используется Qt Framework [17] – кроссплатформенная библиотека разработки GUI на С++.

 

Рис. 2. Графический интерфейс программного симулятора (1 – панель инструментов; 2 – виртуальная карта с расположенными на ней БЭС, препятствием и заданным маршрутом движения БЭС; 3 – панель ввода параметров БЭС, препятствий и алгоритмов движения и расхождения; 4 – графическое отображение стоимостной функции сетки вариантов курсов и скоростей БЭС)

 

На рис. 3 более подробно продемонстрирована сетка вариантов, показывающая, какой курс и какую скорость выбирает БЭС в текущий момент времени.

 

Рис. 3. Сетка вариантов курсов и скоростей безэкипажного судна

 

Представленная сетка вариантов показывает, какие области движения являются безопасными, а какие приводят к угрозе столкновения. Она представляет собой окружность, где градусная мера – курс движения судна, а радиус – скорость движения судна, как показано в области 1. Фиолетовые оттенки показывают области, которые являются приоритетными для БЭК, а желтые оттенки показывают области, которые приводят к угрозе столкновения, к нарушению правил МППСС-72 или к отклонению от траектории движения. Цвета определяются значением стоимостной функции, где наименьшее значение показывает наиболее подходящие курс и скорость движения безэкипажного судна.

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

Тестирование

Проверка работоспособности программного симулятора проводилась при моделировании основных ситуаций расхождения, регламентированных МППСС-72. К ним относятся: обгон, расхождение на встречных курсах и пересечение курсов [18]. Использовались следующие коэффициенты стоимостной функции: k1 = 1, k2 = 2000, k3 = 1000.

 

Рис. 4. Движение и расхождение БЭС с препятствием на встречных курсах (траектория движения БЭС – синяя, траектория движения препятствия – красная, путевые точки заданного маршрута БЭС – зеленые, длина заданного маршрута = 550 м)

 

На рис. 4 показана смоделированная ситуация расхождения БЭС с препятствием на встречных курсах. БЭС обходит подвижное препятствие слева, соблюдая МППСС-72 и учитывая радиусы, описывающие БЭС и препятствие.

 

Рис. 5. Движение и расхождение БЭС с препятствием при обгоне (траектория движения БЭС – синяя, траектория движения препятствия – красная, путевые точки заданного маршрута БЭС – зеленые, длина заданного маршрута = 550 м)

 

Моделирование ситуации, при которой БЭС совершает обгон препятствия, показано на рис. 5. Здесь БЭС совершает обгон, оставляя препятствие справа.

 

Рис. 6. Движение и расхождение БЭС с препятствием при пересечении курсов, препятствие справа (траектория движения БЭС – синяя, траектория движения препятствия – красная, путевые точки заданного маршрута БЭС – зеленые, длина заданного маршрута = 550 м)

 

Расхождение БЭС в ситуации пересечения курсов, когда препятствие находится справа, показано на рис. 6. При движении препятствия справа БЭС сбавляет скорость и меняет курс, уступая дорогу и обходя препятствие через корму, соблюдая МППСС-72 и учитывая радиусы, описывающие БЭС и препятствие.

 

Рис. 7. Движение и расхождение БЭС с препятствием при пересечении курсов, препятствие слева (траектория движения БЭС – синяя, траектория движения препятствия – красная, путевые точки заданного маршрута БЭС – зеленые, длина заданного маршрута = 550 м)

 

На рис. 7 показано моделирование ситуации пересечения курсов, когда препятствие находится слева от БЭС. В данном случае согласно правилам уступить дорогу должно препятствие, что не реализовано в его программе движения. Безэкипажное судно пытается пройти, не уступая препятствию, но при этом незначительно меняет курс для уклонения от столкновения.

Заключение

Разработанный программный симулятор движения и расхождения БЭС позволяет оценить корректность работы алгоритмов движения с учетом правил МППСС-72. Функционал симулятора дает возможность смоделировать различные сценарии движения, включая заданный маршрут движения и требуемую скорость БЭС, курс и скорость движения препятствия, начальные позиции участников движения и их размеры. Возможно введение пользователем произвольных коэффициентов для расчета используемых алгоритмов движения и расхождения.

Отображение траектории движение БЭС и препятствия, а также графическая визуализация стоимостной функции сетки вариантов курсов и скоростей позволяют проанализировать работу применяемых алгоритмов.

Описание подсистем движения и расхождения в виде отдельных программных элементов на языке С++ после их окончательного тестирования и отладки позволяет применить их в бортовых системах управления безэкипажных судов практически без изменений.

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

×

About the authors

Alexander A. Duda

Maritime State University named after admiral G.I. Nevelskoy

Email: adyda@mail.ru

Dr. Sci. (Techn.), Professor at the Department of Automatic and Information Systems

Russian Federation, 50a, Verhneportovaya st., Vladivostok, 690003

Igor I. Pushkarev

Maritime State University named after admiral G.I. Nevelskoy

Email: B_r_i_g88@mail.ru
SPIN-code: 1035-4648

Postgraduate Student

Russian Federation, 50a, Verhneportovaya st., Vladivostok, 690003

Anna F. Krasavina

Maritime State University named after admiral G.I. Nevelskoy

Author for correspondence.
Email: ankras2004@mail.ru

Postgraduate Student

Russian Federation, 50a, Verhneportovaya st., Vladivostok, 690003

References

  1. Liu Z. et al. Unmanned surface vehicles: An overview of developments and challenges // Annual Reviews in Control. 2016. V. 41. Pр. 71–93.
  2. Gu Y., Wallace S.W. Operational benefits of autonomous vessels in logistics – A case of autonomous water-taxis in Bergen // Transportation Research Part E: Logistics and Transportation Review. 2021. V. 154. P. 102456.
  3. Kretschmann L., Burmeister H.C., Jahn C. Analyzing the economic benefit of unmanned autonomous ships: An exploratory cost-comparison between an autonomous and a conventional bulk carrier // Research in transportation business & management. 2017. V. 25. Pр. 76–86.
  4. Paravisi M. et al. Unmanned surface vehicle simulator with realistic environmental disturbances // Sensors. 2019. V. 19. № 5. P. 1068.
  5. Lee H.W. et al. Integrated Simulation of Virtual Prototypes and Control Algorithms of Unmanned Surface Vehicles Based on a Robot Operating System // Journal of Marine Science and Technology. 2021. V. 29. № 4. P. 2.
  6. Ma Y. et al. Collision-avoidance under COLREGS for unmanned surface vehicles via deep reinforcement learning // Maritime Policy & Management. 2020. V. 47. № 5. Pр. 665–686.
  7. Deng F. et al. COLREGs: Compliant Dynamic Obstacle Avoidance of USVs Based on the Dynamic Navigation Ship Domain // Journal of Marine Science and Engineering. 2021. V. 9. № 8. P. 837.
  8. Pushkaryov I.I. Cistema upravleniya dvizheniem i raskhozhdeniem bezekipazhnogo sudna v sootvetstvii s MPPSS-72 [A control system for movement and divergence of unmanned ship according to colreg] // Vestnik Gosudarstvennogo universiteta morskogo i rech-nogo flota imeni admirala SO Makarova. 2022. V. 14. № 6. Pр. 837–848. (In Russian)
  9. Dyda A.A., Chumakova K.N., Pushkarev I.I. Podhod k upravleniyu sudnom po traekto-rii na osnove gradienta vspomogatel'noj funkcii [Auxiliary function gradient approach to marine vehicle path-following control] // Nauchnye problemy vodnogo transporta. 2020. № 65. Pр. 27–36. (In Russian)
  10. Fiorini P., Shiller Z. Motion Planning in Dynamic Environments Using Velocity Obstacles // International Journal of Robotics Research. 1998. Vol. 17. Is. 7. Pр. 760–772. doi: 10.1177/027836499801700706.
  11. Buzhbeckij R.Yu. Zavisimost' distancii kratchajshego sblizheniya ot kursa manevri-ruyushchego sudna [Dependence of the closest approach distance on the course of the maneuvering vessel] // Ekspluataciya morskogo transporta. 2017. № 3. Pр. 69–72. (In Russian)
  12. Joseph L., Johny A. Fundamentals of C for Robotics Programming // Robot Operating System (ROS) for Absolute Beginners: Robotics Programming Made Easy. Berkeley, CA: Apress, 2022. Pр. 53–91.
  13. Egorov D.V., Bobkov V.D. Analiz yazykov programmirovaniya robotov [Analysis of robot programming languages] // OPEN INNOVATION. 2018. Pр. 45–47.
  14. Moler C., Little J. A history of MATLAB // Proceedings of the ACM on Programming Languages. 2020. Т. 4. № HOPL. Pр. 1–67.
  15. Python W. Python // Python Releases Wind. 2021. Vol. 24.
  16. Josuttis N. M. The C++ standard library: a tutorial and reference. 2012.
  17. Lazar G., Penea R. Mastering Qt 5: Create stunning cross-platform applications using C++ with Qt Widgets and QML with Qt Quick. Packt Publishing Ltd, 2018.
  18. SHarlaj G.N. MPPSS-72 s kommentariyami: uchebnoe posobie [COLREGs-72 with comments: textbook]. M.: Morkniga, 2017. 136 pp.

Supplementary files

Supplementary Files
Action
1. JATS XML
2. Fig.1.

Download (180KB)
3. Fig.2.

Download (200KB)
4. Fig.3.

Download (105KB)
5. Fig.4.

Download (88KB)
6. Fig.5.

Download (88KB)
7. Fig.6.

Download (87KB)
8. Fig.7.

Download (89KB)

Copyright (c) 2023 Samara State Technical University

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies