Orux Maps - недостаточная точность записи треков

Всем привет.

Начал запись треков со смартфона SGS3 mini, потом прикупил к нему блютус модуль Globalsat BT-821 (с новым чипом МТК 66 каналов).

Раньше я записывал треки с помощью программы Androzic, но у нее много недоработок по сравнению с оруксом.
Одна беда - орукс не удается настроить так чтобы он показывал ТОЧНЫЙ трек.

Сравните (слева орукс, справа androzic):

я ходил по парковке между машин. Две машины обошел вокруг по кругу, остальные прошел змейкой.
В андрозике трек получился очень близок к настоящему, в то время как орукс выдает ломаную кривую.
Такое ощущение что он опрашивает GPS раз в секунду или стоит какое-то минимальное расстояние записи (например 2-3 метра). Но таких настроек конечно-же не выставлено! Все настройки стоят по нулям, никаких ограничений (искусственных ухудшений) по точности в программе не установлено!

Специально не стал писать сразу, неделю копался в настройках в надежде найти какую-нибудь хитрую опцию, которая все портит.
Но не нашел.

Внутренний телефонный GPS ведет себя точно так-же.
То есть дело не в GPS приемнике.

Искал настройку “количество отображаемых точек трека”, но не нашел таковой в оруксе.
Потом подумал “вдруг, орукс отображает на экране мало точек трека, а при экспорте покажет настоящий”? Ага, размечтался. При экспорте получается такая-же ломаная кривая (фактически много информации умышленно убито но как это вылечить?)

Я рисую карту в населенных пунктах и для меня важна точность. Хожу вдоль заборов, очерчиваю периметры детских площадок, зданий и тд и тп., потому что на спутнике бывает многое скрыто за деревьями (тропинки, тротуары и др. ну вы знаете). Да и вообще причем тут снимки, ведь хочется рисовать точную карту, а для этого нужно записывать точные треки.
Ради точности даже купил внешний блютус… и тут такая подстава…

Например, вот снимок трека, записанного когда приемник лежал на окне подоконника первого этажа:

явно прослеживается какая-то решетка, с характерными вертикальными линиями (через равное расстояние) и параллельными диагональными линиями ВНЕЗАПНО эти диагональные линии в большинстве случаев расположены под одним углом (странно).

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

Вопросы:

  • что я делаю не так?
  • в какую сторону можно копнуть чтобы попробовать это решить?
  • есть-ли у орукса настраиваемые конфиги для настроек, которых возможно нет в GUI?

Раньше я думал что может быть андрозик сглаживает треки программно, получая на входе те-же ступеньки. Но потом заметил что это не так, потому что в оруксе курсор движется в то время как трек рисуется кусками и рисуется лесенкой. В это-же время курсор двигается совсем не лесенкой, а точно соответствует настоящему движению. Поэтому получается так что курсор отлетает от конца трека, а потом трек дорисовывается к ближайшей точке условной “сетки”.

Скину несколько скриншотов с настройками, которые как я полагаю могут влиять на точность

недавно обновил программу, обновление не помогло.
камрады, помогите, без орукса будет совсем тоскливо

А если “точность определения местоположения” убавить? Я когда Оруксом пользовался на точность треков не жаловался. Но давно и окончательно перешёл на OsmAnd.

Вообще-то, вот эта картинка намекает (намекает, потому что не включен показ точек трека, и судить можно только на глаз), что Orux округляет координаты при записи, а Androzic - пропускает сегменты.

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

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

А зачем для записи трека юзать орукс шморукс? Есть же “Мои треки” гугловские с детальными настройками записи

ну под густой кроной сигнал тоже не ахти

не странно, а закономерно - это ж типа “сетки” округления, точки трека скачут по ее “пересечениям”

Да и “минимальное расстояние” можно, чтобы немного от лесенки избавиться. А то при ходьбе пешком шлепать точки каждую секунду…
Ну и автопауза при записи нужна - не будет сетчатых клякс при остановке

В Андроиде ограничение в 1 секунду при опросе GPS. Т.е. всё равно чем пользоваться (железо или софт), одна секунда в Андроиде минимум.

Если кто-то хочет меня поправить, пожалуйста оставьте ссылку на новую документацию Андроида.

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

PS: ещё и блутус-приемник, наверное, лежит в кармане ?

PPS: есть ещё такие “любительские” способы http://forum.openstreetmap.org/viewtopic.php?id=9451, но методика сбора данных и обработки слишком сложна.

Вы по своему правы, согласен. Но я не могу понять почему так происходит. Вот честно.

