В настоящее время у меня есть трехколесный робот, который использует расширенный фильтр Калмана для отслеживания 6 переменных состояния. Входами в систему являются датчик направления, датчик расстояния и вращающийся лазер, который возвращает только информацию о несущих в известные ориентиры. В настоящее время оба энкодера расположены на главном колесе (тот, который управляет, а также питается).
6 фильтров, отслеживаемых фильтром Калмана: X, Y, Направление, Масштабирование расстояния (калибровка датчика расстояния), Калибровка рулевого управления (смещение датчика рулевого управления) и, наконец, калибровка подшипника вращающегося лазера.
С помощью этой системы мы собираем транспортное средство, даем ему известное хорошее местоположение с множеством ориентиров, немного проезжаем по нему и получаем хорошо откалиброванное транспортное средство, которое может надежно проехать большие расстояния с небольшим количеством ориентиров. Это просто и прекрасно работает. Со временем, если энкодер дрейфует, он будет автоматически следовать дрейфу и регулироваться.
Сейчас мы пытаемся применить те же принципы к роботу с несколькими управляемыми и ведущими колесами. В этом случае автомобиль сможет двигаться в любом направлении, вращаться на месте и т. Д. Каждое рулевое / ведущее колесо будет иметь свой собственный датчик поворота и расстояния, который необходимо откалибровать.
Могу ли я рассчитывать получить такую же надежность и производительность от более сложной системы? Есть ли какие-либо распространенные ошибки, на которые следует обратить внимание при расширении фильтра Калмана для включения большего количества переменных? Есть ли риск того, что он остановится на неоптимальных значениях?