Я внедряю локализацию по методу Монте-Карло для своего робота, которому дана карта окружающей среды, ее начальное местоположение и ориентация. Мой подход заключается в следующем:
- Равномерно создать 500 частиц вокруг заданной позиции
- Затем на каждом этапе:
- движение обновляет все частицы с помощью одометрии (мой текущий подход - newX = oldX + odometryX (1 + standardGaussianRandom) и т. д.)
- назначить вес каждой частице, используя данные сонара (формула для вероятности каждого датчика * = gaussianPDF (realReading), где гауссиан имеет среднее предик
- вернуть частицу с наибольшей вероятностью в качестве местоположения на этом этапе
- затем 9/10 новых частиц пересчитывают из старых в соответствии с весами, а 1/10 равномерно отбирают вокруг прогнозируемого положения
Теперь я написал симулятор для среды робота, и вот как ведет себя эта локализация: http://www.youtube.com/watch?v=q7q3cqktwZI
Я очень боюсь, что в течение более длительного периода времени робот может потеряться. Если добавить частицы в более широкую область, робот теряется еще проще.
Я ожидаю лучшей производительности. Любой совет?
localization
motion-planning
sonar
Андрей Иванов
источник
источник
Ответы:
Я только что ответил на вопрос о StackOverflow, где он уже был задан. Ссылка здесь:
/programming/21249131/monte-carlo-localization-for-mobile-robot
источник