Simulation 3D Fisheye Camera

Модель датчика fisheye-камеры в 3D среде симуляции

  • Библиотека:
  • UAV Toolbox / 3D Симуляция

  • Simulation 3D Fisheye Camera block

Описание

Блок Simulation 3D Fisheye Camera обеспечивает интерфейс к камере с линзой подозрительного взгляда в 3D среде симуляции. Эта среда представляется с помощью Нереального Engine® от Epic Games®. Датчик основан на модели fisheye-камеры, предложенной Scaramuzza [1]. Эта модель поддерживает поле зрения до 195 градусов. Блок выводит изображение с заданным искажением камеры и размером. Можно также вывести местоположение и ориентацию камеры в системе мировой координаты сцены.

Если вы устанавливаете Sample time на -1, блок использует шаг расчета, заданный в блоке Simulation 3D Scene Configuration. Чтобы использовать этот датчик, необходимо включать блок Simulation 3D Scene Configuration в модель.

Примечание

Блок Simulation 3D Scene Configuration должен выполниться перед блоком Simulation 3D Fisheye Camera. Тем путем Нереальный Engine, 3D среда визуализации готовит данные перед блоком Simulation 3D Fisheye Camera, получает его. Чтобы проверять порядок выполнения блока, щелкните правой кнопкой по блокам и выберите Properties. На вкладке General подтвердите эти настройки Priority:

  • Simulation 3D Scene Configuration0

  • Simulation 3D Fisheye Camera1

Для получения дополнительной информации о порядке выполнения, смотрите Как Нереальная Симуляция Engine для работ БПЛА.

Порты

Вывод

развернуть все

3D выходное изображение камеры, возвращенное как m-by-n-by-3 массив значений триплета RGB. m является вертикальным разрешением изображения, и n является горизонтальным разрешением изображения.

Типы данных: int8 | uint8

Местоположение датчика вдоль Оси X, Оси Y и оси Z сцены. Значения Location находятся в мировых координатах сцены. В этой системе координат ось Z подчеркивает от земли. Модули исчисляются в метрах.

Зависимости

Чтобы включить этот порт, на вкладке Ground Truth, выбирают Output location (m) and orientation (rad).

Типы данных: double

Прокрутитесь, сделайте подачу, и ориентация датчика рыскания об Оси X, Оси Y и оси Z сцены. Значения Orientation находятся в мировых координатах сцены. Эти значения положительны в направлении по часовой стрелке при взгляде в положительных направлениях этих осей. Модули исчисляются в радианах.

Зависимости

Чтобы включить этот порт, на вкладке Ground Truth, выбирают Output location (m) and orientation (rad).

Типы данных: double

Параметры

развернуть все

Монтирование

Уникальный идентификатор датчика в виде положительного целого числа. В системе мультидатчика идентификатор датчика различает датчики. Когда вы добавляете новый блок датчика в свою модель, Sensor identifier того блока является N + 1. N является самым высоким значением Sensor identifier среди существующих блоков датчика в модели.

Пример 2

Имя родительского элемента, к которому датчик смонтирован в виде Scene Origin или как имя транспортного средства в вашей модели. Имена транспортного средства, которые можно выбрать, соответствуют параметрам Name блоков Simulation 3D Vehicle в модели. Если вы выбираете Scene Origin, блок помещает датчик в начале координат сцены.

Пример: SimulinkVehicle1

Местоположение монтирования датчика.

  • Когда Parent name является Scene Origin, подставки под клише датчик до начала координат сцены и Mounting location могут быть установлены в Origin только. В процессе моделирования датчик остается стационарным.

  • Когда Parent name является именем транспортного средства (например, SimulinkVehicle1) подставки под клише датчик к одному из предопределенных местоположений монтирования описаны в таблице. В процессе моделирования датчик перемещается с транспортным средством.

Местоположение монтирования транспортного средстваОписаниеОриентация относительно источника транспортного средства [крен, тангаж, рыскание] (градус)
Origin

Датчик по ходу движения смонтировался к источнику транспортного средства, который находится на земле в геометрическом центре транспортного средства

[0, 0, 0]

Прокрутитесь, сделайте подачу, и рыскание по часовой стрелке положительно при взгляде в положительном направлении Оси X, Оси Y и оси Z, соответственно. При рассмотрении транспортного средства от верхней части вниз, затем угол рыскания (то есть, угол ориентации) против часовой стрелки положительны, потому что вы смотрите в обратном направлении оси.

(X, Y, Z) монтирующееся местоположение датчика относительно транспортного средства зависит от типа транспортного средства. Чтобы задать тип транспортного средства, используйте параметр Type блока Simulation 3D UAV Vehicle, с которым вы монтируетесь. Получить (X, Y, Z) монтирующиеся местоположения для типа транспортного средства, смотрите страницу с описанием для того транспортного средства.

Чтобы определить местоположение датчика в мировых координатах, откройте блок датчика. Затем на вкладке Ground Truth выберите Output location (m) and orientation (rad) и смотрите данные из выходного порта Location.

