Найти в Дзене

Программный пакет для проектирования систем имитационного моделирования мобильных роботов. Часть 3

3 Апробация программного пакета на примере мобильной робота с ультразвуковым дальномером 3.1 Подготовка объектов на сцене При создании проекта сцена в Unity содержит два объекта: камера и направленный свет (рис. 3.1.1). Добавление объектов на сцену осуществляется нажатием правой клавиши мыши (ПКМ) в окне иерархии. Далее необходимо выбрать желаемый объект в появившемся контекстном меню. Поле в примере реализовано объектом Плоскость (Plane). Для подготовки робота к работе необходимо добавить на сцену игровые объекты вмещающие в себя необходимые компоненты реализованные в разделе 2.2. Пример собранного робота приведен на рисунке 3.2.3, где: 1 – микроконтроллер, 2 – дисплей, 3 – двигатель, 4 – колесо, 5 – основание робота, 6 – дальномер, 7 – драйвер мотора, 8 – светодиод. 3.2 Настройка параметров мобильного робота После подготовки поля и расположения будущих элементов робота к объектам прикрепляются необходимые компоненты. Все объекты и компоненты, прикрепляемые к ним описаны в таблице 3.2

3 Апробация программного пакета на примере мобильной робота с ультразвуковым дальномером

3.1 Подготовка объектов на сцене

При создании проекта сцена в Unity содержит два объекта: камера и направленный свет (рис. 3.1.1).

Рис. 3.1.1 Окно Иерархия (Hierarchy)
Рис. 3.1.1 Окно Иерархия (Hierarchy)

Добавление объектов на сцену осуществляется нажатием правой клавиши мыши (ПКМ) в окне иерархии. Далее необходимо выбрать желаемый объект в появившемся контекстном меню.

Поле в примере реализовано объектом Плоскость (Plane).

Рис. 3.1.2 Поле (Plane)
Рис. 3.1.2 Поле (Plane)

Для подготовки робота к работе необходимо добавить на сцену игровые объекты вмещающие в себя необходимые компоненты реализованные в разделе 2.2. Пример собранного робота приведен на рисунке 3.2.3, где: 1 – микроконтроллер, 2 – дисплей, 3 – двигатель, 4 – колесо, 5 – основание робота, 6 – дальномер, 7 – драйвер мотора, 8 – светодиод.

Рис. 3.1.3 Объекты, составляющие робота
Рис. 3.1.3 Объекты, составляющие робота

3.2 Настройка параметров мобильного робота

После подготовки поля и расположения будущих элементов робота к объектам прикрепляются необходимые компоненты.

Все объекты и компоненты, прикрепляемые к ним описаны в таблице 3.2.1.

Таблица 3.2.1. Сопоставительная таблица объектов и их компонентов.
Таблица 3.2.1. Сопоставительная таблица объектов и их компонентов.

После установки компонентов требуется настройка характеристик.

3.2.1 Соединение объектов

В представленной на рисунке 3.1.3 конструкции все объекты прикреплены к основанию робота. Для этого в поле connectedBody компонента ModuleBaseScript (рис. 3.3.1) устанавливается ссылка на Rigidbody основания робота.

Рис. 3.2.1 Настроенный компонент ModuleBaseScript
Рис. 3.2.1 Настроенный компонент ModuleBaseScript

3.2.1 Настройка моторов

Для каждого компонента MotorBaseScript в значение поля rotor устанавливается ссылка на компонент Rigidbody колеса, в значение поля motorDriver устанавливается ссылка на компонент MotorDriverScript драйвера мотора. В поле maxVelocity устанавливается значение максимальной угловой скорости вала двигателя, в приведенном примере 720 градусов в секунду (рис. 3.2.2.).

Рис. 3.2.2 Настроенный компонент MotorBaseScript
Рис. 3.2.2 Настроенный компонент MotorBaseScript

3.2.3 Настройка драйверов

В поле GPIOScript каждого компонента MotorDriverScript указывается ссылка на компонент GPIOBaseScript микроконтроллера (рис. 3.2.3). В поля portIn1Id и portIn2Id, устанавливаются номера портов GPIO для изменения направления вращения мотора. В поле portSpeedId – номер PWM порта GPIO для управления скоростью вращения двигателя.

Рис. 3.2.3 Настроенный компонент MotorDriverScript
Рис. 3.2.3 Настроенный компонент MotorDriverScript

Значения полей компонентов MotorDriverScript для рассматриваемого случая занесены в таблицу 3.2.1:

Таблица 3.2.1. Значения полей компонентов MotorDriverScript.
Таблица 3.2.1. Значения полей компонентов MotorDriverScript.

3.2.4 Настройка светодиода

В поле GPIOScript каждого компонента MotorDriverScript указывается ссылка на GPIOBaseScript компонент микроконтроллера (рис. 3.2.4). В поле portID задается номер порта GPIO для управления состоянием светодиода (для рассматриваемого случая – порт №1). В поля для материалов устанавливаются цвета состояния светодиода.

