Меню

Датчик положения в пространстве – Гаджет, датчик положения в пространстве, задача минимум

Содержание

Гаджет, датчик положения в пространстве, задача минимум

Реализация не критична, но требования:

1. подключение устройства к стандартному компьютеру (производительность выше средней) используя стандартные порты USB или хотя бы COM, очень желательна работа не только в win (но при этом поддержка win7 x64 обязательна), наличие SDK или открытых средств для получения координат

2. определение положения относительно ‘базы’ минимум — в виде 2-ух углов в трехмерном пространстве, максимум — в виде 3-ех (можно 2 угла и расстояние, либо 3-координаты в классическом евклидовом пространстве, уже не важно, вопрос уже в погрешностях, соответствующих размерах рабочей области и цены)

3. минимальная рабочая зона: расстояние от датчика минимум 0.3метра, максимум 4-5 метра, и хотя бы 30-40 градусов по вертикали и горизонтали

4. минимальная реакция на срабатывание (задержка между сменой положения и получением данных) — 30мс (30 сигналов в секунду)

5. минимальная погрешность — меньше сантиметра в пределах хотя бы первых 2-ух метрах рабочей зоны, невозможность ‘потерять’ измеряемый объект (например после того как загородили объект другим или уход вне рабочей зоны), точнее быстрое автоматическое восстановление работоспособности после таких сбоев

6. отсутствие каких либо проводов и другого ‘физического подключения’ с объектом (читай — модуль, координаты чего необходимо измерять, должен быть беспроводным) с разумными сроками автономной работы (3-5 часа или лучше сутками)

Опционально:

7. одновременное определение положения больше чем одного объекта (например дешевые передатчики и одна база), хотя бы два

8. наличие хотя бы одной ‘кнопки’ на модуле, координаты чего необходимо измерять (нажатие передается на компьютер)

p.s. пока речь идет об одном экземпляре, но если есть возможность получить желаемое в ‘любом’ количестве, то замечательно.

Некоторые возможные реализации всего этого безобразия я могу и сам перечислить:

* 1-2 веб-камеры (сложность реализации 4-ого требования — скорость реакции) + маркер на объекте (яркий цвет/простая геом. фигура/..) + софт (на хабре где то даже были статьи с опенсорсными реализациями)

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

К сожалению не так уж просто найти видеокамеру, не перегруженную фишками (читай платить лишнее неохота), без ощутимого лага между движением и получением информации программой. при этом основные лаги дают — сенсор (все дешевые гарантировано лагают при слабом освещении), софт внутри камеры (кодирование), передача данных usb, декодирование, обработка изображения для выявления объекта. Просто нереальные требования в 30мс.

В остальном это решение — одни плюсы и практически нет проблем в ‘наколенной’ реализации.

ЦЕНА: HD-камеры (у них достаточно быстрый сенсор в VGA режиме некоторые выдают 60fps) стоят они порядка 6-7т.р.

* камеры видео-наблюдения — аналогично веб-камере, только подключение pci/pci-e и отсутствие компрессии (кстати попробуй еще найди простое устройство с отключаемым кодеком mpeg), как вариант — аналоговый ‘видео-глазок’+tv-тюнер.

Уходят задержки кодирования и декодирования (а аналоговый глазок убирает и лаг сенсора). К сожалению не на чем протестировать, возможно ли при такой реализации вписаться в 30мс на распознавание, если есть у кого возможность проверить? это очень легко, выведите изображение с камеры на экран и подвигайте получающийся ‘бесконечный туннель’, затем замерить лаг движения туннеля по числу вложенных кадров (на какой вложенности задержка от движения составит 1 секунду)

ЦЕНА: камера видеонаблюдения от 1.5т.р. (видео-глазок от 500р), плата видеомонтажа от 1.5т.р. (можно тв-тюнер за 700р купить)… т.е. порядка 3-4т.р.

* пара видеосенсоров, подключенных напрямую к плате (достаточно мощности простого atmel/pic видел в интернете готовые примеры детекторов), высматривающих в инфракрасном диапазоне лампочку, мигающую особым сигналом.

Высокая скорость — есть сенсоры, которые позволяют снимать выбранное ‘окно’, которое ‘ведет’ исследуемый объект.

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

ЦЕНА: ??? но порядка 3-5т.р.

* Набор (минимум три) ультразвуковых детекторов расстояния, исследующих один объект

Где то видел в продаже даже usb версии, но какие то некрасивые цены в результате получатся (ведь надо минимум три), а так же потенциальные проблемы при их синхронной работе (т.е. нужно искать сразу же готовое устройство, заточенное на вычисление координат, а отдельные устройства могут помешать друг другу), плюс любой лишний объект между или за датчиками может внести большие погрешности (точнее ложные цели)

ЦЕНА: себестоимость только одного ультразвукового приемопередатчика от 600р, плюс схема, плюс софт дадут цену в минимум 5-6т.р.

* Модификация схемы ультразвукового детектора расстояния — а именно отдельно передатчик от приемника (передатчик — тот чье расстояние определяем, сигнал подает одновременно с инфракрасным сигналом, три УЗ приемника и один фотоприемник на основании разницы времени получения между получением световых и звуковых сигналов)

Очень надеюсь на наличие готовых решений с компактным датчиком с креплением на голову (в крайнем случае что то свое можно придумать)

ЦЕНА: отдельные УЗ приемники и передатчики стоят от 80р-150р, схема не становится сложнее чем предыдущая, себестоимость теоретически порядка 1-2т.р.

Может еще есть идеи? и/или готовые ссылки на интернет-магазины с доставкой по россии и хорошими ценами.

qna.habr.com

Датчики — UWP apps | Microsoft Docs

  • Время чтения: 9 мин

В этой статье

Датчики позволяют приложению получить информацию о взаимодействии устройства с физическим миром, который его окружает.Sensors let your app know the relationship between a device and the physical world around it. Датчики могут сообщить приложению о направлении движения, положении в пространстве и перемещении устройства.Sensors can tell your app the direction, orientation, and movement of the device. Датчики помогут вам сделать игру, приложение дополненной реальности или приложение общего назначения более удобными и интерактивными. Они предоставляют уникальную форму ввода, например используют движения устройства для упорядочения символов на экране или для имитации нахождения в кабине пилота (при этом устройство выполняет функции штурвала).These sensors can help make your game, augmented reality app, or utility app more useful and interactive by providing a unique form of input, such as using the motion of the device to arrange the characters on the screen or to simulate being in a cockpit and using the device as the steering wheel.

Как правило, сначала необходимо решить, будет ли приложение строиться исключительно на использовании датчиков или датчики будут выполнять только функции вспомогательного механизма управления.As a general rule, decide from the outset whether your app will depend exclusively on sensors or if sensors will just offer an additional control mechanism. Например, в симуляторе вождения, в котором устройство используется в качестве виртуального рулевого колеса, игрой можно было бы также управлять с помощью экранного графического интерфейса — в этом случае приложение работает независимо от наличия датчиков в системе.For example, a driving game using a device as a virtual steering wheel could alternatively be controlled through an on-screen GUI – this way, the app works regardless of the sensors available on the system. С другой стороны, наклонный лабиринт можно создать только для систем, имеющих соответствующие датчики.On the other hand, a marble tilt maze could be coded to only work on systems that have the appropriate sensors. Вам нужно принять стратегическое решение, то есть определить, будет ли приложение полностью зависеть от датчиков.You must make the strategic choice of whether to fully rely on sensors. Учтите, что схема управления при помощи мыши или касаний обеспечивает лучший контроль, но не дает ощущения полной погруженности в игру.Note that a mouse/touch control scheme trades immersion for greater control.

