Я делаю робота для Sparkfun AVC. Мне было любопытно, если бы я мог использовать только знания о
Как автомобиль управляется на каждом временном интервале,
Сколько раз колеса вращались,
чтобы получить общее представление о том, где находится машина. Я бы использовал компьютерное зрение, чтобы избежать непосредственной опасности.
Самая большая проблема - любое проскальзывание, вызывающее ложные счета.
control-engineering
robotics
Даниэль Симс
источник
источник
Ответы:
Рассматривая это поэтапно, сначала давайте рассмотрим только одно переднее колесо, без скольжения в любом направлении, где у нас есть точная непрерывная мера как положения вращения, так и абсолютного угла. В этом случае вычисление текущей позиции (относительно нашей начальной точки) является относительно простой задачей тригонометрии и исчисления.
К сожалению, мы не знаем нашего абсолютного угла переднего колеса (если мы не можем оснастить его магнитометром или чем-то подобным), вместо этого мы знаем угол переднего колеса относительно кузова нашего автомобиля. Мы можем эффективно определить это как конфигурацию велосипедного типа с поворотным передним колесом и неподвижным задним колесом. Абсолютный угол переднего колеса теперь можно рассчитать по абсолютному углу кузова (равному углу заднего колеса) плюс относительный угол переднего колеса к кузову. Поэтому требуется дополнительный расчет для определения абсолютного угла заднего колеса на основе наших измерений от переднего колеса. Это будет зависеть от расстояния между передними и задними колесами (рассмотрите разницу в поворотах между одним велосипедом и тандемом, чтобы изобразить это).
Расширение этого до четырехколесного транспортного средства вызывает осложнения, поскольку некоторые колеса теперь должны проскальзывать. Мой мысленный образ для этого - два велосипеда рядом с планками, соединяющими рамы вместе, и некоторый механизм, обеспечивающий синхронизацию их управления. Если соединяющие их стержни короткие, то проскальзывания требуется очень мало. Если они очень длинные (что делает велосипеды далеко друг от друга), то одна или обе передние шины должны будут скользить в стороны, чтобы сделать крутые повороты. Пройденные расстояния также будут различаться между колесами.
Дальнейший физический анализ с этой точки зрения, вероятно, будет очень сложным, и будет зависеть от трения и массы на каждом колесе. Практический подход может состоять в том, чтобы проводить измерения от вращения двух передних колес по отдельности, а затем усреднять в некоторой точке в уравнениях, обсужденных выше.
Дальнейшие осложнения возникают, когда рассматривается проскальзывание вращения любого из колес на земле или если какие-либо из наших мер подвержены ошибкам. Для их включения потребуется очень подробная модель вашего транспортного средства, и лучшим подходом, вероятно, будет объединение оценки, полученной в результате нашего упрощенного анализа выше, с информацией от других датчиков, использующих фильтр Калмана или аналогичный. В этом случае, возможно, стоит рассмотреть, какие состояния оцениваются в вашем фильтре, поскольку включение абсолютной ориентации в качестве явного состояния и использование ее в ваших расчетах может дать вам лучшую общую оценку позиции. Умный фильтр может также включать оценку проскальзывания как часть его погрешности измерения.
источник
Основная проблема, которую я вижу в вашей идее, состоит в том, что ваша система будет иметь накопительную ошибку. Только расчета этого будет недостаточно, вам придется искать альтернативные решения.
В похожих (но, возможно, более масштабных) сценариях, например, для дронов, есть похожая проблема.
Решение заключается в использовании счетчиков вращения колес для получения быстрых, в режиме реального времени, но с ошибками входных данных (которые также содержат накопленную ошибку). В случае летающих дронов эти данные поступают с гироскопов и акселерометров, ваша задача намного проще по сравнению с их.
Но вы также должны получить альтернативный источник информации! (В случае дронов это обычно GPS). Это может быть GPS, или что-то другое - существует широкий спектр возможностей. Визуальная обработка изображений? Предварительно откалиброванные ультразвуковые маркеры? Маркер картины на полу?
Если я правильно подозреваю размер вашего эксперимента, возможно, последний будет наиболее перспективным для вас.
источник
Зная диаметр колес и количество оборотов колес за промежуток времени, вы получите как пройденное расстояние, так и среднюю скорость за этот промежуток времени.
Вам потребуется система непрерывного мониторинга, которая будет регистрировать время, обороты колес и угол колес, используемых для рулевого управления, скорее всего, относительно центральной продольной оси транспортного средства. Вам нужно будет векторизовать данные рулевого управления и добавить векторы, чтобы определить положение относительно стартового местоположения автомобиля.
источник
источник
Правильный способ сделать это с помощью так называемого фильтра частиц .
Математика для оценки вашей следующей позиции довольно проста, и другие ответы уже предоставили это, но именно так вы справляетесь с неопределенностью. Это видео объясняет основной принцип довольно хорошо. Вы заметите, что вам нужно измерить некоторые аспекты, связанные с тем, где вы находитесь, например, расстояние до известных объектов, чтение компаса, положение видимых отметок и т. Д. (Используйте для этого свое компьютерное зрение плюс все, что можете как акустические дальномеры). Он не должен быть идеальным, фильтр частиц действительно хорошо справляется с «шумными» измерениями и «шумными» (подверженными ошибкам) предсказаниями того, где вы находитесь.
Также выполните поиск по «фильтру частиц хлопка», чтобы получить дальнейшее понимание.
источник