Хотя есть одно предположение.
Мне кажется© что орукс тупо не может провести линию между двумя точками как это может сделать андрозик. Сюрпрайз!
Поэтому чтобы нарисовать таки трек, орукс дорисовывает кучу новых (виртуальных) точек, расставленных по сетке скругления чтобы соединить эти точки. Такое ощущение что это множество левых точек не было зафиксировано приемником, а они создались в качестве костыля, чтобы проложить трек хотя-бы примерно по линии, которую (прямо) орукс нарисовать почему-то не может. Мне это определенно не нравится :frowning:

Вот увеличенный кусок кляксы с включенными точками

к слову, я пользовался многими программами: Locus, османд, мои треки, и ни у кого в кляксах не возникает такой “сетки округлений” как у орукса. Печаль.

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

Но эти треки - блуждание спутника на первом этаже дома с толстыми стенами.
Парадоксальность ситуации заключается в том что на открытом пространстве (парковка, высоких домов и деревьев рядом нет) - андрозик рисует гораздо больше точек, возможно андрозик фиксирует положение раз в секунду (примерно), а орукс, несмотря на настройку фиксировать “всегда” и в режиме “быстрый GPS” все равно фиксирует очень редко. Ну странно - курсор в оруксе показывает точно позицию, но в трек записывает позицию довольно редко.

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

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

точность местоположения:

имеется ввиду поставить ноль?
включил, когда пойду на улицу - проверю.

При чем здесь частота 1Гц? Речь об округлении координат до n знаков после запятой, где n меньше их числа в координатах, которые выдает сам приемник.

не, ноль совсем отключает фильтрацию. Попробуйте 50 м.

Как-то странно всё это.
Автору орукс не нравится в плане записи треков, но он им пользуется для записи треков.
Если я все правильно помню со времен юзанья андроида, то писать треки можно одним приложением, а карты в это же время смотреть в другом - приложения не захватывают GPS монопольно (поправьте, если это не так)
Пишите треки андрозиком или чем угодно другим, а карты смотрите в оруксе.

petrovnn я не по-своему прав, а просто прав.
Ваше предположение о “не может провести линию” ни на чем не основано. Мое утверждение об округлении подтверждается вашими картинками прекрасно.
Ваши две новые картинки иллюстрируют две разные проблемы.

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

А на второй картинке ситуация противоположная - Orux пишет точки реже, чем Androzic. (Правда, не все значащие точки совпадают.)

Чтобы это было корректное сравнение, добейтесь, пожалуйста, чтобы обе программы писали трек с частотой 1Гц (то есть сохраняли все точки). Судя по этим картинкам, это возможно, просто по какой-то причине вы этого не сделали.
Пока же результаты эксперимента некорректны и судить по ним - сложно.
Еще бы неплохо было видеть фрагменты GPX-файлов, чтобы уж точно по timestamp и длине дробной части координат понимать, что происходит.

Этот параметр отвечает совершенно за другое (на русский его переводил идиот, потому я всегда говорю, что нужно пользоваться оригинальным английским - там могут быть непонятные термины, которые достаточно посмотреть в словаре, но явно не будет ничего переврано). Он отвечает за то, чтобы при оценочной точности хуже X метров прекращать писать трек. Правильный перевод звучал бы “Худшая точность, при которой ведется запись трека”.

Попробуйте для теста Osmand night (там добавили по моей просьбе 0 сек) или же OsMoDroid с частотой записи 0 мс и другими настройками на 0.

Чем плохи Мои треки. Во-первых (сюрпрайз) - там нет ОСМ!
А зачем мне тогда эта штука нужна? Дальше можно не писать.
Да, там есть спутник. Да, я им пользовался еще когда не рисовал ОСМ. Мне нравится что он показывает разную скорость прохождения участков разными цветами (чего нет в тех программах которыми я сейчас пользуюсь). Но мне всегда нужен ОСМ на экране, потому что я уточняю карту всех мест где бываю и дорисовываю недостающие объекты. Глядя на гуглокарту (или спутник) этого я делать не могу, поэтому перестал им пользоваться. Потом перешел на андрозик, потом на орукс (но тут подстава).

Кроны деревьев не проблема. Здания гораздо сильнее портят сигнал. Но ведь не только в этом дело. Бывают области где нет бинга и рисовать кроме как по трекам нельзя. Например друзья живут на окраине поселка в густом сосновом лесу. Там вообще ничего не видно ни на каких снимках. Ни тропинок, ни дорог, ни даже некоторых домов. Поэтому точность нужна. В общем на точность под деревьями (как и вообще на точность приемника) я и не жалуюсь.

