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