OlegCh Опубликовано 19 октября, 2011 Поделиться Опубликовано 19 октября, 2011 По просьбам трудящихся выделю свою мыслишку в отдельную тему... Я недавно столкнулся с неадекватным поведением программы при проезде туннелей. В Москве есть довольно длинные туннели на ТТК, на Ленинградке и Волоколамке. Если туннель проскакиваешь быстро, то вроде все неплохо - за тобой рисуется зеленая линия. Но стоит попасть в пробку как сигнал GPS пропадает, дельтаплан начинает прыгать туда-сюда, информация о пробке не передается и пробки в туннеле, получается, нет. В то же время штатная бмв-шная навигация в машине прекрасно ведет в туннеле даже при отсутствии GPS сигнала. Разумеется, что-то там такое используется дополнительно - значение скорости со спидометра, возможно даже положение колес. Я про то, что СГ тоже должен что-то придумать - например, фиксировать время перед въездом в туннель, затем перестать использовать данные GPS чтобы не получалось ложного положения, а при выезде из туннеля когда сигнал GPS восстанавливается снова фиксировать время и на основе этих данных делать вывод о пробочной ситуации в туннеле. Короче, надо подправить алгоритм работы при проезде туннелей. Ссылка на сообщение Поделиться на другие сайты
Vodolazz Опубликовано 19 октября, 2011 Поделиться Опубликовано 19 октября, 2011 Думал об этом, но вроде проблем не замечал, так как редко езжу по тоннелям. Теперь буду следить за работой СГ в тоннелях. Я так понимаю это относится к тоннелям длиной более 500 м? Ссылка на сообщение Поделиться на другие сайты
OlegCh Опубликовано 19 октября, 2011 Автор Поделиться Опубликовано 19 октября, 2011 Думал об этом, но вроде проблем не замечал, так как редко езжу по тоннелям. Теперь буду следить за работой СГ в тоннелях. Я так понимаю это относится к тоннелям длиной более 500 м? Мне кажется, тут играет роль не длина туннеля, а время потери сигнала GPS. Если пробка мертвая, то и для 50 метрового туннеля получится ерунда. Ссылка на сообщение Поделиться на другие сайты
zoran Опубликовано 19 октября, 2011 Поделиться Опубликовано 19 октября, 2011 (изменено) В айфоне есть акселерометр и компас, почти во всех Андроидах тоже есть и в некоторых устройствах на ВинЦеЕ. Давно пора ими пользоваться! Кроме того ситигид точно будет знать поворачиваю я или нет! Пропадут метания при плохом приеме GPS. Изменено 19 октября, 2011 пользователем zoran Ссылка на сообщение Поделиться на другие сайты
Vodolazz Опубликовано 19 октября, 2011 Поделиться Опубликовано 19 октября, 2011 В айфоне есть акселерометр и компас, почти во всех Андроидах тоже есть и в некоторых устройствах на ВинЦеЕ. Давно пора ими пользоваться! Кроме того ситигид точно будет знать поворачиваю я или нет! Пропадут метания при плохом приеме GPS. Просветите, пожалуйста, как ими пользоваться в Андроиде? Ссылка на сообщение Поделиться на другие сайты
zoran Опубликовано 19 октября, 2011 Поделиться Опубликовано 19 октября, 2011 На андроиде нету программ, использующих компас и акселерометр? Вот точно так же- программа получает данные от этих датчиков и использует для ориентации в пространстве. Ссылка на сообщение Поделиться на другие сайты
stroncium90 Опубликовано 19 октября, 2011 Поделиться Опубликовано 19 октября, 2011 Дело в том, что компас корректно будет работать только в портретном положении и если телефон размещен в авто строго перпендикулярно дороге. А это не всегда удобно. В айфоне так. В Андроиде не знаю. Ссылка на сообщение Поделиться на другие сайты
zoran Опубликовано 19 октября, 2011 Поделиться Опубликовано 19 октября, 2011 (изменено) Акселератор в любом положении работает. Впрочем всякие джунаио вроде в любом положении работают и названия созвездий на то, что видно через камеру более менее точно накладывает, а это далеко не перпендикулярно дороге. Изменено 19 октября, 2011 пользователем zoran Ссылка на сообщение Поделиться на другие сайты
dkarmanov Опубликовано 19 октября, 2011 Поделиться Опубликовано 19 октября, 2011 практически во всех более или менее современных android смартфонах есть акселерометр. Он меряет текущее ускорение по 3-м осям. Складываешь вектора ускорений, вычитаешь силу тяжести, получаешь итоговое ускорение телефона вне зависимости от его положения. Если это изменение скорости=ускорение на время, наложить это на предполагаемый путь, можно понять текущее положение без данных GPS. Примерно так работает алгоритм в двух используемых программах видеорегистраторах. Сразу оговорюсь, просто сказать, естественно есть тонкости с расчетом . В данном случае мы не говорим об абсолютной точности, а с каким-то допуском. В БМВ могут использовать данные о скорости (спидометр) и об ускорения (на основе данных ESP) Ссылка на сообщение Поделиться на другие сайты
zoran Опубликовано 19 октября, 2011 Поделиться Опубликовано 19 октября, 2011 Самое главное, что акселерометр позволяет точно определить когда мы повернули и на сколько, когда поменяли полосу. А это уже не только тоннели, но и повседневное использование! Ссылка на сообщение Поделиться на другие сайты
Vodolazz Опубликовано 20 октября, 2011 Поделиться Опубликовано 20 октября, 2011 Так я не понял акселерометр надо подключать или СГ его сам подключает в смартфоне (как игрушка по перемещению шарика по лабиринту )? Если СГ использует эти показания, то почему тогда не определяется месторасположение в пространстве при потере cигнала GPS. Ссылка на сообщение Поделиться на другие сайты
zoran Опубликовано 20 октября, 2011 Поделиться Опубликовано 20 октября, 2011 Не использует. Я и пишу, что давно пора бы уже. Ссылка на сообщение Поделиться на другие сайты
xWanderer Опубликовано 20 октября, 2011 Поделиться Опубликовано 20 октября, 2011 В БМВ могут использовать данные о скорости (спидометр) и об ускорения (на основе данных ESP) Проще использовать данные одометра и направления движения (вперед, назад) и не парится Ну может быть еще положение руля, если такие данные есть. Ссылка на сообщение Поделиться на другие сайты
borkas Опубликовано 20 октября, 2011 Поделиться Опубликовано 20 октября, 2011 Я про такое, кстати, писал, только в других темах. Можно сделать проще - как в томтом. Когда пропадает сигнал GPS (т.е. не только тоннель, а, скажем, мимо высоток проезжаем, и т.п.) программа должна просто считать, что я продолжаю двигаться либо какой-то средней скоростью (за некоторый промежуток времени), либо средней скоростью с учётом уже известных пробок. Как именно - надо просто сделать и поэкспериментировать, эмпирически не очень понятно. У том-тома была средняя, понятно. Т.е. как бы симулировать для пользователя GPS и искать новое местоположение в ожидаемом месте. Да, и предполагать, что "поциент" из туннеля не выбуравливался, и на перпендикулярные улицы не уезжал, а ехал по маршруту. Это важно (!). Плюсы 1) Будут нормальные команды на перестроения и повороты в туннеле. В томтоме они помогают, реально 2) После появления сигнала будет производится приклейка к правильному маршруту, не будет внезапных прыжков на дублёры и вообще перпендикулярные улицы. 3) Можно рассчитать среднее время на ребро (серию рёбер) по времени их проезда по маршруту. 4) Решение простое, не нужно никаких акселерометров и компасов. P.S. Интегрирование данных для определения позиции с акселерометра такого качества, как ставят на телефоны, по-моему не особенно хорошая задача - ошибка будет большая. Ссылка на сообщение Поделиться на другие сайты
zoran Опубликовано 20 октября, 2011 Поделиться Опубликовано 20 октября, 2011 (изменено) Акселерометры везде одинаковые, если мы говорим про гражданские гаджеты, а качество использования главным образом в алгоритме. Для начала надо научить программу фильтровать "помехи" и четко отличать повороты. Уже будет большое дело. Даже, когда есть сигнал GPS, момент поворота в программе имеет большую погрешность- особенно неприятно, когда карта уже повернулась, а машина еще стоит на светофоре или в пробке. С акселерометром такого не будет. В Вашей методике можно будет искать на карте куда мы могли повернуть и точнее провязывать место, когда GPS не доступен. Изменено 20 октября, 2011 пользователем zoran Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения