СПОСОБ КООРДИНАЦИОННОГО СОВМЕЩЕНИЯ СИСТЕМ КООРДИНАТ, ИСПОЛЬЗУЕМЫХ УСТРОЙСТВОМ ГЕНЕРИРУЕМОЙ КОМПЬЮТЕРОМ РЕАЛЬНОСТИ И УСТРОЙСТВОМ ДЛЯ ПЕРЕДАЧИ ТАКТИЛЬНЫХ ОЩУЩЕНИЙ
METHOD FOR COORDINATE ALIGNMENT OF COORDINATE SYSTEMS USED BY COMPUTER-GENERATED REALITY APPARATUS AND TACTILE SENSATION TRANSMISSION APPARATUS

Область техники, к которой относится изобретение
Настоящее изобретение относится к взаимодействию между устройствами для передачи тактильных ощущений и устройствами для создания генерируемой компьютером реальности, такими как устройства для создания смешанной реальности и устройства для создания виртуальной реальности.
Уровень техники
Устройства для передачи тактильных ощущений (далее для краткости – тактильные устройства) и устройства смешанной реальности (Mixed Reality (MR)) или виртуальной реальности (Virtual Reality (VR)) станут все возрастающей частью экосистемы устройств будущего, используемой обществом для межличностной связи, игр и других приложений. Компьютерная система смешанной реальности дополняет то, что пользователь видит в реальном мире, генерируемыми компьютером виртуальными объектами, расположение и позиции которых таковы, что пользователь видит эти виртуальные объекты так, как если бы они существовали в реальном мире. В отличие от этого, компьютерная система виртуальной реальности генерирует полностью виртуальный мир объектов вместо того, чтобы накладывать виртуальные объекты на объекты реального мира. Системы обоих типов могут позволить пользователю взаимодействовать реальным или физическим, на вид, образом с использованием специального электронного оборудования, такого как устанавливаемый на голове дисплей, представляющий пользователю генерируемые компьютером объекты, и тактильного устройства, которое отслеживает движения пользователя и которое может создавать тактильную обратную связь для пользователя. Термин «генерируемая компьютером реальность» (computer generated reality (CGR)) используется для коллективного обозначения систем реальности MR-типа и систем VR-типа. Соответственно система реальности CGR, описываемая здесь, может быть системой реальности MR или системой реальности VR, если в конкретном примере ниже не определено иначе.
В системе реальности CGR тактильное устройство может создавать для пользователя тактильную обратную связь, чтобы позволить пользователю ощущать виртуальные объекты, визуально наблюдая эти виртуальные объекты на дисплее устройства реальности CGR. Сложная проблема, связанная с системами реальности CGR, состоит в том, как осуществить совмещение между системой координат тактильного устройства, такой как система координат рабочего пространства этого устройства, и системой координат устройства реальности CGR, которое может быть использовано для представления на дисплее изображений трехмерных (3D) генерируемых компьютером объектов, формируемых на основе изображений, считываемых (снимаемых) видеокамерой.
Некоторые известные системы смешанной реальности, которые интегрируют тактильные устройства в мир реальности CGR, используют внешнюю систему слежения. Например, система с товарной маркой GO TOUCH VR и система с товарной маркой Ultrahaptics используют ручные устройства слежения с товарной маркой Leap Motion. Изделие с товарной маркой HTC Vive отслеживает свои периферийные устройства и гарнитуру виртуальной реальности с использованием внешней системы слежения, которая устраняет необходимость в совмещении систем координат, поскольку одна и та же система слежения используется для отслеживания всех устройств. Недостатком такой системы HTC Vive является то, что ее необходимо использовать в пределах одного помещения и, поэтому, она не может перемещаться за пределы этого помещения.
Поэтому существует необходимость в создании системы реальности CGR, которая бы осуществляла усовершенствованное совмещение систем координат тактильного устройства и устройства реальности CGR.
Раскрытие сущности изобретения
Некоторые варианты, описываемые здесь, направлены на создание первого электронного устройства, управляющего вторым электронным устройством для измерения положения этого первого электронного устройства. Это первое электронное устройство содержит датчик движения, схему сетевого интерфейса, процессор и запоминающее устройство. Датчик движения конфигурирован для измерения движения первого электронного устройства. Схема сетевого интерфейса конфигурирована для связи со вторым электронным устройством. Процессор соединен с датчиком движения и схемой сетевого интерфейса. Запоминающее устройство сохраняет программный код, выполняемый процессором для осуществления операций, совокупность которых содержит реагирование на определение, что первое электронное устройство имеет измеренный датчиком движения уровень движения, удовлетворяющий заданному правилу, путем передачи запроса второму электронному устройству измерить положение первого электронного устройства. Совокупность этих операций далее содержит измерение и сохранение положения первого электронного устройства в запоминающем устройстве, а также прием подтверждения (квитанции) от второго электронного устройства, указывающего, что это второе устройство сохранило данные датчика, которые могут быть использованы для измерения положения первого электронного устройства.
В некоторых других вариантах первое электронное устройство содержит тактильное устройство, конфигурированное для осуществления по меньшей мере одного измерительного перемещения тактильного устройства пользователем и предоставления тактильной обратной связи пользователю. Этот запрос передают второму электронному устройству, содержащему устройство реальности CGR, конфигурированное для представления на дисплее графических элементов в виде графической накладки на объект реального мира. Результаты измерений положения тактильного устройства принимают от устройства реальности CGR. Затем определяют преобразовательную матрицу для преобразования позиции относительно первой системы координат в позицию относительно второй системы координат на основе положения тактильного устройства, вызванного из запоминающего устройства, и на основе результатов измерений положения тактильного устройства, принятых от устройства реальности CGR. Одна из этих двух – первой и второй, систем координат используется для привязки позиции одного из устройств – тактильного устройства или устройства реальности CGR, а другая из этих первой и второй систем координат используется для привязки позиции другого из этих устройств – тактильного устройства или устройства реальности CGR.
Потенциальное преимущество этих операций состоит в том, что преобразовательная матрица для преобразования между системами координат может быть сформирована с операционной точностью, которая может быть согласованно повторена относительно подходов известной техники. Второе электронное устройство измеряет положение первого электронного устройства, когда определено, что первое электронное устройство имеет уровень движения, удовлетворяющий заданному правилу, например, когда первое электронное устройств является неподвижным. Соответственно, первое и второе электронные устройства более вероятно измеряют одно и то же положение первого электронного устройства, что увеличивает точность получаемой в результате преобразовательной матрицы для преобразования между соответствующими системами координат. Указанное заданное правило может быть также удовлетворено, когда первое электронное устройство имеет постоянную скорость, поскольку разница между положениями, измеренными первым и вторым электронными устройствами, может быть математически компенсирована с использованием известной постоянной скорости первого электронного устройства, что снова ведет к увеличенной точности преобразовательной матрицы, полученной в результате.
Некоторые другие относящиеся к этому варианты направлены на второе электронное устройство для измерения положения первого электронного устройства относительно второго электронного устройства. Второе электронное устройство содержит датчик, схему сетевого интерфейса, процессор и запоминающее устройство. Датчик конфигурирован для передачи на выход данных датчика, которые могут указывать положение первого электронного устройства. Схема сетевого интерфейса конфигурирована для связи с первым электронным устройством. Процессор соединен с датчиком и со схемой сетевого интерфейса. Запоминающее устройство сохраняет программный код, выполняемый процессором, для осуществления совокупности операций, включая прием запроса на передачу результатов выполненных вторым электронным устройством измерений положения первого электронного устройства. Совокупность операций далее содержит, в ответ на указанный запрос, инициирование операций для генерации результатов измерений положения первого электронного устройства и сохранение в запоминающем устройстве данных датчика, передаваемых на выход датчиком и способных указать положение первого электронного устройства. Здесь также передают квитанцию в качестве индикации, что данные датчика были сохранены. Результаты измерений положения первого электронного устройства генерируют на основе данных датчика, сохраненных в запоминающем устройстве, и передают эти результаты от второго электронного устройства.
В некоторых других вариантах совокупность операций далее содержит определение, было ли принято сообщение отмены, указывающее, что уровень движения первого электронного устройства, измеряемый в течение временного интервала между моментом, когда был принят запрос, и моментом, когда квитанция была передана вторым электронным устройством, не удовлетворяет указанному заданному правилу. Операция передачи результатов измерений положения первого электронного устройства осуществляется в ответ на определение, что сообщение отмены принято не было.
Некоторые другие относящиеся к этому варианты направлены на сервер, содержащий схему сетевого интерфейса, процессор и запоминающее устройство. Схема сетевого интерфейса конфигурирована для связи с первым электронным устройством и вторым электронным устройством. Процессор соединен со схемой сетевого интерфейса. Запоминающее устройство сохраняет программный код, выполняемый процессором, для осуществления совокупности операций, включая прием от первого электронного устройства результатов выполненных этим первым электронным устройством результатов измерений положения этого первого электронного устройства. Эта совокупность операций далее содержит прием от второго электронного устройства результатов выполненных этим вторым электронным устройством измерений положения первого электронного устройства и генерацию преобразовательной матрицы для преобразования позиции относительно первой системы координат в позицию относительно второй системы координат в ответ на положение первого электронного устройства, принятое от самого первого электронного устройства, и положение первого устройства, принятое от второго электронного устройства. Одна из этих двух – первой и второй, систем координат используется для привязки позиции одного из устройств – первого электронного устройства или второго электронного устройства, а другая из этих первой и второй систем координат используется для привязки позиции другого из этих устройств – первого электронного устройства или второго электронного устройства.
Некоторые другие относящиеся к этому варианты направлены на способ, применяемый первым электронным устройством для управления вторым электронным устройством с целью измерения положения первого электронного устройства. Этот способ содержит, в ответ на определение, что первое электронное устройств имеет уровень движения, удовлетворяющий заданному правилу, передачу второму электронному устройству запроса измерить положение первого электронного устройства, а также измерение посредством датчика и сохранение положения первого электронного устройства в своем запоминающем устройстве. От второго электронного устройства принимают квитанцию, указывающую, что это устройство имеет сохраненные данные датчика, которые могут быть использованы для измерения положения первого электронного устройства.
Некоторые другие относящиеся к этому варианты направлены на способ, применяемый вторым электронным устройством для измерения положения первого электронного устройства относительно второго электронного устройства. Способ содержит прием запроса передать результат выполненных вторым электронным устройством измерений положения первого электронного устройства. В ответ на этот запрос способ инициирует совокупность операций для генерации результатов измерений положения первого электронного устройства и сохранения в запоминающем устройстве данных с выхода датчика, которые могут указывать положение первого электронного устройства. Здесь передают квитанцию, указывающую, что данные датчика были сохранены. Результаты измерений положения первого электронного устройства генерируют на основе данных датчика, сохраненных в запоминающем устройстве. Эти результаты измерений положения первого электронного устройства передают от второго электронного устройства.
Некоторые другие относящиеся к этому варианты направлены на способ, применяемый сервером. Способ содержит прием, от первого электронного устройства, результатов выполненных первым электронным устройством измерений положения этого первого электронного устройства. Результаты выполненных вторым электронным устройством измерений положения первого электронного устройства принимают от второго электронного устройства. Преобразовательную матрицу для преобразования позиции относительно первой системы координат в позицию относительно второй системы координат генерируют в ответ на положение первого электронного устройства, принятое от первого электронного устройства, и положение этого устройства, принятое от второго электронного устройства. Одна из этих двух – первой и второй, систем координат используется для привязки позиции одного из устройств – первого электронного устройства или второго электронного устройства, а другая из этих первой и второй систем координат используется для привязки позиции другого из этих устройств – первого электронного устройства или второго электронного устройства.
Другие электронные устройства, серверы и соответствующие способы согласно вариантам настоящего изобретения будут или станут очевидными для специалиста в рассматриваемой области после изучения последующих чертежей и подробного описания. Предполагается, что все такие дополнительные электронные устройства, серверы и соответствующие способы включены в состав настоящего описания и защищены прилагаемой Формулой изобретения.
Краткое описание чертежей
Аспекты настоящего изобретения иллюстрированы на примерах и не исчерпываются прилагаемыми чертежами. На этих чертежах:
фиг. 1 иллюстрирует систему реальности CGR, содержащую тактильное устройство и устройство реальности CGR, работающие в соответствии с некоторыми вариантами настоящего изобретения;
фиг. 2 иллюстрирует схему потоков данных и логическую схему операций тактильного устройства и устройства реальности CGR, работающих в соответствии с некоторыми вариантами настоящего изобретения;
фиг. 3a и 3b иллюстрируют схему потоков данных и логическую схему операций тактильного устройства и устройства реальности CGR, работающих в соответствии с некоторыми вариантами настоящего изобретения;
фиг. 4a и 4b иллюстрируют другую схему потоков данных и другую логическую схему операций тактильного устройства, сервера и устройства реальности CGR, работающих в соответствии с некоторыми другими вариантами настоящего изобретения;
фиг. 5 иллюстрирует другой тип устройства реальности CGR, имеющий обращенную к пользователю видеокамеру и работающий в соответствии с некоторыми вариантами настоящего изобретения;
фиг. 6 иллюстрирует логическую схему операций устройства реальности CGR для инициирования генерации обновленной преобразовательной матрицы соответствии с некоторыми вариантами настоящего изобретения;
фиг. 7 представляет блок-схему компонентов тактильного устройства, конфигурированных в соответствии с некоторыми другими вариантами настоящего изобретения;
фиг. 8 представляет блок-схему компонентов устройства реальности CGR, конфигурированных в соответствии с некоторыми другими вариантами настоящего изобретения; и
фиг. 9 представляет блок-схему компонентов сервера, конфигурированных в соответствии с некоторыми другими вариантами настоящего изобретения.
Осуществление изобретения
Концепции настоящего изобретения будут теперь описаны более полно со ссылками на прилагаемые чертежи, на которых показаны примеры вариантов предлагаемых изобретением концепций. Концепции настоящего изобретения могут, однако, быть воплощены в различных формах, так что их не следует толковать как ограниченные только рассмотренными здесь вариантами. Напротив, эти варианты выбраны таким образом, чтобы настоящее описание было всесторонним и полным, и будут полностью передавать объем разнообразных предлагаемых концепций настоящего изобретения для специалистов в рассматриваемой области. Следует также отметить, что эти варианты не являются взаимоисключающими. Можно предполагать, что компоненты из состава одного варианта могут быть по умолчанию присутствовать/использоваться в другом варианте.
Системы координат тактильного устройства и устройства реальности CGR могут быть совмещены с использованием преобразовательных матриц, позволяющих преобразовать местонахождение и/или углы поворота (например, местонахождение и поворот в системе координат с шестью степенями свободны (6 degree of freedom (DOF))) объекта или устройства с привязкой в одной системе координат в другую систему координат. Преобразовательную матрицу можно генерировать с использованием датчика из состава устройства реальности CGR, такого как обращенная вперед видеокамера устройства реальности MR, для определения положения (местонахождения) тактильного устройства в системе координат устройства реальности MR, и «бортовых» датчиков тактильного устройства, используемых для отслеживания его движения (например, на основе устройств торговых марок Geomagic Touch или GO TOUCH VR) и определения положения этого тактильного устройства в системе координат тактильного устройства. На основе положения тактильного устройства в системе координат тактильного устройства и положения этого тактильного устройства в системе координат устройства реальности CGR можно сформировать преобразовательную матрицу, связывающую эти две системы координат. Точность преобразовательной матрицы может быть увеличена посредством учета нескольких измерений положения посредством датчика в составе тактильного устройства и/или нескольких измерений положения посредством датчика в составе устройства реальности CGR. Преобразовательную матрицу, которая лучше аппроксимирует соотношение между системами координат, вычисляют с использованием, например, метода наименьших квадратов или других регрессионных методов.
Как используется здесь, термин «позиция» обозначает положение и/или угол поворота устройства относительно некой определенной системы координат. Позиция может быть, поэтому определена на основе только положения устройства в многомерной системе координат, многомерного угла поворота устройства или сочетания этих положений. Термин «положение или позиция» относится к положению, углу поворота или сочетанию этих параметров.
Как объясняется выше, совмещение систем координат двух электронных устройств, таких как тактильное устройство и устройство реальности CGR, может представлять собой проблему. Эта проблема становится более масштабной, когда эти два устройства не синхронизированы с точки зрения выполнения измерений их датчиками, так, как это бывает, когда тактильное устройство измеряет свое положение с частотой 1 кГц (например, как это делают устройства марки Geomagic Touch), а устройство реальности CGR считывает изображения с частотой 60 Гц (например, как это делают устройства марки Microsoft Hololens). Например, устройство марки Hololens может затрачивать от 10 мс до 50 мс на обработку считываемого им изображения тактильного устройства, чтобы измерить положение тактильного устройства, в зависимости от других заданий, выполняемых этим устройством Hololens. Для точного вычисления преобразования между системами координат предлагаемая система должна быть уверена, что моменты времени, когда оба устройства выполняют измерения, используемые для вычисления преобразования, совпадают, т.е. что рассматриваемая пара положений соответствует измерениям, выполненным в один и тот же момент времени, или система должна знать величину временного сдвига между этими моментами измерений.
Один из подходов для обеспечения почти одновременного измерения положений устройства состоит в конфигурировании системы реальности CGR для операционной синхронизации выполняемых устройствами измерительных операций и вычисления задержки измерений в устройстве Hololens и затем нахождения результата выполненных тактильным устройством измерений положения, который соответствовал бы тому же самому моменту времени, как и результат измерений положения, полученный устройством Hololens. Такой подход синхронизированных измерений, требующий выполнения сложных операций и алгоритма синхронизации, отличается тенденцией к ошибкам синхронизации (например, дрейфу синхронизационных тактовых сигналов в устройствах), подвержен нежелательным воздействиям на точность синхронизации из-за изменчивости задержки в сети связи между устройствами и требует частой передачи сообщений между устройствами, участвующими в поддержании и измерениях синхронизации.
Варианты настоящего изобретения направлены на обеспечение улучшенного совмещения систем координат между двумя электронными устройствами, такими как тактильное устройство и устройство реальности MR или другое устройство реальности CGR. Тактильное устройство может измерить свое положение в своей собственной системе координат, а устройство реальности CGR способно измерить положение тактильного устройства в системе координат этого устройства реальности CGR, которая может быть той же самой системой координат, какую использует видеокамера в составе этого устройства реальности CGR.
Некоторые варианты настоящего изобретения могут осуществлять совмещение систем координат двух устройств с использованием операционного алгоритма пониженной сложности и уменьшения необходимости связи между устройствами. В некоторых вариантах, тактильное устройство использует свои собственные, относительно быстрые измерения положения для идентификации, когда это тактильное устройство является неподвижным, т.е. скорость этого устройства ниже порогового уровня шумов, и в ответ на обнаружение такой ситуации передает устройству реальности CGR запрос измерить положение тактильного устройства (в системе координат устройства реальности CGR), и само тактильное устройство также считывает свое собственное положение (в системе координат тактильного устройства). Поскольку тактильное устройство неподвижно, положение, измеренное обоими устройствами – устройством реальности CGR и тактильным устройством, является одним и тем же положением, и тем самым исключает, для операций совмещения, необходимость использовать какую-либо информацию о моментах времени, когда каждое устройство выполнило соответствующие измерения положения. Каждое устройство может выполнить несколько измерений разных статичных положений и использовать их для вычисления преобразования между двумя системами координат с целью улучшить совмещение этих систем координат. Как ниже будет объяснено более подробно, тактильное устройство может также запустить собственные измерения своего положения и измерения этого положения посредством устройства реальности CGR, хотя само это тактильное устройство движется, например, если тактильное устройство определит, что оно имеет по существу постоянную скорость (т.е. если скорость его линейного и/или вращательного перемещения не изменяется более, чем на заданную пороговую величину в течение некоторого промежутка времени).
Хотя, разнообразные варианты рассматриваются здесь в контексте устройств реальности MR и других устройств реальности CGR, используемых в сочетании с тактильными устройствами, такие варианты этим не исчерпываются. Варианты настоящего изобретения могут работать для осуществления совмещения систем координат, используемых для привязки любых двух типов электронных устройств, так как, например, между каким-либо дисплеем (например, устройством реальности MR, устройством реальности VR, экраном смартфона), конфигурированным для измерения другого устройства, конфигурированного для измерения своего собственного положения (например, тактильного устройства или игрового объекта, который может перемещать пользователь, такого как игровой контроллер или игровой меч, штурвал для управления оружием и т.п.).
Фиг. 1 иллюстрирует систему реальности CGR, которая содержит тактильное устройство 130 и устройство 100 реальности CGR, работающие в соответствии с некоторыми вариантами настоящего изобретения.
Как полазано на фиг. 1, примером устройства 100 реальности CGR может быть устройство реальности MR имеющее обращенную вперед видеокамеру 110, конфигурированную для оптического измерения положения тактильного устройства 130. Устройств 100 реальности CGR может быть конфигурировано для представления на дисплее графических объектов в виде графической накладки на объекты реального мира, видимые через видеокамеру 110 и/или видимые через прозрачный дисплей (например, гарнитура Google Glass). Графические объекты могут быть сформированы устройством реальности MR и/или сервером 140. Устройство 100 реальности CGR может содержать один или несколько громкоговорителей 120.
Тактильное устройство 130 содержит «бортовые» датчики, измеряющие текущее положение этого тактильного устройства 130. Тактильное устройство 130 может содержать устройство 750 для генерации тактильной обратной связи (фиг. 7), конфигурированное для предоставления пользователю тактильной обратной связи, такой как силовая обратная связь или вибрационная обратная связь. Совокупность «бортовых» датчиков может содержать датчик 740 движения (фиг. 7), позиционный кодовый датчик вращательного и/или линейного перемещения, инфракрасную (Infra-red (IR)) систему определения места и/или другой датчик, конфигурированный для измерения текущего положения и/или позиции тактильного устройства 130. Это тактильное устройство 130 может содержать компоненты продукции марки Geomagic Touch. В одном из вариантов положение или позицию измеряют на частоте 1 кГц с использованием кодовых датчиков в двигателях тактильного устройства 130. Тактильное устройство 130 и устройство 100 реальности CGR содержат схемы сетевых интерфейсов, которые могут быть конфигурированы для связи по проводным и/или беспроводным линиям связи напрямую одна с другой и/или через сервер 140 или другое устройство (например, сетевой маршрутизатор тили ретранслятор).
Устройство 100 реальности CGR может измерить свое текущее положение или позицию с использованием видеокамеры 110 и/или датчика движения, такого как инерциальный измерительный блок (Inertial Measurement Unit), конфигурированный для измерения текущего положения или позиции тактильного устройства 130. Устройств 100 реальности CGR может альтернативно измерять текущее положение или позицию тактильного устройства 130 с использованием видеокамеры 110, разнесенных высокочастотных передатчиков и приемников (например, ультраширокополосных (Ultra-Wide Band) или радио устройств Wi-Fi), конфигурированных для осуществления триангуляции высокочастотных сигналов, передаваемых и/или принимаемых от тактильного устройства 130, и/или с использованием другого датчика, конфигурированного для измерения текущего положения или позиции тактильного устройства 130. Устройство 100 реальности CGR может содержать компоненты изделия марки Microsoft Hololens, такие как его собственная видеокамера и схема связи.
T
T
CGR
CGR
CGR
T
CGR
CGR
CGR
CGR
CGR
CGR
CGR
В приведенном ниже описании примеров вариантов положение тактильного устройства 130 в однородной системе координат обозначено как P, где P = [p 1] ([…] представляет транспонирование матрицы […]). Здесь p представляет собой вектор, p = [X,Y,Z] обозначает трехмерное (3D) положение тактильного устройства 130 в декартовой системе координат. В дополнение к этому, символ S(P) определен как набор всех зарегистрированных положений тактильного устройства 130 в системе координат этого тактильного устройства 130. Положение тактильного устройства 130 относительно системы координат устройства 100 реальности CGR обозначено как P, в однородных координатах, где P = [p 1] и p = [X,Y,Z] представлены в декартовых координатах. Набор положений устройства 100 реальности CGR обозначен S(P). Набор каждой пары положений тактильного устройства, измеренных обоими устройствами – тактильным устройством 130 и устройством 100 реальности CGR обозначен как набор Q(P,P).
P
alpha
Кроме того, символ V обозначает скорость линейного перемещения, а символ V обозначает скорость вращательного перемещения. Символ обозначает оценку скорости V, через t секунд в будущем, которую можно определить на основе анализа ускорения движения и/или схем предшествующих движений, которые осуществлялись пользователем.
Символ «epsilon» обозначает постоянную величину, которая может быть определена пользователем и/или выполняемым приложением.
В примере, показанном на фиг. 1, тактильное устройство 130 конфигурировано для измерения позиции этого устройства в первой системе координат с 6 степенями свободы (6 DOF), иллюстрируемой как направления X', Y', Z' линейного перемещения и направления ɵx', ɵy', ɵz' вращательного перемещения, которые могут соответствовать крену, тангажу и рысканию. Аналогично, устройство 100 реальности CGR конфигурировано для измерения положения тактильного устройства 130 во второй системе координат 6 DOF, иллюстрируемой как совокупность направлений X, Y, Z линейного перемещения и направлении ɵx, ɵy, ɵz вращательного перемещения, которые могут соответствовать крену, тангажу и рысканию. Хотя варианты изобретения могут быть использованы с любой многомерной системой координат.
В соответствии с различными приведенными здесь вариантами тактильное устройство 130, устройство 100 реальности CGR и/или сервер 140 конфигурирован для генерации преобразовательной матрицы для преобразования позиции (например, положения, угла поворота и/или сочетания этих параметров), привязанной к одной из систем – первой или второй, системе координат в позицию, привязанную к другой из этих первой или второй систем координат, и может далее генерировать другую преобразовательную матрицу для преобразования позиции в другом направлении, а именно от позиции с привязкой к указанной другой – первой или второй системе координат в позицию с привязкой к указанной одной – первой и второй системе координат. Тактильное устройство 130 может генерировать указанную преобразовательную матрицу и передать ее устройству 100 реальности CGR, так что устройство 100 реальности CGR может регулировать позиции объектов, которые оно представляет на дисплейном устройстве 850 (фиг. 8) пользователю.
Например, виртуальный объект может иметь тактильные свойства, которые определены в первой системе координат, куда привязано тактильное устройство 130. Устройство 100 реальности CGR может принять метаданные относительно виртуального объекта, например, от самого тактильного устройства 130 и/или сервера 140, где эти метаданные могут содержать указание формы, закрашивание цветом и позицию виртуального объекта относительно первой системы координат. Тактильное устройство 130 может передать преобразовательную матрицу устройству 100 реальности CGR, чтобы побудить это устройство 100 реальности CGR преобразовать эти метаданные (например, позицию) относительно виртуального объекта из первой системы координат тактильного устройства 130 во вторую систему координат для устройства 100 реальности CGR. Это устройство 100 реальности CGR может затем представить виртуальный объект с использованием преобразованных метаданных на дисплейном устройстве для видения пользователем. Эти операции позволяют более точно иллюстрировать виртуальный объект и оперативно отслеживать его тактильные свойства относительно реальных объектов, таких как пальцы пользователя, его кисть, рука или другой физический объект.
Тактильные свойства виртуального объекта могут побудить устройство 100 реальности CGR управлять тактильным устройством 130 для создания тактильной обратной связи для пользователя, когда удовлетворяются тактильные свойства, как это происходит тогда, когда определено, что положение пальца пользователя соответствует касание поверхности виртуального объекта. В качестве альтернативы или в дополнение, тактильные свойства виртуального объекта могут побудить устройство 100 реальности CGR перемещать и/или поворачивать представляемый на дисплее виртуальный объект или по-другому изменять представление объекта на дисплее в ответ на определение, что удовлетворяются тактильные свойства, как это происходит тогда, когда определено, что положение пальца пользователя соответствует касанию поверхности виртуального объекта.
Напротив, новый виртуальный объект, созданный во второй системе координат устройства 100 реальности CGR, может передать свои метаданные тактильному устройству 130 с целью, например, управлять обратной связью, предоставляемой тактильным устройством 130 пользователю, и/или управлять определением положения тактильного устройства 130 относительно нового виртуального объекта. Тактильное устройство 130 использует эти метаданные для вычисления преобразовательной матрицы, применяемой для преобразования позиции виртуального объекта из второй системы координат устройства 100 реальности CGR в первую систему координат тактильного устройства 130.
Фиг. 2 иллюстрирует схему потоков данных и логическую схему следующего примера операций, которые могут осуществлять тактильное устройство 130 и устройство 100 реальности CGR, работающие в соответствии с некоторыми вариантами настоящего изобретения. На фиг. 7 представлена блок-схема компонентов тактильного устройства, конфигурированных в соответствии с некоторыми другими вариантами настоящего изобретения, а фиг. 8 представляет блок-схему компонентов устройств реальности CGR, которые могут быть использованы в устройстве 100 реальности CGR и/или в устройстве 500 реальности CGR, описываемых выше, в соответствии с некоторыми другими вариантами настоящего изобретения.
Как показано на фиг. 2 с дальнейшими ссылками на фиг. 7 и 8, которые будут более подробно рассмотрены ниже, тактильное устройство 130 управляет устройством 100 реальности CGR для измерения положения этого тактильного устройства 130. Тактильное устройство 130, показанное на фиг. 2, конфигурировано для определения преобразовательной матрицы, осуществляющей преобразование между первой и второй системами координат, показанными на фиг. 1.
Тактильное устройство содержит датчик 740 движения, сетевой интерфейс 730, процессор 710 и запоминающее устройство 720. Датчик 740 движения конфигурирован для измерения движения тактильного устройства 130. Схема сетевого интерфейса 730 конфигурирована для связи с устройством 100 реальности CGR, например, посредством прямой проводной и/или беспроводной связи, и/или с сервером 140. Процессор 710 соединен с датчиком 740 движения и схемой сетевого интерфейса 730. Запоминающее устройство 720 сохраняет программный код, выполняемый процессором 710 для осуществления операций, поясняемых ниже применительно к фиг. 2.
Устройство 100 реальности CGR измеряет положение тактильного устройства 130 относительно этого устройства 100 реальности CGR, оно содержит датчик 110, схему сетевого интерфейса 830, процессор 810 и запоминающее устройство 820. Датчик 110 конфигурирован для передачи на выход данных датчика, которые могут указывать положение тактильного устройства 130. Схема сетевого интерфейса 830 конфигурирована для связи с тактильным устройством 130. Процессор 810 соединен с датчиком 110 и схемой сетевого интерфейса 830. Запоминающее устройство 820 сохраняет программный код, выполняемый процессором 810 для осуществления операций, также поясняемых ниже применительно к фиг. 2.
Тактильное устройство может передать 200 запрос образования пары устройству 100 реальности CGR, которое может в ответ принять 210 этот запрос. Операция 200 может быть инициирована пользователем путем нажатия кнопки или посредством запуска приложения, выполняемого тактильным устройством 130. Выполнение операции 200 может быть в дополнение к этому или в качестве альтернативы запущено, когда будет определено, что необходимо осуществить совмещение систем координат или обновить имеющееся совмещение, например, когда запуск операции произведен пользователем и/или этот запуск произведен автоматически устройством 100 реальности CGR, как это будет описано ниже применительно к фиг. 6. Устройство 100 реальности CGR может использовать обращенную к глазам видеокамеру для считывания изображений с роговицы пользователя, которые затем анализируют, чтобы определить, когда имеет место слишком большое несовмещение между графическим изображением генерируемого компьютером виртуального объекта, представляемым на дисплейном устройстве 850 в составе устройства 100 реальности CGR, и объектом реального мира, видимым пользователем. Устройство 100 реальности CGR может тогда запустить обновление преобразовательной матрицы, если обнаружит слишком большое несовмещение.
Как будет более подробно пояснено ниже применительно к фиг. 6, изображение роговицы можно анализировать с целью идентифицировать возникновение слишком большого несовмещения между первой и второй системами координат, когда имеет место слишком большое несовмещение между виртуальным объектом, который должен быть совмещен с конкретным объектом реального мира, и этим объектом реального мира.
Датчик, например, обращенную вперед видеокамеру 110, можно выключать, когда он не используется, для сбережения энергии. Устройство 100 реальности CGR может отреагировать на полученный запрос посредством включения 212 датчика, который оно должно будет использовать для измерения положения тактильного устройства 130. Тактильное устройство 130 оперирует датчиком 740 движения для измерения 202 своего движения. В ответ на определение 204, что уровень движения тактильного устройства 130, измеренный датчиком 740 движения, удовлетворяет заданному правилу, тактильное устройство 130 передает 206 запрос устройству 100 реальности CGR измерить положение этого тактильного устройства 130.
Тактильное устройство 130 может определить, что его уровень движения удовлетворяет заданному правилу, когда, например, имеют место одно или несколько из следующих условий для скорости:
P
a) V <= epsilon
b) (t) <= epsilon
В одном из вариантов параметр epsilon имеет величину около 0 или другую заданную пороговую величину. Близкую к 0 величину epsilon может быть трудно наблюдать, поскольку тактильное устройство 130 может совершать очень маленькие движения и/или выходной сигнал датчика 740 движения может быть подвержен влиянию шумов и/или дрейфа. Соответственно, величину epsilon можно выбрать на основе желаемого уровня точности для получаемой в результате преобразовательной матрицы, используемой для совмещения систем координат. Положение P тактильного устройства затем сохраняют в составе множеств S и Q. Указанное заданное правило может далее содержать определение, присутствует ли уже текущее измеренное положение P в составе множества S записанных положений, и/или, перестало ли текущее измеренное положение быть действительным, поскольку истек пороговый промежуток времени после определения этого положения.
Приведенное выше условие (b) может быть обычно более предпочтительным, поскольку можно передать запрос для выполнения измерений в будущем, что уменьшит задержку для приема результата измерений положения от устройства 100 реальности CGR. Передача запроса на выполнение измерений от тактильного устройства 130 устройству 100 реальности CGR и осуществление операции считывания изображения порождают ненулевую задержку. Эта задержка может быть достаточной для того, чтобы тактильное устройство 130 переместилось. Однако использование прогнозирующего запроса позволяет осуществить расчетную компенсацию такой задержки и более согласованное совмещение систем координат, несмотря на перемещение тактильного устройства 130.
Измерения положения тактильного устройства 130 посредством устройства 100 реальности CGR можно усовершенствовать, если ограничить такие измерения только ситуациями, когда вращательная скорость тактильного устройства 130 меньше заданной пороговой величины.
В одном из дополнительных вариантов пользователю может быть передан запрос, например, через дисплей устройства 100 реальности CGR, остановить движение тактильного устройства 130, когда будет признано, что требуется измерить положение устройства. Аналогично, пользователю может быть передан запрос переместить тактильное устройство 130 в какое-либо положение или в пару разных положений, которые еще не являются частью множеств S и Q, соответственно. Такие указания могут быть переданы пользователю посредством тактильной обратной связи, осуществляемой через тактильное устройство 130, посредством звуковой обратной связи через громкоговоритель 120 устройства 100 реальности CGR и/или посредством информации, представленной на дисплейном устройстве 850 устройства 100 реальности CGR.
Продолжая обращаться к фиг. 2, когда заданное правило удовлетворяется, тактильное устройство 130 измеряет и сохраняет 208 положение этого тактильного устройства 130 в своем запоминающем устройстве 720. Устройство 100 реальности CGR принимает 214 указанный запрос и в ответ инициирует 216 операции для генерации измерений положения тактильного устройства 130. Устройство 100 реальности CGR сохраняет 218 в своем запоминающем устройстве 820 данные датчика, поступающие с выхода датчика, например, цифровое изображение от видеокамеры 110, что может обозначать положение тактильного устройства 130. Устройство 100 реальности CGR затем передает 220 квитанцию, указывающую, что данные датчика были сохранены.
Тактильное устройство 130 принимает 222 подтверждающую квитанцию от устройства 100 реальности CGR, указывающую, что оно сохранило у себя данные датчика, которые могут быть использованы для измерения положения тактильного устройства 130. Тактильное устройство 130 может определить 224, возникло ли состояние отмены, в котором уровень движения тактильного устройства 130, измеряемый в течение промежутка времени между моментом времени, когда запрос был передан 206 устройству 100 реальности CGR, и моментом времени, когда была принята 222 подтверждающая квитанция от устройства 100 реальности CGR, не удовлетворяет заданному правилу. В ответ на возникновение состояния отмены тактильное устройство 130 передает 226 сообщение отмены устройству 100 реальности CGR, чтобы отменить операции измерения положения тактильного устройства 130.
В одном иллюстративном варианте, если тактильное устройство 130 не двигалось или, в ином случае, если его движение удовлетворяет указанному заданному правилу, выполняют дальнейшие операции для определения преобразовательной матрицы с целью преобразования между первой и второй системами координат. В отличие от того, если тактильное устройство 130 определило, что оно двигалось, или, в противном случае, его движение не удовлетворяло заданному правилу, передают устройству 100 реальности CGR сообщение, чтобы отменить текущие измерения положения тактильного устройства 130.
Пусть T1 обозначает момент времени, в который запрет на выполнение измерений был передан 206 устройству 100 реальности CGR , и пусть T2 обозначает момент времени, в который была принята 222 подтверждающая квитанция ACK, тогда если тактильное устройство 130 определит, что его движение нарушало заданное правило в течение промежутка времени между моментами T1 и T2, устройству 100 реальности CGR передают 226 сообщение с командой отменить измерения, поскольку сохраненные данные датчика, обозначающие положение тактильного устройства, более не действительны. В отличие от этого, если тактильное устройство 130 определило, что его движение не нарушало заданного правила в течение промежутка времени между моментами T1 и T2, тактильное устройство 130 продолжает свои операции для определения преобразовательной матрицы.
Величина промежутка времени T2-T1 может быть основана на сумме или равна сумме Delta_N*2 + Delta_C, где Delta_N представляет собой задержку в сети и Delta_C представляет собой величину промежутка времени между моментом времени передачи 206 запроса на считывание нового изображения и моментом времени, когда это новое изображение получено и сохранено в запоминающем устройстве в составе устройства 100 реальности CGR для последующей обработки с целью определения положения тактильного устройства 130. Величина Delta_C может быть определена на основе частоты кадров видеокамеры (например, 60 Гц), а задержка в сети связи может составлять примерно от 1 мс до 5 мс в зависимости от протокола связи в сети или пути сигнала, используемого для связи, независимо от того, вызвана ли эта задержка совместным использованием ресурсов связи с другими устройствами и/или с другими приложениями в этих же устройствах. Следовательно, величина промежутка времени T2-T1 может составлять примерно 20 мс, что тогда является приемлемой продолжительностью, в течение которой тактильное устройство не должно двигаться или же, в противном случае его движение не должно нарушать заданное правило.
В случае, когда сервер 140 используется для сбора результатов измерения положения от обоих устройств – тактильного устройства 130 и устройства 100 реальности CGR, и для выполнения операций определения преобразовательной матрицы, используемой для преобразований с целью совмещения систем координат, если от тактильного устройства 130 принято сообщение с информацией, что тактильное устройство 130 двигалось, в течение Delta_B секунд после приема квитанции ACK от устройства 100 реальности CGR, где эта величина Delta_B больше максимально допустимой величины Delta_N, тогда сервер 140 передает устройству 100 реальности CGR сообщение, чтобы отменить сбор данных об измеренных положениях и осуществить операции для определения преобразовательной матрицы.
Продолжая рассмотрение фиг. 2, устройство 100 реальности CGR определяет 228, было ли принято сообщение отмены, указывающее, что уровень движения тактильного устройства 130, измеренный в течение промежутка времени между моментом времени приема 214 запроса и моментом времени, когда была передана 220 подтверждающая квитанция, не удовлетворял заданному правилу. Если никакого сообщения отмены принято не было, устройство 100 реальности CGR завершает полную генерацию 230 результата измерений положения тактильного устройства 130 на основе данных датчика, сохраненных в запоминающем устройстве, и передает 232 эти результаты измерения положения тактильного устройства 130. Соответственно, передача результатов измерений положения тактильного устройства 130 осуществляется в ответ на определение 228, что никакого сообщения отмены принято не было.
В одном из вариантов, устройство 100 реальности CGR использует алгоритм оценки положения, такой как операция идентификации положения на основе обработки визуальной информации, обрабатывающая цифровую фотографию тактильного устройства 130, полученную посредством видеокамеры 110 и сохраненную 218 в запоминающем устройстве, для оценки положения тактильного устройства 130 во второй системе координат устройства 100 реальности CGR. Квитанцию (ACK), обозначающую, что цифровая фотография была снята, передают 220 тактильному устройству 130. Выполнение алгоритма оценки положения продолжается для оценки положения тактильного устройства 130 с использованием сохраненной цифровой фотографии, хотя сообщение квитанции передают 220 сразу же, как только будет определено, что цифровая фотография сохранена в запоминающем устройстве.
Алгоритм оценки положения на основе обработки визуальной информации может определить положение на основе идентификации одного или нескольких маркеров, соединенных с тактильным устройством 130 или видимых на нем, части корпуса тактильного устройства 130 и/или другого визуально идентифицируемого признака тактильного устройства 130. Этот алгоритм может быть основан на алгоритме, используемом изделиями марки Hololens, применяющими программу HololensARToolKit, которая затрачивает от 20 до 50 мс от момента съемки цифрового изображения до момента передачи на выход оценки положения маркера, прикрепленного к тактильному устройству 130. Алгоритмы оценки положения на основе обработки визуальной информации могут быть, в качестве альтернативы или в дополнение, основаны на одном или нескольких алгоритмах, предоставляемых через библиотеку компьютерного зрения с открытым исходным кодом (Open Source Computer Vision Library (OpenCV)).
В некоторых других вариантах положение тактильного устройства оценивают с использованием разнесенных в пространстве высокочастотных передатчиков и приемников (например, ультраширокополосных (Ultra-Wide Band) или радио устройств Wi-Fi), конфигурированных для осуществления триангуляции высокочастотных сигналов, передаваемых и/или принимаемых от тактильного устройства 130.
AR
CGR
CGR
Тактильное устройство 130 принимает 234 результаты измерений положения тактильного устройства 130 относительно второй системы P координат устройства 100 реальности CGR. Измеренное положение тактильного устройства во второй системе P координат может быть сохранено в составе множеств S и Q.
Тактильное устройство 130 в ответ на это определяет 236 преобразовательную матрицу для преобразования позиции (т.е. положения, угла поворота и/или сочетания этих параметров) с привязкой к одной – первой или второй, из систем координат в позицию с привязкой к другой – первой или второй, из систем координат, на основе информации о положении тактильного устройства 130, извлеченной из запоминающего устройства в составе тактильного устройства 130, и на основе положения тактильного устройства 130, принятого от устройства 100 реальности CGR.
CGR
CGR
CGR
T
T
T
T
T
CGR
CGR
T
CGR
T
CGR
T
CGR
T
CGR
В одном из вариантов, когда число линейно независимых векторов положения в составе множества Q больше N, т.е. ранг rank(Q)>=N, может быть произведено вычисление преобразовательной матрицы для преобразования между первой системой координат тактильного устройства 130 и второй системой координат устройства 100 реальности CGR. Для осуществления вычисления преобразовательной матрицы, которое должно быть произведено для обоих факторов – и положения, и ориентации, число линейно независимых векторов в составе множества Q больше чем N >= 12 (что является минимальным числом параметров, которые нужно идентифицировать в преобразовательной матрице). Вычисление преобразовательной матрицы может быть реализовано с применением операций метода наименьших квадратов для поиска преобразования T, связывающего две системы систем координат в соответствии с соотношением P= T*P, где P= [p 1], P= [p 1],и T = , где R= при , и при . Let M = [P(1); P(2); …; P(n)] и M = [P(1); P(2); …; P(n)] представляет собой матрицу-столбец, построенную из результатов измерений позиции P и Pдля всехi измерений в составе множества Q, соответственно. Преобразование T получают как преобразование, минимизирующее величину ||M*T – M||. Для вычисления преобразовательной матрицы могут быть также использованы другие способы, такие как, например, прямое линейное преобразование (Direct Linear Transformation (DLT)).
Преобразовательная матрица может быть использована 238 для управления тактильным устройством 130 и/или может быть передана устройству 100 реальности CGR и/или серверу 140. Например, преобразовательная матрица может быть использована для преобразования позиции тактильного устройства 130 из одной из двух – первой или второй, системы координат в другую из этих двух – первую или вторую, систему координат с целью генерации преобразованной позиции. Генерацией тактильной обратной связи посредством тактильного устройства 130 можно управлять на основе этой преобразованной позиции. В качестве альтернативы или в дополнение, устройством 100 реальности CGR можно управлять 240 на основе преобразовательной матрицы, путем представления на дисплейном устройстве графического объекта в позиции, определяемой на основе преобразовательной матрицы.
В некоторых вариантах, операции для определения 204, что уровень движения, измеренный датчиком 740 движения, удовлетворяет заданному правилу, как, например, когда тактильное устройство 130 остается неподвижным в течение промежутка времени между моментом времени передачи 206 запроса (момент времени T1) устройству 100 реальности CGR и моментом времени приема 222 подтверждающей квитанции на запрос (момент времени T2) от устройства 100 реальности CGR.
В отличие от этого, в некоторых вариантах, заданное правило удовлетворяется, когда тактильное устройство 130 остается неподвижным или имеет скорость, изменяющуюся не более чем на заданную пороговую величину, в течение промежутка времени между моментами T1 и T2. Затем осуществляют операцию оценки обновленного положения тактильного устройства 130 на основе найденной величины изменения положения тактильного устройства 130, вызванного из запоминающего устройства 720, из-за скорости движения тактильного устройства 130 в течение по меньшей мере части промежутка времени между моментами T1 и T2. Тактильное устройство 130 принимает 234 результаты измерений положения этого тактильного устройства 130 от устройства 100 реальности CGR. Тогда тактильное устройство 130 может определить 236 преобразовательную матрицу для преобразования позиции относительно из двух – первой или второй, системы координат в позицию относительно другой из этих двух – первой или второй, системы координат на основе обновленного положения тактильного устройства 130 и на основе результатов измерений положения тактильного устройства 130, принятого от устройства 100 реальности CGR.
Фиг. 3a и 3b иллюстрирует схему потоков данных и логическую схему операций тактильного устройства 130, сервера 140 и устройства 100 реальности CGR, работающих в соответствии с некоторыми вариантами настоящего изобретения. В ходе иллюстрируемых операций сервер 140 генерирует преобразовательную матрицу для преобразования между первой и второй системами координат тактильного устройства 130 и устройства 100 реальности CGR.
Как показано на фиг. 3a и 3b, тактильное устройство 130 генерирует 300 запрос пары, который передают устройству 100 реальности CGR для приема 304 и который может быть ретранслирован 302 через сервер 140. Тактильное устройство 130 измеряет 306 свое движение и ожидает определения 308, что уровень движения удовлетворяет заданному правилу, т.е. что это устройство является по существу неподвижным или имеет приемлемую постоянную скорость. В ответ на это определение тактильное устройство 130 передает 310 запрос устройству 100 реальности CGR передать результаты измерений положения тактильного устройства серверу 140. Устройство 100 реальности CGR принимает 330 запрос результатов измерений, который может быть передан или в ином случае наблюдаться 312 сервером 140.
Тактильное устройство 130 измеряет 316 свое текущее положение, например, посредством датчика 740 движения, и передает 318 измеренное положение серверу 140. Сервер инициирует 314 операции для генерации метрики преобразования в ответ на наблюдение 312 запроса или в ответ на прием 320 результатов измерений от тактильного устройства 130. Устройство 100 реальности CGR отвечает на принятый 330 запрос посредством инициирования 332 операций для генерации результата измерений положения тактильного устройства и сохраняет 334 данные датчика, поступившие с выхода датчика, например, цифровое изображение от видеокамеры 110, которое может быть использовано устройством 100 реальности CGR или сервером 140 для определения положения тактильного устройства. В ответ на сохранение данных датчика устройство 100 реальности CGR передает 336 подтверждающую квитанцию для приема 340 тактильным устройством 130. Сервер 140 может передать или в ином случае наблюдать 338 эту квитанцию.
Устройство 100 реальности CGR передает 350 результаты измерений положения тактильного устройства серверу 140, принимающему 340 эти результаты. Тактильное устройство 130 определяет 360, прежде или после приема 370 результатов измерения положения этого тактильного устройства, двигалось ли оно в течение промежутка времени моментом передачи 310 запроса (момент времени T1) и моментом приема 340 подтверждающей квитанции (момент времени T2), или в противном случае двигалось в течение промежутка времени, который не удовлетворяет заданному правилу (например, имело по существу постоянную скорость линейного и/или вращательного перемещения, что удовлетворяет заданному правилу).
Когда движение тактильного устройства 130 не удовлетворяет заданному правилу, серверу 140 может быть передано 362 сообщение отмены, которое, будучи принято 372 сервером 140, запускает отмену генерации сервером 140 преобразовательной матрицы на основе результатов измерения положения тактильным устройством 130 и результатов измерения положения устройством 100 реальности CGR. В отличие от этого, когда тактильное устройство 130 оставалось неподвижным или в противном случае имело движение, удовлетворяющее заданному правилу, сервер 140 генерирует 374 преобразовательную матрицу для преобразования между первой и второй системами координат.
Преобразовательная матрица тогда может быть использована для управления 380 генерацией тактильной обратной связи посредством тактильного устройства. В качестве альтернативы или в дополнение, преобразовательная матрица может быть использована для управления 380 представлением на дисплейном устройстве в составе устройства 100 реальности CGR графического объекта, позиция которого определена на основе преобразовательной матрицы. Например, устройство 100 реальности CGR может использовать преобразовательную матрицу для манипулирования графическим объектом, представленным на дисплее, посредством позиционирования, поворота, регулирования окраски объекта и/или регулирования формы объекта на основе метрических показателей обработки объекта с использованием преобразовательной матрицы.
Фиг. 4a и 4b иллюстрируют другую схему потоков данных и логическую схему операций тактильного устройства 130, сервера 140 и устройства 100 реальности CGR, работающих в соответствии с некоторыми другими вариантами настоящего изобретения. В ходе иллюстрируемых операций устройство 100 реальности CGR и/или сервер 140 генерирует преобразовательную матрицу для преобразования между первой и второй системами координат тактильного устройства 130 и устройства 100 реальности CGR.
Как показано на фиг. 4a и 4b, тактильное устройство 130 генерирует 400 запрос пары, который передают устройству 100 реальности CGR для приема 404, и который может быть ретранслирован 402 через сервер 140. Тактильное устройство 130 измеряет 406 свое движение и ожидает определения 408, что уровень движения удовлетворяет заданному правилу, т.е. остается ли устройство по существу без движения (неподвижным) или имеет приемлемую постоянную скорость. В ответ на это определение тактильное устройство 130 передает 410 запрос устройству 100 реальности CGR для генерации результатов измерений положения этого тактильного устройства. Устройство 100 реальности CGR принимает 430 запрос на генерацию результатов измерений, который сервер 140 пересылает или, в противном случае, наблюдает 412.
Тактильное устройство 130 измеряет 416 свое текущее положение, например, посредством датчика 740 движения, и передает 418 измеренное положение серверу 140 и/или устройству 100 реальности CGR. Устройство 100 реальности CGR реагирует на принятый 430 запрос путем инициирования 432 операций для генерации результатов измерений положения тактильного устройство и сохраняет 434 данные датчика, поступающие с выхода этого датчика, например, цифровое изображение от видеокамеры 110, которое может быть использовано устройством 100 реальности CGR или сервером 140 для определения положения тактильного устройства. В ответ на сохранение данных датчика устройство 100 реальности CGR передает 436 подтверждающую квитанцию для приема 440 тактильным устройством 130. Сервер 140 может переслать или иначе наблюдать 438 эту квитанцию.
Тактильное устройство 130 определяет 460, двигалось ли оно в течение промежутка времени между моментом времени, когда был передан 410 запрос (момент времени T1), и моментом времени, когда была принята 440 подтверждающая квитанция (момент времени T2), или, иначе, имело ли это устройство в течение указанного промежутка времени движение, не удовлетворяющее заданному правилу (например, имеет по существу постоянную линейную и/или вращательную скорость, удовлетворяющую заданному правилу).
Когда тактильное устройство 130 имеет движение, не удовлетворяющее заданному правилу, может быть передано 462 сообщение отмены устройству 100 реальности CGR и/или серверу 140, которые могут передать 464 сообщение отчета. Если принято сообщение отмены, это дает команду устройству 100 реальности CGR отменить 452 генерацию результатов измерений положения тактильного устройства. В отличие от этого, когда тактильное устройство 130 остается неподвижным или, иначе, имеет движение, удовлетворяющее заданному правилу, это устройство 100 реальности CGR не принимает сообщение отмены и потому осуществляет полную генерацию 454 результатов измерений положения тактильного устройства и может оперировать для передачи 456 этих результатов измерений серверу для приема 466.
Устройство 100 реальности CGR может принять 457 результаты измерений положения тактильного устройства 130, выполненных тактильным устройством 130, и определить преобразовательную матрицу между первой и второй системами координат. Устройство 100 реальности CGR может использовать эту преобразовательную матрицу для управления представлением 458 графического объекта на дисплее в позиции на основе преобразовательной матрицы. Например, устройство 100 реальности CGR может манипулировать графическим объектом, представляемым на дисплее, например, путем позиционирования, поворота, регулирования окрашивания объекта и/или регулирования формы объекта на основе метрических показателей обработки объекта с использованием преобразовательной матрицы.
В качестве альтернативы или в дополнение, сервер 140 может принять 466 результаты измерений положения тактильного устройства и определить 468 преобразовательную матрицу для преобразования между первой и второй системами координат. Эта преобразовательная матрица может затем быть использована для управления 470 генерацией тактильной обратной связи посредством тактильного устройства. В качестве альтернативы или в дополнение, преобразовательная матрица, сформированная сервером 140, может быть использована для управления 380 представлением на дисплейном устройстве в составе устройства 100 реальности CGR графического объекта в позиции, определяемой на основе преобразовательной матрицы.
Фиг. 5 иллюстрирует другой тип устройства 500 реальности CGR (например, гарнитуру Google Glass), имеющего обращенную к пользователю видеокамеру 502, которая представляет генерируемые компьютером объекты на дисплейном устройстве 850 и которая позволяет пользователю видеть объекты реального мира сквозь дисплейное устройство 850 и/или видеть объекты реального мира вне области дисплейного устройства 850, в соответствии с некоторыми вариантами настоящего изобретения. Цифровое изображение от обращенной к пользователю видеокамеры 502 может быть обработано для автоматического определения, когда возникла необходимость генерации обновленной преобразовательной матрицы, и для инициирования в ответ генерации такой обновленной матрицы. Фиг. 6 иллюстрирует логическую схему соответствующих операций, выполняемых устройством 100 реальности CGR для инициирования генерации обновленной преобразовательной матрицы согласно некоторым вариантам настоящего изобретения.
Как показано на фиг. 5 и 6, устройство 500 реальности CGR оперирует обращенной к пользователю видеокамерой 502 для считывания (съемки) 600 цифрового изображения отражения от глаза 510 пользователя. Отражение от глаза 510 пользователя содержит первую составляющую, являющуюся результатом отражения виртуального генерируемого компьютером объекта, представленного на дисплейном устройстве 850, и вторую составляющую, являющуюся результатом отражения света от объекта реального мира. Устройство 500 реальности CGR обрабатывает 602 изображение для выделения меры несовмещения между виртуальным генерируемым компьютером объектом и объектом реального мира. Устройство 500 реальности CGR реагирует на то, что мера несовмещения не удовлетворяет заданному правилу инициирования, путем инициирования 604 операций для генерации обновленной преобразовательной матрицы, таких как операции, показанные на фиг. 2, 3a – 3b и/или 4a – 4b.
Облачная реализация
Некоторые или все операции, описываемые выше как осуществляемые тактильным устройством 130, сервером 140 и/или устройством 100 реальности CGR, могут быть в качестве альтернативы выполнены другим узлом связи, являющимся частью ресурса облачных вычислений оператора сети связи. Например, эти операции могут быть выполнены в качестве сетевой функции, близкой к стандарту EDGE, например, на облачном сервере или с использованием облачного ресурса оператора телекоммуникационной сети, например, в сети CloudRAN или в опорной сети связи.
Пример конфигураций тактильного устройства, устройства CGR и сервера
На фиг. 7 представлена блок-схема компонентов тактильного устройства 130, конфигурированных в соответствии с некоторыми другими вариантами настоящего изобретения. Тактильное устройство 130 может содержать датчик 740 движения, схему сетевого интерфейса 730, по меньшей мере одну процессорную схему 710 (процессор) и по меньшей мере одного запоминающее устройство 720 (память). Датчик 740 движения может содержать инерциальный измерительный блок. Схема сетевого интерфейса 730 конфигурирована для связи с другим электронным устройством через проводной (например, Этернет, USB и т.п.) и/или беспроводной (например, Wi-Fi, Bluetooth, сотовый и т.п.) сетевой интерфейс. Тактильное устройство 130 может далее содержать устройство 750 для генерации тактильной обратной связи для пользователя, такой как силовая обратная связь и/или вибрация. Процессор 710 соединен с датчиком 740 движения, схемой сетевого интерфейса 730, устройством 750 для генерации тактильной обратной связи, и запоминающим устройством 720. Запоминающее устройство 720 сохраняет программный код, выполняемый процессором 710 для осуществления операций. Процессор 710 может содержать одну или несколько схем обработки данных, таких как процессор общего назначения и/или процессор специального назначения (например, микропроцессор и/или цифровой процессор сигнала), которые могут быть расположены в одном месте или распределены по одной или нескольким сетям передачи данных. Процессор 710 конфигурирован для выполнения команд компьютерной программы, имеющей вид программного кода 722, сохраненного в запоминающем устройстве 720, описываемом ниже как читаемый компьютером носитель информации, для осуществления некоторых или всех операций и способов согласно одному или нескольким вариантам, описываемым здесь для тактильного устройства 130.
Фиг. 8 представляет блок-схему компонентов 800 устройства реальности CGR, которые могут быть использованы в устройствах реальности CGR 100 и/или 500, описываемых выше, и которые работают согласно по меньшей мере некоторым вариантам настоящего изобретения. Совокупность компонентов 800 устройства реальности CGR может содержать датчик 840 движения, схему сетевого интерфейса 830, громкоговоритель 120, по меньшей мере одну процессорную схему 810 (процессор), дисплейное устройство 850, обращенную вперед видеокамеру 110, обращенную к пользователю видеокамеру 502 и по меньшей мере одного запоминающее устройство 820 (память). Датчик 840 движения может содержать инерциальный измерительный блок. Схема сетевого интерфейса 830 конфигурирована для связи с другим электронным устройством через проводной (например, Этернет, USB и т.п.) и/или беспроводной (например, Wi-Fi, Bluetooth, сотовый и т.п.) сетевой интерфейс. Процессор 810 соединен с датчиком 840 движения, дисплейным устройством 850, обращенной вперед видеокамерой 110, обращенной к пользователю видеокамерой 502, громкоговорителем 120, сетевым интерфейсом 830 и запоминающим устройством 820. Запоминающее устройство 820 сохраняет программный код, выполняемый процессором 810 для осуществления операций. Процессор 810 может содержать одну или несколько схем обработки данных, таких как процессор общего назначения и/или процессор специального назначения (например, микропроцессор и/или цифровой процессор сигнала), которые могут быть расположены в одном месте или распределены по одной или нескольким сетям передачи данных. Процессор 810 конфигурирован для выполнения команд компьютерной программы, имеющей вид программного кода 822, сохраненного в запоминающем устройстве 820, описываемом ниже как читаемый компьютером носитель информации, для осуществления некоторых или всех операций и способов согласно одному или нескольким вариантам, описываемым здесь для устройства 100 реальности CGR.
На фиг. 9 представлена блок-схема компонентов сервера 140, конфигурированных согласно некоторым вариантам настоящего изобретения. Сервер 140 может содержать схему сетевого интерфейса 930, по меньшей мере одну процессорную схему 910 (процессор) и по меньшей мере одно запоминающее устройство 920 (память). Схема сетевого интерфейса 930 конфигурирована для связи с другим электронным устройством через проводной (например, Этернет, USB и т.п.) и/или беспроводной (например, Wi-Fi, Bluetooth, сотовый и т.п.) сетевой интерфейс. Запоминающее устройство 920 сохраняет программный код 922, выполняемый процессором 910 для осуществления операций. Процессор 910 может содержать одну или несколько схем обработки данных, таких как процессор общего назначения и/или процессор специального назначения (например, микропроцессор и/или цифровой процессор сигнала), которые могут быть расположены в одном месте или распределены по одной или нескольким сетям передачи данных. Процессор 910 конфигурирован для выполнения команд компьютерной программы, имеющей вид программного кода 922, сохраненного в запоминающем устройстве 920, описываемом ниже как читаемый компьютером носитель информации, для осуществления некоторых или всех операций и способов согласно одному или нескольким вариантам, описываемым здесь для сервера 140.
Другие определения и варианты
В приведенном выше описании разнообразных вариантов концепций настоящего изобретения должно быть понятно, что используемая здесь терминология предназначена только для целей описания конкретных вариантов и не имеет целью как-то ограничить концепции настоящего изобретения. Если не определено противоположное, все термины (включая технические и научные термины), используемые здесь, имеют такие же значения, как это обычно понимают даже рядовые специалисты в рассматриваемой области, которой принадлежат концепции настоящего изобретения. Должно быть далее понятно, что термины, такие как те, что определены в общеупотребительных словарях, следует интерпретировать как имеющие значение, согласованное с их значением в контексте настоящего описания и в соответствующей области техники, и их не следует интерпретировать в идеализированном или в слишком формальном смысле, прямо определенном в настоящем документе.
Когда элемент назван «соединенный», «связанный», «отвечающий на сигналы» или вариантами таких терминов относительно другого элемента, он может быть прямо соединен, связан или отвечать на сигналы от указанного другого элемента, либо могут присутствовать промежуточные элементы. В отличие от этого, когда элемент называется «прямо соединенным», «прямо связанным», «прямо отвечающим на сигналы» или вариантами этих терминов относительно какого-либо другого элемента, это означает отсутствие каких-либо промежуточных элементов. По всему описанию одинаковые номера обозначают одинаковые элементы. Кроме того, термины «связанный», «соединенный», «отвечающий на сигналы» или варианты таких терминов, как они используются здесь, могут включать связанный, соединенный или отвечающий на сигналы беспроводным способом. Как используется здесь, формы единственного числа имеют целью охватывать также множественное число, если только контекст явно не указывает противоположное. Для краткости и/или ясности хорошо известные функции или конструкции могут здесь не быть описаны подробно. Термин «и/или» включает любые и все сочетания одного или нескольких ассоциированных перечисленных объектов.
Следует понимать, что хотя термины «первый», «второй», «третий» и т.д. могут быть использованы здесь для описания разнообразных элементов/операций, эти элементы/операции не следует ограничивать этими терминами. Эти термины используется здесь только для того, чтобы отличать один элемент/операцию от другого элемента/операции. Таким образом, первый элемент/операция в некоторых вариантах может называться вторым элементом/операцией в других вариантах без отклонения от положений концепций настоящего изобретения. Одинаковые цифровые позиционные обозначения присвоены одним и тем же или подобным элементам по всему описанию.
Как используется здесь, термины «содержать», «содержащий», «содержит», «включать (в себя)», «включающий (в себя)», «включает (в себя)», «иметь», «имеет», «имеющий» или их варианты имеют открытый список значений, который включает один или несколько утверждаемых признаков, целых чисел, элементов, этапов, компонентов или функций, но не препятствует присутствию или добавлению одного или нескольких других признаков, целых чисел, элементов, этапов, компонентов, функций или их групп. Кроме того, как используется здесь, обычная аббревиатура "e.g.", которая получена из латинской фразы "exempli gratia" («например»), может быть использована для введения или спецификации общего примера или примеров ранее упомянутых объектов, и не предназначена для ограничения таких объектов. Обычная аббревиатура "i.e.", полученная из латинской фразы "id est" («то есть» или «т.е.») может быть использована для спецификации конкретного объекта из более общего перечисления.
Примеры вариантов описываются здесь со ссылками на блок-схемы и/или логические схемы, иллюстрирующие реализуемые компьютером способы, аппаратуру (системы и/или устройства) и/или компьютерные программные продукты. Понятно, что блок в составе иллюстрируемой блок-схемы и/или иллюстрируемой логической схемы, равно как и комбинация блоков в составе иллюстрируемой блок-схемы и/или иллюстрируемой логической схемы могут быть реализованы посредством команд компьютерной программы, выполняемых одной или несколькими компьютерными схемами. Эти команды компьютерной программы могут быть переданы в процессорную схему в составе компьютерной схемы общего назначения, компьютерной схемы специального назначения и/или другой программируемой схемы обработки данных для создания машины, так что команды, выполняемые процессором компьютера и/или другой программируемой аппаратуры обработки данных, преобразуют и управляют транзисторами, величинами, записанными в позициях запоминающего устройства, и другими аппаратными компонентами в составе такой схемы для реализации функций/действий, специфицированных в блок-схеме и/или блоке или блоках логической схемы, и тем самым создания средств (функциональных возможностей) и/или структуры для реализации функций/действий, специфицированных блоками в составе блок-схемы и/или логической схемы.
Эти команды компьютерной программы могут быть также сохранены на материальном читаемом компьютером носителе, который может быть передан компьютеру или другой программируемой аппаратуре обработки данных для функционирования каким-либо конкретным способом, так что команды, сохраненные на читаемом компьютером носителе, создают изделие, содержащее команды, реализующие функции/действия, специфицированные в блоке или в блоках блок-схем и/или логических схем. Соответственно варианты концепций настоящего изобретения могут быть реализованы в аппаратуре и/или в программном обеспечении (включая встроенное программное обеспечение, резидентное программное обеспечение, микрокод и т.п.), работающем в процессоре, таком как цифровой процессор сигнала, что может коллективно называться «схемой», «модулем» или их вариантами.
Следует также отметить, что в некоторых альтернативных вариантах функции/действия, указанные в блоках, могут выполняться в порядке, отличном от порядка, указанного на соответствующей логической схеме. Например, два блока, показанные в последовательности один за другим, на деле могут выполняться по существу одновременно, либо эти блоки могут иногда выполняться в обратном порядке, в зависимости от участвующих функциональных возможностей/действий. Кроме того, функциональные возможности какого-либо конкретного рассматриваемого блока логических схем и/или блок-схем могут быть разделены на несколько блоков и/или функциональные возможности двух или более блоков логических схем и/или блок-схем могут быть по меньшей мере частично интегрированы. Наконец, другие блоки могут быть добавлены/вставлены между иллюстрируемыми блоками, и/или блоки/операции могут быть исключены, не отклоняясь от концепции изобретения. Кроме того, хотя на некоторых чертежах выполнены стрелки на цепях связи, чтобы показать главное направление передачи сигналов, следует понимать, что передачи могут осуществляться в направлении, противоположном направлению стрелок.
Многочисленные вариации и модификации могут быть внесены в предлагаемые варианты без существенного отклонения от принципов концепций настоящего изобретения. Все такие вариации и модификации должны быть включены в объем концепций настоящего изобретения. Соответственно, изложенный выше материал относительно предмета изобретения следует считать иллюстративным и не ограничивающим, а прилагаемые примеры вариантов должны охватывать все такие модификации, усовершенствования и другие варианты, попадающие в пределы смысла и объема концепций настоящего изобретения. Таким образом, объем концепций настоящего изобретения следует определять посредством наиболее широкой допустимой интерпретации настоящего описания, включая следующие примеры вариантов и их эквиваленты, и не должны быть ограничены предшествующим подробным описанием.