РазделTopicОписаниеDescription
Калибровка датчиковCalibrate sensorsДатчикам устройства, которые работают на основе магнитометра (компас, датчик наклона и датчик ориентации), может потребоваться калибровка из-за воздействия на них факторов окружающей среды.Sensors in a device based on the magnetometer – the compass, inclinometer and orientation sensor — can become in need of calibration due to environmental factors. Перечисление
MagnetometerAccuracy
может помочь определить необходимые действия, когда устройство требует калибровки.The MagnetometerAccuracy enumeration can help determine a course of action when your device is in need of calibration.
Ориентация датчикаSensor orientationДанные датчиков классов OrientationSensor определяются их опорными осями.Sensor data from the OrientationSensor classes is defined by their reference axes. Эти оси определяются альбомной ориентацией устройства и поворачиваются вместе с ним.These axes are defined by the device’s landscape orientation and rotate with the device as the user turns it.
Использовать акселерометрUse the accelerometer
Узнайте, как использовать акселерометр для реагирования на движения пользователя.Learn how to use the accelerometer to respond to user movement.
Использовать компасUse the compassУзнайте, как с помощью компаса можно определить текущее направление движения.Learn how to use the compass to determine the current heading.
Использовать гирометрUse the gyrometerУзнайте, как использовать гирометр для отслеживания изменений в движениях пользователя.Learn how to use the gyrometer to detect changes in user movement.
Использовать инклинометраUse the inclinometerУзнайте, как использовать инклинометр для определения поворотов относительно поперечной, продольной и вертикальной осей.Learn how to use the inclinometer to determine pitch, roll, and yaw.
Использовать датчик освещенияUse the light sensorУзнайте, как использовать датчик освещенности, чтобы обнаруживать изменения уровня освещенности.Learn how to use the ambient light sensor to detect changes in lighting.
Использовать датчик ориентацииUse the orientation sensorУзнайте, как использовать датчики положения в пространстве для определения ориентации устройства.Learn how to use the orientation sensors to determine the device orientation.

Пакетная обработка датчикаSensor batching

Некоторые датчики поддерживают пакетную обработку.Some sensors support the concept of batching. Это зависит от отдельного доступного датчика.This will vary depending on the individual sensor available. Когда датчик реализует пакетную обработку, он собирает несколько точек данных за определенный интервал времени, а затем передает все эти данные одновременно.When a sensor implements batching, it collects several points of data over a specified time interval and then transfers all of that data at one time. Этот принцип работы отличается от обычного поведения, когда датчик сообщает результаты, как только выполнит считывание.This is different from normal behavior where a sensor reports its findings as soon as it performs a reading. Рассмотрим следующую схему, в которой показано, как данные собираются и доставляются: сначала при обычной доставке, а затем при пакетной.Consider the following diagram which shows how data is collected and then delivered, first with normal delivery and then with batched delivery.

Главное преимущество пакетной обработки датчика — увеличение времени работы батареи.The primary advantage for sensor batching is prolonging battery life. Если данные не отправляются сразу, экономится питание процессора и отпадает необходимость немедленной обработки данных.When the data is not sent immediately, that saves on processor power and prevents the data from needing to be immediately processed. Компоненты системы могут находиться в спящем режиме до тех пор, пока они не понадобятся, что обеспечивает существенное энергосбережение.Parts of the system can sleep until they are needed, which generates a significant power savings.

Вы можете влиять на то, как часто датчик отправляет пакеты, регулируя задержку.You can influence how often the sensor sends batches by adjusting the latency. Например, датчик Акселерометр имеет свойство ReportLatency.For example, the Accelerometer sensor has the ReportLatency property. Если для приложения установлено это свойство, датчик будет отправлять данные по истечении указанного промежутка времени.When this property is set for an application, the sensor will send data after the specified amount of time. Вы можете управлять объемом данных, накапливаемых за эту задержку, установив свойство ReportInterval.You can control how much data is accumulated over a given latency by setting the ReportInterval property.

Есть несколько предупреждений относительно установки задержки, которые необходимо помнить.There are a couple of caveats to keep in mind with respect to setting the latency. Во-первых, каждый датчик имеет свойство MaxBatchSize, которое он может поддерживать в зависимости от самого датчика.The first caveat is that each sensor has a MaxBatchSize that it can support based on the sensor itself. Это число событий, которые датчик может кэшировать, прежде чем он будет вынужден их отправить.This is the number of events that the sensor can cache before it is forced to send them. Если умножить MaxBatchSize на ReportInterval, будет определено максимальное значение ReportLatency.If you multiply MaxBatchSize by ReportInterval, that determines the maximum ReportLatency value. Если указать значение выше этого, будет использоваться максимальная задержка, чтобы избежать потери данных.If you specify a higher value than this, the maximum latency will be used so that you do not lose data. Кроме того, нужную задержку можно установить для нескольких приложений отдельно.In addition, multiple applications can each set a desired latency. Для соответствия требованиям всех приложений будет использоваться самый короткий период задержки.In order to meet the needs of all applications, the shortest latency period will be used. В связи с перечисленными выше фактами задержка, которую вы установили в приложении, может не соответствовать наблюдаемой задержке.Because of these facts, the latency you set in your application may not match the observed latency.

Если датчик использует пакетное создание отчетов, в результате вызова GetCurrentReading будет удален текущий пакет данных и запущен новый период задержки.If a sensor is using batch reporting, calling GetCurrentReading will clear the current batch of data and start a new latency period.

Accelerometer (акселерометр)Accelerometer

Датчик Акселерометр измеряет величину ускорения силы тяжести по осям X, Y и Z для устройства и идеально подходит для простых приложений, основанных на движениях.The Accelerometer sensor measures G-force values along the X, Y, and Z axes of the device and is great for simple motion-based applications. Обратите внимание, что величина «ускорение силы тяжести» включает ускорение под действием силы притяжения.Note that G-force values include acceleration due to gravity. Если устройство находится в ориентации SimpleOrientation в состоянии FaceUp на поверхности стола, то показание акселерометра по оси Z будет равно -1 G.If the device has the SimpleOrientation of FaceUp on a table, then the accelerometer would read -1 G on the Z axis. Таким образом акселерометр не обязательно измеряет только ускорение по координатам, то есть темп изменения скорости.Thus, accelerometers do not necessarily measure just coordinate acceleration – the rate of change of velocity. При использовании акселерометра необходимо понимать разницу между вектором ускорения силы тяжести (тяготение) и вектором линейного ускорения (движение).When using an accelerometer, make sure to differentiate between the gravitational vector from gravity and the linear acceleration vector from motion. Обратите внимание, что для неподвижного устройства вектор ускорения силы тяжести следует привести к 1.Note that the gravitational vector should normalize to 1 for a stationary device.

На следующих схемах показаны:The following diagrams illustrate:

  • V1 = Вектор 1 = сила под действием земного тяготенияV1 = Vector 1 = Force due to gravity
  • V2 = Вектор 2 = ось –Z корпуса устройства (направлена вовне от задней поверхности)V2 = Vector 2 = -Z axis of device chassis (points out of back of screen)
  • Θi = Угол наклона = угол между осью –Z корпуса устройства и вектором ускорения силы тяжестиΘi = Tilt angle (inclination) = angle between –Z axis of device chassis and gravity vector

