• Регистрация
OpenLab
OpenLab+5.59
От живых прототипов к новым технологиям
  • Написать
  • Подписаться

Vechicle2DSim – система имитационного моделирования движения мобильного робота по плоскости с препятствиями

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

Современный разработчик систем управления беспиполтниками, как наземными, так и воздушными, может воспользоваться целым рядом эффективных программных решений. Например, в Robotics System Toolbox существуют классы ExampleHelperRobotSimulator – для симуляции препятствий в 2D пространстве и ExampleHelperSimRangeSensor – для имитации сенсора лидара. Намного более сложные и реалистичные 3D сцены можно сгенерировать с помощью ROS Toolbox, который способен организовать интерфейс взаимодействия MATLAB и Simulink c Robot Operating System (ROS and ROS 2) и симулятором Gazebo.

Однако, такие возможности были не всегда. В процессе подготовки своей диссертационной работы в 2008-2012 гг. мне были нужны аналогичные программы. Поэтому на языке MATLAB и с помощью графического редактора GUIDE мной была разработана имитационная модель Vechicle2DSim, с помощью которой я не только генерировал обучающие данные для лидаров, но также проверял работоспособность предложенных нейросетевых алгоритмов [1].

Vechicle2DSim – система имитационного моделирования движения мобильного робота по плоскости с препятствиями [2], предназначенная для тестирования и отладки алгоритмов и методов пространственной ориентации автономных мобильных роботов (МР) с дифференциальным приводом.

Интерфейс Vechicle2DSim, разработанный с помощью пакета MATLAB в виде отдельного программного комплекса с графическим интерфейсом, представляет собой единое окно, оснащенное вспомогательными графическими полями и элементами управления.  Функционал программы позволяет (рисунок 1):

· загружать заранее сгенерированные виртуальные карты местности различной сложности;

· производить в некоторых пределах реконфигурацию сенсорной системы, состоящей из датчиков двух типов: датчиков препятствия и сканирующего дальномера;

· производить наблюдение за показаниями датчиков препятствий и сканирующего дальномера в неподвижной системе координат, привязанной к корпусу робота;

· загружать алгоритмы управления движением мобильного робота;

· производить масштабирование виртуального полигона;

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

· сохранять на диске показания сенсорной системы.

Главное окно приложения

Рисунок 1 – Главное окно приложения

Меню <File> главного графического окна приложения содержит следующие активные элементы:

· Open – позволяет выбрать и загрузить одну из сгенерированных заранее виртуальных карт местности с расширением «*.mat», которые находятся в папке maps;

· Print – сохраняет на диске в папке print изображение окна приложения в виде pdf файла.

· Close – закрывает главное окно приложения.

Меню <Mode> содержит следующие активные элементы:

· Manual – выбор ручного режима управления мобильным роботом;

· Autonomous – выбор автономного режима управления мобильным роботом.

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

При автономном режиме мобильный робот движется согласно одному из выбранных алгоритмов, записанных в файл-инструкцию с расширением «*.m» и находящихся в папке scripts. Файлы с соответствующими алгоритмами выбираются с помощью дополнительного диалогового окна, автоматически появляющегося после выбора автономного режима управления МР. Входными параметрами для алгоритмов управления служат показания описанных выше датчиков сенсорной системы робота. Выходными данными является вектор, содержащий управляющие команды для соответствующего направления вращения каждого из двух колёс мобильного робота. Вид интерфейса после загрузки желаемой карты представлен на рисунке 2.

main

Рисунок 2 – Главное окно с загруженной картой

На выбор представляется несколько карт, имитирующих различные варианты местности и препятствий, с которыми может взаимодействовать МР (рисунок 3). Данные файлы представляют собой структуру с именем map, состоящую из следующих семи полей:

· map.Border содержит размеры текущей карты местности;

· map.Rect содержит описание положений и значений размеров всех прямоугольных примитивов;

· map.Circle содержит описание положений и значений диаметров всех круглых примитивов;

· map.Start указывает на начальную точку положения мобильного робота на карте;

· map.Rot содержит значение начального угла направления движения мобильного робота;

· map.NumRowSens указывает значение числа отсчетов в сканируемом угле;

· map.SensAngle указывает значение дискретного шага отсчетов в сканирующем дальномере.

                  
                      а)                                                                 б)       

                    

                        в)                                                              г)

Рисунок 3 – Примеры различных карт местности с объектами:

а – комната с предметами; б – производственные помещения; в – лабиринт; г – единичные препятствия.

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

Рисунок 4 – Управляющие элементы для настройки конфигурации сканирующего дальномера и элементы для ручного управления движением мобильного робота:

а – число реальных и б – отображаемых на экране сканирующих лучей лидара; в – ползунок для выбора угла максимального разворота сканирующей головки от 1 до 360 градусов; г – значение угла сканирования в градусах; д – элементы для ручного управления движением мобильного робота

В разработанной программе имитационного моделирования реализованы сенсорные системы, представленные на рисунке 5:

· ближнего действия, которые представлены восемью датчиками препятствий, равномерно расположенными по периметру корпуса робота (рисунок 5, а);

· дальнего действия (лидара) (рисунок 5, б).

                                                     

                     а)                                                          б)

Рисунок 5 – Сенсорные системы:

а – ближнего действия; б – дальнего действия

Минимальный дискретный угол поворота сканирующей головки лидара выбирается пользователем в пределах от 1 до 360°, т. е. за один полный оборот лидара сенсорная система ИСУ может получить от 1 до 360 выборок аналоговых значений расстояния до преград. При этом двухмерный угол сканирования лидара всегда центрируется относительно направления движения робота. По сравнению с датчиками препятствий сканирующий дальномер позволяет получать более точную информацию о расположении и форме препятствий. Благодаря этому МР способен объезжать препятствия по более плавным траекториям.

Таким образом, разработанная программа способна определять и графически отображать пересечения сканирующих лучей лидара и датчиков препятствия с преградами, которые представляют собой окружности и прямоугольники различных размеров и соотношений сторон (рисунок 6).

                            

                    а)                                                                             б)

Рисунок 6 – Основные геометрические примитивы, описывающие преграды:

а – вид сверху; б – показания сканирующего дальномера

Предложенную систему можно использовать в различных задачах. Например, кто-то занимается задачами распознавания образов на основе данных от сканиоующих лидаров. Тогда с помощью Vechicle2DSim можно создать достаточно качественный набор обучающих данных. Причём, для этого оператору требуется в ручном режиме направить МР к исследуемому объекту под нужным углом. Потом нажать на кнопку "Save". В результате, на диске в папке data будет сохранён текстовый dat-файл, в котором будет содержаться одномерный массив значений расстояний лучей лидара до преград (рисунок 6, б).

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

Теги

  • robotics
  • navigation
  • simulation
    26.05.2020

    Комментарии