В vrcollisions_lidar примере показано, как LinePickSensor может использоваться для моделирования поведения датчика LIDAR в Simulink ® 3D Animation™.
В простом виртуальном мире задан колесный робот с установленным на его верхней части датчиком LIDAR. Этот датчик LIDAR реализован с помощью LinePickSensor, который обнаруживает столкновения нескольких лучей (смоделированных как IndexedLineSet) с окружающими объектами сцены. Поля Sensor pickedRange и pickedPoint используются в этой модели только в целях визуализации, но вместе с информацией о положении робота они могут использоваться для одновременной локализации и отображения (SLAM) и других аналогичных целей.
Линии измерения датчика видны, показаны как прозрачные зеленые линии. В горизонтальной плоскости между -90 и 90 степенями равномерно расположен 51 чувствительный луч. Область значений ЛИДАР составляет 10 метров.
Для порядка выхода датчика LIDAR существует визуализирующий прокси LineSet, заданный линиями, идентичными линиям, заданным как геометрия измерения LinePickSensor. Линии визуализации синие. Комбинация выходов pickedPoint и pickedRange LinePickSensor используется для визуализации точек столкновения. Выход pickedPoint содержит координаты точек, которые сталкивались с окружающими объектами. Этот выход имеет переменный размер в зависимости от того, сколько лучей датчика столкнулось. Размер выходного сигнала pickedRange фиксирован, равен количеству чувствительных лучей. Выход возвращает расстояние от источника датчика LIDAR до точки столкновения для каждой чувствительной линии. Для лучей, которые не сталкиваются, этот выход возвращает -1. pickedRange используется для определения индексов линий, для которых точки столкновения возвращаются в выходе датчика picketPoint. В эффект синие линии сокращаются так, что для каждой линии отображается только сегмент линии между источником вентилятора луча и точкой столкновения.
Траектория робота моделируется тривиальным способом с помощью Редактор и блоков Ramp. В редакторе сигналов для первых 40 секунд симуляции задается простая квадратная траектория на 1x1 метр. После возвращения в исходное положение робот вращается только на неопределённое время.
В модели заданы и VR Sink, и VR Source блоки, сопоставленные с одним и тем же виртуальным миром. Источник VR используется, чтобы считать сигналы датчика. VR Sink используется, чтобы задать положение/вращение робота и координаты конечных точек визуальных прокси-линий датчика.
В виртуальном мире задано несколько точек зрения, как статических, так и прикрепленных к роботу, что позволяет наблюдать визуализацию ЛИДАР с разных точек зрения.