Пример приложения, использующего акселерометр — игра, в которой шарик на экране перекатывается в сторону, в которую наклоняется устройство (вектор ускорения силы тяжести).Apps that might use the accelerometer sensor include a game where a marble on the screen rolls in the direction you tilt the device (gravitational vector). Такой принцип работы очень напоминает функциональность датчика Инклинометр. Действие может выполняться при помощи этого датчика с использованием комбинации поворотов по оси X и по оси Y.This type of functionality closely mirrors that of the Inclinometer and could also be done with that sensor by using a combination of pitch and roll. Использование вектора ускорения силы тяжести акселерометра облегчает задачу, так как предоставляет простой математически управляемый вектор для наклона устройства.Using the accelerometer’s gravity vector simplifies this somewhat by providing an easily mathematically manipulated vector for device tilt. Еще один пример — приложение, которое издает звук удара хлыстом, когда пользователь резко встряхивает устройство (линейный вектор ускорения).Another example would be an app that makes a whip’s cracking sound when the user flicks the device through the air (linear acceleration vector).

См. пример внедрения в примере с акселерометром.For an example implementation, see the accelerometer sample.

Датчик действияActivity sensor

Датчик действия определяет текущее состояние подключенного к нему устройства.The Activity sensor determines the current status of the device attached to the sensor. Этот датчик часто используются в приложениях для занятий фитнесом, которые определяют, когда пользователь бежит или идет с устройством.This sensor is frequently used in fitness applications to keep track of when a user carrying a device is running or walking. Список возможных действий, которые могут быть обнаружены с помощью API этого датчика, см. в разделе ActivityType.See ActivityType for a list of possible activities that can be detected by this sensor API.

См. пример внедрения в примере с датчиком действия.For an example implementation, see the activity sensor sample.

ВысотометрAltimeter

Датчик Высотометр возвращает значение, которое указывает высоту датчика.The Altimeter sensor returns a value that indicates the altitude of the sensor. Этот датчик позволяет отслеживать изменения высоты в метрах над уровнем моря.This enables you to keep track of a change in altitude in terms of meters from sea level. Примером приложения, которое могло бы использовать эту функцию, может послужить приложение для занятий бегом, которое отслеживает изменения высоты во время бега для расчета сожженных калорий.One example of an app that might use this would be a running app that keeps track of the elevation changes during a run to calculate the calories burned. В этом случае данные этого датчика могут быть объединены с показаниями датчика действия для повышения точности отслеживаемых данных.In this case, this sensor data could be combined with the Activity sensor to provide more accurate tracking information.

См. пример внедрения в примере с высотометром.For an example implementation, see the altimeter sample.

БарометрBarometer

Барометр позволяет приложению получать барометрические показания.The Barometer sensor enables an application to get barometric readings. Эти данные могут использоваться погодным приложением для определения текущего атмосферного давления.A weather application could use this information to provide the current atmospheric pressure. Этот датчик можно использовать и для получения более подробной информации, например прогноза погоды.This could be used to provide more detailed information and predict potential weather changes.

См. пример внедрения в примере с барометром.For an example implementation, see the barometer sample.

Compass (компас)Compass

Компас показывает значение двухмерного направления относительно северного магнитного полюса в горизонтальной плоскости земли.The Compass sensor returns a 2D heading with respect to magnetic north based on the horizontal plane of the earth. Датчик Compass не следует использовать для определения конкретного положения устройства в пространстве или для представления чего-либо в трехмерном пространстве.The compass sensor should not be used in determining specific device orientation or for representing anything in 3D space. Географические объекты могут стать причиной естественного уклонения от направления, поэтому некоторые системы поддерживают одновременно HeadingMagneticNorth и HeadingTrueNorth.Geographical features can cause natural declination in the heading, so some systems support both HeadingMagneticNorth and HeadingTrueNorth. Подумайте о том, какое значение лучше использовать в вашем приложении, но не забывайте, что не все системы могут сообщить значение географического севера.Think about which one your app prefers, but remember that not all systems will report a true north value. Направление по компасу определяется путем объединения данных датчиков гирометра и магнитометра (устройство, измеряющее величину напряженности магнитного поля), что в результате стабилизирует данные (величина напряженности магнитного поля очень нестабильна из-за компонентов электрической системы).The gyrometer and magnetometer (a device measuring magnetic strength magnitude) sensors combine their data to produce the compass heading, which has the net effect of stabilizing the data (magnetic field strength is very unstable due to electrical system components).

Датчик компаса обычно используется в приложениях, в которых отображается роза ветров или выполняется навигация по карте.Apps that want to display a compass rose or navigate a map would typically use the compass sensor.

См. пример внедрения в примере с компасом.For an example implementation, see the compass sample.

Gyrometer (гирометр)Gyrometer

Гирометр измеряет угловую скорость по осям X, Y и Z.The Gyrometer sensor measures angular velocities along the X, Y, and Z axes. Его функции можно использовать в простых приложениях на основе движений, принцип действия которых основан не на определении положения устройства в пространстве, а на его вращении с различной скоростью.These are very useful in simple motion-based apps that do not concern themselves with device orientation but care about the device rotating at different speeds. Данные гирометра могут искажаться при зашумленности данных или при постоянном смещении по одной или нескольким осям.Gyrometers can suffer from noise in the data or a constant bias along one or more of the axes. Необходимо запросить данные акселерометра, чтобы проверить, находится ли устройство в движении, и определить, искажаются ли данные гирометра в результате смещения, а затем внести поправку в приложении.You should query the accelerometer to verify whether the device is moving in order to determine if the gyrometer suffers from a bias, and then compensate accordingly in your app.

Пример приложения, использующего гирометр — игра, в которой колесо рулетки приводится в движение резким вращением устройства.An example of an app that could use the gyrometer sensor is a game that spins a roulette wheel based on a quick rotational jerk of the device.

См. пример внедрения в примере с гирометром.For an example implementation, see the gyrometer sample.

ИнклинометрInclinometer

Датчик Инклинометр определяет угол поворота устройства по осям X, Y и Z и лучше всего подходит для приложений, которые используют данные о положении устройства в пространстве.The Inclinometer sensor specifies the yaw, pitch, and roll values of a device and work best with apps that care about how the device is situated in space. Значения углов поворота по осям X и Y определяются по вектору ускорения силы тяжести акселерометра и данным гирометра.Pitch and roll are derived by taking the accelerometer’s gravity vector and by integrating the data from the gyrometer. Значение поворота по оси Z устанавливается по данным магнитометра и гирометра (как направление по компасу).Yaw is established from magnetometer and gyrometer (similar to compass heading) data. Инклинометры предоставляют расширенные данные о положении устройства в пространстве понятным способом.Inclinometers offer advanced orientation data in an easily digestible and understandable way. Если вам нужны данные о положении устройства в пространстве, но не требуется обработка данных датчиков, используйте инклинометры.Use inclinometers when you need device orientation but do not need to manipulate the sensor data.

Датчики инклинометров могут использоваться приложениями, которые изменяют свое представление в зависимости от ориентации устройства.Apps that change their view to match the orientation of the device can use the inclinometer sensor. Приложение, отображающее на экране устройства самолет, вид которого меняется в соответствии с поворотом устройства по трем осям, будет также использовать показания инклинометра.Also, an app that displays an airplane that matches the yaw, pitch, and roll of the device would also use the inclinometer readings.

Пример реализации, см. в образце инклинометра https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/Inclinometer .For an example implementation, see the inclinometer sample https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/Inclinometer.

Датчик светаLight sensor

Датчик света может определять степень окружающего освещения.The Light sensor is capable of determining the ambient light surrounding the sensor. Он позволяет приложению отслеживать изменения условий освещенности, в которых находится устройство.This enables an app to determine when the light setting surrounding a device has changed. Например, пользователь может выйти с планшетом из помещения на улицу в солнечный день.For example, a user with a slate device might walk from indoors to outdoors on a sunny day. Интеллектуальное приложение может использовать полученное от датчика значение для увеличения контрастности между фоном и отображаемым шрифтом.A smart application could use this value to increase the contrast between the background and the font being rendered. Благодаря этому содержимое на экране отчетливо видно не только в помещении, но и при более ярком дневном свете.That would make the content still readable in the brighter, outdoor setting.

