Simulation 3D Fisheye Camera

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

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

    Automated Driving Toolbox / 3D Симуляция

  • Simulation 3D Fisheye Camera block

Описание

Блок Simulation 3D Fisheye Camera обеспечивает интерфейс к камере с линзой подозрительного взгляда в 3D среде симуляции. Эта среда представляется с помощью Нереального Engine® от эпических игр®. Датчик основан на модели 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 для работ БПЛА.

Порты

Входной параметр

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

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

Зависимости

Чтобы включить этот порт, выберите параметр Input рядом с параметром Relative translation [X, Y, Z] (m). Когда вы выбираете Input, параметр Relative translation [X, Y, Z] (m) задает начальный относительный перевод, и порт Translation задает относительный перевод в процессе моделирования. Для получения дополнительной информации смотрите Преобразование Положения Датчика.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Относительное вращение датчика от его точки монтирования на транспортном средстве, в градусах в виде с действительным знаком 1 3 вектор из формы [Roll Pitch Yaw].

Зависимости

Чтобы включить этот порт, выберите параметр Input рядом с параметром Relative rotation [Roll, Pitch, Yaw] (deg). Когда вы выбираете Input, параметр Relative translation [Roll, Pitch, Yaw] (deg) задает начальное относительное вращение, и порт Rotation задает относительное вращение в процессе моделирования. Для получения дополнительной информации смотрите Преобразование Положения Датчика.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Вывод

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

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 симуляции 3D блоки транспортного средства в модели. Если вы выбираете 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]

Настройте относительный перевод в процессе моделирования

Чтобы настроить относительный перевод датчика в процессе моделирования, включите входной порт Translation путем выбора параметра Input рядом с параметром Relative translation [X, Y, Z] (m). Когда вы включаете порт Translation, параметр Relative translation [X, Y, Z] (m) задает начальный относительный перевод датчика, и порт Translation задает относительный перевод датчика в процессе моделирования. Для получения дополнительной информации об относительном переводе и вращении этого датчика, смотрите Преобразование Положения Датчика.

Зависимости

Чтобы включить этот параметр, выберите 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]

Настройте относительное вращение в процессе моделирования

Чтобы настроить относительное вращение датчика в процессе моделирования, включите входной порт Rotation путем выбора параметра Input рядом с параметром Relative rotation [Roll, Pitch, Yaw] (deg). Когда вы включаете порт Rotation, параметр Relative rotation [Roll, Pitch, Yaw] (deg) задает начальное относительное вращение датчика, и порт Rotation задает относительное вращение датчика в процессе моделирования. Для получения дополнительной информации об относительном переводе и вращении этого датчика, смотрите Преобразование Положения Датчика.

Зависимости

Чтобы включить этот параметр, выберите 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.

Введенный в R2019b