Минимальное расстояние?
Там такие варианты:

  • 0 метров (всегда) - у меня включено, видно на скриншоте в первом посте
  • 5 метров
  • 10 метров
  • 20 метров (рекомендовано, дефолт)
  • 40 метров
  • 80 метров

Кажется что минимальное расстояние - это расстояние между двумя точками. Грубо говоря если поставить 10 метров - лестица будет еще грубее. Но и сейчас глядя на треки возникает ощущение что у меня стоит не ноль, а 5 метров (хотя на самом деле конечно стоит ноль).

Я готов “шлепать” и два раза в секунду, но что-то орукс не шлепает даже и секунды (по ощущениям раз в 3-5 секунд, что намного хуже чем андрозик или там локус)

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

Конечно, можно использовать две программы.
Но это не так удобно, и это дает некоторые трудности в рисовании карты.
Потому что запись трека я использую не только для того чтобы прийти домой и закинуть трек в JOSM, чтобы потом рисовать по нему; но и для того (а для меня это важно) чтобы в реал-тайме сверять карту по треку прямо на местности. Я вижу как я иду, смотрю на трек который рисуется. Одновременно я оцениваю (и запоминаю) насколько точно трек рисуется. Если я вижу что я шел четко по прямой, а трек отклонился и сделал волну - я это запоминаю, и когда сажусь рисовать - учитываю. Если писать буду допустим в андрозике а смотреть карту в оруксе - то я лишусь этой возможности в реалтайме мониторить трек, его точность, и точность расположения объектов между которыми я прохожу. Это сложно объяснить, но просмотр трека и просмотр карты для меня должны быть единым процессом. Это как раз тот тонкий момент, из-за которого я отказался от навигатора Garmin e-trex 20/30. Мне нужна свежайшая карта онлайн на хорошем экране, чего e-trex обеспечить не может. И кстати, в оруксе есть шикарнейшая функция - “обновить тайлы” (уверен она есть не только в нем), чего нет в андрозике (вообще про достоинства орукса я могу писать долго).

Мне определенно нравится ваша уверенность, но…

  1. В пользу версии “не может провести линию” говорит тот факт что в оруксе в итоге нет ни одной линии с нестандартным углом. Все линии под углом либо 90 градусов либо 45 или что-то около 30. Такие углы объясняются необходимостью всегда привязываться к некой сетке. Хотя во время “блуждания” точки часто разбрасываются далеко друг от друга, как-бы фиксируя “высокую скорость” движения.

  2. рисование кляксы, про которую мы говорим, имеет одну особенность. Блуждающий спутник часто фиксирует точки на большом расстоянии друг от друга, как-бы “прыгает” вокруг дома. Эти прыжки могут проходит за очень короткое время. Орукс в принципе не способен нарисовать много точек за короткое время, но почему-то именно на блуждающем спутнике он щедро рисует много точек.

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

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

Если моя теория верна, по поводу “орукс не может тупо соединить две произвольные точки”, тогда в GPX файле будет много “виртуальных” точек с одинаковым временем. Согласны?

вот это не понял, ну и ладно

Вот это странно. Почему не совпадают? Если ограничение точек было-бы по секундам - тогда должны были-бы совпасть по позиции, ведь верно? Может тогда расставление точек в одном треке идет по расстоянию, во втором по времени? Только так можно объяснить почему точки не совпадают?

Вот этого, я к сожалению добиться как раз и не могу (либо я не смог, либо ошибка в программе… или фича?)

пошел писать новые тестовые треки

да необязательно новые записывать, можете показать уже записанные одновременно двумя приложениями

Записал два трека.
Моя теория не подтвердилась.

Например, за 23-ю минуту андрозик зафиксировал всего 5 точек.
в то время как орукс - ровно 60 точек, фиксировал исправно каждую секунду.

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

если наложить два трека:

Еще кажется нужен такой-же тест не на блуждающих спутниках а на улице с нормальной видимостью, как я в основном и записываю треки.

Округление же. Точка может записаться или туда же, или в другое “пересечение” сетки (так и возникают кляксы из квадратиков с диагоналями при остановке), но не между ними.
По логу видно это округление: с 7 знака после запятой идут “трети” (0,333(3)/0,666(6)/0,999(9)), промежуточных значений там уже нет.
Надо узнать, сколько составляет 0,00001 градуса на местности :slight_smile:

мне не лень записать треки, только кажется что нужно обращаться сюда:
http://www.oruxmaps.com/foro/viewforum.php?f=5

хотя, разобраться самому во всем перед обращением к автору тоже будет не лишним