Способ воздействия на виртуальные объекты
Изобретение относится к области информационных технологий и вычислительной техники, а более конкретно к устройствам ввода информации и управления виртуальными объектами в виртуальном трехмерном пространстве, изображаемыми на экране монитора или иного устройства отображения информации. Заявляемый способ позволяет осуществлять управление виртуальными объектами в виртуальном трехмерном пространстве с привязкой осуществляемых операций к координатам реального трехмерного пространства.
Известен «Cпocoб автоматического позиционирования указателя для трехмерного компьютерного моделирования)) (см. патент США N»6,057,827 [I]), в котором пользователь имеет возможность позиционирования указателя в районе двумерного геометрического места точек, представляющих трехмерный объект на экране монитора. Согласно этому решению, указатель автоматически перемещается к геометрическому месту точек, задающему трехмерный объект, ближайший к заданному пользователем расположению указателя, задаваемого курсором на экране. Однако, в данном способе точное позиционирование указателя (курсора) является для пользователя сложной задачей, поскольку во многих случаях достаточно сложно на основе двумерного плоского изображения оценить правильное пространственное расположение объектов виртуального пространства и правильно позиционировать указатель. Кроме того, возможны дополнительные ошибки на этапе автоматического выбора трехмерного виртуального объекта. Это приводит к необходимости повторения
процесса позиционирования курсора и существенно затрудняет работу пользователя.
Наиболее близким к заявленному изобретению является компьютеризированный способ и компьютерная система позиционирования указателя)) (выложенная заявка на патент CTTTA JVГ«2006/0244745 [2]), в котором пользователь при позиционировании указателя в трехмерном виртуальном пространстве имеет возможность наблюдать алгоритмически созданное трехмерное изображение на двумерном дисплее и действовать с учетом получаемой дополнительной информации о глубине изображения. Это позволяет позиционировать указатель в трехмерном виртуальном пространстве более точно и осуществлять позиционирование с меньшим количеством проб и ошибок. Недостатком данного метода является то, что трехмерное изображение на двумерном дисплее создается на основе аффекта динамической глубины (см. H. Wаllасh еt аl "Тhе kiпеtiс dерth ;effect", Jоurпаl оf Ехреrimепtаl Рsусhоlоgу, 45, 205-217 [3]). Использование принудительной анимации отображаемых объектов для создания эффекта объемного изображения является искусственным способом, который применим лишь для решения узкоспециальных задач (например, трехмерного математического моделирования или синтеза трехмерных объектов) требует дополнительного времени и ресурсов для осуществления. В системах реального времени, симуляторах, игровых приложениях использование данного метода малоэффективно.
Кроме того, общим недостатком как первого [1], так и второго [2] описанных методов является тот факт, что данные методы основаны на управлении объектами виртуального трехмерного пространства на двумерной плоскости устройст ва отображения информации, без
осуществления привязки осуществляемых операций к координатам реального трехмерного пространства.
Задачей данного изобретения является создание способа воздействия на виртуальные объекты трехмерного виртуального пространства, при котором управляющие воздействия на объекты трехмерного виртуального пространства осуществляются с учетом точной измеряемой (и в последующем вычисляемой) информации о взаимном расположении пользователя, устройства отображения и объектов виртуального пространства в реальной физической трехмерной системе координат — базовой системе координат.
Поставленная задача решена за счет разработки способа воздействия на виртуальные объекты, заключающегося в том, что
- размещают в реальном трехмерном пространстве первую группу блоков идентификации: - формируют в реальном трехмерном пространстве реальную, физическую базовую систему координат, привязанную к пространственному положению блоков идентификации первой группы;
- определяют координаты рабочей зоны устройств отображения в реальном трехмерном пространстве относительно реальной физической базовой системы координат;
- задают координаты заранее созданных в цифровом формате трехмерных виртуальных объектов в реальном трехмерном пространстве относительно реальной физической базовой системы координат
- размещают вторую группу блоков идентификации, которая задает в реальном трехмерном пространстве положение точки
фиксации виртуального указателя, и определяют координаты точки фиксации виртуального указателя в реальном
трехмерном пространстве относительно реальной физической базовой системы координат;
- задают с необходимой детализацией координаты совокупности геометрического места точек виртуального указателя относительно точки фиксации виртуального указателя;
- определяют в реальном трехмерном пространстве относительно реальной физической базовой системы координат с необходимой детализацией координаты совокупности геометрического места точек виртуального указателя, попадающие в область координат рабочей зоны устройств отображения;
- формируют совокупность виртуальных объектов, координаты которых в реальном трехмерном пространстве попадают в область, рассчитанную с учетом расположения геометрического места точек виртуального указателя, попадающих в область координат рабочей зоны устройств отображения; - выполняют заданные виртуальные действия по модификации виртуальных объектов для всех или части объектов из сформированной совокупности виртуальных объектов.
Как видно из вышеизложенного, основным отличием заявляемого способа от всех известных из уровня техники способов позиционирования указателя на объекты трехмерного виртуального пространства является то, что указатель (в соответствии с заявляемым
способом) позиционируется в реальной физической базовой системе координат, и все объекты трехмерного виртуального пространства, как и само устройство отображения информации, также имеют конкретные координаты, заданные в этой реальной физической базовой системе координат или преобразованные к реальной физической системе координат.
Таким образом, техническим результатом заявленного изобретения является создание способа позиционирования указателя, управляющего объектами виртуального трехмерного пространства, положение которого задается точно в физической системе координат, а не условно - в двумерной плоскости экрана, причем управление с помощью указателя осуществляется лишь теми виртуальными объектами трехмерного виртуального пространства, эквивалентные , физические координаты которых попадают в зону воздействия указателя. Такие новые свойства данного указателя существенно расширяют область применения предлагаемой способа за счет обеспечения возможности реализации высокоточных симуляторов физических процессов с высочайшей степенью достоверности при имитации пространственных операций в трехмерном виртуальном пространстве - движений, перемещений, вращений и иных эффектов, связанных с виртуальными объектами.
Способ воздействия на виртуальные объекты, согласно заявляемому изобретению, имеет самостоятельное значение, но особенно эффективно применение данного способа в сочетании с адаптивным формированием отображаемой совокупности виртуальных объектов на основе анализа положения наблюдателя. Для этого размещают третью группу блоков идентификации, которая задает в
реальном трехмерном пространстве относительно реальной физической базовой системы координат положение точки наблюдения рабочей зоны устройств отображения пользователем; модифицируют набор отображаемых данных путем включения в него отображаемой совокупности геометрического места точек виртуального указателя и формируют текущий набор отображаемых трехмерных виртуальных объектов исходя из:
• информации о взаимном положении в реальном трехмерном пространстве относительно реальной физической базовой системы координат полной совокупности трехмерных виртуальных объектов, модифицированных с учетом выполненной совокупности заданных виртуальных действий и положения отображаемой части виртуального указателя;
• информации о положении точки наблюдения пользователем , рабочей зоны устройств отображения;
• информации о положении рабочей зоны устройств,, отображения; после чего сформированный набор подают на устройство отображения.
Вышеизложенная последовательность действий позволяет добиться эффекта, аналогичного обзору виртуального трехмерного пространства через обычное окно, роль которого играет экран устройства отображения, а управление виртуальными объектами с помощью указателя также осуществляется через это «oкнo», причем это дает возможность управлять объектами виртуального мира, расположенными как прямо перед «oкнo», так и справа или слева от
«oкнa», а также объектами, расположенными на различном расстоянии от «oкнa».
Способ воздействия на объекты виртуального мира, примеры расчета координат физических и виртуальных объектов, а также пример методики установления взаимно однозначного соответствия между виртуальными координатами и реальными физическими координатами базовой системы рассматриваются ниже.
Сущность заявляемого изобретения поясняется с привлечением графических материалов на примере одного из вариантов практической реализации предлагаемого способа в рамках системы, содержащей аппаратные средства, необходимые для задания базовой системы координат и идентификации положения физических объектов - самого пользователя, технических средств ввода информации, управляемых пользователем, устройства ортображения информации, а также , включающей в себя необходимые алгоритмические и программные решения, которые осуществляют совокупность действий над материальными объектами (аппаратными средствами), необходимые для реализации предложенного способа.
Фиг. 1. Общая схема системы визуализации трехмерных объектов виртуального пространства и пример схемы индикации виртуального указателя для случая, когда указатель проходит через рабочую зону устройства отображения.
Фиг. 2. Пример схемы индикации виртуального указателя для случая когда виртуальный указатель проходит в стороне от рабочей зоны устройства отображения. Фиг. 3 Блок-схема алгоритма реализации способа воздействия на виртуальные объекты.
Фиг. 4 Пример определения пространственного положения объекта (маркера) по изображениям с двух видео- или фото- камер.
На Фиг. 1 показан пример взаимодействия пользователя 1 с системой, содержащей третью группу блоков ПО идентификации, закрепляемых на голове пользователя 1, вторую группу блоков 120 идентификации, закрепленную на теле пользователя 1 (например, на руке), базовое устройство, включающее в себя первую группу 130 блоков идентификации и блок первичной обработки информации (на Фиг. 1 не показан), вычислительный блок 140, содержащий блоки процессоров, блоки памяти и интерфейсные блоки, выполненные с возможностью поддержания связи с устройством 150 отображения, блоками ПО, 120, 130 идентификации и устройством 150 отображения с группой закрепленных на нем блоков 160 идентификации, базовую систему 170 кординат, привязанную- к первой группе 130 блоков идентификации, трехмерное виртуальное пространство 180, объекты 190 трехмерного виртуального пространства, виртуальный указатель 200 заданной относительно базовой системы координат длины в реальном трехмерном пространстве, геометрическое место 210 точек пересечения виртуального указателя 200 с рабочей зоной устройства 150 отображения информации, отображение 220 на экране устройства отображения виртуального указателя 200, отображение 230 на экране устройства отображения объектов трехмерного виртуального пространства, точка взаимодействия 240 виртуального указателя 200 с объектами 190 трехмерного виртуального пространства в реальном трехмерном пространстве относительно базовой системы координат, отображение 250 на экране устройства отображения точки взаимодействия 240 виртуального указателя 200 с объектами 190 трехмерного виртуального пространства.
Кроме того, на Фиг. 1 показаны дополнительные элементы, иллюстрирующие механизм взаимодействия с виртуальными объектами
согласно предложенному способу - схематическое изображение виртуального указателя 200, иллюстрирующее намерение пользователя 1 управлять выбранным виртуальным объектом 190 трехмерного виртуального пространства, пример индикации 220 данного виртуального указателя на экране устройства отображения и пример визуального эффекта 250 воздействия указателем на выбранный виртуальный объект трехмерного виртуального пространства. Виртуальное пространство 180 с находящимися в нем виртуальными объектами 190 является набором заранее созданных данных изображений трехмерных виртуальных объектов, размещенных в блоке памяти вычислительного блока 140. Размещение виртуальных объектов 190 в реальном пространстве осуществляют путем задания их координат относительно базовой системы 170 координат, размещенной в реальном пространстве. Координаты элементов системы (устройство отображения (Xd, Yd, Zd), точка фиксации виртуального указателя (Xp, Yp, Zp), начало базовой системы координат (Xb, Yb, Zb) по отношению к первой группе 130 блоков идентификации и другие) также содержатся в блоке памяти вычислительного блока 140 и при необходимости изменяются в соответствии с алгоритмом, изложенным ниже. Координаты виртуальных объектов 190 в реальном пространстве - например, как показано на Фиг. 1, координаты (Xvь Yvь Zvi), (XV2, YV2> Zy2), •••, (XVN> YVN, ZvN) рассчитывают на основе относительных координат виртуальных объектов 190 в виртуальном пространстве, заранее загруженных в блоке памяти вычислительного блока 140, и реальных физических координат элементов системы. Преобразование координат при переходе от виртуальной системы к физической осуществляют по известным формулам преобразования координат.
Фиг. 2 иллюстрирует принципиальную возможность индикации виртуального указателя на экране устройства отображения даже для случая, когда виртуальный указатель проходит в стороне от рабочей зоны устройства отображения (вид сверху). Как показано на Фиг. 2, виртуальный указатель, проходящий через точки А и В на экране, индицируется (отображается) в виде объекта, проходящего от точки D к точке С.
Алгоритм (Фиг. 3) содержит следующие шаги: зоо. Начало зоi. размещают в реальном трехмерном пространстве первую группу блоков идентификации;
302. формируют - в реальном трехмерном пространстве базовую систему координат, привязанную к пространственному положению блоков идентификации^ первой группы;
303. размещают в реальном трехмерном пространстве вторую группу блоков идентификации, которая задает в реальном трехмерном пространстве положение точки фиксации виртуального указателя 304. размещают третью группу блоков идентификации, которая задает в реальном трехмерном пространстве относительно реальной физической базовой системы координат положение точки наблюдения рабочей зоны устройств отображения пользователем; 305. задают координаты заранее созданных в цифровом формате трехмерных виртуальных объектов в реальном
трехмерном пространстве относительно реальной физической базовой системы координат
306 определяют координаты рабочей зоны устройств отображения в реальном трехмерном пространстве относительно реальной физической базовой системы координат;
307 анализируют команду пользователя по управлению положением или формой виртуального указателя или иные внешние факторы, влияющие на управление положением или формой виртуального указателя;
308 определяют координаты точки фиксации виртуального указателя в реальном трехмерном пространстве относительно базовой системы координат;
309 задают с необходимой детализацией координаты совокупности геометрического места точек виртуального указателя относительно точки фиксации виртуального указателя; зю определяют в реальном трехмерном пространстве относительно реальной физической базовой системы координат с необходимой детализацией координаты совокупности геометрического места точек виртуального указателя, попадающие в область координат рабочей зоны устройств отображения; зп формируют совокупность виртуальных объектов, координаты которых в реальном трехмерном пространстве попадают в область, рассчитанную с учетом расположения геометрического места точек
виртуального указателя, попадающих в область координат рабочей зоны устройств отображения;
312. анализируют команду пользователя по формированию требуемой совокупности виртуальных действий или иные внешние факторы, влияющие на формированию требуемой совокупности виртуальных действий над виртуальными объектами, попадающими в сферу действия виртуального указателя;
313. выполняют заданные виртуальные действия по модификации виртуальных объектов для всех или части объектов из сформированной совокупности виртуальных объектов;
314. модифицируют набор отображаемых данных путем включения в него отображаемой совокупности геометрического места точек виртуального указателя и , формируют текущий набор отображаемых трехмерных ,t виртуальных объектов;
315. сформированный набор отображаемых данных индицируют (отображают) на устройстве (устройствах) отображения;
316. по команде окончания работы осуществляют переход к п. 317, иначе переход к п. 303;
317. окончание.
Данная система является одним из вариантов реализации предложенного метода и специалисту ясно, что возможны и другие варианты конкретной аппаратнорj реализации предложенного метода. В
частности, конкретная аппаратная реализация предложенного метода зависит от конкретного исполнения блоков идентификации.
Блок идентификации представляет собой устройство, осуществляющее прием или передачу, или прием/передачу, сигналов в одном из диапазонов (ультразвуковой, инфракрасный, оптический или радио). В зависимости от реализации, это может быть активное или пассивное (маркер) устройство. Примеры реализации ультразвуковых приемо-передатчиков, видеокамер и стерео видеокамер, приемопередатчиков, работающих в диапазоне радиоволн, широко представлены в патентной и технической литературе. Выбор конкретного вида приемо-передатчиков является стандартной задачей инженерного проектирования. В зависимости от выбранного типа блока идентификации некоторые блоки идентификации (кроме базового) могут быть исключены из системы.
Сигналы, поступающие от блоков идентификации, работающих в режиме передатчика, принимаются блоками идентификации, работающими в режиме приемника и после обработки в вычислительном устройстве используются для определения расположения рабочей зоны устройств отображения, точки фиксации виртуального указателя, а также (возможно) положение точки наблюдения рабочей зоны устройств отображения пользователем относительно реальной физической базовой системы координат.
Заявляемый способ полностью базируется на корректном и точном определении вышеуказанных координат элементов системы. Например, при реализации блока идентификации на основе видеокамер координаты пространственного объекта вычисляют следующим образом (рассмотренный случай является конкретным
примером реализации теории, которая подробно излагается в курсе эпиполярной геометрии):
Рассмотрим ситуацию, когда две камеры, находящиеся в разных точках, регистрируют одну и ту же сцену. Пара изображений, получаемых при этом, называется стереопарой. Рассмотрим случай, при котором одинаковые камеры расположены так, что их оптические оси параллельны, а прямая, проходящая через оптические центры, перпендикулярна оптическим осям (эта прямая называется базовой линией, а ее отрезок, заключенный между оптическими центрами — базой). Более общий случай может быть получен на основе рассмотренных принципов путем применения методов преобразования систем координат и аппарата эпиполярной геометрии.
Положим длину базы равной b. Выберем такую глобальную систему координат, начало которой О расположено на базовой линии посередине между оптическими центрами камер, ось OZ параллельна оптическим осям, а ось OX направлена вдоль базовой линии (Фиг. ЗJ.
Пусть начала координат в плоскостях изображений камер совпадают, с точками пересечения оптической оси с плоскостью изображения, а единицы измерения координат в глобальной системе и в плоскостях изображения камер одинаковы.
Выберем точку с глобальными координатами (X,Y,Z). Координаты ее проекции в плоскости изображения первой (левой) камеры обозначим через (х^У \ а в плоскости изображения второй (правой) камеры - через (У-y") . (Проекции одной и той же точки в плоскостях изображений разных камер называются сопряженными точками.) Нетрудно проверить, что λ' = fiX - b' 2) <Z . x" = f(X - Ы l)IZ . \ ' = y" = JYf Z .
Заметим, что в направлении, перпендикулярном направлению базовой линии, координаты сопряженных точек (у-координаты) совпадают. Это обстоятельство имеет большое значение при автоматизированном поиске сопряженных точек на стереопаре, позволяя существенно сократить размеры зоны поиска. Из первых двух соотношений следует, что
Z = fb J(x - .Vя) ,
Это означает, что, зная геометрию съемки и выполнив измерения координат проекций одной и той же точки в плоскостях изображения камер, можно вычислить глубину (координату Z) этой точки. Более того, полученные соотношения позволяют вычислить полностью трехмерные координаты точки:
При реализации блока идентификации на основе ультразвуковых приемопередатчиков для повышения точности используют не менее трех приемопредатчиков, пространственное положение которых связано с системой координат, например, реальной физической базовой системой. Методика определения координат пространственных объектов для данного случая подробно раскрыта в опубликованной международной заявке на изобретение «Cпocoб и система для визуализации виртуальных трехмерных объектов)) (PCT/RU2005/000465
[4])- Таким образом, из изложенного ясно, что техническая реализация и практическое воплощение предлагаемого способа воздействия на
виртуальные объекты осуществимы на основе решений, известных из уровня техники. Новизна и изобретательский уровень предлагаемого способа заключаются в применении предложенных принципов точного пространственного позиционирования как реальных, физических так и виртуальных, отображаемых объектов в реальном трехмерном пространстве относительно реальной физической базовой системы координат, причем указанное позиционирование дает новые, ранее не реализованные, возможности работы с объектами в виртуальной реальности. Рассмотрим детальный алгоритм реализации заявляемого способа для случая его применения в сочетании с адаптивным формированием отображаемой совокупности виртуальных объектов на основе анализа положения наблюдателя. Блок-схема алгоритма представлена на Фиг. 3. и в достаточной степени поясняется функциями 301 -315 блоков алгоритма.
Некоторые дополнительные пояснения полезны с точки зрения понимания новых возможностей, предоставляемых заявляемым способом.
Как уже отмечалось, указатель (в соответствии с заявляемым способом) позиционируется в реальной физической базовой системе координат, и все объекты трехмерного виртуального пространства, а также и само устройство отображения информации, также имеют конкретные координаты, заданные в этой реальной физической базовой системе координат. Например, пользователь имеет намерение произвести действия с объектом виртуального трехмерного пространства например, человеком, как показано на Фиг. 1. Координаты данного человека (Xvз, Yvз> Zv3) заданы в в реальном трехмерном пространстве относительно реальной
физической базовой системы координат. Расстояние от пользователя до данного человека в реальном мире составляет, например 10 м (1000 см). Это легко рассчитывается, поскольку координаты, как данного человека (Xv3, Yv3, Zv3), так и пользователя 1 - (Xp, Yp, Zp), известны или могут быть расчитаны путем обработки сигналов, поступающих от блоков идентификации (обработка осуществляется одним из вышеизложенных методов). Пользователь 1 имеет возможность задать определенный масштаб - это может быть масштаб 1 :1 или какой-либо другой масштаб.
Например, при использовании масштаба, задаваемого пользователем и равного 1 :20, пользователь, для того, чтобы коснуться дерева, должен двинуть руку, оснащенную датчиками второй системы блоков идентификации, вперед точно на 50 см.
Если же используется масштаб 1 : 1, то в этом случае все действия пользователя с виртуальными объектами потребуют выполнения точно таких же действий, как и в случае управления объектами реального физического пространства (или при воздействии на такие объекты) v
На Фиг. 1 показано, что хотя индикация 220 данного виртуального указателя на экране устройства отображения осуществляется в двумерной плоскости дисплея, все действия пользователя будут осуществляться в реальной физической системе координат (возможно, с учетом выбранного масштаба), что схематически представлено на Фиг. 1 изображением виртуального указателя 200, которое иллюстрирует намерение пользователя управлять выбранным виртуальным объектом 190 трехмерного виртуального пространства. Это — условный пример, но из него ясно, что данный способ позволяет осуществить обучение пользователя, например, на симуляторе, в процессе которого будут отработаны не только необходимые действия
и манипуляции объектами виртуального мира, но и точно воспроизведены реальные размеры обстановки, в которой эти действия осуществляются. Это резко повышает эффективность обучения пользователя. Таким образом, предлагаемый способ промышленно применим в устройствах обучения, симуляторах, компьютерных играх, основанных на моделировании реальности и других применениях.