Трекинг 3D объектов

Для трекинга объектов реального окружения в конструкторе EV Toolbox используется технология ARKit.

ARKit — это программная среда, с помощью которой разработчики могут добавлять в свои приложения или игры элементы дополненной реальности. Разработчики могут добавлять двумерные или трехмерные элементы с использованием фронтальной камеры или камеры на обратной стороне устройства iOS или iPadOS.

Note

Подробнее о технологии ARKit вы можете узнать на официальном сайте компании Apple.

Инструменты для работы с трекингом 3D объектов

Для разработки проектов с использованием трекинга трехмерных объектов необходимо:

  • Программа конструктора EV Toolbox Advanced/Advanced Edu верcии 3.4.12 или выше, установленный на операционной системе macOS.
  • Программа Xcode версии 14.0 и выше — интегрированная среда разработки программного обеспечения для платформ macOS, iOS, watchOS

и tvOS, разработанная корпорацией Apple. - Программа для создания объектов формата .arobject, например ScanningApp

Important

Разработка AR проектов с использованием трекинга объектов реального окружения в конструкторе EV Toolbox возможна только для мобильных устройств под управлением iOS версии 12 и выше. Тестирование созданных проектов возможно только непосредственно на мобильных устройствах под управлением iOS версии 12 и выше.

Подготовка к сканированию объектов реального окружения

Для работы с функционалом трекинга трехмерных объектов с использованием технологии ARkit в конструкторе EV Toolbox в первую очередь необходимо отсканировать объект, который вы планиурете отслеживать. Для сканирования объекта используются сторонние программы, которые позволяют получить итоговый файл в формате .arobject.

Note

ARReferenceObject содержит информацию о пространственных объектах, необходимую ARKit для распознавания реального объекта, и не является отображаемой трехмерной реконструкцией этого объекта.

Файл .arobject - это экземпляр класса ARReferenceObject в форме сериализованной файловой системы.

В данной инструкции для сканирования мы будем использовать программу ScanningApp, официально представленную компанией Apple.

Загрузите архив с кодом приложения ScanningApp и всеми необходимыми файлами для его работы на ПК по ссылке

Разархивируйте загруженные файлы в удобное для вас место.

Для дальнейшей работы с загруженным проектом ScanningApp запустите программу Xcode на вашем ПК.

Откройте проект ScanningApp.xcodeproj, используя функцию Open Existing Project, указав расположение файла с проектом.

Подключите мобильное устройство под управлением iOS версии 12 и выше, на которое будет установлено приложение, к ПК. Запустите сборку проекта, нажав кнопку “Start the active sheme”.

Если ранее вы использовали программу Xcode и настраивали ее работу, сборка проекта должна быть завершена успешно. В таком случае вы можете пропустить следующий шаг инструкции и перейти к работе с программой на мобильном устройстве.

Ошибка при сборке проекта ScanningApp.xcodeproj

Если вы впервые работаете с программой Xcode, то при сборке проекта может возникнуть ошибка (Build Failed) “Signing for “ScanningApp” requires a development team”.

Для того, чтобы собрать приложение, нужно добавить Development team и сгенерировать сертификат при необходимости.

Для этого перейдите в настройки проекта, выделив его в панели навигатора проекта (кнопка “Show the Project navigator” в левой верхней части окна программы).

Нажмите кнопку “Add Account…” для добавления аккаунта.

Или выберите в главном меню Xcode–>Settings.. и откройте вкладку Accounts

Введите ваш Apple ID и пароль к нему.

Если вы уже являетесь разработчиком (у вас есть аккаунт Apple Developer), после входа все ваши сертификаты будут подгружены автоматически. Выберите необходимый сертификат (Developer certificate).

Есл вы используете новый Apple ID, то для формирования нового сертификата необходимо нажать кнопку “Manage Certificates…” –> Create a certificate

Выберите готовый сертификат и нажмите “Done” для завершения выбора сертификата.

Закройте окно настроек.

Проверьте, что в окне настроек для параметра Team выбран ваш аккаунт, а предыдущая ошибка больше не отображается.

Загрузка и установка приложения ScanningApp на мобильное устройство

Для загрузки и установки приложения ScanningApp необходимо подключить к ПК или ноутбуку ваше мобильное устройство с использованием проводного соединения.

Проверьте, что в верхней части окна Xcode отображается ваше подключенное устройство.

Проверьте, что на мобильном устройстве включен режим разработчика: Настройки –

Запустите сборку и установку приложения на мобильное устройство, нажав кнопку “Start the active scheme”.

Xcode может запросить пароль при осуществлении сборки. Введите пароль от вашего пользователя на ПК.

Дождитесь окончания сборки и установки приложения на мобильное устройство.

Особенности запуска приложения ScanningApp на мобильных устройствах

Если вы уже являетесь разработчиком (у вас есть аккаунт Apple Developer) и ваше устройство внесено в список тестовых устройств, установка приложения будет выполнена успешно.

Если вы впервые сформировали новый сертификат для Apple ID на предыдущем шаге, и собрали приложение ScanningApp с помощью него, то при установке на мобильное устройство возникнет следующее предупреждение на ПК.

И на мобильном устройстве, где была произведена попытка запуска приложения ScanningApp.

