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.1.
После установки компонентов требуется настройка характеристик.
3.2.1 Соединение объектов
В представленной на рисунке 3.1.3 конструкции все объекты прикреплены к основанию робота. Для этого в поле connectedBody компонента ModuleBaseScript (рис. 3.3.1) устанавливается ссылка на Rigidbody основания робота.
3.2.1 Настройка моторов
Для каждого компонента MotorBaseScript в значение поля rotor устанавливается ссылка на компонент Rigidbody колеса, в значение поля motorDriver устанавливается ссылка на компонент MotorDriverScript драйвера мотора. В поле maxVelocity устанавливается значение максимальной угловой скорости вала двигателя, в приведенном примере 720 градусов в секунду (рис. 3.2.2.).
3.2.3 Настройка драйверов
В поле GPIOScript каждого компонента MotorDriverScript указывается ссылка на компонент GPIOBaseScript микроконтроллера (рис. 3.2.3). В поля portIn1Id и portIn2Id, устанавливаются номера портов GPIO для изменения направления вращения мотора. В поле portSpeedId – номер PWM порта GPIO для управления скоростью вращения двигателя.
Значения полей компонентов MotorDriverScript для рассматриваемого случая занесены в таблицу 3.2.1:
3.2.4 Настройка светодиода
В поле GPIOScript каждого компонента MotorDriverScript указывается ссылка на GPIOBaseScript компонент микроконтроллера (рис. 3.2.4). В поле portID задается номер порта GPIO для управления состоянием светодиода (для рассматриваемого случая – порт №1). В поля для материалов устанавливаются цвета состояния светодиода.
3.2.5 Настройка дальномера
У дальномера одно поле – максимальное измеряемое расстояние.
Значение характеристики maxRange в рассматриваемом примере равно 25 (рис. 3.2.5).
3.2.6 Настройка дисплея
В значение поля текст передается ссылка на компонент TextMesh дисплея (рис. 3.2.6).
3.2.7 Настройка микроконтроллера.
Микроконтроллер отвечает за управление электронными устройствами.
Для настройки I2CMasterScript и подключения устройств к микроконтроллеру, ссылки на эти устройства заносятся в список busI2C (рис. 3.2.7).
Для рассматриваемого случая в список занесены компоненты DisplayI2C (дальномер) и RangeFinderBaseScript (дисплей).
Для настройки GPIOBaseScript необходимо указать количество цифровых портов с и без поддержки PWM. Количество выводов в рассматриваемом случае равно 10 для двух характеристик (рис. 3.2.8).
В поля GPIO и I2CBus устанавливаются ссылки на GPIOBaseScript и компоненты I2CMasterScript микроконтроллера (рис. 3.2.9). Также возможна изменение значения поля isActive, в случае true при запуске сцены микроконтроллер активируется.
3.3 Интерпретация алгоритма поведения робота в системе
Для управления элементами робототехнической системы применяются микроконтроллеры. На текущем этапе разработки программировать микроконтроллер можно внося изменения в компонент MicrocontrollerBaseScript, что накладывает ряд ограничений:
● редактировать скрипты можно только в Unity Editor, в собранном проекте эта функция недоступна;
● для написания программы необходимо создать компонент скрип, наследуемый от MicrocontrollerBaseScript;
● для каждого микроконтроллера необходимо создать свой уникальный компонент.
В рассматриваемом примере на сцене один микроконтроллер, для него реализован скрипт testMicro (рис. 3.3.1), который заменяет MicrocontrollerBaseScript.
Следующим этапом развития проект является доработка системы программирования, в том числе выбор других способов написания программ для микроконтроллеров.
3.4 Тестирование программы.
Для робота реализована тестовая программа для анализа данных с дальномера. Если на расстоянии 8 метров от робота обнаруживается стена, то робот начинает поворачивать налево и активируется светодиод, если стены не обнаружено – робот движется вперед, светодиод деактивируется.
Для проверки работы программы построено замкнутое поле, окруженное стенами с препятствиями внутри (рис. 3.4.1).
В результате проведенных тестов робот система оказалась работоспособной. Робот объезжает препятствия, программа работает стабильно.
3.5 Характеристики окружения.
Испытания ПО проводились в Unity Editor Version 2020.3.33f1. Характеристики окружения при проведении тестирования описаны в таблице 3.5.1:
Характеристики работы симуляции в рассматриваемом случае отражены во вкладке Statistics (рис. 3.5.1).
Заключение по разделу 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.