Рис. 3.2.4 Настроенный компонент LedBaseScript
Рис. 3.2.4 Настроенный компонент LedBaseScript

3.2.5 Настройка дальномера

У дальномера одно поле – максимальное измеряемое расстояние.

Значение характеристики maxRange в рассматриваемом примере равно 25 (рис. 3.2.5).

Рис. 3.2.5 Настроенный компонент RangeFinderBaseScript
Рис. 3.2.5 Настроенный компонент RangeFinderBaseScript

3.2.6 Настройка дисплея

В значение поля текст передается ссылка на компонент TextMesh дисплея (рис. 3.2.6).

Рис. 3.2.6 Настроенный компонент DisplayI2C
Рис. 3.2.6 Настроенный компонент DisplayI2C

3.2.7 Настройка микроконтроллера.

Микроконтроллер отвечает за управление электронными устройствами.

Для настройки I2CMasterScript и подключения устройств к микроконтроллеру, ссылки на эти устройства заносятся в список busI2C (рис. 3.2.7).

Для рассматриваемого случая в список занесены компоненты DisplayI2C (дальномер) и RangeFinderBaseScript (дисплей).

Рис. 3.2.7 Список устройств, подключенных к шине I2C
Рис. 3.2.7 Список устройств, подключенных к шине I2C

Для настройки GPIOBaseScript необходимо указать количество цифровых портов с и без поддержки PWM. Количество выводов в рассматриваемом случае равно 10 для двух характеристик (рис. 3.2.8).

Рис. 3.2.8 Настроенный компонент GPIOBaseScript
Рис. 3.2.8 Настроенный компонент GPIOBaseScript

В поля GPIO и I2CBus устанавливаются ссылки на GPIOBaseScript и компоненты I2CMasterScript микроконтроллера (рис. 3.2.9). Также возможна изменение значения поля isActive, в случае true при запуске сцены микроконтроллер активируется.

Рис. 3.2.8 Настроенный компонент MicrocontrollerBaseScript
Рис. 3.2.8 Настроенный компонент MicrocontrollerBaseScript

3.3 Интерпретация алгоритма поведения робота в системе

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

● редактировать скрипты можно только в Unity Editor, в собранном проекте эта функция недоступна;

● для написания программы необходимо создать компонент скрип, наследуемый от MicrocontrollerBaseScript;

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

В рассматриваемом примере на сцене один микроконтроллер, для него реализован скрипт testMicro (рис. 3.3.1), который заменяет MicrocontrollerBaseScript.

Рис. 3.3.1 Фрагмент кода из скрипта testMicro
Рис. 3.3.1 Фрагмент кода из скрипта testMicro

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

3.4 Тестирование программы.

Для робота реализована тестовая программа для анализа данных с дальномера. Если на расстоянии 8 метров от робота обнаруживается стена, то робот начинает поворачивать налево и активируется светодиод, если стены не обнаружено – робот движется вперед, светодиод деактивируется.

Таблица 3.4.1. Характеристики исследуемой системы на входе/выходе
Таблица 3.4.1. Характеристики исследуемой системы на входе/выходе

Для проверки работы программы построено замкнутое поле, окруженное стенами с препятствиями внутри (рис. 3.4.1).

Рис. 3.4.1 Поле для тестирования программы
Рис. 3.4.1 Поле для тестирования программы

В результате проведенных тестов робот система оказалась работоспособной. Робот объезжает препятствия, программа работает стабильно.

3.5 Характеристики окружения.

Испытания ПО проводились в Unity Editor Version 2020.3.33f1. Характеристики окружения при проведении тестирования описаны в таблице 3.5.1:

Таблица 3.5.1. Характеристики окружения при проведении тестирования
Таблица 3.5.1. Характеристики окружения при проведении тестирования

Характеристики работы симуляции в рассматриваемом случае отражены во вкладке Statistics (рис. 3.5.1).

Рис. 3.5.1 Окно статистики (Statistics)
Рис. 3.5.1 Окно статистики (Statistics)

Заключение по разделу 3.

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

Заключение.

Разработанные средства обладают достаточным для моделирования робототехнических систем функционалом. В ходе апробации были обнаружены некоторые недостатки и ограничения:

● некоторые скрипты для своей корректной работы требуют ручного прикрепления компонентов объектам на сцене, например, MotorBaseScript в поле rotor принимает только компонент Rigidbody, поэтому необходимо заранее к колесам робота прикрепить компонент Rigidbody;

● сложность программирования микроконтроллеров путем создания дополнительных уникальных скриптов;

● отсутствие возможности установки шарнирных соединений между телами;

● отсутствие энкодеров, вследствие чего усложнение задачи по определению положения робота на поле;

● невозможность настройки параметров электродвигателей, например максимального вращающего момента;

