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