Я пытаюсь создать приложение для Android для sphero, где мне нужно остановить sphero в определенных зонах комнаты, и я пытаюсь сделать это с помощью locatorData
, используя DeviceMessenger.AsyncDataListener
.Sphero: получение данных о местоположении в реальном времени для остановки sphero (android)
Я заметил, что невозможно сказать, где он находится, пока он все еще катится и останавливается, когда он находится в определенном наборе координат, потому что данные поступают с большой задержкой. Он в основном останавливается намного дальше, и я вижу, что координаты растут с задержкой на экране. Я знаю, что сообщение является асинхронным, и я могу как-то потерять некоторые данные во время общения, но я подумал, что, предоставив ему окно вокруг координат, я хочу, чтобы он был таким, что я смогу остановить его более или менее в этой зоне, но это не так. Похоже, это работает прилично.
На данный момент единственное решение, с которым я столкнулся, - это отправить команду рулона, вычислить количество времени, необходимое для катания, чтобы добраться до тех координат, основанных на скорости, и отправить задержанную команду останова, но я не «Мне нравится это решение, и я не думаю, что он будет работать правильно в долгосрочной перспективе, когда я реализую все необходимые функции. У кого-нибудь есть предложения по поводу locatorData
и как его использовать в этом случае?