exponenta event banner

Дифференциальный колесный робот в лабиринте

Пример vrmaze показывает, как обнаружение столкновений в Simulink ® 3D Animation™ может быть использовано для моделирования дифференциального колесного робота, решающего проблему лабиринта. Алгоритм управления роботом использует информацию от виртуальных ультразвуковых датчиков, которые измеряют расстояние до окружающих объектов.

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

Датчики реализованы в виде X3D узлов LinePickSensor. Эти датчики обнаруживают приблизительные столкновения лучей (смоделированные как IndexedLineSet) с произвольной геометрией в сцене. В случае геометрических примитивов обнаруживаются точные коллизии. Одним из выходных полей LinePickSensor является поле isActive, которое становится TRUE, как только обнаруживается столкновение между его лучом и окружающими объектами сцены.

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

В модели определены блоки VR Sink и VR Source, связанные с одной и той же виртуальной сценой. Источник VR используется для считывания сигналов isActive датчиков. VR Sink используется для установки положения/поворота робота в виртуальном мире.

Алгоритм управления роботом реализован с помощью диаграммы Stateflow ®.

В виртуальном мире определено несколько точек зрения. Перейдите к точке обзора «Следовать за роботом», чтобы увидеть сцену с другой точки зрения.