См. пример внедрения в примере с датчиком света.For an example implementation, see the light sensor sample.

Датчик положения в пространствеOrientation sensor

Положение устройства в пространстве выражается через кватернион и матрицу преобразования поворота.Device orientation is expressed through both quaternion and a rotation matrix. Датчик положения в пространстве с высокой точностью определяет расположение устройства в пространстве относительно абсолютного направления.The OrientationSensor offers a high degree of precision in determining how the device is situated in space with respect to absolute heading. Данные датчика положения в пространстве являются производными данными датчиков акселерометра, гирометра и магнитометра.The OrientationSensor data is derived from the accelerometer, gyrometer, and magnetometer. Значения датчиков инклинометра и компаса могут быть получены из значений кватерниона.As such, both the inclinometer and compass sensors can be derived from the quaternion values. Кватернионы и матрицы преобразования поворота хорошо подходят для сложных математических преобразований и часто используются в графическом программировании.Quaternions and rotation matrices lend themselves well to advanced mathematical manipulation and are often used in graphical programming. Для приложений, в которых используются сложные преобразования, следует выбирать датчики положения в пространстве, так как многие преобразования основываются на кватернионах и матрицах преобразования поворота.Apps using complex manipulation should favor the orientation sensor as many transforms are based off of quaternions and rotation matrices.

Датчики положения в пространстве часто используются в приложениях дополненной реальности, которые выполняют наложение цифровых данных на изображение окружающих предметов в направлении, на которое указывает задняя поверхность устройства.The orientation sensor is often used in advanced augmented reality apps that paint an overlay on your surroundings based on the direction the back of the device is pointing.

См. пример внедрения в примере с датчиком положения в пространстве.For an example implementation, see the orientation sensor sample.

ШагомерPedometer

Датчик Шагомер отслеживает количество шагов, сделанных пользователем с подключенным устройством.The Pedometer sensor keeps track of the number of steps taken by the user carrying the connected device. Датчик отслеживает количество шагов за определенный период времени.The sensor is configured to keep track of the number of steps over a given time period. Некоторые приложения для занятий фитнесом отслеживают количество сделанных шагов, чтобы помочь пользователю в постановке и достижении различных целей.Several fitness applications like to keep track of the number of steps taken in order to help the user set and reach various goals. Затем эти данные могут собираться и храниться, чтобы отображать прогресс с течением времени.This information can then be collected and stored to show progress over time.

См. пример внедрения в примере с шагомером.For an example implemenation, see the pedometer sample.

Бесконтактный датчикProximity sensor

Бесконтактный датчик может использоваться для определения близости объектов.The Proximity sensor can be used to indicate whether or not objects are detected by the sensor. Помимо определения нахождения объекта в зоне действия устройства, бесконтактный датчик также можете указать расстояние к обнаруженному объекту.In addition to determining whether or not an object is within range of the device, the proximity sensor also can determine the distance to the detected object. Например, эта функция может использоваться приложением, которое должно выйти из режима сна при появлении пользователя в пределах определенного диапазона.One example where this could be used is with an application that wants to emerge from a sleep state when a user comes within a specified range. Устройство может находиться в энергосберегающем спящем режиме, пока бесконтактный датчик не обнаружит объект. После этого устройство может войти в более активное состояние.The device could be in a low-powered sleep state until the proximity sensor detects an object, and then could enter a more active state.

См. пример внедрения в примере с бесконтактным датчиком.For an example implementation, see the proximity sensor sample.

Датчик простого положения в пространствеSimple orientation

Датчик SimpleOrientationSensor отслеживает положение определенного устройства (или его лицевой или задней поверхности) в текущем квадранте.The SimpleOrientationSensor detects the current quadrant orientation of the specified device or it’s face-up or face-down. Он Имеет шесть возможных состояний SimpleOrientation (NotRotated, Rotated90, Rotated180, Rotated270, FaceUp и FaceDown).It has six possible SimpleOrientation states (NotRotated, Rotated90, Rotated180, Rotated270, FaceUp, FaceDown).

Приложение для чтения, которое изменяет изображение на экране в зависимости от того, как пользователь держит устройство — параллельно или перпендикулярно земной поверхности, — будет использовать значения, полученные от датчика SimpleOrientationSensor, чтобы определить, как именно пользователь держит устройство.A reader app that changes its display based on the device being held parallel or perpendicular to the ground would use the values from the SimpleOrientationSensor to determine how the device is being held.

См. пример внедрения в примере с датчиком простого положения в пространстве.For an example implementation, see the simple orientation sensor sample.

docs.microsoft.com

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

Отслеживание положения (positional tracking) представляет собой сочетание аппаратных средств и программного обеспечения, которое позволяет определить абсолютное положение объекта в пространстве. Данная технология является критически важной для достижения эффекта погружения в виртуальную реальность. В сочетании с отслеживанием ориентации становится возможным измерять и передавать в ВР все 6 степеней свободы (6-DoF) реального мира. В ходе работы с технологиями виртуальной реальности в нашей компании мы получили определенный опыт в данном вопросе и хотели бы им поделиться, рассказав про существующие способы отслеживания положения для виртуальной реальности, а также о плюсах и минусах того или иного решения.

Небольшая классификация

Совокупность методов и подходов к решению данной задачи можно поделить на несколько групп:
  • Акустические
  • Радиочастотные
  • Магнитные
  • Оптические
  • Инерциальные
  • Гибридные

