vrmaze пример показывает, как обнаружение столкновений в Simulink® 3D Animation™ может использоваться, чтобы симулировать вертевшего робота дифференциала, решая проблему лабиринта. Алгоритм управления робота использует информацию от виртуальных сверхзвуковых датчиков, которые обнаруживают расстояние до окружающих объектов.
Вертевший робот простого дифференциала оборудован 2 виртуальными сверхзвуковыми датчиками, один из датчиков смотрит вперед, каждый направлен слева от робота. Датчики упрощены, их активная область значений представлена зелеными линиями.
Датчики реализованы как узлы X3D LinePickSensor. Эти датчики обнаруживают аппроксимированные столкновения лучей (смоделированный как IndexedLineSet) с произвольными конфигурациями в сцене. В случае геометрических примитивов обнаруживаются точные столкновения. Один из LinePickSensor, поля выхода являются isActive полем, которое становится TRUE, как только столкновение между его лучом и окружающими объектами сцены обнаруживается.
Когда активировано, линии датчика изменяют свой цвет от зеленого до красного использования скрипта, написанного непосредственно в виртуальном мире.
В модели, существуют и Приемник VR и Исходные блоки VR, заданные, сопоставленные с той же виртуальной сценой. Источник VR используется, чтобы считать датчики isActive сигналы. Приемник VR используется, чтобы установить положение Робота / вращение в виртуальном мире.
Алгоритм управления робота реализован с помощью графика Stateflow®.
В виртуальном мире существует несколько заданных точек зрения. Превратитесь на, "Следуют за Роботом" точка зрения видеть сцену из другой точки зрения.