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


7

Я делаю робота для Sparkfun AVC. Мне было любопытно, если бы я мог использовать только знания о

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

  2. Сколько раз колеса вращались,

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

Самая большая проблема - любое проскальзывание, вызывающее ложные счета.


2
Я отказался от этого вопроса, потому что (без обид означает), на самом деле это довольно простой геометрический / математический вопрос, который может быть легко решен с небольшим знанием из расчета 3. Похоже на вопрос типа сайта по физике / математике.
Рик Тичей

1
Я не знаю, что такое Sparkfun AVC, возможно, немного проработав, и сделав заголовок вашего вопроса короче и более информативным, это может сильно помочь. Я думаю, это интересный вопрос.
Петер

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

Задний привод с дифференциалом. Переднее рулевое управление, позволяющее вращаться независимо. Достаточно справедливо, Питер. Думаю, я не совсем уверен, как машина вращается, когда передние колеса поворачиваются. О какой оси вращается автомобиль?
Даниэль Симс

@DanielSims: ось вращения автомобиля - это пересечение оси передних и задних колес. Тем не менее, проскальзывание, боковое искажение шины (в зависимости от скорости, нагрузки, угла поверхности) и т. Д. Быстро искажают измерение. Использование интеграции для расчета местоположения очень подвержено ошибкам. Я наблюдал проект измерения смещения, основанный на измерениях 3D акселерометра; результаты были очень ошеломляющими.
SF.

Ответы:


4

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

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

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

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

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


1
Передние колеса не должны проскальзывать, если у вас рулевое управление по кругу
урод

6

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

В похожих (но, возможно, более масштабных) сценариях, например, для дронов, есть похожая проблема.

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

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

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


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

3

Зная диаметр колес и количество оборотов колес за промежуток времени, вы получите как пройденное расстояние, так и среднюю скорость за этот промежуток времени.

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


3

Distance traveled=2πr×n
rn

Fk>fcGk
FkfcGk

F=FkfcGk
τ
τ=Fr
τ=(fkfcGk)r=Iα
Iα
α=(fkfcGk)rI
fcFc
θ=ω0t+12αt2
θω0tDistance traveled=rθ
Distance traveled=r(ω0t+12((fkfcGk)rI)t2)

3

Правильный способ сделать это с помощью так называемого фильтра частиц .

Математика для оценки вашей следующей позиции довольно проста, и другие ответы уже предоставили это, но именно так вы справляетесь с неопределенностью. Это видео объясняет основной принцип довольно хорошо. Вы заметите, что вам нужно измерить некоторые аспекты, связанные с тем, где вы находитесь, например, расстояние до известных объектов, чтение компаса, положение видимых отметок и т. Д. (Используйте для этого свое компьютерное зрение плюс все, что можете как акустические дальномеры). Он не должен быть идеальным, фильтр частиц действительно хорошо справляется с «шумными» измерениями и «шумными» (подверженными ошибкам) ​​предсказаниями того, где вы находитесь.

Также выполните поиск по «фильтру частиц хлопка», чтобы получить дальнейшее понимание.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.