Человеческое восприятие предъявляет высокие требования к точности (~1мм) и задержкам (
Акустические методы

Акустические приборы слежения используют ультразвуковые (высокочастотные) звуковые волны для измерения положения и ориентации целевого объекта. Для определения положения объекта измеряется время пролёта (time-of-arrival) звуковой волны от передатчика к приёмникам, либо разность фаз синусоидальной звуковой волны при приёмо-передаче. Компания Intersense разрабатывает устройства отслеживания позиции на основе ультразвука.
Акустические трекеры, как правило, имеют низкую скорость обновления, вызванную низкой скоростью звука в воздухе. Другая проблема состоит в том, что скорость звука в воздухе зависит от таких факторов внешней среды, как температура, барометрическое давление и влажность.
Радиочастотные методы

Методов основанных на радиочастотах множество. Во многом по принципам определения положения они схожи с акустическими методами отслеживания (отличие лишь в природе волны). Наиболее перспективными на данный момент являются UWB (Ultra-Wide Band) методы, но даже в лучших решениях на основе UWB точность достигает только порядка сантиметров (DW1000 от DecaWave, Dart от Zebra Technologies, Series 7000 от Ubisense и другие). Возможно, в будущем стартапам вроде Pozyx или IndoTraq удастся достичь суб-миллиметровой точности. Однако пока UWB решения для отслеживания позиции не применимы для виртуальной реальности.
Другие методы позиционирования на радиочастотах более подробно описаны в данной статье.
Магнитные методы

Магнитный трекинг основан на измерении интенсивности магнитного поля в различных направлениях. Как правило, в таких системах есть базовая станция, которая генерирует переменное или постоянное магнитное поле. Так как сила магнитного поля уменьшается с увеличением расстояния между точкой измерения и базовой станцией, можно определить местоположение контроллера. Если точка измерения вращается, распределение магнитного поля изменяется по различным осям, что позволяет определить ориентацию. Наиболее известными продуктами на основе магнитного трекинга являются контроллер Razer Hydra и система STEM от компании Sixense.
Точность данного метода может быть достаточна высока в контролируемых условиях (в спецификациях Hydra говорится о 1 мм позиционной точности и 1 градусе точности ориентации), однако магнитное отслеживание подвержено помехам от токопроводящих материалов вблизи излучателя или датчика, от магнитных полей, создаваемых другими электронными устройствами и ферромагнитными материалами в пространстве отслеживания.
Оптические методы

Оптические методы представляют собой совокупность алгоритмов компьютерного зрения и отслеживающих устройств, в роли которых выступают камеры видимого или инфракрасного диапазона, стерео-камеры и камеры глубины.
В зависимости от выбора системы отсчёта выделяют два подхода для отслеживания положения:

  • Outside-in подход подразумевает присутствие неподвижного внешнего наблюдателя (камера), определяющего положение движущегося объекта по характерным точкам. Используется в Oculus Rift (Constrellation), PSVR, OSVR и множестве Motion Capture систем.
  • Inside-out подход предполагает наличие на движущемся объекте оптического сенсора, благодаря которому возможно отслеживать движение относительно неподвижных точек в окружающем пространстве. Используется в Microsoft Hololens, Project Tango (SLAM), SteamVR Lighthouse (гибридный вариант, т.к. есть базовые станции).

Также в зависимости от наличия специальных оптических маркеров выделяют отдельно:
  • Безмаркерный трекинг как правило строится на сложных алгоритмах с использованием двух и более камер, либо стерео камер с сенсорами глубины.
  • Трекинг с использованием маркеров предполагает заранее заданную модель объекта, которую можно отслеживать даже с одной камерой. Маркерами обычно служат источники инфракрасного излучения (как активные, так и пассивные), а также видимые маркеры наподобие QR-кодов. Такой вид трекинга возможен только в пределах прямой видимости маркера.

Задача Perspective-n-Point (PnP)

При оптическом отслеживании для определения положения объекта в пространстве решается так называемая задача PnP (Perspective-n-Point), когда по перспективной проекции объекта на плоскость сенсора камеры необходимо определить положение объекта в 3D-пространстве.

Для заданной 3D-модели объекта и 2D-проекции объекта на плоскость камеры решается система уравнений. В результате чего получается множество возможных решений. Количество решений зависит от числа точек в 3D-модели объекта. Однозначное решение для определения 6-DoF положения объекта можно получить как минимум при 4 точках. Для треугольника получается от 2 до 4 возможных решений, то есть положение не может быть определено однозначно:

Решение предлагается достаточно большим количеством алгоритмов, реализованных в виде библиотек:


SLAM — Simultaneous Localization and Mapping

Метод одновременной локализации и построения карты (SLAM) — это наиболее популярный способ позиционирования в робототехнике (и не только), который применяется для отслеживания положения в пространстве.

Алгоритм состоит из двух частей: первая — составление карты неизвестного окружающего пространства на основе измерений (данные с одометра или стерео-камеры), вторая — определение своего местоположения (локализация) в пространстве на основе сравнения текущих измерений с имеющейся картой пространства. Данный цикл непрерывно перевычисляется, при этом результаты одного процесса участвуют в вычислениях другого процесса. Наиболее популярные методы решения задачи включают в себя фильтр частиц и расширенный фильтр Калмана. На самом деле SLAM — это довольно обширная тема, а не только один определенный алгоритм, и разбор всех существующих решений на данную тему тянет на отдельную статью.
SLAM удобен для мобильных решений виртуальной и дополненной реальности. Однако недостатком данного подхода является большая вычислительная сложность, что в купе с требовательными VR/AR приложениями будет сильно загружать производительные ресурсы аппарата.

Project Tango от Google и Microsoft Hololens являются наиболее известными проектами на основе SLAM для мобильных устройств. Также ожидается поддержка трекинга на основе SLAM в недавно анонсированных продуктах от Intel (Project Alloy) и Qualcomm (VR820).
Среди open-source решений можно выделить ORB-SLAM, LSD-SLAM, PTAM-GPL.

Инерциальный трекинг

Современные инерциальные измерительные системы (IMU) на основе MEMS-технологии позволяют отслеживать ориентацию (roll, pitch, yaw) в пространстве с большой точностью и минимальными задержками.

Благодаря алгоритмам «sensor fusion» на основе комплементарного фильтра или фильтра Калмана данные с гироскопа и акселерометра успешно корректируют друг друга и обеспечивают точность как для кратковременных измерений, так и для длительного периода.

Однако определение координат (перемещения) за счёт двойного интегрирования линейного ускорения (dead reckoning), вычисленного из сырых данных с акселерометра, не удовлетворяет требованиям по точности на длительных периодах времени. Акселерометр сам по себе даёт сильно зашумленные данные, и при интегрировании ошибка увеличивается со временем квадратично.
Решить данную проблему помогает комбинирование инерциального подхода к трекингу с другими методами, которые периодически корректируют, так называемый, дрифт акселерометра.

Гибридные методы

Так как ни один из методов не является безупречным, и все они имеют свои слабые места, наиболее разумно комбинировать различные методы отслеживания. Так инерциальный трекинг (IMU) может обеспечить высокую частоту обновления данных (до 1000 Гц), в то время как оптические методы могут дать стабильную точность в длительные периоды времени (корректирование дрифта).

Гибридные методы отслеживания основаны на алгоритмах «Sensor Fusion», наиболее популярным из которых является расширенный фильтр Калмана (EKF — Extended Kalman Filter).

Как работает SteamVR Lighthouse?

Система трекинга HTC Vive состоит из двух базовых станций, оптических сенсоров и инерциальных измерительных блоков (IMU) в контроллерах и шлеме. Базовые станции состоят из двух вращающихся лазеров и массива инфракрасных светодиодов. Один из лазеров вращается вертикально, второй — горизонтально. Таким образом лазеры по очереди «сканируют» окружающее пространство. Базовые станции работают синхронно: в определенный момент времени только один из четырёх лазеров «сканирует» пространство трекинга. Для синхронизации работы всей системы между каждыми включением лазеров всё окружающее пространство освещается инфракрасным световым импульсом.

Сенсоры на контроллерах и шлеме фиксируют все оптические импульсы с базовых станций и измеряют время между ними. Так как частота вращения лазеров заранее известна (60 Гц), по времени между импульсами можно вычислить углы поворота каждого из лучей. Что даёт нам 2D-координаты оптического сенсора, зная взаимное расположение сенсоров на контроллере можно легко восстановить 3D-положение контроллера в пространстве (задача PnP). При одновременной видимости двух базовых станций 3D-положение контроллера может быть вычислено из пересечения двух лучей, что даёт более точные результаты и при этом требует меньше вычислений. Более наглядно процесс трекинга продемонстрирован ниже.


Месяц назад компания Valve объявила о том, что открывает свою систему трекинга для сторонних разработчиков. Более подробно об этом можно прочитать здесь.

Какой из методов отслеживания позиции в пространстве наиболее перспективен для виртуальной/дополненной реальности по вашему мнению?

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

P.S. Почему нет хаба виртуальная реальность?

habr.com

рецепты приготовления для систем позиционирования / RealTrac Technologies corporate blog / Habr

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

Большинство современных мобильных телефонов имеют на борту триады акселерометров, гироскопов и магнитометров, часто в дополнение к ним ставится и датчик атмосферного давления.

С последним датчиком все предельно ясно: почти у каждого из нас дома или на даче висит барометр и миллиметры его ртутного столба прочно связаны с дождем, непогодой и общим самочувствием любимой бабушки. А вот что измеряют акселерометр, гироскоп и магнитометр, и как использовать эту информацию для определения ориентации устройства в пространстве?


Акселерометр

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

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

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



Магнитометр

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

Зная ориентацию одной системы координат относительно другой становится возможным переводить измерения из системы координат устройства в глобальную. А знания об ускорениях в глобальной системе координат позволят путем интегрирования восстановить скорость и получить информацию об относительном местоположении.


Гироскоп

Гироскоп позволяет измерить скорость вращения устройства, соответственно для того, чтобы привести скорость к углу поворота мы должны её интегрировать. С этим положением связана основная проблема ориентации только при помощи гироскопа — из-за постоянного интегрирования не совсем точных измерений угловых скоростей, вызванных смещением нуля или температурными эффектами, мы получим дрейф ориентации, или, другими словами, она будет «уплывать» от истинного значения.

Преимущество использования всех трех датчиков в фильтре ориентации кроется в том, что:


  • Благодаря измерениям гироскопа становится возможной одновременное подавление скачков ориентации с сохранением реактивности фильтра, фактически мы получаем аналог низкочастотного фильтра без какой-либо задержки, при визуализации наблюдается «плавность» при вращении объекта. Хороший фильтр для быстрого старта — фильтр Мадвика, но на мой взгляд, еще более интуитивным является фильтр Махони, так как в нем ошибка ориентации рассчитывается не с помощью градиента, а путем простого векторного умножения.
    Подобные фильтры можно использовать и для объединения измерений пар датчиков. Например, на следующем рисунке показан результат оценки высоты с использованием фильтра Калмана, где в качестве измерений используются данные об атмосферном давлении, а в качестве внешнего воздействия — измерения акселерометра. Кстати на хабре есть подобное решение, там акселерометр и барометр используют для стабилизации высоты квадрокоптера.
  • Становится возможным включение в вектор состояния системы параметров датчиков: таких как смещение нуля акселерометра и гироскопа. Используемые фильтры, построенные на базе комплементарных или фильтра Калмана, постепенно сходятся к истинному значению смещения нуля датчика.
  • Можно эффективно организовать сбор калибровочных данных. Так, при сборе калибровочных данных для магнитометра для максимально равномерного покрытия поверхности шара можно использовать данные об ориентации устройства и инициировать процесс калибровки только после того, когда все требуемые сегменты шара будут содержать как минимум одно измерение.
  • Появляется возможность в той или иной мере разрешить основные проблемы при определении ориентации: оценить направление внешнего ускорения или определить, присутствует ли в данной точке локальное магнитное возмущение, а значит, не следует доверять измерениям магнитометра.

Как можно еще использовать данные от инерциальных датчиков?

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


  • Сбора данных о магнитной карте помещения. Пример такой карты приведен на рисунке ниже. Видно, что в различных частях здания изменяется не только магнитуда магнитного поля (в мкТл), но и направление вектора магнитной индукции (обозначено розовой линией). Такую карту можно использовать для уточненного позиционирования объекта в дополнении к традиционным картам радиосигнала.
  • Восстановления траектории движения объекта. Таким объектом может быть пешеход или автомобиль. В отдельных случаях, например при креплении устройства на ноге и предварительной точной калибровке датчиков можно добиться ошибки возврата в точку начала движения, не превышающую десятков сантиметров для длины пути превышающей 100 метров. Пример восстановленной траектории методом ZUPT(при сбросе ошибки в периоды неподвижности), дополненным измерениями датчика атмосферного давления приведен на следующем рисунке (траектория движения включала в себя проход по коридору, спуск по лестнице, еще один проход и подъем на лифте). Подобный метод уже упоминался на хабре здесь.


    При произвольном креплении устройства на теле человека ошибка возврата к исходной точке, как правило, куда больше и составляет 15-20% от пройденной дистанции. Такое её значение обусловлено, во-первых, ошибкой в определении длины шага, а во-вторых, ошибкой в определении направления движения.


  • Инициирования каких-либо событий или управления устройством. Это возможно сделать при помощи «рисования» устройством какой-либо фигуры или образа в воздухе, например символ ∞ может использоваться для запуска калибровки магнитометра, продольные взмахи устройством — для генерации экстренного сообщения, тройной «тап» — для выключения. Данные задачи решаются при помощи заранее обученных классификаторов.


  • Определения текущей активности пользователя. Например, при использовании устройств в офисе может быть полезным знание о том, насколько много человек двигался в течение рабочего дня и типе движения — какую часть времени он провел стоя, сидя, сколько времени потратил на различные переходы по зданию.

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

Автор — Александр Миков.

habr.com

Как не заблудиться в космосе? / Habr

Римский философ Сенека сказал: «Если человек не знает, куда он плывет, то для него нет попутного ветра». В самом деле, какая нам польза от двигателей, маховиков или соленоидов, если мы не знаем положения аппарата в пространстве? Этот рассказ о приборах, которые позволяют нам не заблудиться в космосе.

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

Асимметричный ответ: никакой ориентации

Первые спутники и даже межпланетные станции летали неориентированными. Передача данных на Землю велась по радиоканалу, и несколько антенн, чтобы спутник был на связи при любом положении и любых кувырканиях, весили гораздо меньше, чем система ориентации. Даже первые межпланетные станции летали неориентированными:


Луна-2, первая станция, достигшая поверхности Луны. Четыре антенны по бокам обеспечивают связь при любом положении относительно Земли

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

Достоинства:

  • Максимальная простота и надежность. Отсутствующая система ориентации не может сломаться.

Недостатки:
  • Годится сейчас, в основном, для микроспутников, решающих сравнительно простые задачи. «Серьезным» спутникам без системы ориентации уже не обойтись.
Солнечный датчик

Фотоэлементы к середине XX века стали вещью привычной и освоенной, поэтому нет ничего удивительного, что они отправились в космос. Очевидным маяком для таких датчиков стало Солнце. Его яркий свет попадал на фоточувствительный элемент и позволял определять направление:


Различные схемы работы современных солнечных датчиков, внизу находится фоточувствительная матрица


Еще один вариант конструкции, здесь матрица изогнута


Современные солнечные датчики

Достоинства:

  • Простота.
  • Дешевизна.
  • Чем выше орбита, тем меньше участок тени, и тем дольше может работать датчик.
  • Точность примерно одна угловая минута.

Недостатки:
  • Ориентация только по одной оси.
  • Не работают в тени Земли или другого небесного тела.
  • Могут быть подвержены помехам от Земли, Луны и т.п.

Всего одна ось, по которой могут стабилизировать аппарат солнечные датчики, не мешает их активному использованию. Во-первых, солнечный датчик можно дополнить другими сенсорами. Во-вторых, у космических аппаратов с солнечными батареями солнечный датчик позволяет легко организовать режим закрутки на Солнце, когда аппарат вращается направленный на него, и солнечные батареи работают в максимально комфортных условиях.
Космические корабли «Восток» остроумно использовали солнечный датчик — ось на Солнце использовалась при построении ориентации для торможения корабля. Также, солнечные датчики были крайне востребованы на межпланетных станциях, потому что многие другие типы датчиков не могут работать вне земной орбиты.
Благодаря простоте и дешевизне солнечные датчики сейчас очень распространены в космической технике.
Инфракрасная вертикаль

Аппараты, которые летают по орбите Земли, часто нуждаются в определении местной вертикали — направления на центр Земли. Фотоэлементы видимого диапазона для этого подходят не очень — на ночной стороне Земля гораздо хуже освещена. Но, к счастью, в инфракрасном диапазоне теплая Земля светит практически одинаково на дневном и ночном полушариях. На низких орбитах датчики определяют положение горизонта, на высоких — сканируют пространство в поисках теплого круга Земли.
Конструктивно, как правило, инфракрасные построители вертикали содержат систему зеркал или сканирующее зеркало:


Инфракрасная вертикаль в сборке с маховиком. Блок предназначен для точной ориентации на Землю для геостационарных спутников. Хорошо видно сканирующее зеркало


Пример поля зрения инфракрасной вертикали. Черный круг — Земля


Отечественные инфракрасные вертикали производства ОАО «ВНИИЭМ»

Достоинства:

  • Способны строить местную вертикаль на любом участке орбиты.
  • Как правило, высокая надежность.
  • Хорошая точность —

Недостатки:
  • Ориентация только по одной оси.
  • Для низких орбит нужны одни конструкции, для высоких — другие.
  • Сравнительно большие габариты и вес.
  • Только для орбиты Земли.

Тот факт, что ориентация строится только по одной оси, не мешает широкому использованию инфракрасных вертикалей. Они очень полезны для геостационарных спутников, которым необходимо нацеливать свои антенны на Землю. Также ИКВ используются в пилотируемой космонавтике, например, на современных модификациях корабля «Союз» ориентация на торможение производится только по ее данным:


Корабль «Союз». Дублированные датчики ИКВ показаны стрелками

Гироорбитант

Для того, чтобы выдать тормозной импульс, необходимо знать направление вектора орбитальной скорости. Солнечный датчик даст правильную ось примерно один раз в сутки. Для полетов космонавтов это нормально, в случае нештатной ситуации человек может вручную сориентировать корабль. Но корабли «Восток» имели «братьев-близнецов», разведывательные спутники «Зенит», которым тоже нужно было выдавать тормозной импульс, чтобы вернуть с орбиты отснятую пленку. Ограничения солнечного датчика были неприемлемы, поэтому пришлось придумывать что-то новое. Таким решением стал гироорбитант. Когда работает инфракрасная вертикаль, корабль вращается, потому что ось на Землю постоянно поворачивается. Направление орбитального движения известно, поэтому по тому, в какую сторону поворачивается корабль, можно определить его положение:

Например, если корабль постоянно кренится вправо, то мы летим правым боком вперед. А если корабль летит кормой вперед, то он будет постоянно поднимать нос вверх. С помощью гироскопа, который стремится сохранить свое положение, это вращение можно определить:

Чем сильнее отклонена стрелка, тем сильнее выражено вращение по этой оси. Три таких рамки позволяют замерить вращение по трем осям и развернуть корабль соответственно.
Гироорбитанты широко использовались в 60-80-х годах, но сейчас вымерли. Простые датчики угловых скоростей позволили эффективно измерять вращение аппарата, а бортовая ЭВМ без труда определит положение корабля по этим данным.

Ионный датчик

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


Научная аппаратура для измерения концентрации положительных ионов

Ионный датчик работал быстрее — на построение ориентации с гироорбитантом уходил почти целый виток, а ионный датчик был способен построить ориентацию за ~10 минут. К сожалению, в районе Южной Америки находится так называемая «ионная яма», которая делает работу ионного датчика нестабильной. По закону подлости именно в районе Южной Америки нашим кораблям надо строить ориентацию на торможение для посадки в районе Байконура. Ионные датчики стояли на первых «Союзах», но достаточно скоро от них отказались, и сейчас они нигде не используются.

Звездный датчик

Одной оси на Солнце часто бывает мало. Для навигации может быть нужен еще один яркий объект, направление на который вместе с осью на Солнце даст нужную ориентацию. Таким объектом стала звезда Канопус — она вторая по яркости в небе и находится далеко от Солнца. Первым аппаратом, который использовал звезду для ориентации, стал «Маринер-4», стартовавший к Марсу в 1964 году. Идея оказалась удачной, хотя звездный датчик выпил много крови ЦУПа — при построении ориентации он наводился не на те звезды, и приходилось «прыгать» по звездам несколько дней. После того, как датчик наконец навелся на Канопус, он стал постоянно его терять — летевший рядом с зондом мусор иногда ярко вспыхивал и перезапускал алгоритм поиска звезды.
Первые звездные датчики представляли собой фотоэлементы с небольшим полем зрения, которые умели наводиться только на одну яркую звезду. Несмотря на ограниченность возможностей, они активно использовались на межпланетных станциях. Сейчас технический прогресс, фактически, создал новый класс устройств. Современные звездные датчики используют матрицу фотоэлементов, работают в паре с компьютером с каталогом звезд и определяют ориентацию аппарата по тем звездам, которые видны в поле их зрения. Такие датчики не нуждаются в предварительном построении грубой ориентации другими приборами и способны определить положение аппарата вне зависимости от участка неба, в которое их направят.


Типичные звездные датчики


Чем больше поле зрения, тем проще ориентироваться


Иллюстрация работы датчика — по взаимному положению звезд по данным каталога рассчитывается направление взгляда

Достоинства:

  • Максимальная точность, может быть меньше угловой секунды.
  • Не нуждается в других приборах, может определить точное положение самостоятельно.
  • Работают на любых орбитах.

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

Сейчас звездные датчики используются там, где нужно знать положение аппарата очень точно — в телескопах и других научных спутниках.
Магнитометр

Сравнительно новым направлением является построение ориентации по магнитному полю Земли. Магнитометры для измерения магнитного поля часто ставились на межпланетные станции, но не использовались для построения ориентации.


Магнитное поле Земли позволяет строить ориентацию по всем трем осям


«Научный» магнитометр зондов «Пионер-10» и -11


Первый цифровой магнитометр. Эта модель появилась на станции «Мир» в 1998 г. и использовалась в посадочном модуле «Филы» зонда «Розетта»

Достоинства:

  • Простота, дешевизна, надежность, компактность.
  • Средняя точность, от угловых минут до нескольких угловых секунд.
  • Можно строить ориентацию по всем трем осям.

Недостатки:
  • Подвержен помехам в т.ч. и от оборудования космического аппарата.
  • Не работает выше 10 000 км от Земли.

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

Исторически, космические аппараты часто летали неориентированными или в режиме солнечной закрутки. Только в районе цели миссии они включали активные системы, строили ориентацию по трем осям и выполняли свою задачу. Но что, если нам необходимо поддерживать произвольную ориентацию длительное время? В этом случае нам надо «помнить» текущее положение и фиксировать свои повороты и маневры. А для этого человечество не придумало ничего лучше гироскопов (измеряют углы поворота) и акселерометров (измеряют линейные ускорения).
Гироскопы
Широко известно свойство гироскопа стремиться сохранить свое положение в пространстве:

Изначально гироскопы были только механическими. Но технический прогресс привел к появлению множества других типов.
Оптические гироскопы. Очень высокой точностью и отсутствием движущихся деталей отличаются оптические гироскопы — лазерные и оптоволоконные. В этом случае используется эффект Саньяка — фазовый сдвиг волн во вращающемся кольцевом интерферометре.


Лазерный гироскоп

Твердотельные волновые гироскопы. В этом случае измеряется прецессия стоячей волны резонирующего твердого тела. Не содержат движущихся частей и отличаются очень высокой точностью.

Вибрационные гироскопы. Используют для работы эффект Кориолиса — колебания одной части гироскопа при повороте отклоняют чувствительную часть:

Вибрационные гироскопы производятся в MEMS-исполнении, отличаются дешевизной и очень маленькими размерами при сравнительно неплохой точности. Именно эти гироскопы стоят в телефонах, квадрокоптерах и тому подобной технике. MEMS-гироскоп может работать и в космосе, и их ставят на микроспутники.

Размер и точность гироскопов наглядно:

Акселерометры
Конструктивно, акселерометры представляют собой весы — фиксированный груз меняет свой вес под воздействием ускорений, и датчик переводит этот вес в величину ускорения. Сейчас акселерометры кроме больших и дорогих версий обзавелись MEMS-аналогами:


Пример «большого» акселерометра


Микрофотография MEMS-акселерометра

Комбинация трех акселерометров и трех гироскопов позволяет фиксировать поворот и ускорение по всем трем осям. Такое устройство называется гиростабилизированной платформой. На заре космонавтики они были возможны только на карданном подвесе, были очень сложными и дорогими.


Гиростабилизированная платформа кораблей Apollo. Синий цилиндр на переднем плане — гироскоп. Видео испытаний платформы

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


Сфера в центре — гиростабилизированная платформа. Система наведения МБР Peacekeeper

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

Интересным нововведением стали MARG-платформы. В них данные с гироскопов и акселерометров дополняются магнитными датчиками, что позволяет исправлять накапливающуюся ошибку гироскопов. MARG-датчик, наверное, самый подходящий вариант для микроспутников — он маленький, простой, дешевый, не имеет движущихся частей, потребляет мало энергии, обеспечивает ориентацию по трем осям с коррекцией ошибок.
В «серьезных» системах для исправления ошибок ориентации гиростабилизированной платформы обычно используют звездные датчики.
Траекторную ошибку, как правило, исправляют системами радиоконтроля орбиты — антенны на Земле по сигналам с аппарата могут очень точно определить его положение и скорость. На низких орбитах для этого недавно появился дешевый аналог — GPS/ГЛОНАСС.

Дополнительные источники информации

Лекция «Проектирование системы ориентации и стабилизации».
Конспект «Датчики ориентации и исполнительные устройства».

По тегу «незаметные сложности» — публикации о ракетах-носителях, стартовых сооружениях, системах ориентации.

habr.com

Датчик положения в пространстве Википедия

Схема простейшего акселерометра. Груз закреплён на пружине. Демпфер подавляет колебания груза. Чем больше кажущееся ускорение, тем сильнее деформируется пружина, изменяя показания прибора

Акселеро́метр (лат. accelero — ускоряю и др.-греч. μετρέω «измеряю») — прибор, измеряющий проекцию кажущегося ускорения (разности между истинным ускорением объекта и гравитационным ускорением). Как правило, акселерометр представляет собой чувствительную массу, закреплённую в упругом подвесе. Отклонение массы от её первоначального положения при наличии кажущегося ускорения несёт информацию о величине этого ускорения.

По конструктивному исполнению акселерометры подразделяются на однокомпонентные, двухкомпонентные, трёхкомпонентные. Соответственно, они позволяют измерять проекции кажущегося ускорения на одну, две и три оси.

Некоторые акселерометры также имеют встроенные системы сбора и обработки данных. Это позволяет создавать завершённые системы для измерения ускорения и вибрации со всеми необходимыми элементами.

Применение[ | ]

Акселерометр может применяться как для измерения проекций абсолютного линейного ускорения (если известны величина и направление гравитационного ускорения в данной точке пространства), так и для косвенных[1] измерений проекции гравитационного ускорения (при неподвижности акселерометра в гравитационном поле). Первое свойство используется для создания инерциальных навигационных систем, где полученные с помощью акселерометров измерения интегрируют, получая инерциальную скорость и координаты носителя. Таким образом, акселерометры, наравне с гироскопами, являются неотъемлемыми компонентами систем навигации и управления самолётов, ракет и других летательных аппаратов, кораблей и подводных лодок. Второе свойство позволяет использовать акселерометры как для измерения уклонов, то есть в качестве инклинометров, так и в гравиметрии.

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

Акселерометры используют в системах управления жестких дисков компьютеров для активации механизма защиты от повреждений (которые могут быть получены в результате ударов и падений): реагируя на внезапное изменение ускорения, система отдаёт команду на парковку головок жесткого диска, что позволяет предотвратить повреждение диска и потерю данных. Такая технология защиты используется в основном в ноутбуках, нетбуках и на внешних накопителях.

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

В устройствах управления игровых приставок акселерометр, совместно с гироскопом[уточнить], используются для управления в играх без использования кнопок — путём поворотов в пространстве, встряхиваний и т. д. Например, акселерометр присутствует в игровых контроллерах Wii Remote и PlayStation Move.

Кроме того, цифровые акселерометры нашли широкое применение в мобильных устройствах, например, телефонах, планшетных компьютерах и т. п. Благодаря акселерометрам осуществляется управление положением изображения на мониторе мобильного устройства и отслеживание его ориентации относительно направления постоянно действующей силы гравитации Земли[2].

Акселерометр в условиях невесомости

ru-wiki.ru

История датчиков перемещения / Habr

Привет хабрахабр!

Предлагаю Вам вспомнить историю развития датчиков перемещения, рассмотреть, как они работают, и оценить перспективы на будущее.

Прошлое

В 1963 году в Стенфордском исследовательском институте, был впервые разработана конструкция датчика перемещения мыши. Она состояла из двух перпендикулярных колес, выступающих из корпуса устройства. При перемещении колеса мыши крутились каждое в своем измерении.

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

Контактный датчик представляет собой текстолитовый диск с лучевидными металлическими дорожками и тремя контактами, прижатыми к нему.
Оптронный же состоит из двойной оптопары — светодиода и двух фотодиодов с диском, в котором имеются отверстия или лучевидные прорези, перекрывающие световой поток по мере вращения. При перемещении мыши диск вращается, и с фотодиодов снимается сигнал с частотой, соответствующей скорости перемещения мыши.
Второй фотодиод, смещённый на некоторый угол или имеющий на диске датчика смещённую систему отверстий, служит для определения направления вращения диска.

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

Второе поколение оптических мышей уже имело в составе более сложное устройство. В нижней части мыши был установлен специальный светодиод, который подсвечивал поверхность, по которой перемещается мышь. Миниатюрная камера «фотографирует» поверхность более тысячи раз в секунду, передавая эти данные процессору, который и делает выводы об изменении координат.

Настоящее

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

Так как основным назначением датчиков является определение координат, то стоит также упомянуть как тачпады так и сенсорные экраны смартфонов.
Принцип работы тачпадов, основан на измерении ёмкости пальца или измерении ёмкости между сенсорами. Ёмкостные сенсоры расположены вдоль вертикальной и горизонтальной осей тачпада, что позволяет определить положение пальца с нужной точностью.

Наиболее популярные типы экранов смартфонов это резистивные и ёмкостные.

Резистивный сенсорный экран состоит из стеклянной панели и гибкой пластиковой мембраны. И на панель, и на мембрану нанесено резистивное покрытие. Пространство между стеклом и мембраной заполнено микроизоляторами, которые равномерно распределены по активной области экрана и надёжно изолируют проводящие поверхности. Когда на экран нажимают, панель и мембрана замыкаются, и контроллер с помощью аналогово-цифрового преобразователя регистрирует изменение сопротивления и преобразует его в координаты прикосновения.

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

Будущее

Постепенно, в широкие массы входят методы определения координат с использованием датчиков положения в трехмерном в пространстве. Например, к датчикам такого типа можно отнести: гироскоп, акселерометр, GPS.

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

Моё личное мнение заключается в том, что будущее за трехмерными технологиями.
Уже сейчас есть опыт использования программируемых жестов перед компьютером, приставками и прочими устройствами интерактивного назначения.
Возможно, скоро, придя в магазин за очередной новинкой индустрии, мы увидим на прилавке контроллер, позволяющий взаимодействовать с компьютером одновременно используя голос, изображение с камер, движения воздуха в пространстве, или более того, фиксирующий электрические импульсы в голове. Кто знает.

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

Источник технических подробностей: Википедия

habr.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *