RU2805203C2 - Относительная пространственная локализация мобильных устройств - Google Patents
Относительная пространственная локализация мобильных устройств Download PDFInfo
- Publication number
- RU2805203C2 RU2805203C2 RU2021130178A RU2021130178A RU2805203C2 RU 2805203 C2 RU2805203 C2 RU 2805203C2 RU 2021130178 A RU2021130178 A RU 2021130178A RU 2021130178 A RU2021130178 A RU 2021130178A RU 2805203 C2 RU2805203 C2 RU 2805203C2
- Authority
- RU
- Russia
- Prior art keywords
- mobile device
- location
- time
- mobile
- coordinate system
- Prior art date
Links
Images
Abstract
Изобретение относится к области взаимодействия человека и компьютера, конкретно к устройствам дополненной реальности, и может применяться с целью определения относительного местоположения мобильных устройств. Сущность предлагаемого изобретения заключается в следующем. Для определения относительного местоположения между множеством мобильных устройств первое мобильное устройство наблюдает второе мобильное устройство в пределах поля обзора камеры первого мобильного устройства в момент времени t1, определяет своё местоположение в момент времени t1, а также принимает от второго мобильного устройства его местоположение в момент времени t1. Первое мобильное устройство определяет информацию о своей пространственной ориентации относительно второго мобильного устройства в момент времени t1 на основе по меньшей мере местоположения первого мобильного устройства и наблюдения второго мобильного устройства. Первое мобильное устройство идентифицирует два ограничения, связывающие системы координат мобильных устройств на основе по меньшей мере информации о местоположении и ориентации второго мобильного устройства. Положение первого мобильного устройства относительно второго мобильного устройства вычисляется при условии накопления по меньшей мере шести ограничений, полученных при наблюдении по меньшей мере в трёх моментах времени. Техническим результатом заявленного изобретения является возможность определения относительного местоположения мобильных устройств без обмена информацией о трехмерной карте, что позволяет сократить объём обрабатываемых данных, требуемых для выравнивания систем координат мобильных устройств. 2 н. и 13 з.п. ф-лы, 8 ил.
Description
Предшествующий уровень техники
[0001] Смешанная реальность, которая может также быть известна как дополненная реальность, включает в себя объединение объектов и/или людей реального мира с виртуальными объектами для создания новых сред и визуализаций, где физические и цифровые объекты сосуществуют и взаимодействуют в реальном времени. Устройства смешанной реальности дополняют пользовательское представление реального мира виртуальными объектами, которые имеют целью выглядеть, как если бы они были в действительности помещены в реальном мире. Устройство смешанной реальности может позволять пользователю просматривать окружения своего реального мира через полупрозрачный дисплей. Виртуальные объекты могут затем представляться на дисплее. Эти виртуальные объекты кажутся наложенными на пользовательское представление его окружений реального мира, тем самым объединяя виртуальную реальность с физической реальностью.
[0002] Опыт смешанной реальности может совместно использоваться среди множества устройств смешанной реальности. Это позволяет многим пользователям иметь общий совместно используемый опыт в пределах совместно используемой среды смешанной реальности. Существует множество разных сценариев, где совместно используемый опыт смешанной реальности может быть полезным и/или развлекательным, например, игра, где игроки способны взаимодействовать друг с другом и с виртуальными объектами как часть игры.
[0003] Чтобы способствовать опытам совместно используемой смешанной реальности, важно, чтобы множество устройств были способны вычислять свое положение и движение в одной и той же системе координат, так чтобы они могли знать относительное положение друг друга. Большинство устройств смешанной реальности способны определять свое собственное относительное движение, но не обязательно свое относительное положение (позу) (т.е., местоположение и ориентацию) относительно других устройств.
[0004] Обычным решением для совмещения системы координат для множества устройств является обмен информацией трехмерной карты (или данными двумерного изображения) между устройствами, так что может определяться относительное положение между этими картами/изображениями. Эти решения могут быть реализованы либо одноранговым способом, либо по облачной услуге.
[0005] Обмен данными карты, однако, может быть громоздким и представлять риски для конфиденциальности. Более того, когда точки обзора пользователей значительно отличаются друг от друга, традиционное сопоставление признаков изображения может быть безуспешным, что приводит к неспособности устройств определить совместную систему координат и, таким образом, совместно использовать опыт смешанной реальности. Это может происходить, например, в сценариях, где пользователи смотрят друг на друга и камеру, и поэтому просматривают противоположные стороны одного и того же пространства, что часто является естественной конфигурацией для игр и других типов совместно используемых опытов смешанной реальности.
Краткое описание сущности изобретения
[0006] В соответствии с одним аспектом настоящего раскрытия, раскрыт способ для получения относительной локализации между множеством мобильных устройств. Способ может выполняться первым мобильным устройством. Способ включает в себя наблюдение второго мобильного устройства в поле обзора камеры первого мобильного устройства в первый момент времени. Способ также включает в себя определение первого местоположения первого мобильного устройства в первый момент времени. Первое местоположение представляется в первой системе координат, используемой первым мобильным устройством. Способ также включает в себя прием от второго мобильного устройства второго местоположения второго мобильного устройства в первый момент времени. Второе местоположение представляется во второй системе координат, используемой вторым мобильным устройством. Способ также включает в себя определение информации ориентации об ориентации первого мобильного устройства относительно второго мобильного устройства в первый момент времени на основе по меньшей мере частично первого местоположения и наблюдения второго мобильного устройства в первый момент времени. Способ также включает в себя идентификацию двух ограничений, которые связывают первую систему координат, используемую первым мобильным устройством, со второй системой координат, используемой вторым мобильным устройством, на основе по меньшей мере частично второго местоположения и информации ориентации. Способ также включает в себя вычисление положения (позы) первого мобильного устройства относительно второго мобильного устройства, когда по меньшей мере шесть ограничений были накоплены.
[0007] В некоторых вариантах осуществления, способ может дополнительно включать в себя прием пользовательского ввода, когда второе мобильное устройство наблюдается в пределах поля обзора камеры первого мобильного устройства в первый момент времени. Первое местоположение может определяться, второе местоположение может приниматься от второго мобильного устройства, информация ориентации может определяться, и два ограничения могут идентифицироваться в ответ на прием пользовательского ввода. Способ может выполняться во время игры, которая задействует множество мобильных устройств, и пользовательский ввод может обеспечиваться как часть игры.
[0008] В некоторых вариантах осуществления, способ может дополнительно включать в себя автоматические обнаружение второго мобильного устройства в пределах поля обзора камеры первого мобильного устройства в первый момент времени. Первое местоположение может определяться, второе местоположение может приниматься от второго мобильного устройства, информация ориентации может определяться, и два ограничения могут идентифицироваться в ответ на автоматическое обнаружение второго мобильного устройства. Автоматическое обнаружение второго мобильного устройства может включать в себя автоматическое обнаружение активированного излучателя света второго мобильного устройства.
[0009] В некоторых вариантах осуществления, второе мобильное устройство и по меньшей мере одно дополнительное мобильное устройство могут оба быть видимы в пределах поля обзора камеры первого мобильного устройства в первый момент времени. Способ может дополнительно включать в себя проведение различия между вторым мобильным устройством и по меньшей мере одним дополнительным мобильным устройством.
[0010] В некоторых вариантах осуществления, определение информации ориентации может включать в себя определение геометрической линии в пространстве, соответствующей направлению, вдоль которого второе мобильное устройство наблюдалось в первый момент времени.
[0011] В некоторых вариантах осуществления, вычисление положения может включать в себя вычисление преобразования шести степеней свободы, которое связывает первую систему координат, используемую первым мобильным устройством, со второй системой координат, используемой вторым мобильным устройством.
[0012] В некоторых вариантах осуществления, по меньшей мере шесть ограничений могут включать в себя множество ограничений, которые определяются в результате событий наблюдения, и одно или более дополнительных ограничений, которые известны независимо от событий наблюдения.
[0013] В некоторых вариантах осуществления, способ может дополнительно включать в себя создание первой карты одновременной локализации и картографирования (SLAM) на основе поля обзора камеры первого мобильного устройства. Первая карта SLAM может объединяться со второй картой SLAM, которая создается вторым мобильным устройством.
[0014] Настоящее краткое описание сущности изобретения приведено, чтобы представить подборку концепций в упрощенной форме, которые дополнительно описаны ниже в подробном описании. Настоящее краткое описание сущности изобретения не предназначено, чтобы идентифицировать ключевые признаки или существенные признаки заявленного изобретения, а также не предназначено, чтобы использоваться как помощь при определении объема заявленного изобретения.
[0015] Дополнительные признаки и преимущества будут изложены в последующем описании. Признаки и преимущества раскрытия могут быть реализованы и получены посредством систем и способов, которые конкретно указаны в прилагаемой формуле изобретения. Признаки настоящего раскрытия станут более понятными из последующего описания и прилагаемой формулы изобретения или могут быть изучены при практическом осуществлении раскрытого изобретения, как изложено далее.
Краткое описание чертежей
[0016] Чтобы описать способ, которым изложенные выше и другие признаки раскрытия могут быть получены, более подробное описание будет представлено со ссылкой на конкретные варианты его осуществления, которые проиллюстрированы на прилагаемых чертежах. Для лучшего понимания, подобные элементы обозначены одинаковыми ссылочными позиции на различных прилагаемых чертежах. Понимая, что чертежи изображают некоторые примерные варианты осуществления, эти варианты осуществления будут описаны и объяснены с дополнительной спецификой и подробностями с использованием прилагаемых чертежей, на которых:
[0017] Фиг. 1A-C иллюстрируют пример способа для получения относительной локализации между множеством мобильных устройств.
[0018] Фиг. 2 иллюстрирует поле обзора мобильного устройства в момент времени, когда множество других мобильных устройств видимы в пределах поля обзора.
[0019] Фиг. 3 иллюстрирует пример, в котором системы координат двух мобильных устройств выровнены относительно друг друга и они рассматриваются как одно мобильное устройство для методов локализации, раскрытых здесь.
[0020] Фиг. 4 иллюстрирует пример, в котором две карты одновременной локализации и картографирования (SLAM) мобильных устройств объединяются после того, как системы координат мобильных устройств выровнены относительно друг друга.
[0021] Фиг. 5 иллюстрирует способ для получения относительной локализации между множеством мобильных устройств в соответствии с настоящим раскрытием.
[0022] Фиг. 6 иллюстрирует определенные компоненты, которые могут быть включены в мобильное устройство, которое сконфигурировано, чтобы реализовывать методики, раскрытые здесь.
Подробное описание
[0023] Настоящее раскрытие в общем относится к получению относительной локализации между множеством мобильных устройств, каждое из которых включает в себя камеру и способно отслеживать свое собственное местоположение и движение в пространстве с использованием своей собственной системы координат. Методики, раскрытые здесь, применимы к любому сценарию, в котором желательно, чтобы множество мобильных устройств вычисляло свои местоположение и движение в одной и той же системе координат, так что они могли бы знать относительное местоположение друг друга. В качестве одного примера, методики, раскрытые здесь, могут использоваться в контексте опытов совместно используемой смешанной реальности.
[0024] Как использовано здесь, термин “мобильное устройство” относится к портативному вычислительному устройству, которое включает в себя камеру и способно реализовывать методики пространственной локализации, раскрытые здесь. В некоторых вариантах осуществления, мобильное устройство может быть достаточно малым, чтобы пользователь держал и применял мобильное устройство в своей руке. В некоторых вариантах осуществления, мобильное устройство может представлять собой носимое вычислительное устройство. В некоторых вариантах осуществления, мобильное устройство может представлять собой устройство смешанной реальности (или дополненной реальности), которое способно обеспечивать опыт смешанной реальности (или дополненной реальности) для пользователей. Некоторые примеры мобильных устройств включают в себя наголовные дисплеи, смарт-очки, смартфоны, планшеты и ноутбуки. Мобильные устройства могут быть способны соединяться с одной или несколькими компьютерными сетями, такими как Интернет. Мобильные устройства могут также быть способны устанавливать одноранговую связь с другими вычислительными устройствами.
[0025] Методики, раскрытые здесь, используют прямые наблюдения мобильного устройства в пределах поля обзора камеры другого мобильного устройства. Рассмотрим простой пример, использующий два мобильных устройства, первое мобильное устройство и второе мобильное устройство. Предположим, что первое мобильное устройство наблюдает второе мобильное устройство в пределах поля обзора камеры первого мобильного устройства. Когда это происходит, первое мобильное устройство способно использовать свое собственное местоположение и свое наблюдение второго мобильного устройства, чтобы ограничить ориентацию первого мобильного устройства относительно второго мобильного устройства. Другими словами, первое мобильное устройство способно определять информацию об ориентации первого мобильного устройства относительно второго мобильного устройства. Эта информация ориентации, вместе с местоположением второго мобильного устройства (как представлено в системе координат, используемой вторым мобильным устройством), могут использоваться, чтобы идентифицировать два ограничения для связывания системы координат, используемой первым мобильным устройством, с системой координат, используемой вторым мобильным устройством.
[0026] Когда по меньшей мере шесть ограничений были накоплены, положение (поза) первого мобильного устройства относительно второго мобильного устройства (и наоборот) может вычисляться. Более конкретно, шесть (или больше) ограничений могут использоваться, чтобы вычислять преобразование шести степеней свободы (6DoF), которое связывает первую систему координат, используемую первым мобильным устройством, со второй системой координат, используемой вторым мобильным устройством.
[0027] Как использовано здесь, термин “событие наблюдения” относится к ситуации, в которой одно мобильное устройство наблюдает другое мобильное устройство в пределах поля обзора его камеры, и соответствующие информация местоположения и информация ориентации используется, чтобы определить два ограничения, которые связывают системы координат двух мобильных устройств. Как будет обсуждено более подробно ниже, в некоторых вариантах осуществления событие наблюдения может запускаться пользовательским вводом. Альтернативно, событие наблюдения может запускаться, когда одно мобильное устройство автоматически обнаруживает другое мобильное устройство в поле обзора своей камеры.
[0028] Раскрытые методики для получения относительной локализации между множеством мобильных устройств могут быть особенно предпочтительными в ситуациях, где невозможно или нежелательно для множества мобильных устройств совместно использовать трехмерную (3D) карту среды друг с другом. Это может происходить, например, когда поля обзора пользователей значительно отличаются друг от друга.
[0029] В некоторых вариантах осуществления, раскрытые методики могут уменьшать требования обработки относительно известных подходов. Как указано выше, обычное решение для совмещения системы координат для множества мобильных устройств состоит в обмене информацией трехмерной (3D) карты между мобильными устройствами. Методики, раскрытые здесь, однако, позволяют получать относительную локализацию между множеством мобильных устройств без обмена информацией 3D карты. Это может уменьшать объем обработки, которое требуется для выравнивания систем координат множества мобильных устройств. Например, мобильным устройствам, которые выровняли свои системы координат в соответствии с методами, раскрытыми здесь, нет необходимости определять или обмениваться информацией 3D карты. Поэтому, объем обработки, которая требуется для определения и/или обмена информацией 3D карты, можно сэкономить за счет использования методов, раскрытых здесь.
[0030] Способность получать относительную локализацию между множеством мобильных устройств без обмена информацией 3D карты может также уменьшить количество информации карты, необходимой для сохранения, и, следовательно, уменьшить требования к памяти для мобильных устройств. В дополнение к уменьшению требований к памяти, методики, раскрытые здесь, могут также уменьшить количество информации, которая передается между множеством мобильных устройств (либо через компьютерную сеть(и), либо через одноранговую связь). Вместо обмена информацией 3D карты, который может быть весьма интенсивным по объему данных, мобильные устройства могут просто обмениваться некоторой информацией местоположения и некоторой информацией ориентации, ассоциированными с конкретными моментами времени (как будет рассмотрено более подробно ниже). Это потенциально уменьшает количество информации, которая передается между множеством мобильных устройств, тем самым потенциально освобождая значительную величину ширины полосы связи для других целей.
[0031] Несмотря на вышеизложенное, однако, информация трехмерной карты может по-прежнему обмениваться при некоторых обстоятельствах в соответствии с методами, раскрытыми здесь. Как будет рассмотрено более подробно ниже, в некоторых вариантах осуществления, 3D карты, которые создаются каждым мобильным устройством, могут объединяться в увеличенную, более полную карту.
[0032] Пример способа для получения относительной локализации между множеством мобильных устройств будет описан в отношении фиг. 1A-C. Этот пример использует два мобильных устройства 102a-b, первое мобильное устройство 102a и второе мобильное устройство 102b. Система координат, используемая первым мобильным устройством 102a, будет называться здесь первой системой координат, и система координат, используемая вторым мобильным устройством 102b, будет называться здесь второй системой координат. Пользователь первого мобильного устройства 102a будет называться первым пользователем 104a, и пользователь второго мобильного устройства 102b будет называться вторым пользователем 104b.
[0033] Фиг. 1A иллюстрирует первого пользователя 104a, направляющего первое мобильное устройство 102a на второго пользователя 104b, и второго пользователя 104b, направляющего второе мобильное устройство 102b на первого пользователя 104a. Это может происходить, например, во время игры, в которой пользователи должны стрелять друг в друга с использованием мобильных устройств. Фиг. 1B иллюстрирует поле обзора камеры первого мобильного устройства 102a, когда первое мобильное устройство 102a направлено на второе мобильное устройство 102b (как показано на фиг. 1A), как это может отображаться первому пользователю 104a на дисплее 106 первого мобильного устройства 102a. Фиг. 1C иллюстрирует траекторию 108a первого мобильного устройства 102a и траекторию 108b второго мобильного устройства 102b, по мере того как первый пользователь 104a и второй пользователь 104b перемещаются вокруг за период времени (например, при движении вокруг во время игры).
[0034] Как показано на фиг. 1C, во время t1 первый пользователь 104a позиционирует первое мобильное устройство 102a так, что второе мобильное устройство 102b находится в пределах поля обзора камеры первого мобильного устройства 102a (и поэтому наблюдается на дисплее 106). Например, в контексте шутера, первый пользователь 104a может направлять первое мобильное устройство 102a на второго пользователя 104b, который может держать или носить второе мобильное устройство 102b и возможно направлять второе мобильное устройство 102b на первого пользователя 104a. Как показано на фиг. 1B, перекрестие 110 может отображаться на дисплее 106 первого мобильного устройства 102a. Перекрестие 110 может помогать первому пользователю 104a позиционировать первое мобильное устройство 102a так, что второе мобильное устройство 102b находится приблизительно в центре поля обзора камеры первого мобильного устройства 102a. Первый пользователь 104a затем обеспечивает некоторый ввод (например, кликая на кнопку на первом мобильном устройстве 102a), который побуждает первое мобильное устройство 102a и второе мобильное устройство 102b запомнить (например, сохранить в памяти) и передать определенную информацию, ассоциированную с этим конкретным моментом времени.
[0035] В частности, первое мобильное устройство 102a определяет и запоминает свое местоположение во время t1, когда второе мобильное устройство 102b наблюдается в пределах поля обзора камеры первого мобильного устройства 102a. Это местоположение, которое представляется в первой системе координат, используемой первым мобильным устройством 102a, будет упоминаться здесь как p1t1. (Как использовано здесь, термин pxty относится к местоположению устройства x во время y.) Первое мобильное устройство 102a также сообщает p1t1 на второе мобильное устройство 102b. Предполагается, что первое мобильное устройство 102a и второе мобильное устройство 102b по существу синхронизированы по времени.
[0036] Второе мобильное устройство 102b также определяет и запоминает свое местоположение во время t1. Это местоположение, которое представляется во второй системе координат, используемой вторым мобильным устройством 102b, будет упоминаться здесь как p2t1. Второе мобильное устройство 102b также сообщает p2t1 на первое мобильное устройство 102a.
[0037] Первое мобильное устройство 102a также определяет и запоминает информацию о своей ориентации во время t1 относительно второго мобильного устройства 102b. Например, первое мобильное устройство 102a может определять и запоминать геометрическую линию в пространстве, соответствующую направлению, вдоль которого второе мобильное устройство 102b наблюдалось во время t1. Эта линия будет упоминаться здесь как linet1. Если второе мобильное устройство 102b наблюдалось в центре поля обзора камеры первого мобильного устройства 102a во время t1, то эта линия в пространстве будет соответствовать оптической оси камеры.
[0038] Эта информация местоположения (p1t1 и p2t1) и информация ориентации (linet1) может затем использоваться, чтобы идентифицировать два ограничения, которые связывают первую систему координат, используемую первым мобильным устройством 102a, со второй системой координат, используемой вторым мобильным устройством 102b. В частности, геометрическое ограничение, что местоположение второго мобильного устройства 102b во время t1 (p2t1) должно располагаться вдоль ранее определенной линии в пространстве (linet1), обеспечивает два математических ограничения для выравнивания систем координат обоих мобильных устройств 102a-b.
[0039] Этот процесс наблюдения другого мобильного устройства и использования информации местоположения и ориентации, ассоциированной с этим наблюдением, для определения двух ограничений, может затем повторяться по меньшей мере еще два раза, пока не будут определены по меньшей мере шесть ограничений. Однако, не всегда одно и то же мобильное устройство должно наблюдать каждый раз (хотя такое может быть). Например, в изображенном примере, второе мобильное устройство 102b наблюдает первое мобильное устройство 102a в пределах поля обзора камеры второго мобильного устройства 102b во время t2.
[0040] Более конкретно, во время t2 второй пользователь 104b позиционирует второе мобильное устройство 102b так, что первое мобильное устройство 102a находится в пределах поля обзора камеры второго мобильного устройства 102b. Второй пользователь 104b затем обеспечивает некоторый ввод, который побуждает второе мобильное устройство 102b и первое мобильное устройство 102a запоминать и сообщать определенную информацию, ассоциированную со временем t2. В частности, второе мобильное устройство 102b определяет и запоминает свое местоположение во время t2 (p2t2), которое представляется во второй системе координат, используемой вторым мобильным устройством 102b. Второе мобильное устройство 102b также отправляет p2t2 на первое мобильное устройство 102a. К тому же, первое мобильное устройство 102a определяет и запоминает свое местоположение во время t2 (p1t2), которое представляется в первой системе координат, используемой первым мобильным устройством 102a. Первое мобильное устройство 102a также отправляет p1t2 на второе мобильное устройство 102b. Второе мобильное устройство 102b также определяет и запоминает информацию о своей ориентации во время t2 относительно первого мобильного устройства 102a. Более точно, второе мобильное устройство 102b запоминает геометрическую линию в пространстве, соответствующую направлению, вдоль которого первое мобильное устройство 102a наблюдалось во время t2. Эта линия будет упоминаться здесь как linet2.
[0041] Эта информация местоположения и ориентации может затем использоваться, чтобы идентифицировать два дополнительных ограничения, которые связывают вторую систему координат, используемую вторым мобильным устройством 102b, с первой системой координат, используемой первым мобильным устройством 102a. В частности, геометрическое ограничение, что местоположение первого мобильного устройства 102a во время t2 (p1t2) должно быть располагаться вдоль linet2, обеспечивает дополнительные два математических ограничения для выравнивания систем координат обоих мобильных устройств 102a-b.
[0042] Далее, во время t3 первый пользователь 104a позиционирует первое мобильное устройство 102a так, что второе мобильное устройство 102b располагается в пределах поля обзора камеры первого мобильного устройства 102a. Первый пользователь 104a затем обеспечивает некоторый ввод, который побуждает первое мобильное устройство 102a и второе мобильное устройство 102b запоминать и сообщать определенную информацию, ассоциированную со временем t3. В частности, первое мобильное устройство 102a определяет и запоминает свое местоположение во время t3 (p1t3), которое представляется в первой системе координат, используемой первым мобильным устройством 102a. Первое мобильное устройство 102a также отправляет p1t3 на второе мобильное устройство 102b. Второе мобильное устройство 102b определяет и запоминает свое местоположение во время t3 (p2t3), которое представляется во второй системе координат, используемой вторым мобильным устройством 102b. Второе мобильное устройство 102b также отправляет p2t3 на первое мобильное устройство 102a. Первое мобильное устройство 102a также определяет и запоминает информацию о своей ориентации во время t3 относительно второго мобильного устройства 102b. Более точно, первое мобильное устройство 102a запоминает геометрическую линию в пространстве, соответствующую направлению, вдоль которого второе мобильное устройство 102b наблюдалось во время t3. Эта линия будет упоминаться здесь как linet3.
[0043] Эта информация местоположения и ориентации может затем использоваться, чтобы идентифицировать два дополнительных ограничения, которые связывают первую систему координат, используемую первым мобильным устройством 102a, со второй системой координат, используемой вторым мобильным устройством 102b. В частности, геометрическое ограничение, что местоположение второго мобильного устройства 102b во время t3 (p2t3) должно располагаться вдоль linet3, обеспечивает два дополнительных математических ограничения для выравнивания систем координат обоих мобильных устройств 102a-b.
[0044] В настоящем примере, шесть ограничений были идентифицированы после времени t3. Это является достаточным количеством ограничений для обеспечения возможности вычисления преобразования шести степеней свободы, которое связывает первую систему координат, используемую первым мобильным устройством 102a, со второй системой координат, используемой вторым мобильным устройством 102b. Как известно специалистам в данной области техники, термин “шесть степени свободы” (6DoF) относится к свободе перемещения твердого тела в трехмерном пространстве. В частности, твердое тело может свободно изменять местоположение как перенос вперед/назад (возвратный выброс), вверх/вниз (подъем), влево/вправо (качание) в трех перпендикулярных осях. Такой перенос может комбинироваться с изменениями в ориентации посредством поворота вокруг трех перпендикулярных осей, которые часто называются рысканием (нормальная ось), тангажом (поперечная ось) и креном (продольная ось). В контексте настоящего раскрытия, “преобразование шести степеней свободы” (преобразование 6DoF) задает математические операции, которые должны выполняться для преобразования информации местоположения и ориентации, которая представлена в одной системе координат, в эквивалентную информацию местоположения и ориентации, которая представлена в другой системе координат.
[0045] В описанном примере, шесть ограничений получают из трех событий наблюдения. Два события наблюдения происходят в первом мобильном устройстве 102a (во время t1 и t3), и одно событие наблюдения происходит во втором мобильном устройстве 102b (во время t2). Конкретные подробности этого конкретного примера не должны интерпретироваться как ограничивающие объем настоящего раскрытия. Например, не обязательно, чтобы события наблюдения происходили в каком-либо конкретном порядке. В альтернативном примере, первое мобильное устройство 102a может иметь два последовательных события наблюдения (например, в t1 и t2) до того, как второе мобильное устройство 102b имеет событие наблюдения (например, во время t3). Также, не обязательно, чтобы оба мобильных устройства 102a-b имели события наблюдения. В другом альтернативном примере, все три события наблюдения могут происходить в одном и том же мобильном устройстве.
[0046] К тому же, могут происходить более трех событий наблюдения. Как указано выше, минимум шесть ограничений (из минимум трех событий наблюдения) необходимы, чтобы вычислить преобразование 6DoF, которое связывает первую систему координат, используемую первым мобильным устройством 102a, со второй системой координат, используемой вторым мобильным устройством 102b. С минимальными данными (например, данными из только трех событий наблюдения), возможно, что более одного решения могут быть получены в связи с вычислением преобразования 6DoF. С избыточным набором измерений, однако, решение обычно становится единственным.
[0047] В некоторых вариантах осуществления, оба мобильных устройства 102a-b могут вычислять преобразование 6DoF. В конкретном примере, который был описан, четыре ограничения определяются на основе наблюдений, выполненных первым мобильным устройством 102a (во время t1 и t3), и два ограничения определяются на основе наблюдений, сделанных вторым мобильным устройством 102b (во время t2). Мобильные устройства 102a-b могут совместно использовать информацию об этих ограничениях друг с другом, так что оба мобильных устройства 102a-b имеют достаточно информации для вычисления преобразования 6DoF. Альтернативно, одно из мобильных устройств (например, первое мобильное устройство 102a) может вычислять преобразование 6DoF и совместно использовать преобразование 6DoF с другим мобильным устройством (например, вторым мобильным устройством 102b). Альтернативно, другой объект, отдельный от мобильных устройств 102a-b, может вычислять преобразование 6DoF и совместно использовать преобразование 6DoF с мобильными устройствами 102a-b. Этот другой объект может представлять собой сервер, который осуществляет электронную связь с мобильными устройствами 102a-b через одну или более компьютерных сетей. В некоторых вариантах осуществления, этот другой объект может быть облачным объектом.
[0048] Ограничения, которые определяются в результате событий наблюдения, могут комбинироваться с дополнительными ограничениями, которые известны независимо от событий наблюдения в целях вычисления преобразования 6DoF. Например, относительно примера, показанного на фиг. 1A-C, шесть ограничений, которые определены в результате трех событий наблюдения (во время t1, t2 и t3), могут комбинироваться с дополнительными ограничениями, такими как известная общая вертикальная ориентация (два ограничения), высота над землей (одно ограничение), преобладающая ориентация стены (одно ограничение) и так далее. Общая вертикальная ориентация может определяться из инерциальных измерений или вертикальных точек/линий, стремящихся к нулю. Высота над землей может определяться, когда наблюдается плоскость земли. Ориентация относительно комнаты может определяться, когда наблюдаются стены. Избыточный набор ограничений может использоваться, чтобы получать более точные и/или надежные результаты.
[0049] В примере, показанном на фиг. 1A-C, пользовательский ввод запускает события наблюдения. Другими словами, пользовательский ввод побуждает мобильные устройства 102a-b запоминать и сообщать определенную информацию, ассоциированную с конкретными моментами времени, и использовать эту информацию для определения ограничений для связывания систем координат мобильных устройств 102a-b. Этот пользовательский ввод может обеспечиваться, когда пользователь видит другое мобильное устройство в поле обзора камеры мобильного устройства пользователя (как видно, например, на дисплее 106).
[0050] В некоторых вариантах осуществления, запуск пользовательским вводом событий наблюдения может интегрироваться в пользовательский опыт как часть игрового процесса (геймплея). Это может применяться к некоторым опытам смешанной реальности, таким как игра, где пользователи, как предполагаются, стреляют друг в друга. В этом типе сценария, когда пользователь стреляет, можно в общем предположить, что он или она нацеливается на другого пользователя. После того как игроки выстрелили друг в друга несколько раз, раскрытые методики могут использоваться, чтобы определять относительное положение (позу) между системами координат обоих мобильных устройств. Эта информация может затем использоваться, чтобы обогащать пользовательский опыт.
[0051] Интеграция событий наблюдения в пользовательский опыт как часть геймплея может обеспечивать определенные преимущества относительно по меньшей мере некоторых известных подходов. Как указано выше, типовое решение, чтобы совместить систему координат для множества устройств состоит в обмене информацией трехмерной карты (или данными двумерного изображения) между устройствами. По меньшей мере при некоторых известных подходах, может требоваться пользовательский ввод, чтобы обмениваться такой информацией/данными. Более того, требуемый пользовательский ввод может быть в дополнение к какому-либо пользовательскому вводу, который в противном случае произошел бы естественным образом как часть пользовательского опыта (например, нечто большее, чем стрельба как часть геймплея). Интеграция событий наблюдения в пользовательский опыт как часть геймплея, как раскрыто здесь, устраняет необходимость этого дополнительного пользовательского ввода, тем самым делая весь опыт более естественным и более приятным для пользователя.
[0052] Несмотря на вышеизложенное, однако, не является обязательным интегрировать пользовательский ввод в пользовательский опыт. На деле, не является обязательным полагаться на пользовательский ввод, чтобы запустить события наблюдения. Альтернативно, вместо того, чтобы полагаться на такой пользовательский ввод, мобильное устройство может быть сконфигурировано, чтобы автоматически обнаруживать присутствие другого мобильного устройства в поле обзора своей камеры и чтобы автоматически запоминать и сообщать релевантную информацию местоположения и ориентации в ответ на обнаружение другого мобильного устройства таким образом. Другими словами, в некоторых вариантах осуществления, события наблюдения могут запускаться, когда одно мобильное устройство автоматически обнаруживает другое мобильное устройство в поле обзора своей камеры.
[0053] Мобильное устройство может использовать алгоритм распознавания объектов, чтобы обнаруживать присутствие другого мобильного устройства в пределах поля обзора своей камеры. Эта процедура может упрощаться, когда обнаруживаемое мобильное устройство оснащено источником света, который может наблюдаться мобильным устройством, которое выполняет наблюдение. Например, со ссылкой снова на пример, показанный на фиг. 1A-C, положим, что второе мобильное устройство 102b оснащено источником света и что источник света активирован во время t1. Вместо того чтобы полагаться на ввод от первого пользователя 104a для запуска события наблюдения, первое мобильное устройство 102a может вместо этого автоматически обнаруживать второе мобильное устройство 102b в пределах поля обзора своей камеры. Активированный источник света на втором мобильном устройстве 102b может способствовать этому автоматическому обнаружению. Некоторые примеры источников света, которые могут использоваться во взаимосвязи с методами, раскрытыми здесь, включают в себя фонарик на мобильном телефоне, подсветку приватности, ассоциированную с камерой, и инфракрасный излучатель, который используется некоторыми трехмерными камерами на некоторых наголовных дисплеях (например, в шлемах смешанной реальности). Инфракрасный излучатель может наблюдаться инфракрасной камерой/камерой глубины аналогично оборудованного устройства.
[0054] В некоторых вариантах осуществления, идентичность конкретного мобильного устройства может сообщаться посредством уникального шаблона (паттерна), излучаемого источником света на этом мобильном устройстве. Другими словами, мобильное устройство может включать и выключать свой источник света в соответствии с конкретным шаблоном, и шаблон, используемый конкретным мобильным устройством, может быть уникальным (по меньшей мере относительно набора мобильных устройств, которые используются в одно и то же время в одном и том же месте). Другое мобильное устройство, которое наблюдает шаблон, может быть способно определять идентичность излучающего свет мобильного устройства на основе уникального шаблона, который излучается.
[0055] Хотя пример, показанный на Фиг. 1A-C, включает в себя два мобильных устройства 102a-b, в некоторых обстоятельствах может быть желательно определить относительное положение между более чем двумя мобильными устройствами. Методики, раскрытые здесь, могут также быть расширены до более чем двух мобильных устройств, поскольку каждое мобильное устройство имеет достаточно ограничений относительно других мобильных устройств, чтобы создать возможность относительной локализации.
[0056] Когда задействованы более двух мобильных устройств, существует дополнительная сложность, поскольку поле обзора конкретного мобильного устройства может включать в себя более одного мобильного устройства. Когда мобильное устройство пытается определить свою позицию относительно конкретного мобильного устройства и существует множество мобильных устройств, видимых в пределах поля обзора своей камеры, может быть сложно определить, какое из множества мобильных устройств является конкретным мобильным устройством, которое является субъектом вычислений положения (позы).
[0057] Фиг. 2 иллюстрирует поле обзора мобильного устройства как видно, например, на дисплее 206. Множество других мобильных устройств 202a-b видимы в поле обзора. Мобильное устройство, поле обзора которого показано на фиг. 2, будет называться наблюдающим мобильным устройством, и мобильные устройства 202a-b, которые видимы в пределах поля обзора наблюдающего мобильного устройства, будут называться первым наблюдаемым мобильным устройством 202a и вторым наблюдаемым мобильным устройством 202b.
[0058] Предположим, что наблюдающее мобильное устройство пытается вычислить свое положение относительно первого наблюдаемого мобильного устройства 202a. Для наблюдающего мобильного устройства может быть сложно определить, какое из мобильных устройств 202a-b, которые видимы в поле обзора его камеры, является первым наблюдаемым мобильным устройством 202a. Другими словами, для наблюдающего мобильного устройства может быть сложно провести различие между первым наблюдаемым мобильным устройством 202a и вторым наблюдаемым мобильным устройством 202b. Поэтому, когда событие наблюдения запускается (например, в ответ на пользовательский ввод или, альтернативно, когда наблюдающее мобильное устройство автоматически обнаруживает мобильные устройства 202a-b), для наблюдающего мобильного устройства может быть сложно решить, следует ли определить и запомнить информацию о своей ориентации относительно первого наблюдаемого мобильного устройства 202a или второго наблюдаемого мобильного устройства 202b.
[0059] Эту проблему можно решить несколькими разными способами. В некоторых вариантах осуществления, могут использоваться надежные алгоритмы, такие как RANSAC (консенсус случайной выборки). RANSAC является способом обнаружения выбросов, и соответствия другим мобильным устройствам могут рассматриваться как выбросы. Это может быть особенно эффективным, где относительно малое число мобильных устройств видимы в поле обзора камеры в любое данное время.
[0060] В качестве другого примера, в некоторых вариантах осуществления может быть возможно использовать алгоритмы распознавания изображения, чтобы ассоциировать события наблюдения, которые соответствуют одному и тому же устройству. Например, со ссылкой снова на пример, показанный на фиг. 2, предположим, что наблюдающее мобильное устройство обнаруживает первое наблюдаемое мобильное устройство 202a самостоятельно в предыдущий момент времени (т.е. до наблюдения двух мобильных устройств 202a-b в одно и то же время, как показано на фиг. 2). Наблюдающее мобильное устройство может сохранять изображение первого наблюдаемого мобильного устройства 202a в ответ на выполнение этого наблюдения. Далее, когда наблюдающее мобильное устройство наблюдает как первое наблюдаемое мобильное устройство 202a, так и второе наблюдаемое мобильное устройство 202b в одно и то же время (как показано на фиг. 2), ранее сохраненное изображение может использоваться, чтобы обнаруживать первое наблюдаемое мобильное устройство 202a и отличать его от второго наблюдаемого мобильного устройства 202b.
[0061] Когда системы координат двух мобильных устройств выровнены относительно друг друга, они могут рассматриваться как одно мобильное устройство для целей методов, раскрытых в настоящем документе, для получения относительной локализации между множеством мобильных устройств. Это в свою очередь способствовало бы выравниванию одного или более дополнительных мобильных устройств с обоими ранее выровненными мобильными устройствами.
[0062] Пример этого признака показан на фиг. 3. Положим, что первое мобильное устройство 302a и второе мобильное устройство 302b выравнивают их системы координат друг с другом в соответствии с методами, раскрытыми в настоящем документе. Первое мобильное устройство 302a и второе мобильное устройство 302b могут затем рассматриваться как “одно” мобильное устройство 312 в целях выравнивания их совместно используемой системы координат с другим мобильным устройством. Таким образом, третье мобильное устройство 302c может далее выравниваться с системой координат, используемой этим “одним” мобильным устройством 312 (т.е. используемой как первым мобильным устройством 302a, так и вторым мобильным устройством 302b).
[0063] Как рассмотрено выше, системы координат двух мобильных устройств могут быть выровнены друг с другом после минимум трех событий наблюдения (каждое событие наблюдения создает два из шести ограничений, которые необходимы для вычисления преобразования 6DoF). В настоящем примере, однако, эти события наблюдения могут происходить как результат взаимодействий между третьим мобильным устройством 302c и первым мобильным устройством 302a и/или как результат взаимодействий между третьим мобильным устройством 302c и вторым мобильным устройством 302b.
[0064] Фиг. 3 иллюстрирует траекторию 308a первого мобильного устройства 302a, траекторию 308b второго мобильного устройства 302b и траекторию 308c третьего мобильного устройства 302c, когда как пользователи этих устройств перемещаются вокруг за период времени. Положим, что первое событие наблюдения происходит во время t1, в которое третье мобильное устройство 302c наблюдает первое мобильное устройство 302a, и оба устройства 302a, 302c определяют и запоминают соответствующую информацию местоположения и ориентации для определения двух ограничений для вычисления относительного положения между этими устройствами 302a, 302c (способом, описанным выше). Затем, второе событие наблюдения происходит во время t2, в которое второе мобильное устройство 302b наблюдает третье мобильное устройство 302c, и оба устройства 302b, 302c определяют и запоминают соответствующую информацию местоположения и ориентации для определения двух дополнительных ограничений. Далее, третье событие наблюдения происходит во время t3, в которое первое мобильное устройство 302a наблюдает третье мобильное устройство 302c, и оба устройства 302a, 302c определяют и запоминают соответствующую информацию местоположения и ориентации для определения двух дополнительных ограничений. Это создало бы достаточно ограничений для вычисления преобразования 6DoF для выравнивания соответственных систем координат, поскольку первое мобильное устройство 302a и второе мобильное устройство 302b рассматриваются как “одно” мобильное устройство 312 для целей выравнивания их совместно используемой системы координат с третьим мобильным устройством 302c.
[0065] Как указано выше, обычное решение для совмещения системы координат для множества мобильных устройств состоит в обмене информацией трехмерной карты между мобильными устройствами. Эта информация трехмерной карты обычно определяется в соответствии с алгоритмом одновременной локализации и картографирования (SLAM). 3D карта, которая создается с использованием алгоритма SLAM, может называться здесь картой SLAM. В соответствии с настоящим раскрытием, когда системы координат двух или боле мобильных устройств выровнены, как описано здесь, карты SLAM, которые создаются каждым мобильным устройством, могут объединяться в увеличенную, более полную карту SLAM.
[0066] Фиг. 4 иллюстрирует первое мобильное устройство 402a, которое создает первую карту 414a SLAM, и второе мобильное устройство 402b, которое создает вторую карту 414b SLAM. Если первое мобильное устройство 402a и второе мобильное устройство 402b выравнивают их системы координат друг с другом на основе событий наблюдения в соответствии с методами, раскрытыми в настоящем документе, то первая карта 414a SLAM и вторая карта 414b SLAM могут объединяться в увеличенную, более полную карту SLAM, которая проиллюстрирована на фиг. 4 как объединенная карта 416 SLAM. Объединенная карта 416 SLAM может включать в себя информацию как из первой карты 414a SLAM, так и из второй карты 414b SLAM. Объединенная карта 416 SLAM может использоваться как первым мобильным устройством 402a, так и вторым мобильным устройством 402b.
[0067] Способность объединять карты SLAM таким образом может обеспечивать возможность более простой локализации дополнительных мобильных устройств. К тому же, она может обеспечивать возможность постоянства (совместного использования систем координат по времени) на основе более полных карт окружающей среды. Другими словами, технологии, раскрытые в настоящем документе, могут также улучшать традиционные подходы совместного использования и устойчивости на основе 3D карты. Раскрытые методики могут обеспечивать конкретные преимущества во взаимосвязи с объединением карт SLAM, которые не имеют прямого визуального перекрытия, которые обеспечило бы возможность традиционного выравнивания на основе изображения. Например, предположим, что первая карта 414a SLAM и вторая карта 414b SLAM генерируются из противоположных точек обзора. Это может иметь место, например, если первое мобильное устройство 402a и второе мобильное устройство 402b расположены противоположно друг другу (например, поперек стола друг от друга), так что отсутствует перекрытие между полем обзора камеры первого мобильного устройства 402a и полем обзора камеры второго мобильного устройства 402b. В этом примере, объединенная карта 416 SLAM будет включать в себя информацию карты о гораздо большей области, чем или первая карта 414a SLAM, или вторая карта 414b SLAM по отдельности.
[0068] Фиг. 5 иллюстрирует способ 500 для получения относительной локализации между множеством мобильных устройств в соответствии с настоящим раскрытием. В целях ясности, способ 500 будет описан в отношении некоторых систем, устройств, компонентов и данных, описанных ранее. Способ 500 будет описан с точки зрения первого мобильного устройства 102a, которое взаимодействует со вторым мобильным устройством 102b. Как и ранее, пользователь первого мобильного устройства 102a будет называться первым пользователем 104a, и пользователь второго мобильного устройства 102b будет называться вторым пользователем 104b.
[0069] На этапе 502, первое мобильное устройство 102a наблюдает второе мобильное устройство 102b в пределах поля обзора камеры первого мобильного устройства 102a в первый момент времени (t1). Это может происходить как результат направления (нацеливания) первым пользователем 104a первого мобильного устройства 102a на второго пользователя 104b. Второй пользователь 104b может держать или носить второе мобильное устройство 102b. Второй пользователь 104b может направлять второе мобильное устройство 102b на первого пользователя 104a.
[0070] На этапе 504, первое мобильное устройство 102a определяет местоположение первого мобильного устройства 102a во время t1 (p1t1). Значение p1t1 представляется в первой системе координат, которая используется первым мобильным устройством 102a.
[0071] На этапе 506, первое мобильное устройство 102a принимает от второго мобильного устройства 102b местоположение второго мобильного устройства 102b во время t1 (p2t1). Значение p2t1 представляется во второй системе координат, которая используется вторым мобильным устройством 102b.
[0072] На этапе 508, первое мобильное устройство 102a определяет информацию об ориентации первого мобильного устройства 102a относительно второго мобильного устройства 102b во время t1 на основе по меньшей мере частично первого местоположения (p1t1) и наблюдения второго мобильного устройства 102b во время t1. Например, первое мобильное устройство 102a может определять и запоминать геометрическую линию в пространстве (linet1), соответствующую направлению, вдоль которого второе мобильное устройство 102b наблюдалось во время t1.
[0073] На этапе 510, первое мобильное устройство 102a идентифицирует два ограничения, которые связывают первую систему координат, используемую первым мобильным устройством 102a, со второй системой координат, используемой вторым мобильным устройством 102b, на основе по меньшей мере частично второго местоположения (p2t1) и информации ориентации (как представлено, например, посредством linet1). Например, геометрическое ограничение, что местоположение второго мобильного устройства 102b во время t1 (p2t1) должно располагаться вдоль ранее определенной линии в пространстве (linet1), обеспечивает два математических ограничения, чтобы выровнять первую систему координат, используемую первым мобильным устройством 102a, со второй системой координат, используемой вторым мобильным устройством 102b.
[0074] Этапы 502-510 способа 500 соответствуют одному событию наблюдения. В некоторых вариантах осуществления, событие наблюдения, подобное представленному этапами 502-510, может запускаться пользовательским вводом. Более конкретно, когда на этапе 502 первое мобильное устройство 102a наблюдает второе мобильное устройство 102b в пределах поля обзора своей камеры во время t1, первый пользователь 104a может обеспечивать некоторый тип пользовательского ввода (например, кликая кнопку на первом мобильном устройстве 102a). Этапы 504-510 могут выполняться в ответ на прием этого пользовательского ввода.
[0075] В некоторых вариантах осуществления, способ 500 может выполняться во время игры, которая задействует первое мобильное устройство 102a и второе мобильное устройство 102b. Пользовательский ввод, который вызывает выполнение этапов 504-510, может обеспечиваться как часть игры. Например, игра может быть шутером, в котором пользователи 104a-b, как предполагается, стреляют друг в друга с использованием мобильных устройств 102a-b. Этап 502 способа 500, на котором первое мобильное устройство 102a наблюдает второе мобильное устройство 102b в пределах поля обзора своей камеры, может происходить в результате направления первым пользователем 104a первого мобильного устройства 102a на второго пользователя 104b, который может держать или носить второе мобильное устройство 102b. Пользовательский ввод, который вызывает выполнение этапов 504-510, может обеспечиваться, когда первый пользователь 104a предпринимает некоторое действие (например, активацию кнопки запуска на первом мобильном устройстве 102a), которое побуждает первое мобильное устройство 102a стрелять во второго пользователя 104b как часть игры.
[0076] Альтернативно, событие наблюдения, подобное представленному этапами 502-510, может запускаться, когда одно мобильное устройство автоматически обнаруживает другое мобильное устройство в поле обзора своей камеры. Более конкретно, когда на этапе 502 первое мобильное устройство 102a наблюдает второе мобильное устройство 102b в пределах поля обзора своей камеры во время t1, первое мобильное устройство 102a может автоматически обнаруживать второе мобильное устройство 102b (например, посредством алгоритма распознавания объектов). Этапы 504-510 способа 500 могут выполняться в ответ на автоматическое обнаружение первым мобильным устройством 102a второго мобильного устройства 102b. Другими словами, первое мобильное устройство 102a может выполнять этапы 504-510 способа 500 в ответ на обнаружение первым мобильным устройством 102a второго мобильного устройство 102b, без необходимости в каком-либо дополнительном пользовательском вводе. В некоторых вариантах осуществления, второе мобильное устройство 102b может включать в себя источник света. Если этот источник света активирован, когда первое мобильное устройство 102a наблюдает второе мобильное устройство 102b в пределах поля обзора своей камеры во время t1, то этот активированный источник света может упрощать для первого мобильного устройства 102a автоматическое обнаружение второго мобильного устройства 102b.
[0077] На этапе 502, когда первое мобильное устройство 102a наблюдает второе мобильное устройство 102b в пределах поля обзора своей камеры, могут иметься одно или более дополнительных мобильных устройств, которые также видимы в пределах поля обзора. (Например, как показано на фиг. 2, множество мобильных устройств 202a-b могут быть видимы в поле обзора камеры в одно и то же время.) Таким образом, в некоторых вариантах осуществления, способ 500 может дополнительно предусматривать проведение различия между вторым мобильным устройством 102b и одним или более дополнительными мобильными устройствами, которые также видимы в пределах поля обзора камеры. Это может выполняться различными способами, например, через использование алгоритма распознавания изображений или алгоритма консенсуса случайной выборки (RANSAC), как обсуждается выше.
[0078] Событие наблюдения, представленное этапами 502-510, обеспечивает два ограничения, которые связывают первую систему координат, используемую первым мобильным устройством 102a, со второй системой координат, используемой вторым мобильным устройством 102b. Когда по меньшей мере шесть ограничений накоплены, затем на этапе 512 первое мобильное устройство 102a может вычислить положение первого мобильного устройства 102a относительно второго мобильного устройства 102b. Например, первое мобильное устройство 102a может использовать шесть (или больше) ограничений для вычисления преобразования 6DoF, которое связывает первую систему координат, используемую первым мобильным устройством 102a, со второй системой координат, используемой вторым мобильным устройством 102b.
[0079] В некоторых вариантах осуществления, шесть (или более) ограничений, которые используются, чтобы вычислять положение на этапе 512, могут включать в себя (a) множество ограничений, которые определены в результате событий наблюдения, и (b) одно или несколько дополнительных ограничений, которые известны независимо от событий наблюдения. Некоторые примеры этих дополнительных ограничений включают в себя известную общую вертикальную ориентацию, высоту над землей, преобладающую ориентацию стены и так далее. Эти дополнительные ограничения могут использоваться, чтобы получать более точные и/или надежные результаты.
[0080] Фиг. 6 иллюстрирует определенные компоненты, которые могут быть включены в мобильное устройство 602, которое сконфигурировано, чтобы реализовывать методики, раскрытые здесь. Мобильное устройство 602, показанное на фиг. 6, представляет одну возможную реализацию мобильных устройств 102a-b, 202a-b, 302a-c, 402a-b, которые были описаны ранее.
[0081] Мобильное устройство 602 включает в себя процессор 601. Процессор 601 может представлять собой однокристальный или многокристальный микропроцессор общего назначения (например, усовершенствованная RISC (компьютер с сокращенным набором команд) машина (ARM)), специализированный микропроцессор (например, цифровой сигнальный процессор (DSP)), микроконтроллер, программируемую вентильную матрицу и т.д. Процессор 601 может упоминаться как центральный процессор (CPU). Хотя только один процессор 601 показан в мобильном устройстве 602 на фиг. 6, в альтернативной конфигурации, может использоваться комбинация процессоров (например, ARM и DSP).
[0082] Мобильное устройство 602 также включает в себя память 603 в электронной коммуникации с процессором 601. Память 603 может представлять собой любой электронный компонент, способный хранить электронную информацию. Например, память 603 может быть воплощена как память с произвольным доступом (RAM), постоянная память (ROM), носители хранения на магнитном диске, оптические носители хранения, устройства флэш-памяти в RAM, внутриплатная память, включенная с процессором 601, стираемая программируемая постоянная память (EPROM), электрически стираемая программируемая постоянная память (EEPROM), регистры и так далее, включая их комбинации.
[0083] Инструкции 605 и данные 607 могут храниться в памяти 603. Инструкции 605 могут исполняться процессором 601, чтобы реализовывать некоторые или все из этапов, операций, действий или другой функциональности, раскрытой здесь. Исполнение инструкций 605 может предусматривать использование данных 607, которые хранятся в памяти 603. Если не указано иное, любой из различных примеров модулей и компонентов, описанных здесь, может быть реализован, частично или полностью, как инструкции 605, хранящиеся в памяти 603 и исполняемые процессором 601. Любой из различных примеров данных, описанных здесь, может быть из данных 607, которые хранятся в памяти 603 и используются во время исполнения инструкций 605 процессором 601.
[0084] Инструкции 605 могут включать в себя модуль 621 отслеживания устройства. Модуль 621 отслеживания устройства может быть сконфигурирован, чтобы отслеживать местоположение и движение мобильного устройства 602 в пространстве. Мобильное устройство 602 может включать в себя различные компоненты, которые облегчают такое отслеживание, включая одну или более камер 631, инерциальный измерительный блок (IMU) 633 и один или более других датчиков 635. Модуль 621 отслеживания устройства может выполнять оптическое отслеживание на основе ввода, принятого от камеры (камер) 631. В некоторых вариантах осуществления, модуль 621 отслеживания устройства может также использовать ввод, принятый от IMU 633 и датчика(ов) 635, чтобы улучшить отслеживание. Отслеживание может содержать, например, отслеживание устройства по шести степеням свободы (6DoF). Это может быть реализовано с использованием одновременной локализации и картографирования (SLAM) и/или визуально-инерциальной одометрии (VIO). Модуль 621 отслеживания устройства может быть сконфигурирован, чтобы создавать и/или обновлять карту 614 SLAM неизвестной среды при одновременном отслеживании местоположения мобильного устройства 602 в пределах среды.
[0085] Инструкции 605 могут также включать в себя модуль 623 относительной локализации. Модуль 623 относительной локализации может быть сконфигурирован, чтобы определять относительную локализацию между мобильным устройством 602 и одним или более другими мобильными устройствами в соответствии с методами, раскрытыми в настоящем документе. Например, модуль 623 относительной локализации может быть сконфигурирован, чтобы реализовывать способы, такие как способ 500, показанный на фиг. 5.
[0086] Мобильное устройство 602 может включать в себя дисплей 637. В некоторых вариантах осуществления (например, в вариантах осуществления, где мобильное устройство 602 является устройством смешанной реальности), дисплей 637 может включать в себя одну или более полупрозрачных линз, на которых могут отображаться изображения виртуальных объектов. Различные стереоскопические изображения могут отображаться на линзах, чтобы создавать видимость глубины, в то время как свойство полупрозрачности линз позволяет пользователю видеть как реальный мир, так и виртуальные объекты, визуализируемые на линзах. Мобильное устройство 602 может также включать в себя графический процессор (GPU) 639. Процессор(ы) 601 может инструктировать GPU 639 визуализировать виртуальные объекты и вызывать появление виртуальных объектов на дисплее 637.
[0087] Мобильное устройство 602 может также включать в себя излучатель 641 света. Излучатель 641 света может активироваться, чтобы упростить для мобильного устройства 602 обнаружение другим мобильным устройством. В некоторых вариантах осуществления (например, если мобильное устройство 602 является мобильным телефоном), излучатель 641 света может представлять собой фонарик или подсветку приватности. Альтернативно, излучатель 641 света может представлять собой инфракрасный излучатель, который используется некоторыми трехмерными камерами на некоторых наголовных дисплеях (например, в шлемах смешанной реальности). В некоторых вариантах осуществления, одна или несколько камер 631 мобильного устройства 602 могут представлять собой инфракрасную камеру/камеру глубины, которая сконфигурирована, чтобы обнаруживать инфракрасный свет, испускаемый другим мобильным устройством.
[0088] Мобильное устройство 602 может также включать в себя одно или более устройств 611 ввода. Устройство(а) 611 ввода может использоваться, чтобы обеспечивать пользовательский ввод для запуска событий наблюдения. В некоторых вариантах осуществления, устройство(а) 611 ввода может включать в себя одну или более кнопок. Некоторые другие примеры устройств 711 ввода включают в себя клавиатуру, мышь, микрофон, устройство дистанционного управления, кнопку, джойстик, трекбол, тачпад и световое перо.
[0089] Мобильное устройство 602 может также включать в себя один или более интерфейсов 613 связи для осуществления связи с другими электронными устройствами, такими как другие мобильные устройства. Например, мобильное устройство 602 может использовать интерфейс 613 связи, чтобы отправлять информацию местоположения и/или информацию ориентации на другое мобильное устройство во взаимосвязи с определением своего положения относительно другого мобильного устройства. Интерфейс(ы) 613 связи может быть основан на технологии проводной связи, технологии беспроводной связи или обоих. Некоторые примеры интерфейсов 613 связи включают в себя универсальную последовательную шину (USB), адаптер Ethernet, беспроводной адаптер, который работает в соответствии с протоколом беспроводной связи Института инженеров по электротехнике и радиоэлектронике (IEEE) 802.11, адаптер беспроводной связи Bluetooth® и инфракрасный (IR) порт связи.
[0090] Методики, описанные здесь, могут быть реализованы в аппаратных средствах, программном обеспечении, программно-аппаратных средствах или любой их комбинации, если только конкретно не описаны как реализуемые специальным образом. Любые признаки, описанные как модули, компоненты или тому подобное, могут также быть реализованы совместно в интегральном логическом устройстве или отдельно как дискретные, но способные взаимодействовать логические устройства. При реализации в программном обеспечении, методики могут быть реализованы по меньшей мере частично долговременным считываемым компьютером носителем, имеющем исполняемые компьютером инструкции, сохраненные на нем, которые при исполнении по меньшей мере одним процессором, выполняют некоторые или все из этапов, операций, действий или другой функциональности, раскрытой здесь. Инструкции могут быть организованы в подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые могут выполнять конкретные задачи и/или реализовывать конкретные типы данных и которые могут комбинироваться или распределяться по желанию в различных вариантах осуществления.
[0091] Этапы, операции и/или действия способов, описанных в настоящем документе, могут быть взаимозаменяемыми друг с другом без отклонения от объема формулы изобретения. Другими словами, если не требуется конкретный порядок этапов, операций и/или действий для надлежащего функционирования описываемого способа, порядок и/или использование конкретных этапов, операций и/или действий может модифицироваться без отклонения от объема формулы изобретения.
[0092] Термин “определение” (и его грамматические варианты) охватывает широкое разнообразие действий, и поэтому “определение” может включать в себя расчет, вычисление, обработку, выведение, исследование, поиск (например, поиск в таблице, базе данных или другой структуре данных), установление и тому подобное. Также, “определение” может включать в себя прием (например, прием информации), осуществление доступа (например, осуществление доступа к данным в памяти) и тому подобное. Также, “определение” может включать в себя разрешение, принятие решения, селекцию, выбор варианта, установление и тому подобное.
[0093] Термины “содержащий”, “включающий в себя” и “имеющий” подразумеваются инклюзивными и означают, что могут иметься дополнительные элементы, отличные от перечисленных элементов. Дополнительно, следует понимать, что ссылки на “один вариант осуществления” или “вариант осуществления” настоящего раскрытия не предназначены, чтобы интерпретироваться как исключающие существование дополнительных вариантов осуществления, которые также включают в себя изложенные признаки. Например, любой элемент или признак, описанный в отношении варианта осуществления в настоящем документе, может комбинироваться с любым элементом или признаком любого другого варианта осуществления, описанного в настоящем документе, где совместимо.
[0094] Настоящее раскрытие может быть воплощено в других конкретных формах без отклонения от его сущности или характеристик. Описанные варианты осуществления должны рассматриваться как иллюстративные и не ограничительные. Поэтому объем раскрытия указывается прилагаемой формулой изобретения, а не предшествующим описанием. Изменения, которые находятся в пределах значения и диапазона эквивалентности пунктов формулы изобретения, должны включаться в их объем.
Claims (39)
1. Способ получения относительного положения между множеством мобильных устройств, причем относительное положение мобильного устройства представляет собой местоположение и ориентацию этого мобильного устройства по отношению к по меньшей мере одному иному мобильному устройству из множества мобильных устройств, при этом способ содержит:
для каждого из по меньшей мере трех событий наблюдения, происходящих между двумя мобильными устройствами из множества мобильных устройств,
наблюдение, посредством одного мобильного устройства из этих двух мобильных устройств, другого мобильного устройства из упомянутых двух мобильных устройств в пределах поля обзора камеры упомянутого одного мобильного устройства в момент времени, соответствующий данному событию наблюдения,
определение, посредством упомянутого одного мобильного устройства, местоположения этого одного мобильного устройства в упомянутый момент времени, причем местоположение упомянутого одного мобильного устройства представляется в первой системе координат, используемой этим одним мобильным устройством;
прием, посредством упомянутого одного мобильного устройства от упомянутого другого мобильного устройства, местоположения этого другого мобильного устройства в упомянутый момент времени, причем местоположение упомянутого другого мобильного устройства представляется во второй системе координат, используемой этим другим мобильным устройством,
определение, посредством упомянутого одного мобильного устройства, информации ориентации об ориентации этого одного мобильного устройства относительно упомянутого другого мобильного устройства в упомянутый момент времени на основе, по меньшей мере, отчасти местоположения упомянутого одного мобильного устройства и упомянутого наблюдения другого мобильного устройства в упомянутый момент времени,
идентификацию, посредством упомянутого одного мобильного устройства, двух ограничений, которые связывают первую систему координат, используемую этим одним мобильным устройством, со второй системой координат, используемой упомянутым другим мобильным устройством, на основе, по меньшей мере, отчасти местоположения упомянутого другого мобильного устройства и информации ориентации; и
вычисление положения упомянутого одного мобильного устройства относительно упомянутого другого мобильного устройства, когда по меньшей мере шесть ограничений накоплены из упомянутых по меньшей мере трех событий наблюдения.
2. Способ по п.1, дополнительно содержащий прием пользовательского ввода, когда упомянутое другое мобильное устройство наблюдается в пределах поля обзора камеры упомянутого одного мобильного устройства в упомянутый момент времени, причем местоположение упомянутого одного мобильного устройства определяется, местоположение упомянутого другого мобильного устройства принимается от этого другого мобильного устройства, информация ориентации определяется, и два ограничения идентифицируются в ответ на прием пользовательского ввода.
3. Способ по п.2, причем способ выполняется во время игры, которая задействует множество мобильных устройств, и пользовательский ввод обеспечивается как часть игры.
4. Способ по п.1, дополнительно содержащий автоматическое обнаружение упомянутого другого мобильного устройства в пределах поля обзора камеры упомянутого одного мобильного устройства в упомянутый момент времени, причем местоположение упомянутого одного мобильного устройства определяется, местоположение упомянутого другого мобильного устройства принимается от этого другого мобильного устройства, информация ориентации определяется, и два ограничения идентифицируются в ответ на данное автоматическое обнаружение другого мобильного устройства.
5. Способ по п.4, в котором упомянутое автоматическое обнаружение другого мобильного устройства содержит автоматическое обнаружение активированного источника света этого другого мобильного устройства.
6. Способ по п.1, причем:
упомянутое другое мобильное устройство и по меньшей мере одно дополнительное мобильное устройство оба видимы в пределах поля обзора камеры упомянутого одного мобильного устройства в упомянутый момент времени; и
способ дополнительно содержит проведение различия между упомянутым другим мобильным устройством и этим по меньшей мере одним дополнительным мобильным устройством.
7. Способ по п.1, в котором определение информации ориентации содержит определение геометрической линии в пространстве, соответствующей направлению, вдоль которого упомянутое другое мобильное устройство наблюдалось в упомянутый момент времени.
8. Способ по п.1, в котором вычисление положения содержит вычисление преобразования шести степеней свободы, которое связывает первую систему координат, используемую упомянутым одним мобильным устройством, со второй системой координат, используемой упомянутым другим мобильным устройством.
9. Способ по п.1, в котором упомянутые по меньшей мере шесть ограничений содержат:
множество ограничений, которые определяются в результате упомянутых по меньшей мере трех событий наблюдения; и
одно или более дополнительных ограничений, которые известны независимо от этих по меньшей мере трех событий наблюдения.
10. Способ по п.1, дополнительно содержащий:
создание первой карты одновременной локализации и картографирования (SLAM) на основе поля обзора камеры упомянутого одного мобильного устройства; и
объединение первой карты SLAM со второй картой SLAM, которая создается упомянутым другим мобильным устройством.
11. Первое мобильное устройство, которое выполнено с возможностью получения относительного положения между первым мобильным устройством и вторым мобильным устройством, причем относительное положение представляет собой местоположение и ориентацию первого мобильного устройства по отношению ко второму мобильному устройству, при этом первое мобильное устройство содержит:
камеру;
один или более процессоров; и
память на электронной связи с одним или более процессорами,
при этом в памяти хранятся инструкции, причем инструкции исполняются одним или более процессорами, чтобы:
для каждого из по меньшей мере трех событий наблюдения, происходящих между первым мобильным устройство и вторым мобильным устройством,
наблюдать второе мобильное устройство в пределах поля обзора камеры первого мобильного устройства в момент времени, соответствующий данному событию наблюдения,
определять местоположение первого мобильного устройства в упомянутый момент времени, причем местоположение первого мобильного устройства представляется в первой системе координат, используемой первым мобильным устройством,
принимать от второго мобильного устройства местоположение второго мобильного устройства в упомянутый момент времени, причем местоположение второго мобильного устройства представляется во второй системе координат, используемой вторым мобильным устройством,
определять информацию ориентации об ориентации первого мобильного устройства относительно второго мобильного устройства в упомянутый момент времени на основе, по меньшей мере, отчасти местоположения первого мобильного устройства и наблюдения второго мобильного устройства в упомянутый момент времени,
идентифицировать два ограничения, которые связывают первую систему координат, используемую первым мобильным устройством, со второй системой координат, используемой вторым мобильным устройством, на основе, по меньшей мере, отчасти местоположения второго мобильного устройства и информации ориентации; и
вычислять положение первого мобильного устройства относительно второго мобильного устройства, когда по меньшей мере шесть ограничений накоплены из упомянутых по меньшей мере трех событий наблюдения.
12. Первое мобильное устройство по п.11, дополнительно содержащее устройство ввода, которое выполнено с возможностью принимать пользовательский ввод, когда второе мобильное устройство наблюдается в пределах поля обзора камеры первого мобильного устройства в упомянутый момент времени, причем местоположение первого мобильного устройства определяется, местоположение второго мобильного устройства принимается от второго мобильного устройства, информация ориентации определяется, и два ограничения идентифицируются в ответ на прием пользовательского ввода.
13. Первое мобильное устройство по п.11, в котором в памяти дополнительно содержатся дополнительные инструкции, которые исполняются одним или более процессорами, чтобы автоматически обнаруживать второе мобильное устройство в пределах поля обзора камеры первого мобильного устройства в упомянутый момент времени, причем местоположение первого мобильного устройства определяется, местоположение второго мобильного устройства принимается от второго мобильного устройства, информация ориентации определяется, и два ограничения идентифицируются в ответ на автоматическое обнаружение второго мобильного устройства.
14. Первое мобильное устройство по п.11, в котором инструкции, которые исполняются одним или более процессорами, чтобы определять информацию ориентации, содержат инструкции, которые исполняются одним или более процессорами, чтобы определять геометрическую линию в пространстве, соответствующую направлению, вдоль которого второе мобильное устройство наблюдалось в упомянутый момент времени.
15. Первое мобильное устройство по п.11, в котором инструкции, которые исполняются одним или более процессорами, чтобы вычислять положение, содержат инструкции, которые исполняются одним или более процессорами, чтобы вычислять преобразование шести степеней свободы, которое связывает первую систему координат, используемую первым мобильным устройством, со второй системой координат, используемой вторым мобильным устройством.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/357,582 | 2019-03-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2021130178A RU2021130178A (ru) | 2023-04-19 |
RU2805203C2 true RU2805203C2 (ru) | 2023-10-12 |
Family
ID=
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140240469A1 (en) * | 2013-02-28 | 2014-08-28 | Motorola Mobility Llc | Electronic Device with Multiview Image Capture and Depth Sensing |
RU2621644C2 (ru) * | 2011-05-06 | 2017-06-06 | Мэджик Лип, Инк. | Мир массового одновременного удаленного цифрового присутствия |
US20170358142A1 (en) * | 2014-01-03 | 2017-12-14 | Google Inc. | Measuring dimension of object through visual odometry |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2621644C2 (ru) * | 2011-05-06 | 2017-06-06 | Мэджик Лип, Инк. | Мир массового одновременного удаленного цифрового присутствия |
US20140240469A1 (en) * | 2013-02-28 | 2014-08-28 | Motorola Mobility Llc | Electronic Device with Multiview Image Capture and Depth Sensing |
US20170358142A1 (en) * | 2014-01-03 | 2017-12-14 | Google Inc. | Measuring dimension of object through visual odometry |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7386255B2 (ja) | モバイル装置の相対的な空間位置決め | |
US10818092B2 (en) | Robust optical disambiguation and tracking of two or more hand-held controllers with passive optical and inertial tracking | |
CN110140099B (zh) | 用于跟踪控制器的系统和方法 | |
US10521026B2 (en) | Passive optical and inertial tracking in slim form-factor | |
US10146335B2 (en) | Modular extension of inertial controller for six DOF mixed reality input | |
EP3165939B1 (en) | Dynamically created and updated indoor positioning map | |
US11321929B2 (en) | System and method for spatially registering multiple augmented reality devices | |
US20170193710A1 (en) | System and method for generating a mixed reality environment | |
US10852847B2 (en) | Controller tracking for multiple degrees of freedom | |
US11688084B1 (en) | Artificial reality system with 3D environment reconstruction using planar constraints | |
CN113874870A (zh) | 基于图像的定位 | |
CN116300091A (zh) | 用于使用位置向量解析半球模糊度的方法和系统 | |
CN106980368A (zh) | 一种基于视觉计算及惯性测量单元的虚拟现实交互设备 | |
US10706634B1 (en) | System for generating augmented reality content from a perspective view of an unmanned aerial vehicle | |
JP2015118442A (ja) | 情報処理装置、情報処理方法およびプログラム | |
CN109716396A (zh) | 信息处理设备、信息处理方法和程序 | |
US20190339768A1 (en) | Virtual reality interaction system and method | |
RU2805203C2 (ru) | Относительная пространственная локализация мобильных устройств | |
CN114935975B (zh) | 虚拟现实的多用户交互方法、电子设备和可读存储介质 | |
CN113223056B (zh) | 一种基于多Kinect V2的无标记运动追踪系统 | |
WO2021177132A1 (ja) | 情報処理装置、情報処理システム、情報処理方法及びプログラム |