Многие наслышаны о проблеме с неоткалиброванными датчиками в новом iPhone 5S – инструмент «уровень», встроенный в родной компас iOS 7 показывает отклонение в несколько градусов, если устройство положить на плоскую поверхность, например, стол.
Если кратко, то в той или иной степени проблема ориентации датчиков присутствовала всегда и на всех устройствах с iOS. Ранее проблему не наблюдали так часто в виду отсутствия встроенного в мобильную OS приложения позволяющего измерять уровень. Аналогичная проблема имеет место быть и на других мобильных устройствах оснащенных акселерометром, поскольку принципы везде заложены одинаковые – с этим не понаслышке должен быть знаком каждый разработчик, которому приходилось иметь дело с различными датчиками движения и ориентации.
Я разрабатываю приложения с использованием датчиков акселерометра, гироскопа и цифрового компаса, ровно с тех самых пор, как разработчикам стал доступен API, практически с самого начала – будучи автором одного из самых популярных компасов для iOS с проблемами калибровки акселерометра и точности других датчиков я столкнулся еще несколько лет назад.
Способ решения проблемы достаточно тривиален и уже заложен в большую часть, как прикладных, так и игровых приложений, которые тем или иным образом используют датчики гравитации, движения и магнитного поля – калибровка, о которой должен позаботиться любой уважающий себя и своих пользователей разработчик. В зависимости от того, насколько сложно приложение и какие задачи оно решает, с технической точки зрения разработчика, реализация решения может быть и простой и сложной. Но принцип одинаков для всех.
Приглашаю разработчиков и пользователей приложений разобраться, как это работает, откуда берутся эти ошибки, почему не стоит излишне беспокоиться о проблемах акселерометра и почему не нужно бежать бегом в магазин для замены «бракованного» устройства – новое устройство вряд ли будет намного лучше, а проблемы с ошибками датчиков решаются другими способами.