СПОСОБ ФОРМИРОВАНИЯ ВХОДНОГО СИГНАЛА ВО ВСЕНАПРАВЛЕННОЙ СИСТЕМЕ ДВИЖЕНИЯ
METHOD OF FORMING AN INPUT SIGNAL IN OMNIDIRECTIONAL MOTION SYSTEM

Ссылка на связанные заявки
[0001] Даты приоритета данной заявки определяются датами подачи предварительной патентной заявки США №61/955,767, поданной 19.03.2014 и озаглавленной "Способ и система для развязывания движений и система виртуальной реальности"; предварительной патентной заявки США №61/981,149, поданной 17.04.2014 и озаглавленной "Система всенаправленного движения для военных применений"; предварительной патентной заявки США №62/004,550, поданной 29.05.2014 и озаглавленной "Система с поддерживающей трубой для обеспечения вертикального движения в устройстве всенаправленного движения"; предварительной патентной заявки США №62/099,426, поданной 2.01.2015 и озаглавленной "Система и аппарат всенаправленного движения", и предварительной патентной заявки США №62/127,261, поданной 2.03.2015 и озаглавленной "Система и аппарат всенаправленного движения". Содержание всех названных заявок полностью включено в данное описание посредством ссылки.
Область техники
[0002] Изобретение относится к системе и аппарату всенаправленного движения, которые могут быть использованы совместно с системами виртуальной реальности, и, более конкретно, к аппаратным средствам и программным способам для системы всенаправленного движения, а также к соответствующим компонентам.
Уровень техники
[0003] Изобретение относится в широком смысле к устройствам движения, которые могут использоваться совместно с системами виртуальной реальности.
[0004] Пользователи, как правило, желают, находясь в среде виртуальной реальности, обладать способностью свободно передвигаться. Более конкретно, способность к физической ходьбе или бегу в реальной среде и возможность переноса этого движения в виртуальную среду значительно повышает уровень погружения пользователя в виртуальную среду. Однако движению в реальном мире часто мешают границы в физическом пространстве (например обусловленные размером комнаты, в которой находится пользователь). Соответственно, устройства движения конструируются таким образом, чтобы создать у пользователя ощущение свободной ходьбы, в то же время удерживая пользователя в определенном месте. Например, многие устройства движения позволяют пользователю свободно ходить, в пределах 360 градусов, не покидая платформы, имеющей конечные размеры.
[0005] Моторизованные устройства движения, как правило, используют датчики, чтобы детектировать движения пользователя и посылать сигналы обратной связи на двигатели, приводящие в движение страховочные пояса или ролики, на которых перемещается пользователь. Пояса или ролики функционируют таким образом, чтобы противодействовать движениям пользователя и возвращать пользователя после каждого шага на центральную часть платформы. Моторизованным устройствам движения присущ ряд недостатков. Например, подобные устройства обычно являются сложными и дорогостоящими вследствие применения роликовых и моторизованных компонентов, датчиков, процессорных блоков и цепей обратной связи. Кроме того, для роликовых и моторизованных компонентов требуются сложные алгоритмы, чтобы должным образом противодействовать движениям пользователя. Неточная обратная связь для двигателя может привести к неправильным движениям поясов или роликов, а это может привести к потере пользователем равновесия или к его постепенному смещению с центра платформы. Когда пользователь ускоряется, могут возникать проблемы с запаздыванием обратной связи и отклика, приводящие к неправильным движениям или к слишком медленным откликам и потенциально позволяющие пользователю сойти с платформы. Кроме того, поскольку реакционные движения пояса или роликов противодействуют движениям пользователя, появляется опасность потери равновесия и падения пользователя.
[0006] В дополнение к проблемам с функционированием моторизованных устройств движения, такие устройства обычно являются большими и громоздкими и, как следствие, не подходят для жилых помещений среднего размера (например для общей комнаты, спальни или комнаты для игр). Кроме того, они могут быть трудными для разборки на модули с целью пересылки и хранения. Большие габариты устройств требуются для того, чтобы предотвратить выход пользователя за пределы платформы до того, как будет выработан правильный отклик системы. Это делает известные устройства непригодными для использования в домашних условиях.
[0007] Немоторизованные устройства движения не содержат моторизованных компонентов и, следовательно, чтобы вернуть пользователя к центру платформы после завершения каждого шага, используют движения пользователя и/или силу тяжести. Например, платформы, снабженные всенаправленным шаром, имеют сотни шаровых опор, что обеспечивает для пользователя возможность ходьбы на месте, причем пользователь удерживается на одном месте посредством ограничителя, охватывающего его талию. Основная проблема, связанная с платформами, снабженными всенаправленным шаром, состоит в том, что пользователь не получает ощущения нормальной ходьбы с переносом веса с пятки на носок, а испытывает чувство нестабильности, схожее с ощущением ходьбы по льду. Такое чувство обусловлено шаркающими движениями ступней, когда ни пятка, ни носок не отрываются от устройства, причем такая неестественная ходьба ослабляет погружение пользователя в виртуальную среду. Кроме того, такие устройства, как правило, являются тяжелыми и дорогостоящими вследствие большого количества элементов качения.
[0008] Соответственно, сохраняется потребность в устройствах движения, которые открывают пользователям безопасный доступ к виртуальным средам, создавая при этом ощущение более естественной ходьбы.
Раскрытие изобретения
[0009] Описываемые далее варианты относятся к системе движения, предназначенной для использования совместно с технологией виртуальной среды и содержащей платформу, сконфигурированную с возможностью поддерживать пользователя, нижнюю платформу, сконфигурированную для поддерживания указанной платформы и пользователя, вступающего на платформу, регулируемые кронштейны, соединенные с платформой и выступающие из нее вверх на регулируемое расстояние, и комплект поддерживающей обвязки. Этот комплект содержит опорное кольцо, расположенное над платформой, вокруг центральной вертикальной оси, и обвязку, сконфигурированную для ношения пользователем. Обвязка содержит одну или более подвижных кареток, взаимодействующих с кольцом.
[0010] В одном варианте указанная система движения содержит платформу, сконфигурированную с возможностью поддерживать пользователя, и кронштейны, соединенные с платформой, выступающие из нее вверх и связанные с опорным кольцом, расположенным над платформой, вокруг центральной вертикальной оси, обвязку, содержащую пояс, сконфигурированный для ношения пользователем, одну или более кареток, взаимодействующих с поясом, и связанный с поясом вертикальный элемент. Каретки способны скользить по верхней и нижней поверхностям опорного кольца, а вертикальный элемент расположен в опорном кольце и сконфигурирован так, чтобы ограничить радиальное перемещение соединительной конструкции относительно опорного кольца.
[0011] В одном варианте обвязка для использования в системе всенаправленного движения содержит нижнюю обвязку, связанную с опорной рамой, две верхние каретки, связанные, с возможностью отсоединения, с опорной рамой посредством соединительных стержней и расположенные выше кольца, и две нижние каретки, связанные, с возможностью отсоединения, с опорной рамой посредством соединительных стержней и расположенные ниже кольца.
[0012] В одном варианте система виртуальной реальности содержит систему движения, содержащую платформу, сконфигурированную с возможностью поддерживать пользователя, кронштейны, соединенные с платформой, и обвязку, сконфигурированную для ношения пользователем. Кронштейны содержат опорное кольцо, расположенное над платформой, вокруг центральной вертикальной оси. Обвязка способна двигаться относительно опорного кольца. Система виртуальной реальности может дополнительно содержать один или более датчиков (например в составе инерциального измерительного модуля (ИИМ)), сконфигурированных для детектирования, отслеживания и передачи движения пользователя на печатную плату; светодиоды (СД), сконфигурированные для отображения пользователю статуса информации; систему кабелей; панель, служащую для предотвращения случайного отсоединения, и дисплей, связанный с процессорным блоком, а также один или более аксессуаров, сконфигурированных для обращения с ними пользователем.
[0013] Движение пользователя в системе всенаправленного движения может быть определено по данным, собранным от одного или более датчиков, например от ИИМ. Один или более датчиков можно съемно прикрепить к обуви пользователя, обвязке, аксессуарам, голове, рукам или к любому другому месту на теле пользователя или на его аксессуарах. Когда пользователь начинает движение в любом направлении, датчики могут передавать, например, с частотой 100 Гц гироскопические данные на агрегатную плату. Агрегатная плата может собирать и анализировать данные и определять угловую скорость (количество оборотов в секунду) по данным от гироскопа, перпендикулярного направлению движения. В других вариантах в число датчиков могут быть включены (не ограничиваясь ими) емкостные датчики, инерциальные датчики (ИИМ), датчики рассеянного света, датчики магнитного слежения, акустические датчики, датчики давления, оптические датчики слежения, датчик на эффекте Холла и инфракрасные датчики.
[0014] Термин "связаны" относится к ограничению движения в виртуальной среде по отношению к направлению взгляда пользователя или ориентации камеры внутри виртуальной среды.
[0015] Термин "развязаны" относится к способности двигаться в виртуальной среде независимо от направления, в котором смотрит пользователь или направлена камера в виртуальной среде. В одном варианте этот термин относится к способности пользователя идти в любом направлении на платформе виртуальной реальности (движения ходьбы преобразуются во входной сигнал геймпада для компьютерного приложения, которое принимает этот сигнал) независимо от направления взгляда пользователя в виртуальной среде. Поэтому в условиях "развязывания" движения пользователя не ограничиваются направлением камеры или дисплея, что позволяет пользователю смотреть или позиционировать дисплей под любым углом независимо от намеченного направления движений его ступней и тела.
[0016] Термин "POD" обозначает определенную систему на базе датчика, а именно датчик, подключенный к мультиконтроллерному блоку посредством короткодистанционной беспроводной связи. В контексте изобретения термин "POD" может использоваться как синоним термина "датчик". Изобретение, в основном, описывается со ссылками на POD, однако, могут применяться и другие датчики, например емкостные датчики, инерциальные датчики (ИИМ), датчики рассеянного света, магнитные датчики слежения, акустические датчики, датчики давления, оптические датчики слежения, датчик на эффекте Холла и инфракрасные датчики.
[0017] Термин "игровой" относится в контексте изобретения к виртуальным средам, создаваемым для пользователя видеоиграми, тренингом (боевым, спортивным, профессиональным), имитацией, упражнениями, физиотерапией, серьезными играми, развлечениями, образованием, виртуальными турами, виртуальными производственными средами, виртуальным помещением для деловых встреч, имитацией спорта и тренинга, виртуальным туризмом, виртуальными концертами, виртуальными событиями или программами проектирования.
[0018] Современные видеоигры используют принцип относительной ориентации. Отведение джойстика вправо или нажатие клавиши "D" на клавиатуре может переместить аватар пользователя вправо, под углом 90° относительно текущего направления взгляда или позиции камеры. Текущая позиция камеры может быть получена посредством измерения направления установленного на голове пользователя дисплея, например шлема виртуальной реальности. Таким образом, в схеме относительной ориентации движение может задаваться относительно текущей позиции камеры. Как дополнительная иллюстрация, отведение джойстика вверх или нажатие клавиши "W" на клавиатуре может переместить аватар пользователя вперед вдоль направления, соответствующего текущей позиции камеры.
[0019] В одном варианте игра может использовать принцип абсолютной ориентации (принцип развязывания). Если игра ведется с платформы всенаправленного движения, аватар пользователя может двигаться независимо от текущего направления взгляда или позиции камеры. Аватар пользователя может совершать абсолютное перемещение относительно карты, используемой в игре (игровой карты). Например, если пользователь идет на платформе всенаправленного движения в направлении на север, его аватар на игровой карте может двигаться на север независимо от текущей позиции камеры. В одном варианте головной дисплей может содержать датчик, например, магнитометр. Датчик может использовать, подобно платформе всенаправленного движения, схему абсолютной ориентации. В этом случае текущая игровая позиция камеры может совпадать с реальным направлением взгляда пользователя, смотрящего за пределы игры.
[0020] В одном варианте направление "на север" может быть направлением на северный магнитный полюс или на Полярную звезду. В другом варианте направление "на север" может быть заданным направлением, устанавливаемым или калибруемым в начале игры. Например, пользователь, носящий головной дисплей (шлем виртуальной реальности), может в процессе калибровки смотреть перед собой, и текущее направление взгляда вперед может быть связано при калибровке с направлением ходьбы вперед до того, как будут развязаны текущая позиция камеры и позиция тела пользователя. В другом варианте кольцо или обвязка системы всенаправленного движения может содержать датчики для калибровки позиции пользователя, обращенной вперед, как направления вперед в игре до того, как произойдет развязывание текущей позиции камеры и позиции тела пользователя. Еще в одном варианте при запуске игры текущая позиция пользователя вне игры, определенная датчиками в платформе всенаправленного движения, обвязке или шлеме, может быть прокалибрована как начальная позиция в игре. Например, если входящий в игру пользователь должен быть обращен на восток, направление, в котором обращен пользователь при запуске игры, может быть прокалибровано как направление на восток.
[0021] В одном варианте развязывание может быть реализовано в существующих играх. Хотя эти игры не сконфигурированы для развязывания, однако, эффект развязывания все же может быть достигнут нажатиями на одну или более клавиш с учетом текущей позиции камеры пользователя. Например, если пользователь идет вперед на платформе всенаправленного движения, тогда как его взгляд повернут на 90° влево, развязывание может быть обеспечено нажатием на клавишу "D" или на клавишу движения влево. Схема абсолютной ориентации может быть преобразована в схему относительной ориентации путем учета текущего направления камеры. В другом примере, если пользователь идет вперед на платформе всенаправленного движения, а его взгляд повернут вправо на 45°, эффект развязывания может быть достигнут одновременным или поочередным нажатием на клавиши "W" и "А". Еще в одном примере, если пользователь на платформе всенаправленного движения идет вперед, а его взгляд повернут направо на 15°, эффект развязывания может быть достигнут нажатием на клавишу "W" большее количество раз, чем на клавишу "А".
[0022] В одном варианте способ детектирования быстрой остановки в системе всенаправленного движения может включать прием угловой скорости через заданные временные интервалы, определение движения пользователя на основе угловой скорости, применение сглаживающей фильтрации угловой скорости, детектирование ситуации, когда угловая скорость станет равной или меньшей заданного порогового уровня, расчет наклона графика угловой скорости, детектирование ситуации, когда указанный наклон будет близок к нулю в течение заданного временного интервала, и детектирование быстрой остановки, когда угловая скорость будет находиться в пределах заданного порогового уровня, а наклон близок к нулю в течение заданного временного интервала.
[0023] В одном варианте платформа в составе указанной системы может содержать датчики, которые могут быть использованы для определения характеристик пользователя, использующего указанную систему. Датчики могут находиться на платформе или внутри нее, или на пользователе платформой. Другой вариант относится к схеме абсолютной ориентации, в которой образ (аватар) может двигаться независимо от позиции камеры (которая соответствует направлению взгляда пользователя). Таким образом, направление взгляда пользователя игнорируется, и пользователь может двигаться в рамках абсолютной схемы. Если пользователь идет в системе движения "на север", пользователь в игре будет двигаться на север в пространстве игры независимо от позиции камеры.
[0024] В одном варианте платформа системы движения может содержать один или более датчиков, распределенных в соответствии с геометрическим паттерном; одну или более электронно связанных печатных плат (причем один или более датчиков электронно связаны с одной или более печатными платами); один или более микроконтроллерных блоков, электронно связанных с одной или более печатными платами, и компьютерную систему. Микроконтроллерные блоки могут быть электронно связаны с печатными платами и компьютерной системой посредством короткодистанционной беспроводной связи, например посредством Bluetooth, WI-FI, или NFS (коммуникации ближнего поля). Компьютерной системой может быть сервер, игровая система или мобильное устройство, например ХВОХ, PlaySystem, Nintendo, мобильный телефон, планшет, ноутбук, смартфон или портативный компьютер (PDA). Датчиками могут быть, в частности, емкостные датчики, инерциальные датчики (ИИМ), датчики внешней освещенности, магнитные датчики слежения, акустические датчики, датчики давления, оптические датчики слежения, датчик на эффекте Холла и инфракрасные датчики. В другом варианте геометрический паттерн имеет вид концентричных окружностей.
[0025] В одном варианте шаг вперед может быть сгенерирован при активировании одного или более датчиков в кольце. Например, один или более датчиков в кольце или платформе могут быть активированы считыванием емкости. Данные по емкости и времени от активированного датчика могут сохраняться в компьютерной системе. Шаг может быть детектирован в случае активирования одного или более смежных датчиков. В другом варианте один или более датчиков, находящихся на пользователе, могут быть активированы при инерциальных или оптических измерениях. В результате может быть сгенерирован шаг вперед.
[0026] В другом варианте при активировании одного или более датчиков в кольце может быть сгенерирована векторная скорость. Так, один или более датчиков в кольце или платформе могут быть активированы считыванием емкости. Данные по емкости и времени от активированного датчика могут сохраняться в компьютерной системе. Векторная скорость может быть определена в случае активирования одного или более смежных датчиков. В другом варианте один или более датчиков, находящихся на пользователе, могут быть активированы при инерциальных или оптических измерениях. В результате может быть сгенерирована векторная скорость.
[0027] В следующем варианте может быть вычислено направление шага. Один или более датчиков могут передавать позиционные данные и значения емкости в компьютерную систему. В другом варианте один или более датчиков могут передавать результаты инерциальных или оптических измерений. Компьютерная система может нормализовать позиционные данные от одного или более датчиков. Компьютерная система может дополнительно определять веса нормализованных векторов позиции, а также дополнительно аккумулировать взвешенные нормализованные векторы позиции. Компьютерная система может дополнительно нормализовать аккумулированные векторы.
[0028] Согласно варианту может быть вычислена скорость одного или более шагов. Компьютерная система может обнулять датчики, например, находящиеся в центральной зоне. Один или более датчиков могут передавать позиционные данные и значения емкости в компьютерную систему. В другом варианте один или более датчиков могут передавать результаты инерциальных или оптических измерений. Компьютерная система может дополнительно определять веса нормализованных векторов позиции, а также дополнительно аккумулировать взвешенные нормализованные векторы позиции. Компьютерная система может дополнительно нормализовать аккумулированные векторы, а также определять длину аккумулированного вектора и вычислять скорость этого вектора.
[0029] В одном варианте платформа системы движения может обеспечивать возможность естественного вертикального движения. Вертикальное движение может позволить пользователю в процессе управления системой принимать согнутое положение или совершать прыжки. Возможность вертикального движения может обеспечиваться системой шариковых направляющих, пружинным противовесом, верхней пружинной подвеской, поворотным рычагом, средствами магнитной левитации или гидравлического активирования и/или системой на сжатом газе.
[0030] В одном варианте система движения может содержать тормозной механизм, служащий, в частности, для предотвращения падения пользователя. При взаимодействии пользователя с системой движения к ней прикладывается горизонтальное усилие. Вогнутое основание системы движения, обеспечивающее пользователю возможность движения вперед за счет приложенного горизонтального усилия, может привести к падению пользователя или потере им равновесия. Тормозной механизм может предотвратить падение пользователя или потерю равновесия, противодействуя горизонтальному усилию. Тормозной механизм может использовать противовес, силу трения и кабельный тормоз.
[0031] В одном варианте система движения может принять пользователя, располагающего специальными аксессуарами. Система движения может принять пользователя, использующего огнестрельное оружие, например карабин М4. При этом система движения может также принять пользователя, имеющего соответствующую одежду и снаряжение, например модульный тактический жилет, рюкзак Patrol pack, усовершенствованную экипировку, несущую тяжести (ILBE), и модульный облегченный комплект крепления снаряжения (MOLLE).
[0032] В одном варианте стандартная экипировка может быть интегрирована с системой движения, в частности, оборудование, несущее нагрузку и обеспечивающее ее крепление, может быть присоединено к обвязке в системе движения. Это присоединение может осуществляться посредством модульной системы крепления снаряжения (PALS).
[0033] Согласно одному варианту способ генерирования игрового входа включает расчет скорости; расчет направления движения; преобразование скорости и направления движения в двумерные декартовы координаты и нормализацию двумерных декартовых координат в шкальный диапазон от минимума до максимума. В одном варианте скорость может быть рассчитана, как пройденное одной или двумя ногами пользователя расстояние, деленное на время, затраченное, чтобы пройти данное расстояние. В другом варианте скорость может быть рассчитана по темпу шагов, который определяют путем мониторинга частоты шагов в течение заданного временного интервала. Еще в одном варианте скорость может быть рассчитана путем мониторинга ускорения при движении ноги или ног пользователя. В следующем варианте скорость рассчитывают путем нормализации угловой скорости, причем за угловую скорость принимают изменение углового положения ноги или ног пользователя. В одном варианте направление движения может быть преобразовано в направление относительно реальной мировой оси. При этом в качестве реальной мировой оси может быть принято направление на северный магнитный полюс. В другом варианте направление движения может быть прокалибровано относительно направления на северный магнитный полюс и привязано к начальной ориентации пользователя путем введения смещения. Еще в одном варианте направление движения может быть преобразовано в направление относительно ориентации торса пользователя. В следующем варианте направление движения может быть преобразовано в направление относительно ориентации головы пользователя. В другом варианте шкальный диапазон от минимума до максимума задают посредством дескрипторов игрового входа. Еще в одном варианте Y-координата декартовой системы координат соответствует движению вперед или назад. В одном варианте Х-координата декартовой системы координат соответствует движению вбок.
[0034] Согласно другому варианту способ генерирования игрового сигнала остановки включает расчет скорости, в качестве которой принимают скорость изменения углового положения ноги или ног пользователя; нормализацию указанной скорости; детектирование ситуации, когда нормализованная скорость станет меньше заданного порогового уровня, и детектирование ситуации, когда наклон графика нормализованной скорости станет близким к нулю в течение заданного временного интервала.
[0035] Согласно еще одному варианту способ включает прием одного или более выходных сигналов датчика; расчет скорости по одному или более выходным сигналам датчика; расчет направления движения по одному или более выходным сигналам датчика; преобразование скорости и направления движения в двумерные декартовы координаты и нормализацию двумерных декартовых координат в шкальный диапазон от минимума до максимума.
Краткое описание чертежей
[0036] Чтобы сделать более понятными возможные реализации признаков изобретения, принципы, кратко описанные выше, будут далее рассмотрены более подробно, со ссылками на конкретные примеры осуществления изобретения, проиллюстрированные на прилагаемых чертежах. Должно быть понятно, что на этих чертежах представлены конкретные варианты изобретения, которые поэтому должны рассматриваться не как ограничивающие его объем, а только как конкретизирующие принципы изобретения, становящиеся более понятными при их рассмотрении совместно с указанными чертежами.
[0037] На фиг. 1 иллюстрируется пример обвязки в составе системы согласно конкретному варианту предлагаемой технологии.
[0038] Фиг. 2А и 2В иллюстрируют пример соединения каретки с нижней обвязкой в составе системы согласно конкретному варианту предлагаемой технологии.
[0039] Фиг. 3 иллюстрирует пример каретки и обвязки согласно конкретному варианту предлагаемой технологии.
[0040] На фиг. 4 иллюстрируется система всенаправленного движения с рукоятками и запорным механизмом согласно конкретному варианту предлагаемой технологии.
[0041] На фиг. 5А и 5В иллюстрируется пример запорного механизма согласно конкретному варианту предлагаемой технологии.
[0042] Фиг. 6А, 6В и 6С иллюстрируют пример закрытого и открытого опорного кольца согласно конкретному варианту предлагаемой технологии.
[0043] Фиг. 7 иллюстрирует, на виде сверху, пример опорного кольца согласно конкретному варианту предлагаемой технологии.
[0044] На фиг. 8 иллюстрируется пример механизма прикрепления опорного кольца согласно конкретному варианту предлагаемой технологии.
[0045] На фиг. 9A-9D также иллюстрируется пример механизма прикрепления опорного кольца согласно конкретному варианту предлагаемой технологии.
[0046] Фиг. 10 иллюстрирует пример системы кронштейнов для платформы системы всенаправленного движения в соответствии с вариантом изобретения.
[0047] Фиг. 11 иллюстрирует пример оснований кронштейнов и пример средств для их освобождения согласно конкретному варианту предлагаемой технологии.
[0048] Фиг. 12А и 12В иллюстрируют пример оснований кронштейнов, установленных соответственно на высокий и низкий уровни по вертикали согласно конкретному варианту предлагаемой технологии.
[0049] На фиг. 13 представлен пример внутренней конструкции кронштейна и его основания согласно конкретному варианту предлагаемой технологии.
[0050] На фиг. 14 иллюстрируется внутренняя конструкция основания кронштейна и система его отсоединения согласно конкретному варианту предлагаемой технологии.
[0051] На фиг. 15 представлен, в разрезе, пример системы отсоединения кронштейна согласно конкретному варианту предлагаемой технологии.
[0052] На фиг. 16 представлен, в продольном разрезе, пример выполнения кронштейна и его основания согласно конкретному варианту предлагаемой технологии.
[0053] Фиг. 17 иллюстрирует пример панели механизма автоблокировки основания кронштейна и средства для его освобождения согласно конкретному варианту предлагаемой технологии.
[0054] На фиг. 18 показаны внутренние элементы примера системы автоблокировки согласно конкретному варианту предлагаемой технологии.
[0055] На фиг. 19 также иллюстрируются внутренние элементы примера системы автоблокировки согласно конкретному варианту предлагаемой технологии.
[0056] На фиг. 20 также показаны внутренние элементы примера системы автоблокировки согласно конкретному варианту предлагаемой технологии.
[0057] Фиг. 21 иллюстрирует пример платформы и нижней платформы в системе всенаправленного движения согласно конкретному варианту предлагаемой технологии.
[0058] Фиг. 22 иллюстрирует, на виде сверху, в разрезе, пример опорной конструкции платформы и нижней платформы согласно конкретному варианту предлагаемой технологии.
[0059] На фиг. 23 иллюстрируется пример панели для кабелей согласно конкретному варианту предлагаемой технологии.
[0060] На фиг. 24 представлен пример внутренней конструкции панели для кабелей согласно конкретному варианту предлагаемой технологии.
[0061] На фиг. 25 представлена блок-схема, иллюстрирующая пример системы POD согласно конкретному варианту предлагаемой технологии.
[0062] На фиг. 26 представлена блок-схема примера системы POD согласно конкретному варианту предлагаемой технологии.
[0063] На фиг. 27 представлена блок-схема, иллюстрирующая пример системы POD согласно конкретному варианту предлагаемой технологии.
[0064] На фиг. 28 представлена блок-схема примера агрегатной платы системы датчиков согласно конкретному варианту предлагаемой технологии.
[0065] На фиг. 29 представлена блок-схема примера многослойной модели для системы коммуникации с POD согласно варианту предлагаемой технологии.
[0066] На фиг. 30 представлена схема, иллюстрирующая пример расположения датчиков согласно конкретному варианту предлагаемой технологии.
[0067] На фиг. 31 представлена схема, иллюстрирующая пример агрегатной платы согласно конкретному варианту предлагаемой технологии.
[0068] На фиг. 32 представлена блок-схема, иллюстрирующая последовательности действий в примере системы коммуникации с POD согласно конкретному варианту предлагаемой технологии.
[0069] На фиг. 33 представлена блок-схема последовательности действий в примере способа с развязанными движениями в системе всенаправленного движения согласно конкретному варианту изобретения.
[0070] На фиг. 34 представлена блок-схема последовательности действий в примере способа со связанными движениями в системе всенаправленного движения согласно конкретному варианту изобретения.
[0071] На фиг. 35 приведена блок-схема последовательности действий в примере способа быстрой остановки согласно конкретному варианту изобретения.
[0072] На фиг. 36 представлен график, иллюстрирующий выходной сигнал от датчика в системе согласно конкретному варианту изобретения.
[0073] На фиг. 37 иллюстрируется пример расположения датчиков в системе всенаправленного движения согласно конкретному варианту изобретения.
[0074] На фиг. 38 проиллюстрирован, на виде сверху, пример выполнения первого и второго секторов системы всенаправленного движения согласно конкретному варианту изобретения.
[0075] На фиг. 39 и 40 приведены блок-схемы примеров способа детектирования движения вперед согласно конкретному варианту изобретения.
[0076] На фиг. 41 и 42 представлены блок-схемы примеров способа генерирования векторной скорости согласно конкретному варианту изобретения.
[0077] На фиг. 43 представлена блок-схема последовательности действий в примере способа интегрирования векторной скорости согласно конкретному варианту изобретения в систему, принадлежащую третьему лицу.
[00708] Фиг. 44 иллюстрирует пример алгоритма для определения векторной скорости согласно конкретному варианту изобретения.
[0079] На фиг. 45 приведена блок-схема последовательности действий в примере способа определения скорости согласно конкретному варианту изобретения.
[0080] Фиг. 46А, 46В и 46С иллюстрируют пример системы движения согласно конкретному варианту изобретения, пригодной для промышленных применений.
[0081] На фиг. 47 представлен, на виде в разрезе, пример системы с тормозным шкивом в системе движения согласно конкретному варианту изобретения.
[0082] На фиг. 48 представлен, на виде в разрезе, пример системы противовеса в системе движения согласно конкретному варианту изобретения.
[0083] На фиг. 49 представлен, на виде сверху, пример фрикционной системы в системе движения согласно конкретному варианту изобретения.
[0084] На фиг. 50 представлен, на виде сверху, пример тормозной системы в системе движения согласно конкретному варианту изобретения.
[0085] На фиг. 51 пример тормозной системы в системе движения согласно конкретному варианту изобретения представлен на виде сбоку.
[0086] На фиг. 52 иллюстрируется пример обвязки в комплекте MOLLE с системой PALS согласно конкретному варианту изобретения.
Осуществление изобретения
[0087] Далее будут рассмотрены различные примеры осуществления изобретения. При этом должно быть понятно, что конкретные варианты изобретения приводятся только в иллюстративных целях. Специалисту в соответствующей области будет очевидно, что, не выходя за пределы изобретения, можно использовать и другие компоненты и конфигурации. С другой стороны, хорошо известные способы, операции, компоненты, контуры и сети подробно не обсуждаются, чтобы не усложнять описание.
[0088] Должно быть также понятно, что, хотя термины "первый", "второй" и т.п.могут использоваться при описании различных элементов, эти элементы не будут ограничены данными терминами, которые используются только для того, чтобы отличать один элемент от другого. Например, без выхода за границы изобретения, первый датчик может затем именоваться вторым датчиком и, аналогично, второй датчик может именоваться первым датчиком.
[0089] Терминология, используемая при рассмотрении изобретения, предназначена только для описания его конкретных вариантов, не ограничивающих объем изобретения. Подразумевается, что элементы, упомянутые в описании и в прилагаемой формуле изобретения в единственном числе, могут иметься в количестве более одного, если это не противоречит контексту. Должно быть также понятно, что используемый союз "и/или" охватывает любую комбинацию и все возможные комбинации элементов, связанных этим союзом. Должно быть понятно, что термины "содержит" и "содержащий", когда они встречаются в данном описании, указывают на присутствие соответствующих признаков, чисел, операций, шагов, элементов и/или компонентов, но не исключают присутствия также одного или более других признаков, чисел, операций, шагов, элементов и/или компонентов и/или их групп.
[0090] Используемый в описании союз "если" может быть, в зависимости от контекста, синонимом союза "когда" или "при" или выражения "как отклик на определение" или "как отклик на детектирование". Аналогично, выражение "если определено, что" или "если детектировано [определенное условие или событие]" может интерпретироваться, в зависимости от контекста, как означающее: "в случае определения" или "как отклик на определение" или "при детектировании [определенного условия или события]" или "в качестве отклика на детектирование [определенного условия или события]".
[0091] Фиг. 1 иллюстрирует пример системы 100 полной обвязки для тела. Грудная обвязка 110 может быть сконфигурирована с помощью соединителей 115 для использования совместно с нижней обвязкой 120 с целью улучшения стабильности, равновесия и способности поддерживать вертикальное положение. В одном варианте нижняя обвязка 120 может использоваться без грудной обвязки 110. Грудная обвязка 110 может содержать наплечные ремни 113 и задний ремень 114, связанный с ремнями 113 посредством Y-образного соединителя 112. Наплечные ремни 113 могут иметь плечевые накладки 111, причем их можно удлинять и укорачивать с помощью регуляторов 116 длины. У нижней обвязки 120 может иметься поясной ремень 122 с регулирующей пряжкой 123, задняя прокладка 121А для улучшенной поддержки и регулируемые ножные петли 124. Нижняя обвязка 120 может дополнительно содержать опорную раму 127. Опорная рама 127 для восприятия массы пользователя может быть изготовлена из твердого пластика, металла, полимера, углеволокна, любой комбинации этих материалов или из любого другого подходящего материала. К опорной раме 127 могут крепиться съемные каретки 125 и вертикальный элемент 126.
[0092] Фиг. 2А и 2В иллюстрируют пример соединения каретки с нижней обвязкой 120. Скоба 129 может крепиться к нижней обвязке 120 с помощью задней прокладки 121А, боковой прокладки 121В, поясного ремня 122 или их комбинации. Соединительный стержень 128 крепится к скобе 129 с проходом через опорную раму 127, причем он может поддерживаться этой рамой. Этот стержень может быть сконфигурирован, как телескопический стержень, который можно удлинить, если нижняя обвязка 120 предназначена для небольшого пользователя, и укоротить, если она предназначена для крупного пользователя. Удлинение и укорачивание соединительного стержня 128 делает возможным прикрепление кареток 125 при любых размерах пользователя. В другом варианте соединительный стержень 128 и скоба 129 могут быть сконфигурированы с возможностью скольжения вперед и назад по поясному ремню 122 нижней обвязки 120, чтобы пользователи, имеющие меньшие или большие размеры, могли затягивать или делать более свободной нижнюю обвязку 120 при сохранении соединительным стержнем 128 положения, перпендикулярного торсу пользователя. В другом варианте соединительный стержень 128 может скользить по скобе 129. Еще в одном варианте скоба 129 может скользить по поясному ремню 122. Опорная рама 127 может поддерживать соединительный стержень 128, который связывает с этой рамой нижнюю обвязку 120, например, чтобы удерживать пользователя от падения. Комбинация соединительного стержня 128 и скобы 129 может поддерживаться опорной рамой 127. Боковые прокладки 121В могут обеспечить дополнительный комфорт и опору для пользователя в зоне прикрепления скобы 129.
[0093] На фиг. 2А, 2В и 3 иллюстрируется пример соединения каретки нижней обвязки 120 с кольцом 134. Каретки 125 и вертикальные элементы 126 могут быть разъемно прикреплены к опорной раме 127 посредством соединительных стержней 128. Каретки 125 и вертикальные элементы 126 могут быть выполнены из материала с низким коэффициентом трения, способного скользить по кольцу 134, внутри или под ним. Каретки 125 могут представлять собой верхние каретки 125А и нижние каретки 125В. В одном варианте могут использоваться только верхние каретки 125А, а в другом варианте - и верхние каретки 125А, и нижние каретки 125В. Верхние каретки 125А могут быть съемно прикреплены к соединительным стержням 128. Нижние каретки 125В могут быть съемно прикреплены к вертикальным элементам 126. В одном варианте нижние каретки 125В могут быть прикреплены со смещением вверх или вниз вдоль вертикальных элементов 126, что позволит соответственно ослабить или усилить взаимодействие между нижними каретками 125В и кольцом 134. Каретки 125 могут быть установлены подвижно и независимо, чтобы вращаться при движении пользователя, или выполнены статическими, т.е. не движущимися при движении пользователя. Поверхность кареток 125 может быть закруглена, чтобы минимизировать зону контакта между каретками 125 и кольцом 134. Закругленная форма каретки 125 может обеспечить ее плавное скольжение при контакте с кольцом. Кольцу 134 может быть придана, по существу, тороидальная форма, чтобы дополнительно минимизировать зону контакта с каретками 125.
[0094] Верхние каретки 125А могут быть сконфигурированы для установки на верхнюю сторону кольца 134, а нижние каретки 125В - для размещения ниже кольца 134. Наличие верхних и нижних кареток 125А, 125В может позволить пользователю двигаться в пределах 360° при обеспечении увеличенной стабильности и предотвращении падения пользователя (в любом направлении). В одном варианте верхние каретки 125А сконфигурированы (а нижние каретки 125В не сконфигурированы) для использования. В таком варианте пользователь может совершать прыжки. В другом варианте, в котором и верхние каретки 125А, и нижние каретки 125В сконфигурированы для использования, нижние каретки 125В могут содержать датчик (например датчик на эффекте Холла и датчик давления или ИИМ) для детектирования движения пользователя при прыжке. При этом верхние каретки 125А могут содержать датчик (например датчик на эффекте Холла, датчик давления или ИИМ) для детектирования движения пользователя при пригибании. В другом варианте вертикальные элементы 126, верхние каретки 125А, нижние каретки 125В или любой иной элемент или участок на нижней обвязке 120 могут содержать датчик (например датчик на эффекте Холла, датчик давления или ИИМ), сконфигурированный для определения ориентации нижней обвязки 120 (и ориентации торса пользователя). Еще в одном варианте один или более датчиков на эффекте Холла могут быть установлены внутри или снаружи кольца 134. В следующем варианте один или более датчиков на эффекте Холла могут быть помещены внутри или снаружи вертикальных элементов 126, верхних кареток 125А, нижних кареток 125В или нижней обвязки 120. Внутри или снаружи вертикальных элементов 126, верхних кареток 125А, нижних кареток 125В и нижней обвязки 120 можно разместить один или более магнитов для взаимодействия с датчиками на эффекте Холла, находящимися в кольце 134 или в нижней обвязке 120.
[0095] Фиг. 3 иллюстрирует пример соединения каретки в нижней обвязке 120 с кольцом 134. Верхние каретки 125А могут содержать крепежную часть 1252 для разъемного прикрепления к соединительному стержню 128. В одном варианте верхние каретки 125А могут устанавливаться в различных местах вдоль соединительного стержня 128 для обеспечения усиленного или ослабленного взаимодействия с кольцом 134, например ближе или дальше от основания соединительного стержня. В другом варианте верхняя каретка 125А может быть зафиксирована в определенном месте, чтобы предотвратить ее разворот вокруг соединительного стержня 128. У верхних кареток 125А могут иметься передний участок 1251 и задний участок 1253, причем передний участок 1251 сделан короче, чем задний участок 1253, чтобы обеспечить пользователю дополнительную стабильность. Более конкретно, увеличенная длина заднего участка 1253 может способствовать равновесию пользователя и предотвращению его падения назад. В одном варианте каретки 125А могут иметь выпуклую, вогнутую или плоскую поверхность или иметь любую иную форму, минимизирующую площадь контакта с верхней поверхностью кольца. В другом варианте, чтобы предотвратить избыточный шум, верхние каретки 125А могут иметь амортизирующий слой 1254, позволяющий демпфировать шум и ударное воздействие верхних кареток 125А. В этом варианте амортизирующий слой 1254 может содержать металлические пружины или любой другой материал, способный ослабить ударный шум. Еще в одном варианте, чтобы предотвратить избыточный шум, части верхних кареток 125А, контактирующие с кольцом 134, могут быть снабжены амортизирующей поверхностью, металлическими пружинами или любым иным материалом, снижающим ударный шум. В следующем варианте каретка может содержать ролики, облегчающие движения пользователя вперед и назад.
[0096] Нижние каретки 125В могут содержать крепежные части 1255 для разъемного прикрепления к вертикальному элементу 126. В одном варианте нижние каретки 125В могут иметь, по существу, ту же длину, что и верхние каретки 125А. В другом варианте нижние каретки 125В могут быть меньшего или большего размера, чем верхние каретки 125А. Ширина нижних кареток 125В может быть уменьшенной, чтобы не контактировать с опорными кронштейнами. Те части нижних кареток 125В, которые могут вступать в контакт с кольцом 134, могут быть закруглены, чтобы способствовать движениям пользователя и минимизировать контакт с кольцом 134. В другом варианте контактная часть нижних кареток 125В может быть выпуклой, вогнутой или плоской или иметь любую иную форму, минимизирующую площадь контакта с нижней стороной кольца 134 и в то же время максимизирующую желательную функциональность по предотвращению наклона. В процессе функционирования нижние каретки 125В могут удерживать пользователя от чрезмерного наклона и обеспечивать повышение его стабильности и безопасности, например, когда пользователь наклоняется вперед или назад. Более конкретно, в этом случае задняя или передняя нижняя каретка 125В соответственно контактирует с нижней стороной кольца 134, предотвращая дальнейший наклон, т.е. придавая пользователю большую стабильность и безопасность. Пространство между кольцом 134 и нижними каретками 125В может определять степень наклона, доступную для пользователя. Пространство между кольцом 134 и нижними каретками 125В можно изменять путем регулировки положения нижней каретки 125В на вертикальном элементе 126. В одном варианте нижние каретки 125В могут быть установлены на 6,3 мм ниже кольца 134, что придает пользователю дополнительную стабильность, позволяющую ему реализовать полный диапазон движений. Длина нижних кареток 125В также может определять уровень наклона пользователя вперед и назад. Например, меньшая длина нижних кареток 125В делает возможным больший наклон пользователя вперед и назад, тогда как увеличенная длина нижних кареток 125В делает возможным меньший наклон пользователя вперед и назад. Чтобы предотвратить избыточный шум, нижние каретки 125В могут иметь амортизирующий слой (не изображен), позволяющий демпфировать шум и ударное воздействие нижних кареток 125В. В этом варианте амортизирующий слой может содержать металлические пружины или любой другой материал, способный ослабить ударный шум. Еще в одном варианте, чтобы предотвратить избыточный шум, части нижних кареток 125В, контактирующие с кольцом 134, могут быть снабжены амортизирующей поверхностью, металлическими пружинами или любым иным материалом, снижающим ударный шум. В следующем варианте каретка может содержать ролики, облегчающие движения пользователя вперед и назад.
[0097] На фиг. 4 иллюстрируется система 130 всенаправленного движения. Кольцо 134 этой системы может быть снабжено одной или более рукоятками 131. Рукоятки 131 могут облегчить регулировку высоты кольца 134 путем удлинения или укорачивания кронштейнов 150. Кольцо 134 может также иметь рычаг 132 для открывания и закрывания дверцы 133, позволяющей войти в систему 130 всенаправленного движения. В одном варианте рычаг 132 может быть приподнимаемым за один конец. В другом варианте рычаг 132 может быть подпружиненным. Рычаг 132 может оставаться в верхнем положении, пока не будет переведен, для дополнительной безопасности, в положение запирания. Дверца 133 и рычаг 132 могут быть снабжены блокирующим штифтом (не изображен) как дополнительным средством предотвращения случайного открывания. Фиг. 5А и 5В иллюстрируют рычаг 132 с запорным механизмом 137 и дверцу 133 с петлей 136. Фиг. 6А, 6В и 6С иллюстрируют дверцу 133 в различных положениях: в закрытом, отпертом (частично открытом) и полностью открытом положениях соответственно.
[0098] Фиг. 7 иллюстрирует, на виде сверху, пример кольца 134 и взаимные положения рукояток 131, рычага 132, дверцы 133, петли 136 и кронштейнов 150. В одном варианте кронштейны 150 могут быть взаимно смещены. В другом варианте кронштейны 150 могут быть позиционированы на различных осях. Например, один кронштейн 150 может быть позиционирован на оси 148, а другой - на оси 149.
[0099] Фиг. 8 иллюстрирует пример прикрепления кольца 134. Кольцо 134 может иметь U-образные отводы 139, которые могут прикрепляться к кронштейнам 150 посредством быстрорассоединяемых средств, включая захват 140 и быстрорассоединяемую защелку 141. В одном варианте может быть использован механизм присоединения/отсоединения любого другого типа. В другом варианте кольцо 134 жестко прикреплено к кронштейну 150. На фиг. 9A-9D иллюстрируется быстрорассоединяемое средство на различных стадиях рассоединения. Фиг. 9А иллюстрирует захват 140 и быстрорассоединяемую защелку 141, сцепленные с кронштейнами 150. Фиг. 9 В иллюстрирует захват 140, отведенный от кронштейна 150. Фиг. 9С иллюстрирует захват 140, отведенный от кронштейнов 150, и защелку 141, частично отсоединенную от кронштейна. Фиг. 9D иллюстрирует захват 140 и защелку 141, полностью отсоединенные от кронштейнов 150, так что кольцо 134 может быть отделено от кронштейнов 150.
[0100] В одном варианте кольцо 134 может быть удалено и заменено кольцом другой формы или размера. Это позволяет производить настройку для пользователей с различными фигурами и ростом. В одном варианте кольцо 134 может иметь, по существу, тороидальную форму, чтобы обеспечить минимальный контакт с каретками 125. В другом варианте кольцу 134 может быть придана форма, близкая к тороидальной, причем его малое сечение может быть эллиптическим или иметь любую иную форму, минимизирующую контакт с каретками 125. В другом варианте кольцо 134 может быть заменено множеством колец различного периметра, чтобы обеспечить возможность подстройки под пользователей, имеющих различные размеры. В другом варианте кронштейны 150 могут быть выполнены съемными, чтобы позволить устанавливать кольца различных конструкций, рассчитанные на пользователей, имеющих любые размеры. В другом варианте удаление кольца 134 и кронштейнов 150 может облегчить передачу всенаправленного движения в системе.
[0101] На фиг. 10 иллюстрируется пример системы 190 кронштейнов для осуществления вертикального перемещения кольца 134. Кольцо 134 может содержать один или более отсоединяющих элементов 191 и быть прикрепленным к одному или более кронштейнам 150. Один или более кронштейнов 150 могут содержать один или более блокирующих механизмов 195 и один или более позиционирующих компонентов 194, присоединенных к одному или более отсоединяющим элементам 191 посредством одного или более кабелей 192. Позиционирующий компонент 194 может содержать отводимый блокирующий штифт 193. Данный штифт введен, когда отсоединяющий элемент 191 отсоединен, предотвращая вертикальное перемещение кольца 134, и отведен, когда отсоединяющий элемент 191 активирован, делая возможным вертикальное перемещение кольца 134. В одном варианте кронштейны 150 могут фиксироваться в нужном положении посредством отводимого блокирующего штифта 193, входящего в состав позиционирующего компонента 194, который может блокировать кронштейны 150 в заданном положении по вертикали. Кронштейны 150 могут передвигаться по вертикали вверх и вниз, когда позиционирующий (отводимый) штифт отведен. Пользователь может сделать возможным вертикальное перемещение путем активирования отсоединяющего элемента 191. При активировании отсоединяющего элемента 191 кабель 192 вытягивается вверх, воздействуя на блокирующий механизм 195. Это приводит к отведению штифта в позиционирующем механизме 194 и к деблокированию кронштейнов 150, делая возможным их вертикальное перемещение.
[0102] Фиг. 11 иллюстрирует пример системы 130 всенаправленного движения с кронштейнами 150, регулируемыми по высоте. Чтобы освободить защелки 152 кронштейнов, сделав возможной регулировку или снятие кронштейна 150 с основания 151, могут быть предусмотрены педали 153, которые могут быть присоединены к защелкам 152 кронштейна. В другом варианте, представленном на фиг. 14, педали 153 могут быть выполнены отдельно от защелок 152 кронштейна. С целью расцепления защелок 152 такие педали могут использовать для освобождения кронштейна механизм с внутренней пружиной. Кронштейны 150 могут иметь напечатанную на них маркировку 154 по высоте для облегчения регулировок. При использовании механизма автоблокировки, представленного на фиг. 18-20, кронштейны 150 могут быть полностью отделены от их основания 151. На фиг. 12А и 12В иллюстрируются кронштейны 150, которым придана большая и малая высоты соответственно.
[0103] На фиг. 13 представлен пример внутренней конструкции основания 151 и кронштейна 150, чтобы проиллюстрировать механизм для присоединения кронштейна. Круглая деталь 151а несет пружину (не изображена), которая может создавать противодействующее усилие, прикладываемое к внутренней поверхности кронштейна 150. Усилие, создаваемое пружиной, предотвращает падение кронштейна 150, когда его защелка 152 будет расцеплена с основанием 151 кронштейна. На фиг. 14 также иллюстрируется внутренняя конструкция основания 151 кронштейна, использующая внутренний пружинный механизм 151В. Когда педаль 153 отжата и кронштейны 150 освобождены, внутренний механизм 151В активируется, создавая направленное вверх усилие, чтобы противодействовать весу кронштейнов 150 и кольца 134. Данный механизм позволяет пользователю легко отрегулировать высоту кольца 134, не испытывая нагрузки, равной полному весу кронштейнов 150 и кольца 134.
[0104] На фиг. 15 представлен, в разрезе, пример защелки 152 кронштейна. Защелка 152 кронштейна может быть связана со шпильками 155А, пружинами 155В и скобами 155С. Шпильки 155А могут быть проведены по резьбе через скобы 155С, а пружины 155В могут охватывать шпильки 155А по диаметру, прилегая к каждой стороне скобы 155С. После освобождения защелки 152 кронштейна пружины 155В испытывают минимальное растяжение в процессе регулировки кронштейна 150 по вертикали. Когда защелка 152 кронштейна защелкнута, растяжение пружин 155В сохраняется, в результате чего регулировка кронштейна 150 по высоте блокируется. К защелке 152 кронштейна с помощью монтажной пластины 160 могут быть подсоединены страховочные штифты 158. Страховочные штифты 158 могут находиться в сопряженном положении, когда защелка 152 кронштейна защелкнута (сопряжена с основанием 151), и освобождаться при освобождении защелки 152 (отведении ее от основания 151). Страховочные штифты 158 могут совмещаться с отверстиями в кронштейне (см. фиг. 11), что обеспечивает прикрепление кронштейнов 150 к их основаниям 151. Страховочные штифты 158 облегчают фиксацию кронштейнов 150 на различных уровнях по высоте. К защелке 152 кронштейна с помощью монтажной пластины могут подводиться каучуковые прокладки 159. Эти прокладки могут быть поджаты, когда защелка 152 кронштейна защелкнута (сопряжена с основанием 151), и освобождены, когда защелка 152 освобождена (отведена от основания 151). Каучуковые прокладки 159 могут создавать трение между основанием 151 кронштейна и кронштейном 150, способствуя предотвращению смещения кронштейнов 150.
[0105] На фиг. 16 представлен, в продольном разрезе, пример кронштейна 150 с целью проиллюстрировать крючковый механизм регулировки. Основание 151 кронштейна может содержать один или более крючков 156, которые могут взаимодействовать с кронштейнами 150. Кронштейн 150 может быть снабжен одним или более отверстиями 157, служащими для взаимодействия с одним или более крючками 156. Крючки 156 и отверстия 157 для крючков могут обеспечить тактильную обратную связь для пользователя в процессе регулировки высоты кольца 134. Например, когда пользователь регулирует высоту кольца 134 путем воздействия на рукоятку 131, крючок 156 и отверстия 157 для крючков могут издавать хорошо слышный щелкающий звук и физическую вибрацию, уведомляющую пользователя о том, что кронштейн 150 установлен правильно.
[0106] Фиг. 17 иллюстрирует пример съемной панели 161 механизма автоблокировки основания 151 кронштейна. На фиг. 18, 19 и 20 показаны внутренние элементы примера основания 151 кронштейна, чтобы проиллюстрировать механизм автоблокировки на различных этапах срабатывания. На фиг. 18 кронштейн 150 показан до его полного введения в свое основание 151. Блокирующий штифт 164 может быть связан с пружинным механизмом 163 и рукояткой 162. Воздействуя на рукоятку 162 (вытягивая ее), можно сжать пружинный механизм 163, частично отведя штифт 164. Кронштейн 150 может быть снабжен скошенной нажимной кнопкой 165. Эта кнопка делает возможным введение кронштейна 150 в основание 151 кронштейна и предотвращает извлечение кронштейна 150 без задействования механизма автоблокировки. На фиг. 19 иллюстрируется кронштейн 150, установленный в основание, и задействованный механизм автоблокировки. На этом этапе взаимодействия кронштейн 150 не может быть извлечен из основания 151. На фиг. 20 иллюстрируется активирующая рукоятка 162, обеспечивающая сжатие пружинного механизма 163 с частичным выведением штифта 164, что позволяет извлечь кронштейн 150.
[0107] Фиг. 21 иллюстрирует пример системы всенаправленного движения, конкретно, платформы 170 и нижней платформы 171. Платформа 170 может быть выполнена из материала с низким коэффициентом трения, такого как полиэтилен высокой плотности, полиэтилен низкой плотности, поливинилхлорид или любой другой подходящий материал. При использования системы пользователь может носит обувь с варьируемым коэффициентом трения или применять покрышки для стоп или обуви. Нижняя платформа 171 может придать системе всенаправленного движения дополнительную стабильность. Как показано на фиг. 7, система всенаправленного движения может содержать два смещенных (децентрированных) кронштейна 150. Нижняя платформа 171 может обеспечивать дополнительную стабильность, создавая противовес децентрированным кронштейнам. Эта платформа может содержать текстурированную противоскользящую резиновую накладку 174, чтобы предотвратить проскальзывание/падение пользователя в случае ношения обуви, уменьшающей трение. На нижней платформе 171 может иметься также предупреждение, информирующее пользователя о необходимости снять обувь, чтобы предотвратить нежелательные происшествия при взаимодействии с системой всенаправленного движения изнутри или снаружи. Платформа 170 и нижняя платформа 171 могут также содержать светодиоды (СД) 177, чтобы информировать пользователя о различных состояниях системы всенаправленного движения. Например, зеленый СД может индицировать в процессе использования платформы полностью операционное состояние или включение датчиков, желтый СД может означать "пожалуйста, подождите" или "датчики не подключены", красный СД может означать "остановиться", "система не готова" или "датчики не подключены". Различные мигающие СД и их комбинации могут быть сконфигурированы и для уведомлений о других состояниях. Система всенаправленного движения может также содержать кнопку 175 "вкл/выкл". Нажатие на эту кнопку может обеспечивать подачу/отключение печатной платы (ПП) и СД, а также осуществление соединений или может обеспечивать отсоединение одного или более датчиков и компьютерной системы.
[0108] Фиг. 22 иллюстрирует пример внутренней конструкции платформы 170 и нижней платформы 171 системы всенаправленного движения. Платформа 170 делает возможной стабильное использование системы всенаправленного движения, содержащей два децентрированных кронштейна. Платформа 170 может содержать наружную раму 172А и две поперечные балки 340 для повышения стабильности. Платформа 170 может дополнительно содержать поддерживающие пластины 341 на каждом углу платформы 170. В одном варианте поперечные балки 340 и поддерживающие пластины 341 могут быть приварены к платформе. Поперечные балки 340 и поддерживающих пластины 341 могут быть изготовлены из металлов или сплавов, например из стали, или из любого другого материала, пригодного для стабилизации системы всенаправленного движения при ее использовании. Платформа 170 может иметь различные формы, например быть шестиугольной, восьмиугольной, квадратной или круглой. Нижняя платформа 171 может содержать наружную раму 172В и внутреннюю раму 173, которая может быть изготовлена из тяжелого материала, например из стали, чтобы уравновесить вес пользователя и децентрированных кронштейнов.
[0109] Фиг. 23 иллюстрирует пример панели для кабелей/ПП в составе системы всенаправленного движения. Панель 176 защищает кабели и ПП от наружных элементов. Вырезы 180а, 180b и 180с могут служить для вывода кабелей от ПП, проложенных вдоль обеих боковых сторон панели и под нижней платформой, и позволяют осуществить подсоединения кабелей с любой стороны системы всенаправленного движения, предотвращая возможные проблемы подведения кабелей, например предотвращая попадание провисших кабелей в зоны ходьбы, опасности спотыкания, случайные отключения или небезопасную разводку кабелей. На фиг. 24 представлен пример внутренней конструкции панели для кабелей/ПП в составе системы всенаправленного движения. Могут иметься один или более кабельных разъемов 178 для подключения кабелей компьютерной системы для соединения с ПП, кабелей питания, сетевых кабелей или кабелей любого другого типа. Зажимы 179 могут облегчить разводку кабелей за счет предотвращения смещения кабелей по задней стороне панели 176. Альтернативно, зажимы 179 могут быть заменены кабельными разъемами. В другом варианте в каждый кабельный разъем 178 может быть интегрирован зажим 179. Кабельные разъемы 178 и зажимы 179 могут использоваться также с кабелями, которые направляются под нижнюю платформу 171 через вырез 180с. В другом варианте в платформу 170 и нижнюю платформу 171 могут быть интегрированы кабель-каналы, чтобы кабели на противоположных сторонах панели могли быть спрятаны. ПП может быть расположена позади кабельных разъемов 178 и зажимов 179. ПП может быть съемной, чтобы обеспечить возможность обновления или запуска новых программ.
[0110] На фиг. 25 представлена блок-схема, иллюстрирующая пример системы 400 POD. В одном варианте система 400 POD может быть подключена к телу пользователя, аксессуарам или системе всенаправленного движения (например к ногам, стопам, рукам, голове, торсу, винтовке, мечу, веслу, ракетке, кольцу или обвязке), чтобы сделать возможной передачу компьютерной системе (например агрегатной плате) данных, относящихся к движениям пользователя. В одном варианте датчик 401 может содержать акселерометр 401А, гироскоп 401В и магнитометр 401С. Еще в одном варианте датчик 401 может содержать и один или более инерциальных измерительных модулей (ИИМ). Один или более датчиков 401 может преобразовывать в цифровую форму аналоговые сигналы для многоосевого компаса, акселерометра и гироскопа. Один или более датчиков 401 могут быть подключены к мультиконтроллерному блоку (МК) 402. В одном варианте для подсоединения датчика 401 к МК 402 используется шина I2C. В другом варианте для этой цели используется USB. МК 402 может обрабатывать данные, полученные от одного или более ИИМ 401, для выработки многоосевого решения, определяющего направление, местоположение, ориентацию и движения, а затем передавать данные через радиопередатчик 404 другой компьютерной системе. В одном варианте передатчик 404 является короткодистанционным беспроводным радиопередатчиком (например Bluetooth). В одном варианте передатчик 404 работает на частоте 2,4 ГГц. МК 402 может также содержать соединения с блоком 405 управления питанием (посредством транзисторно-транзисторной логики, ТТЛ), с электрически стираемой программируемой постоянной памятью (EEPROM) 406 (посредством шины I2C) и с универсальным асинхронным приемником/передатчиком (УАПП) 403 для отладки программ (посредством ТТЛ).
[0111] На фиг. 26 и 27 представлены блок-схемы примера систем 410 и 430 POD соответственно. Система 410 может содержать многоосевой акселерометр/гироскоп 411, датчик 412 магнитного поля на основе магнитного импеданса для детектирования многоосевых магнитных полей и память EEPROM 413, подключеннуюые к процессору/трансиверу 414. В одном варианте процессор и трансивер могут быть объединены. В другом варианте процессор и трансивер могут быть отдельными блоками. Процессор 414 может быть подключен к радиоинтерфейсу 415, ТТЛ-интерфейсу 416 и одному или более СД 417, служащим индикаторами управления питанием, передаваемых сигналов, статуса и ошибок. Процессор 414 может быть подключен к чипу 418 управления питанием, который может быть соединен с USB-интерфейсом 419, одним или более интерфейсами 420 батарей и одним или более СД 417 для индикации управления питанием, передаваемых сигналов, статуса и ошибок. Различные компоненты системы 410 POD могут быть соединены посредством шины I2C, радиосвязи, УАПП, входов/выходов общего назначения, USB, линии батарейного питания или микросхем управления питанием (PMIC). Например, акселерометр/гироскоп 411 может быть подключен к процессору 414 по шине I2C, процессор 414 может быть подключен к радиоинтерфейсу 415 посредством радиосвязи, а чип 418 управления питанием может быть подключен к интерфейсу 420 батареи посредством входа общего назначения. Система 430 POD, представленная на фиг. 27, может являться альтернативным вариантом системы 410 POD.
[0112] POD могут быть сконфигурированы для конкретного применения. Например, первый POD может быть предназначен для использования с левой ступней, второй POD - для использования с правой ступней, третий POD - для использования с торсом, четвертый POD - для использования с головой, пятый и шестой POD - для использования с левой и правой руками соответственно, седьмой POD - для использования с головой, а восьмой POD может быть предназначен для взаимодействия с аксессуаром, таким как винтовка или меч. При этом, в зависимости от конкретных потребностей пользователя компьютерной системой, может быть активировано большее или меньшее количество POD. Альтернативно, POD может быть сконфигурирован до начала его использования. Например, компьютерная система может попросить пользователя подвигать левой стопой, чтобы сконфигурировать связанный с ней POD. Аналогично, компьютерная система может попросить пользователя подвигать правой стопой, чтобы сконфигурировать связанный с ней POD. Подобная процедура может быть проведена компьютерной системой для каждого имеющегося POD.
[0113] На фиг. 28 иллюстрируется блок-схема примера агрегатной платы 440, которая может быть установлена в основание кронштейна за панелью для кабелей/ПП. Агрегатная плата может быть интегрирована с печатной платой или выполнена отдельно от нее. Агрегатная плата может быть сконфигурирована для приема данных от одного или более датчиков (например от одного или более POD), компилирования, обработки и передачи обработанных данных. В одном варианте обработанные данные могут передаваться компьютерному устройству (например серверу, мобильному устройству, игровой видеоконсоли), снабженному интерфейсом прикладного программирования (API) для преобразования обработанных данных. Передача может осуществляться с использованием USB-соединения, протокола Bluetooth или любого другого передающего средства.
[0114] Фиг. 29 иллюстрирует пример многослойной модели для системы 450 коммуникации с POD. Слой 1 455 может содержать один или более POD 455А. В одном варианте каждый POD 455А может содержать датчик. Каждый POD 445А может передавать выходные значения слою 2 460. В одном варианте слой 1 455 может осуществлять беспроводную передачу данных слою 2460, например посредством Bluetooth или радиосвязи на частоте 2,4 ГГц.
[0115] Слой 2 460 может содержать блок управления для приема выходных значений от POD 455А. В одном варианте блок управления - это агрегатная плата. Слой 2 460 может содержать также API 460А для преобразования принятых данных от всех POD 455А и различные библиотеки 460 В, например библиотеку фильтрации, библиотеку обработки и библиотеку движений, позволяющие преобразовать принятые данные от API 460А. В одном варианте API 460А может вызывать функции библиотеки, чтобы обеспечить преобразование данных, принятых от POD. Слой 2 460 может дополнительно содержать передающие и приемные компоненты 460С, например поддерживающие USB, Bluetooth (ВТ), беспроводную короткодистанционную радиосвязь на частоте 2,4 ГГц, Wi-Fi и/или Ethernet.
[0116] Слой 3 465 может содержать компьютерную систему, например персональный компьютер, планшет, телефон, игровую видеоконсоль или любое другое компьютерное устройство. Компьютерное устройство может запускать, вместе с API 465А, игру или приложение 465В. Игра или приложение 465В может быть компьютерной игрой, играми PlaySystem, ХВОХ или любой другой игрой или приложением. API 465А может принимать данные от слоя 2 460 и преобразовывать принятые данные в формат, понятный для игры или приложения 465В. После преобразования посредством API 465А движения пользователя, отслеживаемые POD 455А в системе всенаправленного движения, могут быть преобразованы в движения игры или приложения. В другом варианте движение пользователя, отслеживаемое POD 455А, может быть внешним для системы всенаправленного движения.
[0117] На фиг. 30 представлена схема, иллюстрирующая пример ИИМ 470, содержащего процессор, многоосевой акселерометр/гироскоп, магнитометр и USB-коннектор. Магнитометр может измерять направление движения относительно направления на северный магнитный полюс. Акселерометр может измерять ускорение и скорость в плоскостях X, Y и Z. Гироскоп может измерять ориентации по углам крена, тангажа и рыскания.
[0118] На фиг. 31 представлена блок-схема примера агрегатной платы 480, содержащей процессор, приемопередатчик Bluetooth, радиопередатчики для POD, зарядные устройства для POD, USB и блок управления питанием.
[0119] На фиг. 32 представлена блок-схема примера системы 490 коммуникации для POD. Эта система 490 может содержать шлем 491 виртуальной реальности, связанный с агрегатной платой 493 посредством короткодистанционной радиосвязи, например Bluetooth. Система 490 может содержать также шлем 492 виртуальной реальности, связанный с агрегатной платой 493 посредством USB или интерфейса для мультимедиа высокой четкости (HDMI) через компьютерную систему 494. В другом варианте шлем 492 виртуальной реальности связан с агрегатной платой без подключения сначала к компьютерной системе 494. При этом система 490 может дополнительно содержать один или более POD 495, связанных с агрегатной платой 493. В одном варианте соединение между POD 495 и агрегатной платой 493 является беспроводным, например в виде Bluetooth или радиосвязи на частоте 2,4 ГГц. Агрегатная плата 493 может принимать, компилировать и обрабатывать данные и передавать обработанные данные компьютерной системе. В других вариантах агрегатная плата может представлять собой один или более МК. В других вариантах система 490 коммуникации для POD может передавать и принимать данные, используя HDMI, USB, Bluetooth, короткодистанционную беспроводную радиосвязь, Wi-Fi, протокол Gazell или любое другое коммуникационное средство.
[0120] На фиг. 33 представлена блок-схема примера способа с полностью развязанными скоростью и направлением движения. Способ 510, проиллюстрированный на фиг. 33, приведен только в качестве примера, поскольку данный способ имеет много вариантов осуществления. Кроме того, хотя данный пример проиллюстрирован с определенным порядком операций (шагов), специалистам в данной области будет понятно, что проиллюстрированные шаги способа по фиг. 33 могут быть выполнены в любом порядке, позволяющем реализовать технические преимущества изобретения, а способ может включать меньшее или большее количество шагов, чем это представлено на фиг. 33.
[0121] Каждый блок, представленный на фиг. 33, соответствует одному или более процессам, способам или подпрограммам, осуществляемым согласно данному примеру. Шаги, проиллюстрированные на фиг. 33, могут быть реализованы по меньшей мере в системе, содержащей систему 130 всенаправленного движения, систему 400 POD и/или систему 490 коммуникации для POD. В примере данного способа могут иметься дополнительные шаги или быть исключены какие-то шаги. Каждый блок, представленный на фиг. 33, может быть реализован по меньшей мере системой, содержащей систему 130 всенаправленного движения, систему 400 POD и/или систему 490 коммуникации для POD. Альтернативно, в другом варианте, каждый блок, представленный на фиг. 33, может не требовать использования системы 130 всенаправленного движения.
[0122] Способ 510 может начинаться в блоке 511, в котором определяется темп шагов пользователя по данным об ускорении, принятым агрегатной платой от одного или более POD. В другом варианте агрегатной платой будут приняты данные от гироскопа (соответствующие угловой скорости). Темп шагов может равняться частоте шагов пользователя в течение заданного временного интервала. В одном варианте темп шагов может определяться путем мониторинга ускорения при движении ног пользователя в течение заданного временного интервала. В другом варианте данные об ускорении принимаются ПП, которая выполнена отдельно от агрегатора. Еще в одном варианте данные об ускорении будут приниматься, чтобы определять темп шагов, компьютерным устройством с обходом агрегатора или ПП. В другом варианте вместо темпа шагов может определяться изменение направления ступней пользователя в течение заданного временного интервала (угловая скорость). По завершении определения темпа шагов блоком 511 способ может перейти к блоку 512.
[0123] В блоке 512 найденный темп шагов пользователя используется для расчета скорости. Скорость рассчитывается путем поиска пика в ускорении, за которым следует высокочастотный шум, указывающий на ударную нагрузку со стороны ступни. Частота и уровень относительной энергии при каждом шаге ступни, определенные по длительности и пику ускорения, используются для расчета темпа шагов. В одном варианте скорость может быть средней скоростью. В другом варианте скорость может быть медианной скоростью. Еще в одном варианте скорость может быть угловой скоростью. В другом варианте скорость может быть рассчитана по данным, принятым от гироскопа (соответствующим изменению направления ступней пользователя в течение заданного временного интервала), например по угловой скорости. Скорость рассчитывается путем детектирования пика (амплитуды) угловой скорости (принятой в блоке 511). Значение пика умножается на масштабируемый фактор, причем для определения скорости в реальном мире может быть добавлено соответствующее смещение. После того как будет определен следующий пик в течение заданного временного интервала, скорость может быть пересчитана. По завершении определения скорости в блоке 512 способ может перейти к блоку 513.
[0124] В блоке 513 рассчитывается направление движения для одного или более ИИМ. Скорректированная ориентация преобразуется применительно к осям в реальном физическом мире, чтобы получить направление движения одного или более POD. В одном варианте ориентации одного или более POD могут быть усреднены, чтобы получить агрегированное (комбинированное) направление движения. В одном варианте один или более POD могут быть расположены на голове, торсе, ступнях, ногах, руках пользователя, на аксессуарах, кольце или обвязке. По завершении определения направления движения в блоке 513 способ может перейти к блоку 514.
[0125] В блоке 514 направление движения и скорость могут быть преобразованы в двумерные декартовы координаты (X, Y). Найденные координаты могут представлять значения для геймпада и/или джойстика. Например, скорость может соответствовать текущим или амплитудным значениям X и Y, а направление движения может быть преобразовано в значение угла (в градусах), отсчитываемого от направления на северный магнитный полюс Земли. По завершении преобразования направления движения и скорости в координаты в блоке 514 способ может перейти к блоку 515.
[0126] В блоке 515 координаты нормализуются в шкальный диапазон от минимума до максимума, заданный дескрипторами джойстика/геймпада в устройстве USB для взаимодействия с человеком (USB HID). Благодаря развязыванию управления и направления камеры, становятся возможными дополнительные движения, такие как ходьба назад и рывки влево и вправо. После того как координаты будут нормализованы, способ 510 может быть завершен.
[0127] Способ 510 может быть использован для развязывания движения вперед. Движение вперед может быть относительным движением в направлении Y относительно центра одного или более POD, генерирующим движение в направлении Y для геймпада/джойстика. Когда стопа пользователя находится в воздухе, может быть измерено ее ускорение в направлении движения стопы. Измеренная скорость в направлении вперед может быть затем преобразована в координаты "реального мира" относительно направления на северный магнитный полюс Земли. Все движения относительно блока POD, отличные от движения вперед по Y-оси POD, могут игнорироваться с целью исключить случайные или ложные движения в альтернативных направлениях, так что процесс идентификации движения будет ограничен только движениями вперед.
[0128] Способ 510 может быть использован также для развязывания движения назад. Движение назад может быть относительным движением в Y-направлении относительно центра одного или более POD с генерированием движения в направлении Y для геймпада/джойстика. Когда стопа пользователя находится в воздухе, может быть измерено ее ускорение в направлении, обратном направлению движения стопы. Измеренная скорость в направлении назад может быть затем преобразована в координаты "реального мира" относительно направления на северный магнитный полюс Земли. Все движения относительно блока POD, отличные от движения назад по Y-оси POD, могут игнорироваться с целью исключить случайные или ложные движения в альтернативных направлениях, так что процесс идентификации движения будет ограничен только движениями назад.
[0129] Способ 510 может быть использован, кроме того, для развязывания движения вбок (например рывков вбок). Движение вбок может быть относительным движением в Х-направлении относительно центра одного или более POD с генерированием движения в направлении X для геймпада/джойстика. Когда стопа пользователя находится в воздухе, может быть измерено ее ускорение в направлении, перпендикулярном направлению движения стопы. Измеренная боковая скорость может быть затем преобразована в координаты "реального мира" относительно направления на северный магнитный полюс Земли. Все движения относительно блока POD, отличные от движения по Х-оси POD, игнорируются с целью исключить случайные или ложные движения в альтернативных направлениях, так что процесс идентификации движения будет ограничен только движениями вбок.
[0130] На фиг. 34 представлена блок-схема примера способа со связанными движениями вперед, назад и от одной стороны к другой. Способ 520, проиллюстрированный на фиг. 34, приведен только в качестве примера, поскольку данный способ имеет много вариантов осуществления. Кроме того, хотя данный пример проиллюстрирован с определенным порядком шагов, специалистам в данной области будет понятно, что проиллюстрированные шаги способа по фиг. 34 могут быть выполнены в любом порядке, позволяющем реализовать технические преимущества изобретения, а способ может включать меньшее или большее количество шагов, чем это представлено на фиг. 34.
[0131] Каждый блок, представленный на фиг. 34, соответствует одному или более процессам, способам или подпрограммам, осуществляемым согласно данному примеру. Шаги, проиллюстрированные на фиг. 34, могут быть реализованы по меньшей мере в системе, содержащей систему 130 всенаправленного движения, систему 400 POD и/или систему 490 коммуникации для POD. В примере данного способа могут иметься дополнительные шаги или быть исключены какие-то шаги. Каждый блок, представленный на фиг. 34, может быть реализован по меньшей мере системой, содержащей систему 130 всенаправленного движения, систему 400 POD и/или систему 490 коммуникации для POD. Альтернативно, в другом варианте, каждый блок, представленный на фиг. 34, может не требовать использования системы 130 всенаправленного движения.
[0132] Способ 520 может начинаться в блоке 521, в котором данные об ускорении, принятые агрегатором от одного или более POD, используются, чтобы определять темп шагов пользователя. В другом варианте агрегатной платой будут приняты данные от гироскопа (соответствующие угловой скорости). Темп шагов может равняться частоте шагов пользователя в течение заданного временного интервала. В одном варианте темп шагов может определяться путем мониторинга ускорения при движении ног пользователя в течение заданного временного интервала. В другом варианте данные об ускорении принимаются ПП, которая выполнена отдельно от агрегатора. Еще в одном варианте данные об ускорении будут приниматься, чтобы определять темп шагов, компьютерным устройством с обходом агрегатора или ПП. В другом варианте вместо темпа шагов может определяться изменение направления ступней пользователя в течение заданного интервала (угловая скорость). По завершении определения темпа шагов блоком 521, способ может перейти к блоку 522.
[0133] В блоке 522 найденный темп шагов пользователя используется для расчета скорости. Скорость рассчитывается путем поиска пика в ускорении, за которым следует высокочастотный шум, указывающий на ударную нагрузку со стороны ступни. Частота и уровень относительной энергии при каждом шаге ступни, определенные по длительности и пику ускорения, используются для расчета темпа шагов. В одном варианте скорость может быть средней скоростью. В другом варианте скорость может быть медианной скоростью. Еще в одном варианте скорость может быть угловой скоростью. В другом варианте скорость может быть рассчитана по данным, принятым от гироскопа (соответствующим изменению направления ступней пользователя в течение заданного временного интервала), например по угловой скорости. Скорость рассчитывается путем детектирования пика (амплитуды) угловой скорости (принятой в блоке 521). Значение пика умножается на масштабируемый фактор, причем для определения скорости в реальном мире может быть добавлено соответствующее смещение. После того как будет определен следующий пик в течение заданного временного интервала, скорость может быть пересчитана. По завершении определения скорости в блоке 522 способ может перейти к блоку 523.
[0134] В блоке 523 рассчитываются направления движения для одного или более POD. Ориентация одного или более POD преобразуется применительно к осям тела для одного или более POD, чтобы определять намеченное направление движения. В одном варианте ориентации одного или более POD могут быть усреднены, чтобы получить агрегированное (комбинированное) направление движения. Согласно варианту один или более POD могут быть расположены на голове, торсе, ступнях, ногах, руках пользователя, на аксессуарах, кольце или обвязке. В этом варианте координаты "реального мира" не рассчитываются и не используются для получения направления движения. Затем относительные самоориентации для одного или более POD усредняются, чтобы определить направление движения. По завершении определения направления движения в блоке 523 способ может перейти к блоку 524.
[0135] В блоке 524 направление движения и скорость могут быть преобразованы в двумерные декартовы координаты (по осям X, Y). Преобразованные координаты могут представлять значения для геймпада и/или джойстика. Например, скорость может соответствовать значениям X и Y, а направление движения (ориентация) преобразуется в градусы (с угловым шагом 90°), отсчитываемые от направления вперед (т.е. относительно Y-оси POD). По завершении преобразования направления движения и скорости в координаты в блоке 524 способ может перейти к блоку 525.
[0136] В блоке 525 координаты нормализуются в шкальный диапазон от минимума до максимума, заданный дескрипторами джойстика/геймпада в устройстве USB HID. После того как координаты будут нормализованы, способ 520 может быть завершен.
[0137] Способ 520 может быть использован применительно к связанным движениям вперед и назад. Движения вперед и назад могут быть относительными движениями в направлении Y относительно центра POD, генерирующими движение в направлении Y для геймпада/джойстика. Когда стопа пользователя находится в воздухе, может быть измерено ее ускорение в направлении позиции камеры для движения вперед и в противоположном направлении, соответствующем позиции камеры для движения назад. Все другие оси, относящиеся к POD, могут игнорироваться с целью исключить случайные или ложные движения в альтернативных направлениях, так что процесс идентификации движения будет ограничен только движениями вперед и назад.
[0138] Способ 520 может быть использован, кроме того, для связанных движений вбок (например связанных рывков вбок). Движения вбок могут быть относительными движениями в Х-направлении относительно центра POD с генерированием движения в направлении X для геймпада/джойстика. Когда стопа пользователя находится в воздухе, может быть измерено ее ускорение в направлении, перпендикулярном направлению позиции камеры. Все другие оси, относящиеся к POD, могут игнорироваться с целью исключить случайные или ложные движения в альтернативных направлениях, так что процесс идентификации движения будет ограничен только движениями вбок.
[0139] При определении движения пользователя системой всенаправленного движения желательно сократить время, требуемое для детектирования того, что на платформе всенаправленного движения началась ходьба. Задержка в таком детектировании может восприниматься как разрыв во времени между движениями пользователя на платформе и аватара пользователя в виртуальной среде. Чтобы улучшить показатели детектирования для начальной операции, предусмотрен дополнительный слой в варианте, в котором возникновение ускорения, превышающего минимальный (пороговый) уровень в направлении вперед по оси Y (относительно координат POD), действует, как триггер, т.е. генерирует движение пользователя в координатах геймпада/джойстика (относительно направления на Северный полюс в "реальном мире"). Этот триггер может действовать в течение временных интервалов, пока библиотека движений не завершила расчет уровней ускорения и скорости. Чтобы облегчить переход от запускающего движения на "первом шаге" к полной библиотеке движений, например, включающей ходьбу вперед, ходьбу назад, бег, припадание к земле, рывок, продвижение ползком, прыжки или любые дополнительные детектируемые жесты в системе всенаправленного движения, может использоваться относительный уровень энергии ускорения. Триггеру придано независимое от скорости запаздывание, чтобы ослабить эффект дрожания в движениях пользователя, приводящий к шуму в данных от акселерометра.
[0140] Уменьшение запаздывания между прекращением движения и его детектированием обеспечивается в варианте, в котором возникновение ускорения, которое ниже максимального уровня во всех связанных направлениях (относительно координат POD), приводит к прекращению движения пользователя. Этот триггер может действовать в течение временных интервалов, в которые библиотека движений идентифицировала намечаемые движения пользователя. Триггеру придано независимое от скорости запаздывание, чтобы ослабить эффект дрожания в движениях пользователя, приводящий к шуму в данных от акселерометра.
[0141] На фиг. 35 представлена блок-схема примера способа детектирования быстрой остановки движения пользователя. Способ 530, проиллюстрированный на фиг. 35, приведен только в качестве примера, поскольку данный способ имеет много вариантов осуществления. Кроме того, хотя данный пример проиллюстрирован с определенным порядком шагов, специалистам в данной области будет понятно, что проиллюстрированные шаги способа по фиг. 35 могут быть выполнены в любом порядке, позволяющем реализовать технические преимущества изобретения, а способ может включать меньшее или большее количество шагов, чем это представлено на фиг. 35.
[0142] Каждый блок, представленный на фиг. 35, соответствует одному или более процессам, способам или подпрограммам, осуществляемым согласно данному примеру. Шаги, проиллюстрированные на фиг. 35, могут быть реализованы по меньшей мере в системе, содержащей систему 130 всенаправленного движения, систему 400 POD и/или систему 490 коммуникации для POD. В примере данного способа могут иметься дополнительные шаги или быть исключены какие-то шаги. Каждый блок, представленный на фиг. 35, может быть реализован по меньшей мере системой, содержащей систему 130 всенаправленного движения, систему 400 POD и/или систему 490 коммуникации для POD. Альтернативно, в другом варианте, каждый блок, представленный на фиг. 35, может не требовать использования системы 130 всенаправленного движения.
[0143] Способ 530 может начинаться в блоке 531, в котором может осуществлять прием, от одного или более POD, исходных (необработанных) данных от гироскопа. В одном варианте этими необработанными данными может быть угловая скорость. Эта скорость может использоваться, чтобы определять по изменению углового положения ноги пользователя, движется ли он вперед или назад, например идет или бежит вперед/назад. Согласно одному варианту в случае ненулевой угловой скорости пользователь может быть движущимся. В другом варианте угловая скорость может быть определена из данных, принятых в течение заданного временного интервала от одного или более POD. Еще в одном варианте принятыми данными могут быть данные об ускорении, используемые для вычисления скорости. Если в блоке 531 определено, что пользователь движется, способ может перейти к блоку 532.
[0144] В блоке 532 способ может нормализовать или сглаживать данные посредством применения фильтра. В одном варианте необработанные данные от гироскопа могут быть пропущены через быстрый заграждающий фильтр. Более конкретно, принятые необработанные данные от гироскопа могут быть пропущены через фильтр экспоненциально скользящего среднего (ЕМА-фильтр), после чего сглаженные (профильтрованные) значения могут быть сопоставлены с предыдущими сглаженными значениями, чтобы получить сглаженную разность, а по ней - график сглаженных данных от гироскопа. В другом варианте необработанные данные от гироскопа могут быть пропущены через фильтр аналоговой скорости. Применительно к фильтру угловой скорости необработанные данные от гироскопа, соответствующие значениям по оси X для POD обеих стоп, могут быть пропущены через ЕМА-фильтр, чтобы рассчитать абсолютное значение данных от каждого гироскопа. Профильтрованные значения могут быть суммированы, масштабированы, а затем дополнительно смещены. В одном варианте смещение может быть масштабировано так, чтобы в результате значение попадало в интервал допустимых значений выходных сигналов джойстика. Затем полученное значение может быть пропущено через ЕМА-фильтр. ЕМА-фильтр может быть вышеупомянутым или новым ЕМА-фильтром. В результате будет получен сглаженный выходной сигнал, приблизительно эквивалентный скорости, например скорости ходьбы. Пример графика сглаженных данных от гироскопа можно видеть на фиг. 36. По завершении фильтрации способ может перейти к блоку 533.
[0145] В блоке 533 способ может определять, находятся ли данные от гироскопа, сглаженные в блоке 532, в пределах заданного порогового уровня. В одном варианте сглаженными данными от гироскопа может быть угловая скорость (число оборотов в секунду) в направлении движения. Например, угловая скорость может быть определена с помощью гироскопа, ось которого перпендикулярна к направлению движения. Заданный пороговый уровень может быть использован, чтобы определять, когда движение пользователя замедляется. В одном варианте заданный пороговый уровень может составлять 0,33°/с. Мониторинг угловой скорости может осуществляться с заданным интервалом, например равным 1 мс, 5 мс, 10 мс, 15 мс или 20 мс. Если угловая скорость POD 501 и POD 502 падает до заданного порогового уровня 503 (см. фиг. 36), движение пользователя может быть замедляющимся. В одном варианте, чтобы предотвратить ложное детектирование остановки, заданный пороговый уровень может определяться динамически, основываясь на скорости движения пользователя. Например, если скорость рассчитывают применительно к низкой скорости (при ходьбе или передвижении ползком), заданный пороговый уровень может представлять собой более узкое окно, что уменьшит значения триггерных точек. Если же скорость в направлении вперед рассчитывают для высокой скорости (бега), заданный пороговый уровень может соответствовать более широкому окну, дающему увеличенные значения триггерных точек. В другом варианте, чтобы предотвратить ложную остановку, может быть дополнительно введено затухание, когда угловая скорость падает до заданного порогового уровня. Такое затухание может ослабить любой эффект дрожания. Затухание является экспоненциальным; оно рассчитывается математически так, чтобы обеспечить плавный переход к нулевому уровню. После того как сглаженные данные от гироскопа упадут ниже заданного уровня, способ может перейти к блоку 534.
2
[0146] В блоке 534 способ может определять, когда наклон сглаженных данных от гироскопа был близок к нулю в течение заданного временного интервала, например равного 1 мс, 5 мс, 10 мс, 15 мс или 20 мс. Если наклон угловой скорости продолжает приближаться к нулю, может быть детектировано прекращение движения (остановка). В одном варианте остановка может быть детектирована, если наклон меньше чем 0,01°/с. Альтернативно, если в течение этого же интервала наклон не будет оставаться близким к нулю, остановка детектирована быть не может. В одном варианте могут анализироваться изменения наклона (в течение заданного временного интервала), чтобы выявить пик. При этом скорость может быть установлена равной значению в каждом пике до тех пор, пока не будет выявлен следующий пик, значение в котором может быть принято в качестве скорости. В другом варианте, когда наклон графика угловой скорости оказывается в заданном окне, соответствующем минимуму, показание счетчика увеличивается на 1. Когда это показание достигнет 7, скорость принимается равной нулю. По истечении заданного интервала способ может перейти к блоку 535 (если наклон был близок к нулю в течение этого интервала) или вернуться к блоку 531 (если наклон в течение этого интервала не был близок к нулю).
[0147] В блоке 535 способ может детектировать быструю остановку. Например, быстрая остановка детектируется, если сглаженные данные от гироскопа находятся в пределах порогового уровня и если наклон этих данных был близок к нулю в течение заданного временного интервала. После детектирования быстрой остановки способ 530 может завершиться.
[0148] На фиг. 37 иллюстрируется расположение комплекта 600 датчиков 615 на платформе 170. Платформа может быть снабжена одним или более датчиками для отслеживания движений одной или более стоп. В одном варианте датчики 615 могут являться датчиками близости, например емкостными датчиками, использующими в качестве входного сигнала электрическую емкость каждой стопы пользователя. Емкостной датчик может быть активирован, когда над ним перемещается одна или обе стопы. В другом варианте датчики 615 могут быть магнитными, оптическими, спиральными датчиками, ИИМ датчиками, POD или любыми иными датчиками, обеспечивающими высокую точность данных. Платформа 170 может содержать, для поддержки пользователя, обвязку (не изображена) и кольцо типа показанного на фиг. 3 и 4 (не изображено). Обвязка может содержать один или более датчиков для определения ориентации пользователя, например ориентации его торса. Кольцо также может содержать один или более датчиков для определения ориентации пользователя, например ориентации его торса. В другом варианте один или более датчиков может быть введен в обувь пользователя, например, чтобы различать левую и правую стопы и переднюю и заднюю части стопы (носок и пятку).
[0149] Платформа 170 может быть разделена на две или более концентричные части. Например, как показано на фиг. 37, у платформы 170 могут иметься три концентричных кольца 610, 611, 612 и внутренний круг 609, по которым могут быть распределены датчики 615, имеющиеся на платформе 170. В других вариантах платформа 170 может быть разделена на два или более правильных многоугольников. Еще в одном варианте платформа 170 может быть разделена на центральный участок и примыкающие к нему трапецеидальные участки. В других вариантах платформа 170 может быть разбита на ориентированную по осям X, Y сетку квадратных участков. Платформа 170 может быть дополнительно разделена на два или более секторов. Например, как показано на фиг. 37, платформа 170 может быть разделена на 8 секторов 601-608. В каждом концентричном участке и в каждом секторе может находиться один или более датчиков 615. Например, датчик 615А может находиться одновременно во внутреннем круге 609 и в секторе 601. Датчики 615В могут находиться в концентричном участке (кольце) 611 и в секторе 601. В другом варианте общая зона внутреннего круга 609 и сектора 601 может содержать два или более датчиков. Еще в одном варианте каждая общая зона одного из концентричных участков и секторов может содержать два или более датчиков.
[0150] Датчики 615 могут иметь эквивалентные или не совпадающие размеры. Так, датчики 615, расположенные вблизи центра платформы 170, могут иметь меньшие размеры, причем размеры датчиков 615 могут увеличиваться по мере их удаленности от центра платформы 170. В другом варианте все датчики могут иметь эквивалентные размеры, например диаметр, равный 38,1, 63,5, 88,9, 114 или 140 мм, или любой другой диаметр.
[0151] Фиг. 38 иллюстрирует пример выполнения двух секторов в составе системы всенаправленного движения. Датчики 615 могут быть связаны с одной или более печатными платами (ПП) 620. Например, датчики 615, находящиеся в каждом секторе платформы, могут быть электронно связаны с ПП 620, находящейся в одном с ними секторе. В другом варианте датчики всех секторов могут быть связаны с централизованной ПП. Датчики 615 могут быть связаны с ПП 620 посредством коаксиального кабеля. В другом варианте датчики 615 могут быть связаны с ПП 620 посредством короткодистанционной беспроводной радиосвязи, например посредством Bluetooth. ПП, имеющаяся в каждом секторе, может быть электронно связана посредством цифровой линии связи с ПП в смежных секторах, например в конфигурации последовательной цепочки или кольца. Так, ПП 620, находящаяся в секторе 601, может быть связана с ПП 620, которая находится в секторе 602, и может быть связана с ПП 620, находящейся в секторе 603. В одном варианте сектор 601 может содержать микроконтроллер (МК) 625, способный работать с шиной USB. В другом варианте сектор 601 может содержать центральный процессорный блок, совместимый с USB. МК 625 может обеспечивать питание ПП 620 в секторе 601 и ПП 620 в секторе 602 по линиям 621. ПП 620 в секторе 602 может обеспечивать питание ПП 620 в секторе 603 через соединение 624, которое может обеспечивать питание ПП в соседнем секторе согласно конфигурации последовательной цепочки, и т.д., вплоть до последней ПП. МК 625 может также обеспечивать последовательную шину для ПП 620 в секторе 602 через соединение 622, например через шину I2C, посредством универсального асинхронного приемника/передатчика (УАПП), шины последовательного периферийного интерфейса (шины SPI), шины локальной коммутационной сети (LIN-шины), шины сети пространства датчиков (CAN-шины) или любой другой последовательной шины. В другом варианте последовательная коммуникационная шина может быть создана посредством локального беспроводного устройства связи, имеющегося в каждом секторе, которое интегрировано в МК или является независимым. ПП 620 в секторе 602 может обеспечить последовательную шину для ПП 620 в секторе 603 через соединение 623, которое может аналогично обеспечивать ПП в соседнем секторе согласно конфигурации последовательной цепочки, вплоть до последней ПП. В другом варианте ПП 620 в секторах 601-608 могут быть электронно связаны с централизованной ПП, например согласно конфигурации звезды. В другом варианте электронная связь может обеспечиваться посредством короткодистанционной беспроводной коммуникации. МК 625 может передавать данные компьютерной системе 635 и принимать данные от нее. Система 635 может быть, например, сервером, игровой системой, мобильным устройством или эквивалентной компьютерной системой. В другом варианте МК 625 может осуществлять мониторинг активности датчиков, непрерывно опрашивая ПП 620 в секторах 601-608 по шинам, подключенным проводным или беспроводным образом. В одном варианте ПП 620 в секторах 601-608 могут уведомлять МК 625 об активности датчика посредством аппаратурного прерывания, например посредством электронного предупреждающего сигнала, указывающего на событие, требующее немедленного внимания. Сектор 601 может также содержать отладочный комплект 630, подключенный к компьютерной системе 635.
[0152] Сектор 602 может содержать один или более датчиков 615 и ПП 620. Сектора 603-608 могут быть, по существу, схожими с сектором 602. Сектор 602 может быть в одной последовательной цепочке с секторами 601 и 603, причем к нему могут быть подведены шина питания и последовательная шина из сектора 601. В свою очередь, сектор 602 может обеспечивать шину питания и последовательную шину для сектора 603. Эта схема может повторяться вплоть до обеспечения сектора 608 шиной питания и последовательной шиной из сектора 607. Повторение этой схемы для большего или меньшего количества секторов зависит от их общего количества в составе платформы 170. Секторы 602-608 могут содержать резервный МК 625 и резервный отладочный комплект 630.
[0153] На фиг. 39 и 40 представлены блок-схемы, иллюстрирующие примеры способов 700 и 750 детектирования движения пользователя вперед, которое может быть варьируемым. Способы 700 и 750 рассматриваются только в качестве примеров, поскольку имеют много вариантов их осуществления. Кроме того, хотя данные примеры проиллюстрированы с определенным порядком шагов, специалистам в данной области будет понятно, что проиллюстрированные шаги способов по фиг. 39, 40 могут быть выполнены в любом порядке, позволяющем реализовать технические преимущества изобретения, и могут включать меньшее или большее количество шагов, чем это представлено на фиг. 39, 40
[0154] Каждый блок, представленный на фиг. 39 и 40, соответствует одному или более процессам, способам или подпрограммам, осуществляемым согласно рассматриваемым примерам. Шаги, проиллюстрированные на фиг. 39, 40, могут быть реализованы по меньшей мере в системе, содержащей платформу 170, причем они могут осуществляться по меньшей мере самой платформой 170. Кольца, упоминаемые на фиг. 39 и 40, соответствуют примеру с тремя концентричными кольцами для размещения датчиков в составе платформы 170. В зависимости от предусмотренного расположения датчиков количество колец может быть больше или меньше указанного, так что способы 700 и 750 могут иметь большее или меньшее количество ветвей, совпадающее с количеством колец в составе платформы 170. В другом варианте датчики могут находиться на пользователе или аксессуарах.
[0155] Способ 700 может начинаться в блоке 701, в котором один или более датчиков могут быть переведены из состояния "вкл" в состояние "выкл" или наоборот, когда сигнал датчика превысит пороговый уровень. В одном варианте сигнал датчика может соответствовать емкости или оптическому параметру. Пороговый уровень может также выполнять функцию байпасного фильтра для емкостей датчиков. Каждый датчик может иметь независимое значение порогового уровня. Значение порогового уровня может быть регулируемым, причем оно может регулироваться в зависимости от различных переменных, например от положений датчиков в платформе 170, количества датчиков в платформе 170, размеров датчиков и размеров компонента, активирующего и деактивирующего датчики, например стопы пользователя. В одном варианте значение порогового уровня, определяющее состояние ("вкл" или "выкл"), в котором будет находиться датчик, будет задавать вектор направления, приближенно соответствующий 22°. В другом варианте значение порогового уровня служит байпасным фильтром, так что при расчете векторов скорости (т.е. вектора направления и векторной скорости) в пределах примерно 2-3° используются только емкости выше порогового уровня.
[0156] В блоке 702 может производиться запоминание данных от датчиков. Данные от датчиков могут соответствовать значениям в точке скана данных от всех датчиков. Данные от датчиков могут включать (не ограничиваясь ими) значения емкости, операционные состояния ("вкл" или "выкл"), определенные моменты во времени, такие как отметка времени для последнего события включения или отключения. Сохраненные значения от датчиков могут быть использованы компьютерной системой 635, чтобы рассчитать движения каждой стопы пользователя, а также (дополнительно) для расчета предыдущих движений пользователя, чтобы облегчить распознавание его действий, например бега, ходьбы, ходьбы назад, прыжка, прыжка вперед, рывка и передвижения ползком.
[0157] В блоках 711-712 может быть изменено с "выкл" на "вкл" или с "вкл" на "выкл" состояние одного или более датчиков в наружном кольце. Датчик в наружном кольце может быть активирован, т.е. переведен в состояние "вкл", если считанное с него значение больше или равно значению порогового уровня, например, когда одна или обе ноги пользователя перемещаются над этим датчиком. Датчик в наружном кольце может быть деактивирован, т.е. переведен в состояние "выкл", если считанное с него значение меньше, чем значение порогового уровня, например, когда одна или обе ноги пользователя удаляются от этого датчика. В блоке 713 способ 700 может сгенерировать "W", соответствующее движению вперед в игре, после чего данный способ может завершиться.
[0158] В блоках 721-722 может быть изменено с "выкл" на "вкл" или с "вкл" на "выкл" состояние одного или более датчиков, расположенных в среднем (промежуточном) кольце. Датчик в промежуточном кольце может быть активирован, т.е. переведен в состояние "вкл", если считанное с него значение больше или равно значению порогового уровня, например, когда одна или обе ноги пользователя перемещаются над этим датчиком. Датчик в промежуточном кольце может быть деактивирован, т.е. переведен в состояние "выкл", если считанное с него значение меньше, чем значение порогового уровня, например, когда одна или обе ноги пользователя удаляются от этого датчика.
[0159] В блоке 723 компьютерная система может проверить скан точек во времени для всех датчиков, расположенных в одном или более смежных внутренних кольцах платформы 170. В блоке 724, если один или более датчиков были активированы в одном или более из смежных внутренних колец того же сектора, что и датчик в промежуточном кольце, способ 700 может сгенерировать "W", соответствующее движению вперед в игре, после чего данный способ может завершиться.
[0160] В блоках 731-732 может быть изменено с "выкл" на "вкл" или с "вкл" на "выкл" состояние одного или более датчиков, расположенных во внутреннем кольце. Датчик во внутреннем кольце может быть активирован, т.е. переведен в состояние "вкл", если считанное с него значение больше или равно значению порогового уровня, например, когда одна или обе ноги пользователя перемещаются над этим датчиком. Датчик во внутреннем кольце может быть деактивирован, т.е. переведен в состояние "выкл", если считанное с него значение меньше, чем значение порогового уровня, например, когда одна или обе ноги пользователя удаляются от этого датчика.
[0161] В блоках 733 компьютерная система может проверить скан точек во времени по всем датчикам, расположенным в одном или более смежных промежуточных кольцах платформы 170. В блоке 734, если один или более датчиков были активированы в одном или более из смежных промежуточных колец того же сектора, что и датчик во внутреннем кольце, способ 700 может сгенерировать "W", соответствующее движению вперед в игре, после чего данный способ может завершиться.
[0162] Способ 750 может начинаться в блоке 751, в котором один или более датчиков могут быть переведены из состояния "выкл" в состояние "вкл" или наоборот, когда сигнал датчика превысит пороговый уровень. В одном варианте сигнал датчика может соответствовать емкости или оптическому параметру. Каждый датчик имеет независимое значение порогового уровня. Значение порогового уровня является регулируемым, причем оно может регулироваться в зависимости от различных переменных, например от положений датчиков в платформе 170, количества датчиков в платформе 170, размеров датчиков и размеров компонента, активирующего и деактивирующего датчики, например стопы пользователя. В одном варианте значение порогового уровня, определяющее состояние ("вкл" или "выкл"), в котором будет находиться датчик, будет задавать вектор направления, приближенно соответствующий 22°. В другом варианте значение порогового уровня служит байпасным фильтром, так что при расчете векторов скорости в пределах примерно 2-3° используются только емкости выше порогового уровня.
[0163] В блоке 761 может быть изменено с "выкл" на "вкл" или с "вкл" на "выкл" состояние одного или более датчиков в наружном кольце. Датчик в наружном кольце может быть активирован, т.е. переведен в состояние "вкл", если считанное с него значение больше или равно значению порогового уровня, например, когда одна или обе ноги пользователя перемещаются над этим датчиком. В блоке 762 способ 750 может сгенерировать "W", соответствующее движению вперед в игре, после чего данный способ может завершиться.
[0164] В блоках 771 может быть изменено с "выкл" на "вкл" состояние одного или более датчиков, расположенных в промежуточном кольце. Датчик в промежуточном кольце может быть активирован, т.е. переведен в состояние "вкл", если считанное с него значение больше или равно значению порогового уровня, например, когда одна или обе ноги пользователя перемещаются над этим датчиком. В блоке 772 способа 750 может производиться запоминание данных от датчиков. Данные от датчиков могут включать скан значений от одного или более датчиков, соответствующих точкам во времени. Данные от датчиков могут включать (не ограничиваясь ими) значения емкости, операционные состояния ("вкл" или "выкл"), определенные моменты во времени, такие как отметка времени для последнего события включения или отключения. Сохраненные значения от датчиков могут быть использованы компьютерной системой 635, чтобы рассчитать движения каждой стопы пользователя, а также (дополнительно) для расчета предыдущих движений пользователя, чтобы облегчить распознавание его действий, например бега, ходьбы, ходьбы назад, прыжка, прыжка вперед, рывка и передвижения ползком.
[0165] В блоках 781 может быть изменено с "выкл" на "вкл" состояние одного или более датчиков, расположенных во внутреннем кольце. Датчик во внутреннем кольце может быть активирован, т.е. переведен в состояние "вкл", если считанное с него значение больше или равно значению порогового уровня, например, когда одна или обе ноги пользователя перемещаются над этим датчиком. В блоках 782 компьютерная система может проверить скан точек во времени по всем датчикам, расположенным в одном или более смежных промежуточных кольцах платформы 170. В блоке 783, если один или более датчиков были активированы в одном или более из смежных промежуточных колец того же сектора, что и датчик во внутреннем кольце, способ 750 может сгенерировать "W", соответствующее движению вперед в игре, после чего данный способ может завершиться.
[0166] На фиг. 41 и 42 представлены блок-схемы, иллюстрирующие примеры способов 800 и 850 генерирования векторной скорости, характеризующей направление и скорость шага пользователя. Способы 800 и 850, проиллюстрированные на фиг. 41 и 42, рассматриваются только в качестве примеров, поскольку имеют много вариантов их осуществления. Кроме того, хотя данные примеры проиллюстрированы с определенным порядком шагов, специалистам в данной области будет понятно, что проиллюстрированные шаги способов по фиг. 41, 42 могут быть выполнены в любом порядке, позволяющем реализовать преимущества изобретения, и могут включать меньшее или большее количество шагов, чем это представлено на фиг. 41, 42.
[0167] Каждый блок, представленный на фиг. 41 и 42, соответствует одному или более процессам, способам или подпрограммам, осуществляемым согласно рассматриваемым примерам. Шаги, проиллюстрированные на фиг. 41, 42, могут быть реализованы по меньшей мере в системе, содержащей платформу 170, причем они могут осуществляться по меньшей мере самой платформой 170. Кольца, упоминаемые на фиг. 41 и 42, соответствуют примеру с тремя концентричными кольцами для размещения датчиков в составе платформы 170. В зависимости от предусмотренного расположения датчиков количество колец может быть больше или меньше указанного, так что способы 800 и 850 могут иметь большее или меньшее количество ветвей, совпадающее с количеством колец в составе платформы 170. В другом варианте датчики могут находиться на пользователе или аксессуарах.
[0168] Способ 800 может начинаться в блоке 802, в котором могут детектироваться одно или более изменений состояния датчиков, например переход датчика из состояния "выкл" в состояние "вкл" или наоборот, когда сигнал датчика превысит пороговый уровень. В одном варианте сигнал датчика может соответствовать емкости или оптическому параметру. Пороговый уровень может также выполнять функцию байпасного фильтра для отсчетов емкости. Каждый датчик может иметь независимое значение порогового уровня. Значение порогового уровня может быть регулируемым, причем оно может регулироваться в зависимости от различных переменных, например от положений датчиков в платформе 170, количества датчиков в платформе 170, размеров датчиков и размеров компонента, активирующего и деактивирующего датчики, например стопы пользователя. В одном варианте в число датчиков 615 могут входить один или более емкостных датчиков, которые регистрируют исходное значение емкости. В другом варианте зарегистрированные изменения емкости, выходящие за границы порогового уровня, могут свидетельствовать об изменении состояния соответствующего датчика, например о переходе из состояния "выкл" в состояние "вкл". Это будет указывать на взаимодействие в ассоциированном с датчиком месте на платформе 170 в составе системы движения и задавать вектор направления, приближенно соответствующий 22°. В другом варианте значение порогового уровня служит байпасным фильтром, так что при расчете векторов скорости в пределах примерно 2-3° используются только емкости выше порогового уровня.
[0169] В блоке 804 выполняется операция запоминания результатов сканирования датчика, в результате которой запоминаются данные с привязкой ко времени для одного или более, или для всех сканирований. Данные от датчиков могут соответствовать значениям в точке скана данных от одного или более датчиков. Данные от датчиков могут включать (не ограничиваясь ими) значения емкости, операционные состояния ("вкл" или "выкл"), определенные моменты во времени, такие как отметка времени для последнего события включения или отключения. Сохраненные значения от датчиков могут быть использованы компьютерной системой 635, чтобы рассчитать движения каждой стопы пользователя, а также (дополнительно) для расчета предыдущих движений пользователя, чтобы облегчить распознавание его действий, например бега, ходьбы, ходьбы назад, прыжка, прыжка вперед, рывка и передвижения ползком. Временные данные, ассоциированные с указаниями об изменениях состояния датчиков, могут быть использованы для расчета векторов скорости по данным от датчиков.
[0170] В блоках 806-808 может быть изменено с "выкл" на "вкл" или с "вкл" на "выкл" состояние одного или более датчиков в наружном кольце. Датчик в наружном кольце может быть активирован, т.е. переведен в состояние "вкл", если считанное с него значение больше или равно значению порогового уровня, например, когда одна или обе ноги пользователя перемещаются над этим датчиком. Датчик в наружном кольце может быть деактивирован, т.е. переведен в состояние "выкл", если считанное с него значение меньше, чем значение порогового уровня, например, когда одна или обе ноги пользователя удаляются от этого датчика. В блоке 810 способ 800 может сгенерировать векторную скорость для датчика в наружном кольце, после чего данный способ может завершиться.
[0171] В блоках 812-814 может быть изменено с "выкл" на "вкл" или с "вкл" на "выкл" состояние одного или более датчиков, расположенных в промежуточном кольце. Датчик в промежуточном кольце может быть активирован, т.е. переведен в состояние "вкл", если считанное с него значение больше или равно значению порогового уровня, или по вектору направления шага, например, когда одна или обе ноги пользователя перемещаются над датчиком, расположенным в промежуточном кольце. Датчик в промежуточном кольце может быть деактивирован, т.е. переведен в состояние "выкл", если считанное с него значение меньше, чем значение порогового уровня, или по вектору направления шага, например, когда одна или обе ноги пользователя удаляются от датчика в промежуточном кольце.
[0172] В блоке 816 компьютерная система может проверить скан 804 точек во времени по всем датчикам, расположенным в одном или более смежных внутренних кольцах платформы 170. В блоке 818, если один или более датчиков были активированы в одном или более из смежных внутренних колец того же сектора, что и один или более датчиков в промежуточном кольце, способ 800 может сгенерировать векторную скорость по данным от одного или более активированных датчиков в промежуточном кольце, после чего способ 800 может завершиться.
[0173] В блоках 820-822 может быть изменено с "выкл" на "вкл" или с "вкл" на "выкл" состояние одного или более датчиков, расположенных во внутреннем кольце. Датчик во внутреннем кольце может быть активирован, т.е. переведен в состояние "вкл", если считанное с него значение больше или равно значению порогового уровня, или по вектору направления шага, например, когда одна или обе ноги пользователя перемещаются над этим датчиком во внутреннем кольце. Датчик во внутреннем кольце может быть деактивирован, т.е. переведен в состояние "выкл", если считанное с него значение меньше, чем значение порогового уровня, или по вектору направления шага, например, когда одна или обе ноги пользователя удаляются от датчика во внутреннем кольце.
[0174] В блоке 824 компьютерная система может проверить скан точек во времени по всем датчикам, расположенным в одном или более смежных промежуточных кольцах платформы 170. В блоке 826, если один или более датчиков были активированы в одном или более из смежных промежуточных колец того же сектора, что и один или более датчиков во внутреннем кольце, способ 800 может сгенерировать векторную скорость по данным от одного или более активированных датчиков во внутреннем кольце, после чего способ 800 может завершиться.
[0175] Способ 850 может начинаться в блоке 852, в котором один или более датчиков могут быть переведены из состояния "выкл" в состояние "вкл", когда сигнал датчика превысит пороговый уровень. Каждый датчик может иметь независимое значение порогового уровня. Значение порогового уровня является регулируемым, причем оно может регулироваться в зависимости от различных переменных, например от положений датчиков в платформе 170, количества датчиков в платформе 170, размеров датчиков и размеров компонента, активирующего и деактивирующего датчики, например стопы пользователя. В одном варианте в число датчиков 615 могут входить один или более емкостных датчиков, которые регистрируют исходное значение емкости. В другом варианте зарегистрированные изменения емкости, выходящие за границы порогового уровня, могут свидетельствовать об изменении состояния соответствующего датчика, например о переходе из состояния "выкл" в состояние "вкл". Это будет указывать на взаимодействие в ассоциированном с датчиком месте на платформе 170 в составе системы движения и задавать вектор направления, приближенно соответствующий 22°. В другом варианте значение порогового уровня служит байпасным фильтром, так что при расчете векторов скорости в пределах примерно 2-3° используются только емкости выше порогового уровня.
[0176] В блоке 854 может быть изменено с "выкл" на "вкл" состояние одного или более датчиков в наружном кольце. Датчик в наружном кольце может быть активирован, т.е. переведен в состояние "вкл", если считанное с него значение больше или равно значению порогового уровня, например, когда одна или обе ноги пользователя перемещаются над этим датчиком. В другом варианте один или более датчиков в наружном кольце активируются только после активации одного или более датчиков в смежном промежуточном кольце того же сектора. В блоке 856 способ 850 может сгенерировать векторную скорость по данным от одного или более датчиков в наружном кольце, после чего данный способ может завершиться.
[0177] В блоке 858 может быть изменено с "выкл" на "вкл" состояние одного или более датчиков, расположенных в промежуточном кольце. Датчик в промежуточном кольце может быть активирован, т.е. переведен в состояние "вкл", если считанное с него значение больше или равно значению порогового уровня, или по вектору направления шага, например, когда одна или обе ноги пользователя перемещаются над датчиком, расположенным в промежуточном кольце. В блоке 860 способ 850 может сохранить данные от датчиков, после чего этот способ может завершиться. Значения датчиков могут являться значениями точек во времени скана 804 для одного или более датчиков. Данные от датчиков могут включать (не ограничиваясь ими) значения емкости, операционные состояния ("вкл" или "выкл"), определенные моменты во времени, такие как отметка времени для последнего события включения или отключения. Сохраненные значения от датчиков могут быть использованы компьютерной системой 635, чтобы рассчитать движения каждой стопы пользователя, а также (дополнительно) для расчета предыдущих движений пользователя, чтобы облегчить распознавание его действий, например бега, ходьбы, ходьбы назад, прыжка, прыжка вперед, рывка и передвижения ползком.
[0178] В блоке 862 может быть изменено с "выкл" на "вкл" состояние одного или более датчиков, расположенных во внутреннем кольце. Датчик во внутреннем кольце может быть активирован, т.е. переведен в состояние "вкл", если считанное с него значение больше или равно значению порогового уровня, или по вектору направления шага, например, когда одна или обе ноги пользователя перемещаются над этим датчиком. В блоках 864 компьютерная система может проверить скан точек во времени для одного или более датчиков, расположенных в одном или более смежных промежуточных кольцах того же сектора платформы 170. В блоке 866, если разница во времени между текущим временем активации датчика во внутреннем кольце и моментом, соответствующим последней отметке времени "выкл" для одного или более датчиков в смежном промежуточном кольце, меньше, чем варьируемый пороговый уровень для отметки времени, например равный 1 мс, способ 850 может сгенерировать в блоке 868 векторную скорость по данным от одного или более датчиков в промежуточном кольце, после чего способ 850 может завершиться.
[0179] Векторы скорости (т.е. вектор направления и векторную скорость), генерируемые в способах по фиг. 41 и 42, можно использовать, чтобы рассчитать различные игровые метрики, например скорость, направление, ходьбу, бег, прыжки. Выходным сигналом для векторов скорости могут быть координаты (X, Y), указывающие направление и величину (скорость) для ноги или ног пользователя.
2
2
1/2
[0180] Векторы скорости могут генерироваться с использованием координат (X, Y) местоположения одного или более датчиков, для которых было зарегистрировано изменение, как это проиллюстрировано фиг. 41 и 42. Например, XY-плоскость расположения датчиков платформы 170 может иметь протяженность (в единицах расстояния) от -1 до 1 в каждом своем квадранте. Чтобы облегчить векторные вычисления, координаты могут быть нормализованы, например, делением координат X и Y на нормализующий коэффициент, в одном варианте равный (X+Y). Перед передачей векторов скорости в компьютерную систему 635 МК 625 может преобразовать координаты из диапазона (-1, 1) в диапазон (0, 255).
[0181] Вариант представления векторов скорости может быть рассчитан путем умножения нормализованных координат на значение скорости, например лежащее в интервале 0, 1. Длина результирующего вектора может представлять скорость. В другом варианте вычисления векторов скорости могут выполняться, основываясь на частоте шагов пользователя. Еще в одном варианте, чтобы определить векторную скорость, можно использовать временной интервал между последовательной активацией датчиков, например соседних, в частности, с применением сохраненных отметок времени для датчиков.
[0182] В одном варианте вычисление векторов скорости можно использовать, чтобы рассчитать прыжок пользователя. Например, используя датчики во внутреннем кольце и отметки времени для данных от центральных датчиков, можно рассчитать моменты активации и деактивации каждой стопы. В другом варианте датчики во внутреннем, промежуточном и наружном кольцах могут быть использованы, чтобы рассчитать прыжок вперед, вбок и назад.
[0183] На фиг. 43 представлена блок-схема примера способа 900 интегрирования векторов скорости в систему, например в игровую видеоконсоль, принадлежащую третьему лицу. Более конкретно, на фиг. 43 иллюстрируется последовательность действий в примере способа 900 интегрирования векторов скорости в систему, принадлежащую третьему лицу. Способ 900, проиллюстрированный на фиг. 43, приведен только в качестве примера, поскольку данный способ имеет много вариантов осуществления. Кроме того, хотя данный пример проиллюстрирован с определенным порядком шагов, специалистам в данной области будет понятно, что проиллюстрированные шаги способа по фиг. 43 могут быть выполнены в любом порядке, позволяющем реализовать технические преимущества изобретения, а способ может включать меньшее или большее количество шагов, чем это представлено на фиг. 43.
[0184] Каждый блок, представленный на фиг. 43, соответствует одному или более процессам, способам или подпрограммам, осуществляемым согласно данному примеру. Операции (шаги), проиллюстрированные на фиг. 43, могут быть реализованы системой, содержащей по меньшей мере платформу 170. Более конкретно, каждый блок, представленный на фиг. 43, может быть реализован по меньшей мере платформой 170. В другом варианте датчики могут находиться на пользователе или на аксессуарах.
[0185] Способ 900 может начинаться в блоке 902, в котором может производиться прием входного сигнала, соответствующего вектору относительной скорости. Затем рассчитывается угол, соответствующий этому сигналу. Рассчитанный угол может быть значением угла между направлением вектора скорости и абсолютным направлением на север, к передней точке платформы 170. Если в блоке 904 определяется, что данный угол равен 0, используется значение предыдущего вектора (см. блок 905). Согласно варианту, если нулевой вектор принимается в течение 0,1 с, вектор обнуляется. Если угол принятого вектора скорости меньше 30° (см. блок 906), в блоке 907 движение принимается направленным вперед. Если угол принятого вектора скорости лежит между 30° и 80° (см. блок 908), в блоке 909 выбирается движение под углом 45°, например влево или вправо. Если угол принятого вектора скорости лежит между 80° и 90° (см. блок 910), в блоке 911 выбирается движение под углом 90°, например влево или вправо. Если угол принятого вектора скорости больше 90° (см. блок 912), движение в блоке 913 определяется, как шаг назад, и вектор обнуляется.
[0186] Известные видеоигры используют принцип относительной ориентации. Отведение джойстика вправо или нажатие клавиши "D" на клавиатуре может переместить аватар пользователя вправо, под углом 90° относительно текущего направления взгляда или позиции камеры. В одном варианте текущая позиция камеры может определяться посредством измерения направления установленного на голове пользователя дисплея (например шлема виртуальной реальности). Таким образом, в схеме относительной ориентации движение может задаваться относительно текущей позиции камеры. В качестве дополнительной иллюстрации, отведение джойстика вверх или нажатие клавиши "W" на клавиатуре может переместить аватар пользователя вперед вдоль направления, соответствующего текущей позиции камеры.
[0187] В одном примере игра может использовать принцип абсолютной ориентации (принцип развязывания). Если игра ведется с использованием платформы 170, аватар пользователя может двигаться независимо от текущего направления взгляда или позиции камеры, т.е. движение аватара может быть абсолютным относительно игровой карты. Например, если пользователь на платформе 170 идет в направлении на север, его аватар на игровой карте может двигаться на север независимо от текущей позиции камеры. В одном варианте головной дисплей может содержать магнитометр, который может использовать, подобно платформе 170, схему абсолютной ориентации. При этом текущая игровая позиция камеры может совпадать с реальным направлением взгляда пользователя, смотрящего за пределы игры.
[0188] В одном варианте направление "на север" может быть направлением на северный магнитный полюс или на Полярную звезду. В другом варианте направление "на север" может быть определенным направлением, установленным или прокалиброванным перед началом игры. Например, пользователь, носящий головной дисплей, такой как шлем виртуальной реальности, может в процессе калибровки смотреть перед собой, и текущее направление взгляда вперед может быть связано при калибровке с направлением ходьбы вперед до того, как будут развязаны текущая позиция камеры и позиция тела пользователя. В другом варианте кольцо или обвязка, прикрепленное (прикрепленная) к платформе 170, может содержать датчики, служащие для калибровки позиции пользователя, обращенной вперед, как направления вперед в игре до того, как будут развязаны текущая позиция камеры и позиция тела пользователя. Еще в одном варианте при запуске игры текущая позиция пользователя вне игры, определенная датчиками в платформе 170, обвязке или шлеме, может быть прокалибрована как начальная позиция в игре. Например, если аватар инициируется обращенным на восток, направление, в котором обращен пользователь при запуске игры, может быть прокалибровано как направление на восток.
[0189] В одном варианте развязывание может быть реализовано в существующих играх. Хотя эти игры не рассчитаны на развязывание, однако, эффект развязывания все же может быть достигнут нажатиями на одну или более клавиш с учетом текущей позиции камеры пользователя. Например, если пользователь на платформе 170 идет вперед, а его взгляд повернут влево на 90°, развязывание может быть достигнуто нажатием на клавишу "D" или на клавишу, соответствующую движению влево. Схема абсолютной ориентации может быть преобразована в схему относительной ориентации путем учета текущего направления камеры. В другом примере, если пользователь на платформе 170 идет вперед, а его взгляд повернут вправо на 45°, эффект развязывания может быть достигнут одновременным или поочередным нажатием клавиш "W" и "А". Еще в одном примере, если пользователь на платформе 170 идет вперед, а его взгляд повернут направо на 15°, эффект развязывания может быть достигнут нажатиями на клавишу "W" большее количество раз, чем на клавишу "А".
[0190] В одном варианте датчики могут осуществлять мониторинг направлений левой и правой стоп пользователя, чтобы определять направление намеченного движения пользователя. Фиг. 44 иллюстрирует пример алгоритма для определения направления шага. В одном варианте четыре активных датчика могут физически находиться в одном или более секторах платформы 170, например в секторе 601 колец 611 и 612. Эти четыре датчика могут представлять все ненулевые датчики в двух наружных кольцах с датчиками. С каждым из четырех активных датчиков могут быть ассоциированы вектор позиции и значение емкости. Может быть введен пороговый уровень, чтобы отфильтровывать отсчеты емкости датчика, лежащие ниже этого уровня. Тем самым может быть уменьшен шум при определении завершения одного шага. Например, если пороговый уровень определен, как значение емкости, равное 0,50, при определении направления шага могут использоваться только датчики, дающие отсчет, превышающий 0,50. В другом варианте активные датчики могут быть физически расположены на стопах, руках, торсе или голове пользователя или на аксессуарах, например на винтовке, мече, дубинке, весле или бите.
[0191] Как уже упоминалось, фиг. 44 иллюстрирует блок-схему примера способа 1000 определения намеченного направления движения пользователя, причем на фиг. 44 способ 1000 определения намеченного направления движения пользователя представлен в виде последовательности шагов. Способ 1000 по фиг. 44 приведен только в качестве примера, поскольку данный способ имеет много вариантов осуществления. Кроме того, хотя данный пример проиллюстрирован с определенным порядком шагов, специалистам в данной области будет понятно, что проиллюстрированные шаги способа по фиг. 44 могут быть выполнены в любом порядке, позволяющем реализовать технические преимущества изобретения, а способ может включать меньшее или большее количество шагов, чем это представлено на фиг. 44.
[0192] Каждый блок, представленный на фиг. 44, соответствует одному или более процессам, способам или подпрограммам, осуществляемым согласно данному примеру. Операции (шаги), проиллюстрированные на фиг. 44, могут быть реализованы системой, содержащей по меньшей мере платформу 170. Более конкретно, каждый блок, представленный на фиг. 44, может быть реализован по меньшей мере платформой 170. В другом варианте датчики могут находиться на пользователе или аксессуарах.
[0193] Способ 1000 может начинаться в блоке 1001, в котором один или более датчиков могут быть активированы путем регистрации результатов измерений. В одном варианте датчики на платформе 170 могут быть активированы в результате регистрации измерений емкости. Например, если пользователь делает шаг вперед, к двум наружным кольцам сектора 601, четыре датчика в кольцах 611 и 612 могут выдать отсчеты емкости. Если эти отсчеты превышают заданный пороговый уровень, они могут быть использованы, чтобы рассчитать направление шага. В одном варианте в расчете направления шага могут использоваться все отсчеты датчиков, большие нуля. В другом варианте датчики могут быть активированы при регистрации инерциальных или оптических измерений. После того как отсчеты одного или более датчиков будут зарегистрированы, способ может перейти к блоку 1002.
[0194] В блоке 1002 зарегистрированные отсчеты активных датчиков, большие или равные пороговому уровню, могут быть нормализованы. В процессе нормализации позиции одного или более датчиков могут быть преобразованы в один или более векторов направления. Например, если активные датчики находятся в секторе 601, нормализованные векторы направления могут быть направлены в сектор 601. По завершении нормализации отсчетов датчиков способ может перейти к блоку 1003.
[0195] В блоке 1003 могут быть рассчитаны взвешенные векторы для нормализованных векторов позиций. В одном варианте могут быть рассчитаны векторы, взвешенные по емкости. Например, датчикам, выдавшим большие отсчеты емкости, могут быть приписаны более высокие веса. В одном варианте вес для каждого активного датчика рассчитывают умножением нормализованных векторов позиции на отсчеты емкости от датчиков. По завершении установления весов векторов способ может перейти к блоку 1004.
[0196] В блоке 1004 взвешенные векторы могут быть аккумулированы, чтобы рассчитать аккумулированный вектор. Например, чтобы рассчитать аккумулированный вектор, можно просуммировать векторы, взвешенные по направлению. Когда аккумулированный вектор будет рассчитан, способ может перейти к блоку 1005.
[0197] В блоке 1005 аккумулированный вектор может быть нормализован. Например, нормализация аккумулированного вектора может определить вектор направления шага. Когда будут нормализованы аккумулированные векторы и сформирован вектор направления шага, способ 1000 может быть завершен.
[0198] На фиг. 45 представлена блок-схема, иллюстрирующая пример способа 1050 определения направления намеченного движения пользователя. В другом варианте способ может отслеживать векторы направления для двух шагов и рассчитывать направление скорости, как среднее двух векторов. Способ может определять скорость характерного движения пользователя, основываясь на векторах направления четного и нечетного шагов и отметок времени шагов, например, путем усреднения векторов направления и мониторинга темпа шагов. Способ может сохранять массив внутренних или глобальных структур данных, таких, например, как Vector3, Float, Int, Bool, vStep[2], timeStep[2], nSteps и isStep.
[0199] Способ 1050 по фиг. 45 приведен только в качестве примера, поскольку данный способ имеет много вариантов осуществления. Кроме того, хотя данный пример проиллюстрирован с определенным порядком шагов, специалистам в данной области будет понятно, что проиллюстрированные шаги способа по фиг. 45 могут быть выполнены в любом порядке, позволяющем реализовать технические преимущества изобретения, а способ может включать меньшее или большее количество шагов, чем это представлено на фиг. 45.
[0200] Каждый блок, представленный на фиг. 45, соответствует одному или более процессам, способам или подпрограммам, осуществляемым согласно данному примеру. Операции (шаги), проиллюстрированные на фиг. 45, могут быть реализованы системой, содержащей по меньшей мере платформу 170. Более конкретно, каждый блок, представленный на фиг. 45, может быть реализован по меньшей мере платформой 170. В другом варианте датчики могут находиться на пользователе или аксессуарах.
[0201] Способ 1050 может начинаться в блоке 1052, в котором может иметь место какое-либо событие, например отметка времени, измерение позиции инерциальным, оптическим или емкостным методом. Когда событие произойдет, способ может перейти к блоку 1054. В блоке 1054 датчики могут быть обнулены. В одном варианте могут быть обнулены датчики в центральной зоне платформы 170. В одном варианте центральная зона может быть внутренним из двух колец платформы 170. В другом варианте центральная зона может иметь форму круга, шестиугольника или восьмиугольника. Когда датчики будут обнулены, способ 1050 может перейти к блоку 1056.
[0202] В блоке 1056 пороговый уровень может быть использован для фильтрации активных датчиков. В одном варианте пороговый уровень может использоваться для фильтрации активных датчиков на основе емкости или по результатам оптических или инерциальных измерений. Например, если значения емкости активных датчиков превышают заданный пороговый уровень, активный датчик может быть использован при вычислении скорости. В одном варианте пороговый уровень может быть задан равным нулю. После того как активные датчики, измерившие емкость, превышающую или равную значению порогового уровня, будут определены, способ может перейти к блоку 1058. В блоке 1058 рассчитывается вектор направления шага (vDir). Например, вектор направления шага может быть рассчитан посредством способа 1000. Когда вектор направления шага будет рассчитан, способ 1050 может перейти к блоку 1060.
[0203] В блоке 1060 определяется длина вектора направления. Если эта длина больше нуля, способ 1050 может перейти к блоку 1062. В блоке 1062 определяется, сделал ли пользователь свой шаг (Step). Например, подтверждением того, что шаг сделан (isStep = true), может быть снятие отсчета с активного датчика, внешнего по отношению к центральной зоне. Если определено, что шаг был сделан, способ 1050 может перейти к блоку 1080. В блоке 1080 может рассчитываться векторная скорость. В одном варианте эта скорость может быть представлена вектором, который является усреднением векторов направления для двух шагов, умноженным на темп шагов или скорость шага. В том же варианте за скорость пользователя принимается модуль (длина) векторной скорости. Нулевая длина вектора может означать, что пользователь остановился. Длина а в интервале от 0 до 1 может означать, что пользователь идет или бежит. Длина вектора, равная 1, может означать, что пользователь бежит. В одном варианте скорость может быть рассчитана с использованием уравнений (1)-(3), где time = время; Step = шаг; speed = скорость; vVelocity = векторная скорость:
[0204]
[0205]
[0206]
[0207] После того как векторная скорость будет рассчитана в блоке 1080, способ может перейти к блоку 1082 и завершиться.
[0208] Если в блоке 1062 шаг не был детектирован, способ может перейти к блоку 1064. В блоке 1064 регистрируется шаг. Например, вектор направления имеет длину, большую нулевой (см. блок 1060) и датчики в центральной зоне были обнулены (блок 1054), следовательно, стопа переместилась к наружным датчикам. Когда шаг будет зарегистрирован, способ 1050 может перейти к блоку 1080, в котором будет рассчитана векторная скорость.
[0209] Если в блоке 1060 определено, что длина вектора направления равна нулю или меньше нуля, способ 1050 может перейти к блоку 1070. В блоке 1070 определяется, сделал ли пользователь шаг. Например, отсчет с активного датчика, внешнего по отношению к центральной зоне, указывает, что шаг был сделан. Если определено, что шаг был сделан, способ 1050 может перейти к блоку 1072. В блоке 1072 количество шагов увеличивается на 1, а переменной для шага присваивается значение "ложное". Например, был детектирован шаг (стопа находилась в зоне наружных датчиков), а теперь в этой зоне стопа отсутствует, т.е. шаг был выполнен. После того как шаг был завершен, способ 1050 может перейти к блоку 1080. После того как векторная скорость будет рассчитана в блоке 1080, способ может перейти к блоку 1082 и завершиться.
[0210] Если в блоке 1070 шаг не был детектирован, способ может перейти к блоку 1074. В блоке 1074 может определяться, был ли шаг слишком медленным, например, согласно одному варианту, если стопа остается в наружной зоне платформы 170. В одном варианте слишком медленный шаг может быть детектирован вычитанием текущего времени (currentTime) из времени предыдущего шага (stepTime(previous)) с последующим определением, является рассчитанное значение большим или меньшим, чем пороговое значение для шага. Если шаг является слишком медленным, способ 1050 может перейти к блоку 1076. В блоке 1076 связанные с шагами значения обновляются. Например, количество шагов (nSteps), вектор шага (VStep) и время шага (timeStep) могут быть обнулены. После обнуления указанных значений способ 1050 может перейти к блоку 1080. Если в блоке 1074 шаг не был слишком медленным, способ 1050 может перейти к блоку 1080.
[0211] Фиг. 46А, 46В и 46С иллюстрируют пример системы всенаправленного движения, пригодной для сложных применений. Данная система 1100 всенаправленного движения может содержать вертикальные опоры 1101, горизонтальные кронштейны 1102, кольцо 134, распорные элементы 1103 и 1104, платформу 170, вертикальные стержни 1105, пружины 1106, нижние опоры 1107 и линейные шариковые направляющие (не изображены).
[0212] Вертикальные опоры 1101 обеспечивают возможность вертикального перемещения кольца 134. В одном варианте вертикальные опоры 1101 могут быть полыми, чтобы в них можно было вставить горизонтальные кронштейны 1102 и связать их с вертикальными стержнями 1105 посредством системы линейных шариковых направляющих. Вертикальные опоры 1101 могут регулироваться по длине. Вертикальные опоры 1101 могут иметь также защитные элементы. Защитные элементы могут предотвращать попадание посторонних материалов в полость вертикальных опор 1101 и, тем самым, предотвращать мешающее влияние этих материалов на систему линейных шариковых направляющих, стержни 1105 и пружины 1106. Защитные элементы могут быть выполнены в виде покрывающих накладок. В одном варианте вертикальные опоры 1101 могут быть удалены от центра системы настолько, чтобы они не создавали помехи для пользователя и любых стандартных аксессуаров, например винтовки, меча, дубинки, весла, ракетки. Вертикальные опоры 1101 могут поддерживать стержни 1105 в вертикальном положении, например под углом 90° к горизонтали, чтобы обеспечить воспроизводимые вертикальные движения пользователя. Горизонтальные кронштейны 1102, отходящие от кольца 134, прикреплены к вертикальным стержням 1105 посредством системы шариковых направляющих, которая обеспечивает возможность вертикального перемещения кольца 134. В другом варианте горизонтальные кронштейны 1102 могут быть ориентированы под острым углом, например под углом 75°, 45° или любым другим углом, меньшим 90°, как это показано на фиг. 46С. Острый угол может облегчить пользователю беспрепятственное пользование стандартным огнестрельным оружием, например поворот винтовки стволом вниз. В одном варианте система шариковых направляющих может контактировать с вертикальными стержнями на отрезке длиной более 127 мм. Линейная система шариковых направляющих, которая может содержать линейный шариковый направляющий блок, способна обеспечить более плавное движение кронштейнов 1102 по вертикальным стержням. Горизонтальные кронштейны 1102 могут отходить от кольца 134, находясь в одной плоскости. Распорные элементы 1103 и 1104 могут обеспечивать стабильность вертикальных опор 1101. Нижняя опора 1107 может воспринимать вес и стабилизировать систему 1100 всенаправленного движения.
[0213] Пружины 1106 могут обеспечивать подъем кольца 134 и кронштейнов 150, когда пользователь находится в положении стоя. Пружины 1106 могут создавать опору при движении пользователя вперед. Пружины 1106 могут дополнительно сжиматься, позволяя пользователю сгибаться и приседать, а также помогают пользователю тем, что не сжимаются, когда он находится в положении стоя, встает из согнутого положения или совершает прыжки. В одном варианте постоянная пружины может быть рассчитана с использованием закона Гука. При расчете суммарного направленного вверх усилия, необходимого для создания стабильных условий для пользователя, может дополнительно учитываться вес кольца. Обеспечиваемая стабильность может варьировать в зависимости от роста пользователя. Суммарное усилие может быть распределено между вертикальными опорами. В одном варианте постоянная пружины может составлять 0,35-7,01 Н/м. В другом варианте эта постоянная может составлять 0,71-3,5 Н/м.
[0214] В одном варианте вертикальные опоры могут содержать телескопические стержни. В другом варианте эти опоры сами являются телескопическими. Например, высота вертикальных опор/телескопических стержней может соответствовать положению кольца по высоте. Телескопический стержень может позволять пользователю перемещаться по вертикали, т.к. он может сжиматься и удлиняться, реагируя на движения пользователя.
[0215] В одном варианте вертикальные опоры могут представлять собой амортизирующий трос или систему пружин. В этом варианте, когда пользователь находится в согнутом положении, кольцо будет испытывать максимальную нагрузку. Когда пользователь переходит из согнутого положение в положение стоя, нагрузка на кольцо будет уменьшаться. В другом варианте вертикальное движение может обеспечиваться посредством системы поворотных рычагов, которые могут быть прикреплены к кронштейнам с каждой стороны вертикальной опоры или к кольцу. Когда пользователь сгибается или переходит к положению стоя, рычаги могут быть приведены в действие, облегчая вертикальные движения пользователя. В другом варианте вертикальное движение может обеспечиваться системой магнитной левитации. Кронштейны могут быть связаны с вертикальными опорами посредством магнитов. Магнитное поле, созданное магнитной поляризацией, может способствовать вертикальным движениям. В другом варианте вертикальное движение может обеспечиваться гидравлическими средствами. В этом случае горизонтальные кронштейны могут быть связаны с вертикальными опорами посредством гидравлики, так что вертикальное движение пользователя может быть активировано гидравликой. В другом варианте вертикальное движение может обеспечиваться посредством сжатого газа, т.е. путем активирования регулятора, управляющего потоком сжатого газа.
[0216] На фиг. 47 иллюстрируется, на виде в разрезе, тормозная система с тормозным шкивом в составе системы всенаправленного движения. Тормозная система 1120 может связывать кабелем 1121 массу 1122 с системой линейной направляющей (не изображена). Масса 1122 может обеспечивать вертикальное движение системы линейной направляющей вдоль вертикального стержня 1105. Масса может создавать постоянное усилие, направленное вверх и прикладываемое к горизонтальным кронштейнам 1102 и к кольцу (не изображено). Это постоянное усилие может противодействовать направленному вниз постоянному усилию, возникающему, когда пользователь движется вперед, например при ходьбе или беге. В предыдущих и последующих вариантах, помимо этого усилия, может возникать также усилие, направленное назад, например, когда пользователь идет или бежит назад.
[0217] На фиг. 48 иллюстрируется, на частичном виде в разрезе, система противовеса для системы всенаправленного движения. Система противовеса может способствовать предотвращению падения пользователя. В одном варианте данная система может содержать вертикальные опоры 1101, вертикальные стержни 1105 и одну или более пружин 1106, служащих для создания восстанавливающего усилия, противодействующего горизонтальному усилию, прикладываемому пользователем. Пружины 1106 могут быть подведены под систему линейной направляющей (не изображена). Пружины 1106 могут сжиматься под действием направленного вниз усилия, возникающего при движении пользователя вперед, и, как следствие, создавать направленное вверх уравновешивающее усилие, например, если пользователь идет или бежит.
[0218] На фиг. 49 представлена, на виде сверху, фрикционная уравновешивающая система в составе системы всенаправленного движения. Усилия, возникающие при движении пользователя вперед, могут быть преобразованы в силу трения, которая может противодействовать вертикальному усилию, создаваемому падающим пользователем. Сила трения может противодействовать, в частности, направленному вниз постоянному усилию, возникающему при движении пользователя вперед, например при беге. В одном варианте фрикционное усилие создается фрикционным материалом 1123, находящимся внутри вертикальных опор 1101 и направляющей системы (не изображена). Когда пользователь движется вперед, фрикционный материал, находящийся снаружи направляющей системы, приходит в контакт с фрикционным материалом внутри полой опоры, создавая силу трения.
[0219] На фиг. 50 представлена, на виде сверху, пружинная тормозная система в составе системы всенаправленного движения, имеющая круглую конфигурацию. Линейная система шариковых направляющих может быть прикреплена к вертикальному стержню посредством одной или более пружин 1124. В одном варианте используются четыре пружины 1124, установленные эквидистантно, под углом 90° к вертикальному стержню 1105. Когда пользователь прилагает, при движении вперед, усилие к горизонтальному кронштейну 1102, это горизонтальное усилие передается от пользователя через горизонтальный кронштейн 1102 к пружинам 1124. В результате сжатия пружин фрикционный материал, находящийся снаружи линейной системы шариковых направляющих, приходит в контакт с фрикционным материалом внутри полой опоры, создавая силу трения, которая может противодействовать направленному вниз усилию, возникающему при движении пользователя вперед, предотвращая его падение. В другом варианте сила трения может создаваться в результате контакта кронштейна и системы линейных опор.
[0220] На фиг. 51 представлена кабельная тормозная система в составе системы всенаправленного движения, пригодная для использования с целью предотвратить падение пользователя. Кабельная система может содержать тормоза 1127, тормозные кабели 1125, проходящие вдоль горизонтальных кронштейнов 1102, и корпус 1126, в котором находится система шариковых направляющих. Движение пользователя вперед может создавать горизонтальное усилие, которое создает увеличивает натяжение тормозных кабелей 1125, так что эти кабели активируют тормоза 1127. Более конкретно, увеличенное натяжение в кабельной тормозной системе может создавать силу трения, направленную вдоль вертикального стержня и противодействующую направленному вниз усилию, возникающему при движении пользователя вперед, например при ходьбе или беге.
[0221] На фиг. 52 представлена конструкция обвязки в модульном облегченном комплекте крепления снаряжения (MOLLE) с модульной системой крепления снаряжения (PALS). В обвязку 120 могут быть интегрированы стандартные компоненты оборудования. В одном варианте личный комплект 1130 MOLLE с PALS может быть интегрирован так, как это показано на фиг. 52. В другом примере с системой PALS может быть интегрирован штурмовой рюкзак MOLLE patrol pack. Система PALS состоит из набора 1129 строп для прикрепления оборудования, совместимого с системой PALS. Любое другое стандартное оборудование или части костюма, например, усовершенствованную экипировку, несущую тяжести (ILBE), также можно интегрировать в обвязку системы всенаправленного движения. Обвязка 120 может содержать одну или более строп 1128, совместимых с PALS, для крепления соответствующего оборудования, например, в составе MOLLE или ILBE. Совместимые стропы 1128 могут быть прикреплены к компонентам комплекта 1130 MOLLE, к штурмовому рюкзаку MOLLE или к экипировке ILBE посредством системы PALS.
[0222] Описанные варианты соответствуют комбинации признаков и преимуществ, направленных на преодоление различных недостатков, ассоциированных с определенными известными устройствами, системами и способами. Рассмотренные выше признаки и технические преимущества изобретения были представлены с целью обеспечить более полное его понимание. Различные описанные выше характеристики, как и другие признаки, будут хорошо понятны специалистам в соответствующей области в результате изучения подробного описания совместно с прилагаемыми чертежами. Специалистам в соответствующей области должно быть также понятно, что концепция и конкретные рассмотренные варианты легко могут быть использованы в качестве основы для модифицирования или конструирования других конструкций, решающих задачи, поставленные перед изобретением. Специалистам следует учитывать также, что подобные эквивалентные конструкции не выходят за границы идеи и объема изобретения, определяемые прилагаемой формулой.
[0223] Примеры осуществления изобретения могут также включать материальные и/или энергонезависимые машиночитаемые запоминающие среды для хранения в них компьютерных команд или массивов данных. В качестве таких энергонезависимых машиночитаемых запоминающих сред могут служить любые пригодные для этого среды, совместимые с компьютерами общего или специального назначения, включая любые процессоры специального назначения, в том числе описанные выше. В качестве неограничивающих примеров подобных энергонезависимых машиночитаемых сред можно указать оперативную память RAM, постоянную память ROM, электрически стираемую программируемую постоянную память, электрически стираемую программируемую постоянную память EEPROM, компакт-диск или другие запоминающие устройства на оптических дисках и магнитных дисках, другие магнитные запоминающие устройства или любую другую среду, которая может быть использована для хранения желательного программного кода в форме компьютерных команд, массивов данных, или процессорные чипы. В том случае, когда информация передается компьютеру по сети или посредством других средств коммуникации (проводных, беспроводных или комбинированных), компьютер воспринимает эти средства как машиночитаемую среду. Таким образом, любое подобное средство может рассматриваться как машиночитаемая среда. Комбинации указанных сред также должны быть включены в машиночитаемые среды.
[0224] Компьютерные команды включают, например, команды и данные, которые обеспечивают выполнение компьютером общего назначения, специализированным компьютером или процессорным устройством специального назначения определенных функций или группы функций. Компьютерные команды включают также программные модули, которые могут выполняться компьютерами, функционирующими автономно или в сети. В общем случае программные модули включают стандартные и другие программы, компоненты, массивы данных, объекты и функции, предусмотренные строением специализированных процессоров и т.д., выполняющих конкретные задания или использующих конкретные типы данных. Компьютерные программы, ассоциированные с ними массивы данных и программные модули соответствуют примерам программного кода для осуществления операций рассмотренных выше способов. Конкретные примеры подобных выполняемых команд или ассоциированных с ними массивов данных представляют собой примеры соответствующих действий для осуществления функций, описанных в связи с указанными операциями.
[0225] Специалистам будет понятно, что и другие примеры осуществления изобретения могут быть реализованы с использованием компьютерной сети, содержащей компьютерные системы с различными конфигурациями, включающими персональные компьютеры, мобильные устройства, мультипроцессорные системы, программируемую бытовую электронику, например на базе микропроцессоров, сети персональных компьютеров, миникомпьютеры, мэйнфреймы и др. Варианты изобретения могут быть реализованы также с использованием распределенных компьютерных сред, в которых задания выполняются с применением взаимосвязанных локальных и удаленных процессорных устройств через коммуникационную сеть (использующую проводные и беспроводные соединения или их комбинации). В распределенной компьютерной среде программные модули могут содержаться и в локальных, и в удаленных запоминающих устройствах.
[0226] Описанные выше различные примеры приведены только в иллюстративных целях и не должны рассматриваться как каким-либо образом ограничивающие изобретение. Например, сформулированные выше принципы применимы не только к устройствам типа смартфонов, но и к другим устройствам, способным детектировать сообщения, таким как ноутбуки. Специалистам в соответствующей области будет очевидно, что в описанные выше принципы могут быть внесены различные модификации и изменения, модифицирующие описанные и проиллюстрированные варианты и применения без выхода за границы изобретения.