Представляю вашему вниманию перевод второй части статьи, первую часть которой мы уже публиковали, ее можно найти по ссылке.
В первой части мы знакомились со средой моделирования V-REP, рассматривали методы управления моделированием, возможности реализации V-REP в моделировании.
Сейчас изучим функции моделирования в V-REP и рассмотрим несколько примеров использования платформы V-REP.
Функции моделирования в V-REP
V-REP разработан на базе универсальной архитектуры, и в нем нет главного или центрального модуля. Вместо этого V-REP состоит из относительно самостоятельных функциональных групп, которые могут быть включены или выключены по мере необходимости.
Представьте себе сценарий для моделирования, в котором промышленный робот должен забрать ящики и переместить их в другое место. V-REP вычисляет динамику захвата и удержания коробки, а для других частей цикла, когда динамические эффекты пренебрежимо малы, выполняет кинематическое моделирование. Такой подход позволяет рассчитать движения промышленного робота быстро и точно, что не получилось бы в случае полного моделирования с использованием сложных динамических библиотек. Использование такого гибридного моделирования оправдано в том случае, когда робот жестко зафиксирован и не находится под влиянием окружения.
Кроме адаптивного избирательного включения различных функциональных возможностей, V-REP может использовать их совместно, заставляя одну взаимодействовать с другой. Например, при моделировании человекоподобного робота, V-REP может обрабатывать движения ног следующим путем: сначала рассчитывается инверсная кинематика для каждой ноги (т.е. общая позиция всей ноги рассчитывается от нужного положения ступней и ориентации); затем вычисляются позиции суставов в качестве целевых для модуля динамики. Это позволяет задавать движения гуманоида очень универсальным способом, т. к. для каждой ноги будет назначено движение повторения 6-мерного пути: остальные расчеты производятся автоматически.
Функциональность относится к конкретным объектам сценария или конкретным расчетным модулям, каждый из которых описан далее.
Объекты моделирования.
Симуляционные модели V-REP содержат несколько объектов или элементов, которые собраны в древовидную иерархию. Ниже описаны сцены моделирования, поддерживаемые V-REP:
• Сочленения: элементы, которые связывают два или более объекта сцены вместе, обеспечивая от одной до трех степеней свободы (призматические, вращательные, винтовые, или сферические). Они могут работать в различных режимах (например, в силовом/ вращательном режиме, режиме обратной кинематики и др.)
• Формы: треугольные полигональные сетки, используемые для моделирования и визуализации твердого тела.
• Бесконтактные датчики (Рисунок 3): Они вычисляют точное минимальное расстояние к части фигуры, которая находится в пределах обнаружения. Это дает непрерывную и более реалистичную симуляцию, чем обнаружение на основе большого количества направленных лучей.
• Визуальные датчики: визуальные датчики позволяют извлекать сложные изображения и информацию из сцен моделирования (цвета, размер объектов, глубина карты и др.). Встроенная фильтрация и функция обработки изображений запускает целый блок из фильтрующих элементов. Визуальные датчики используют аппаратное ускорение для получения RAW изображений (поддержка OpenGL).
• Датчики силы: они представляют собой жесткие связи между фигурами, которые могут записывать приложенные силы и крутящие моменты, и которые могут разрушаться при превышении заданного порога.
• Графики: графики могут записывать большое разнообразие предопределенных или пользовательских потоков данных. Потоки данных затем могут быть отображены напрямую (график по времени заданного типа данных), или в сочетании друг с другом для отображения X/Y графиков, или 3D кривых.
• Камеры: они позволяют визуализировать сцены, которые зависят от точки наблюдения.
• Освещение: освещают сцену или отдельные объекты сцены, и влияют на камеры или визуальные датчики.
• Пути: они определяют сложное движение в пространстве (последовательность свободно комбинируемых переводов, вращений и/или пауз), и используются, например, для направления сварочной горелки робота вдоль заданной траектории, или позволяют задать движение конвейерной ленты.
• Материальные точки: это вспомогательные системы отсчета, которые могут быть использованы для различных задач. В основном используются в сочетании с другими объектами сцены.
• Фрезы: могут быть использованы для имитации поверхности режущих операций на формы (например, фрезерование, лазерная резка и др.)
Вычислительные модули
Объекты моделирования редко используются самостоятельно, они скорее работают на или совместно с другими объектами (например, датчик приближения обнаруживает формы). Кроме того, V-REP предлагает несколько расчетных модулей, которые могут напрямую работать на одну или несколько сцен моделирования. Ниже приведены основные расчетные модули:
• Модуль кинематики: позволяет выполнять кинематические расчеты (прямые и обратные) для любого типа механизма (разветвленные, закрытые, с резервированием, содержащие вложенные циклы и др.). Модуль базируется на расчете наименьших затухающих квадратов.
• Динамический модуль: позволяет регулировать динамику расчета твердого тела и взаимодействия (столкновение, цепляние и др.) с помощью Bullet Physics Library и Open Dynamics Engine. Симуляции динамических систем до сих пор находятся на начальном этапе и часто основываются на приблизительных показателях. Для подтверждения результатов важно основываться не только на одном физическом движке.
• Модуль обнаружения столкновений: позволяет осуществлять быструю проверку столкновений между любой формой или набором фигур. Этот модуль является полностью независимым от ответа алгоритмов расчета динамики модуля. Используются структуры данных, основанных на бинарном дереве прямоугольных боксов для ускорения. Дополнительная оптимизация достигается за счет техники кэширования.
• Модуль расчета расстояния (Mech-mech модуль): позволяет быстро минимизировать расстояние расчета между любыми формами (выпуклые, вогнутые, открытые, закрытые и т.д.) или набором форм. Модуль использует те же структуры данных, что и модуль обнаружения столкновений.
• Модуль планирования движения: ручное планирование голономных и неголономных задач с помощью подхода, основанного на алгоритме Rapidly-exploring Random Tree (RRT). Задачи по планированию путей кинематических цепей также поддерживаются.
Для универсальности вышеуказанные модули реализованы в общем виде. Цели их интеграции с V-REP чем-то схожи с интеграцией встроенных скриптов, которые описаны в первой части статьи. Подавляющее большинство симуляций или имитационных моделей не требует каких-либо специфических инструментов, достаточно хорошего набора основных инструментов. Если инструменты интегрированы в симулятор, и их задачи, которые относятся непосредственно к имитационной модели, определены, то модель становится чрезвычайно легко переносимой. Запуск имитационной модели на другой машине или платформе осуществляется с помощью одного файла модели: нет необходимости перекомпилировать, устанавливать или перезагружать плагин. Аналогичным образом это делает модели хорошо масштабируемыми: дублирование модели сохраняет функциональность без необходимости изменения исходного кода. Процесс дублирования можно осуществить даже во время процесса симуляции.
Традиционный подход к расширению функциональности с помощью плагинов в целях поддержки конкретной имитационной модели также поддерживается в V-REP.
Пример
В некоторых случаях невозможно использовать контроллер отдельно от имитируемой сущности. Как правило, это происходит при работе с главным контроллером робота, который включает в себя очень сложные элементы. Или когда контроллер должен выполняться нативно. Но с другой стороны, действительно ли необходимо создавать свой плагин для каждого небольшого датчика, новой дополнительной возможности или небольшой функции? Следующие три примера иллюстрируют привлекательную универсальность и портативность имитационных моделей, предлагаемых в V-REP.
1) Модель лазерного сканера
На рисунке 4 изображена модель лазерного сканера в V-REP. Модель состоит из корпуса или кожуха, шарнира, бесконтактного датчика, установленного в шарнир.
Прерывающий дочерний скрипт привязан к корпусу датчика и отвечает за перемещение сустава на заданный угол, прочтение датчика приближения, генерирование примитивных линий в сцене моделирования(и точек в местах соприкосновения), затем переход к следующему угловому положению. Поскольку дочерний скрипт выполняется в основном потоке, он обрабатывает ровно столько угловых позиций сустава, насколько этот сустав сдвинулся за время симуляции.
Модель можно перетащить в сцену моделирования, и она начнет работать сразу. Модель целиком помещается в один файл, пригодный также для прямого использования на других платформах и совместима с текущей и будущими V-REP. Модель может быть продублирована столько раз, сколько потребуется, и ее управляющий код может быть изменен при необходимости.
Таким же путем могут быть созданы другие модели, будь то ручка для рисования, красящее сопло, захват, камера обнаружения клякс или же целый робот.
2) Имитационная модель параллельного манипулятора
Рисунок 5 показывает модель параллельного манипулятора, контролируемого в режиме прямой кинематики из внешнего приложения, подключающегося через удаленный API. Для того, чтобы правильно обрабатывать все ограничения, модель работает через модуль кинематики V-REP. Поскольку все связанные с этим кинематические задачи привязаны к модели, эта модель самодостаточна, легко дублируется и запускается на других платформах. Физическое масштабирование модели, которое является еще одной особенностью, поддерживаемой V-REP, автоматически отрегулирует все кинематические задачи (среди прочих), и оставит внутреннюю кинематику согласованной без необходимости изменения кода.
3) Имитационная модель умного человека
Рисунок 6 показывает имитационную модель человека, выполняющую задачи планирования траектории между его текущим положением и желаемым конечным положением. В то время как задача планирования пути сама по себе выполняется в V-REP модуле планирования пути, дочерний скрипт, который прилагается к модели, вызывает расчет действий рук и ног, приводит их в действие и правильно перемещает модель вдоль расчетной траектории. В этом случае модель так же является полностью автономной и полностью портативной.
Заключение
V-REP представляет собой универсальную и масштабируемую среду моделирования. Предлагая множество различных методик программирования для контроллеров, а также за счет возможности встраивания контроллеров и функций в имитационные модели она облегчает программистам задачу и снижает сложность развертывания для пользователей.
К сегодняшнему дню V-REP вырос до надежного и широко используемого в научной и промышленной сфере тренажера роботов и контроллеров. Он выполняет самые различные задачи: от проверки системы, оптимизации алгоритмов, моделирования сложных сборочных цепей в автоматизации производств до планирования задач для роботов и контроллеров.
Автор статьи: marc@coppeliarobotics.com
Эрик Ромер, преподаватель Государственного университета Кампинас, Бразилия
Сурья Сингх, преподаватель в университете Квинсленда, Австралия
Марк Фриз, генеральный директор Coppelia Robotics, Швейцария.
Перевод: Алеся Ханиева, роботехнопарк Навигатор кампус, г. Казань.
Автор: Alesya_Khanieva