● отсутствие сервоприводов и шаговых моторов;

● наличие только одного типа колес, в робототехнике применяются разнообразные типы колес, например всенаправленные колеса (Omni wheels) или колесо Илона (Mecanum wheel).

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

● добавить MotorBaseScript возможность автоматического прикрепления компонента Rigidbody к колесам;

● разработать новые средства программирования “на лету” для микроконтроллеров, позволяющие программировать без создании дополнительных компонентов;

● реализовать возможность шарнирных соединений тел с использованием средств физики Unity;

● разработать новый компонент на основе MotorBaseScript, позволяющий моделировать поведение мотора с энкодерами;

● доработать компонент MotorBaseScript или разработать на его основе новый компонент, который будет обладать возможностью более точной и гибкой настройки параметров электромотора;

● разработать компоненты позволяющие моделировать поведение шаговых двигателей и сервоприводов;

● разработать инструмент позволяющий моделировать поведение различных типов колес, таких как всенаправленные колеса (Omni wheels) и колесо Илона (Mecanum wheel).

Список литературы

1. Steven M. LaValle. Planning algorithms. – Cambridge University Press, 2016. – 512 р.

2. Изюмов, А. А. Симуляция движения мобильного робота / А. А. Изюмов, А. Е. Винник, Н. Ю. Хабибулина // Сборник избранных статей научной сессии ТУСУР. – 2020. – № 1-1. – С. 83-86.

3. Манюхина, А. Н. «Использование игровых движков для разработки систем моделирования робототехнических устройств / А. Н. Манюхина // конференция «Интеграция мировых научных процессов как основа общественного прогресса», 2015. – С. 131–137.

4. Boeing, A. Evaluation of real-time physics simulation systems / A. Boeing, T. Brunl. – ACM Press, 2007. – P. 281.

5. Drumwright, E. An evaluation of methods for modeling contact in multibody simulation / E. Drumwright, D. Shell // IEEE Int. Conf. on Robotics and Automation, 2011. – P. 1695–1701.

Erez, T. Simulation Tools for Model-based Robotics: Comparison of Bullet, Havok, MuJoCo, ODE and PhysX / T. Erez,

6. Y. Tassa, E. Todorov. – IEEE International Conference on Robotics and Automation (ICRA), Seattle, WA, USA, 2015.

7. Hummel, J. An Evaluation of Open Source Physics Engines for Use in Virtual Reality Assembly Simulations /

8. J. Hummel, R. Wolff, T. Stein et al. // Advances in Visual Computing, Lecture Notes in Computer Science, Vol. 7432, 2012. – P. 346– 357.

9. Ivaldi, S. Tools for dynamics simulation of robots: a survey based on user feedback / S. Ivaldi, V. Padois, F. Nori. – 14th IEEE-RAS International Conference on on Robotics and Automation, 2014. – P. 842–849.

10. Seugling, A. Evaluation of physics engines and implementation of a physics module in a 3d-authoring tool / A. Seugling,

11. M. Rollin. – Umea University Masters Thesis, 2006.

12. Sony Computer Entertainment enters into strategic licensing agreement with AGEIA, 2005. – URL : https://www.scei.co.jp/content/dam/corporate/en/corporate/release/pdf/050721be.pdf (дата обращения: 06.03.2016).

13. Todorov, E. Convex and analytically-invertible dynamics with contacts and constraints: Theory and implementation in MuJoCo / E. Todorov. – IEEE Conference on Robotics and Automation (ICRA), 2014.

14. Леонова Н.Л. Имитационное моделирование: конспект лекций, СПбГТУРП. – СПб., 2015. 94 с.

15. Мокаева А.А., Хамуков Ю.Х., Шауцукова Л.З. Разработка кинематической схемы систе- мы тросового управления манипулятора типа «хобот» // Известия КБНЦ РАН. 2015. № 6.

16. Нагоев З.В. Интеллектика, или Мышление в живых и искусственных системах. Наль- чик: Изд-во КБНЦ РАН, 2013. 211 с.

17. Проектирование полноприводных колесных машин. Т. 1. М.: Изд-во МГТУ, 2008. С. 25-56, 144-182, 435-485.

18. Проектирование полноприводных колесных машин. Т. 2. М.: Изд-во МГТУ, 2008. С. 152-490.

19. Ivanov P., Nagoev Z., Pshenokova I., Tokmakova D. Forming the Multi-Modal Situation Context in Ambient Intelligence Systems on the Basis of Self-Organizing Cognitive Architec- tures 5th World Congress on Information and Communication Technologies (WICT 2015) 14-16 December, 2015, Morocco.

20. Nagoev Z.V. Multiagent recursive cognitive architecture // Biologically Inspired Cognitive Architectures 2012, Proceedings of the third annual meeting of the BICA Society, in Advances in Intelligent Systems and Computing series, Springer, 2012. Pp. 247-248.