Выберите этот параметр, чтобы задать смещение от монтирующегося местоположения при помощи параметров Relative rotation [Roll, Pitch, Yaw] (deg) и Relative translation [X, Y, Z] (m).

Смещение перевода относительно монтирующегося местоположения датчика в виде с действительным знаком 1 3 вектор из формы [X, Y, Z]. Модули исчисляются в метрах.

Если вы монтируете датчик к транспортному средству установкой Parent name к имени того транспортного средства, то X, Y, и Z находятся в системе координат транспортного средства, где:

  • Ось X указывает вперед от транспортного средства.

  • Ось Y указывает слева от транспортного средства, как просматривается при направлении вперед.

  • Ось Z подчеркивает.

Источник является монтирующимся местоположением, заданным в параметре Mounting location. Этот источник отличается от источника транспортного средства, который является геометрическим центром транспортного средства.

Если вы монтируете датчик к источнику сцены установкой Parent name к Scene Origin, затем X, Y, и Z находятся в мировых координатах сцены.

Для получения дополнительной информации о транспортном средстве и системах мировой координаты, смотрите Системы координат для Нереальной Симуляции Engine в UAV Toolbox.

Пример: [0,0,0.01]

Зависимости

Чтобы включить этот параметр, выберите Specify offset.

Вращательное смещение относительно монтирующегося местоположения датчика в виде с действительным знаком 1 3 вектор из формы [Крен, Тангаж, Рыскание]. Прокрутитесь, сделайте подачу, и рыскание является углами вращения вокруг X-, Y-и осей Z, соответственно. Модули в градусах.

Если вы монтируете датчик к транспортному средству установкой Parent name к имени того транспортного средства, то X, Y, и Z находятся в системе координат транспортного средства, где:

  • Ось X указывает вперед от транспортного средства.

  • Ось Y указывает слева от транспортного средства, как просматривается при направлении вперед.

  • Ось Z подчеркивает.

  • Прокрутитесь, сделайте подачу, и рыскание по часовой стрелке положительно при взгляде в прямом направлении Оси X, Оси Y и оси Z, соответственно. Если вы просматриваете сцену из 2D нисходящей перспективы, то угол рыскания (также названный углом ориентации) против часовой стрелки положителен, потому что вы просматриваете сцену в обратном направлении оси Z.

Источник является монтирующимся местоположением, заданным в параметре Mounting location. Этот источник отличается от источника транспортного средства, который является геометрическим центром транспортного средства.

Если вы монтируете датчик к источнику сцены установкой Parent name к Scene Origin, затем X, Y, и Z находятся в мировых координатах сцены.

Для получения дополнительной информации о транспортном средстве и системах мировой координаты, смотрите Системы координат для Нереальной Симуляции Engine в UAV Toolbox.

Пример: [0,0,10]

Зависимости

Чтобы включить этот параметр, выберите Specify offset.

Шаг расчета блока в секундах в виде положительной скалярной величины. 3D частота кадров среды симуляции является инверсией шага расчета.

Если вы устанавливаете шаг расчета на -1, блок наследовал свой шаг расчета от блока Simulation 3D Scene Configuration.

Параметры

Эти внутренние параметры камеры эквивалентны свойствам fisheyeIntrinsics Объект (Computer Vision Toolbox). Чтобы получить внутренние параметры для вашей камеры, используйте приложение Camera Calibrator.

Для получения дополнительной информации о калибровочном процессе fisheye-камеры, см. Одно Приложение Camera Calibrator (Computer Vision Toolbox) и Калибровочные Основы Подозрительного взгляда (Computer Vision Toolbox).

Центр искажения в виде вектора с 2 элементами с действительным знаком. Модули находятся в пикселях.

Размер изображения, произведенный камерой в виде вектора 1 на 2 с действительным знаком положительных целых чисел формы [mrows, ncols]. Модули находятся в пикселях.

Полиномиальные коэффициенты для функции проекции, описанной моделью [1] Тейлора Скарамаззы в виде вектора 1 на 4 с действительным знаком из формы [a0 a2 a3 a4].

Пример: [320, -0.001, 0, 0]

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

Пример: [0, 1; 0, 1]

Основная истина

Выберите этот параметр, чтобы вывести местоположение и ориентацию датчика в портах Location и Orientation, соответственно.

Советы

  • Чтобы визуализировать изображения камеры, которые выводятся портом Image, используйте блок Video Viewer (Computer Vision Toolbox) или To Video Display (Computer Vision Toolbox).

  • Поскольку Нереальный Engine может занять много времени, чтобы запустить между симуляциями, рассмотреть логгирование сигналов, что датчики выводят. Можно затем использовать эти данные, чтобы разработать алгоритмы восприятия в MATLAB®. Смотрите Конфигурируют Сигнал для Логгирования (Simulink).

Ссылки

[1] Scaramuzza, D., А. Мартинелли и Р. Сигварт. "Тулбокс для легкой калибровки камеры Omindirectional". Продолжения к международной конференции IEEE по вопросам интеллектуальных роботов и систем (IROS 2006). Пекин, Китай, 7-15 октября 2006.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Введенный в R2019b