Для того, чтобы разрешить запуск приложения ScanningApp на мобильном устройстве, перейдите в Настройки–> Основные–> VPN и управление устройством–>Доверять…

После того, как вы дали все необходимые разрешения, можно запустить приложение на вашем мобильном устройстве.

Сканирование объектов реального мира с помощью программы ScanningApp и их сохранение в формате .arobject

Запустите приложенеи ARKit Scanner, установленное на вашем мобильном устройстве. При первом запуске приложения разрешите для него доступ к камере мобильного устройства.

Процесс сканирования объекта состоит из следующих этапов:

  • Размещение объекта для сканирования в соответствии с рекомендациями.
  • Определение зоны сканирования (определение ограничивающей рамки).
  • Сканирование объекта.
  • Выбор опорной точки (Pivot point) для объекта.
  • Проверка и экспорт объекта .arobject.

1. Размещение объекта для сканирования

Выберите поверхность и разместите там объект для сканирования в соответствии со следующими рекомендациями:

  • Размещайте объект для сканирования на поверхности, свободной от других объектов. Например, вы можете использовать пол с ламинатом или пустую столешницу.
  • Объект должен быть доступен для сканирования со всех сторон. Убедитесь, что вы можете подойти или получить доступ к объекту с 4х сторон: спереди, сзади, слева и справа.
  • Убедитесь, что объект для сканирования хорошо освещен со всех сторон.
  • По возможности поместите объект на матовый однородный фон.

Note

Подробнее о рекомендациях для улучшения сканирования объектов вы можете узнать в официальной документации по ARKit.

Нажмите кнопку Next для перехода к определению зоны сканирования.

2. Определение зоны сканирования (определение ограничивающей рамки)

После нажатия на кнопку Next вы увидите 3D бокс, который определяет зону сканирования.

Вы можете изменить зону сканирования вручную или автоматически.

Для того, чтобы определить зонку сканирования вручную, перемещайте 3D бокс, касаясь его и удерживая для перемещения одним пальцем для перемещения по всем осям сразу. Для перемещения 3D бокса только по одной из осей выберите одну из сторон бокса, касаясь ее и удерживая для перемещения одним пальцем.

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

Для автоматического определения зоны сканирования объекта вы можете перемещаться вокруг объекта, и “приложение попытается” автоматически разместить 3D вокруг него.

Note

Обратите внимание на расположение 3D бокса относильно объекта.

Если область сканирования будет содержать в себе элементы окружающего мира, в котором объект находится, например, область захватывает поверхность столешницы, на которой объект размещен, то в результате использования такого отсканированного объекта его трекинг будет возможен только на том же месте, где происходило сканирование. Такой вариант сканирования можно использовать для объектов, которые не планируется перемещать, например, для экспонатов в музеях.

Если вы планируете перемещать объект в различные локации убедитесь, что 3D бокс содержит только элементы объекта, который вы хотите сканировать и не содержит в себе элементы окружающего мира.

Note

Убедитесь, что 3D бокс корректно располагается относительно объекта - объект полностью попадает в бокс необходимыми частями.

После завершения определения зоны сканирования нажмите кнопку «Scan» для перехода к следующему шагу.

3. Сканирование объекта

Для сканирования объекта перемещайтесь вокруг него с мобильным устройством таким образом, чтобы объект был виден в камере устройства под разными углами. Для наилучших результатов перемещайтесь медленно и избегайте резких движений.

Приложение поэтапно выделяет части 3D бокса, чтобы указать, что вы отсканировали достаточно, чтобы перейти к следующей стороне. По мере заполнения частей бокса также увеличивается процент сканированных частей объекта в верхней части экрана.

Обязательно отсканируйте объект со всех сторон, с которых вы хотите, чтобы пользователи вашего приложения могли распознать объект. Приложение автоматически переходит к следующему шагу после достижения 100% сканированных частей объекта в верхней части экрана.

Вы можете нажать кнопку «Finish», чтобы перейти к следующему шагу, не завершая сканирование объекта на 100%.

4. Выбор опорной точки (Pivot point) для объекта

На этом шаге для отсканированного объекта необходимо указать опорную точку (Pivot point) или начало координат - точку, относительно которой в конструкторе EV Toolbox объект можно трансформировать (перемещать, вращать или масштабировать).

Приложение отображает систему координат - линии осей координат x, y и z, показывающую точку привязки объекта (начало координат). Определите опорную точку для объекта (Pivot point), перемещая систему координат, касаясь ее и удерживая для перемещения одним пальцем.

После завершения выбора опорной точки нажмите кнопку «Test» для перехода к следующему шагу.

5.Проверка и экспорт объекта .arobject

На этом этапе приложение отображает модель в виде облака точек - так, как ее будет видеть мобильное устройства при использовании в AR проекте AR при обнаружении реального объекта и использует размер модели для настройки масштаба эталонного объекта.

Полученное облако точек можно экспортировать в формат .arobject и передать на ПК с помощью удобного для вас способа для использования в AR проекте. Для передачи нажмите кнопку “Share” на экране мобильного устройства и выберите способ передачи.

Использование полученного .arobject при разработке AR проекта в EV Toolbox

Для разработки проекта с использованием трекинга объектов реального мира (трекинга 3D объектов) вы можете загрузить пример проекта arkit_arobject c GitHub и использовать его в качестве основы вашего проекта.