В робототехнике сенсорная информация всегда будет несовершенной. Существует множество способов объяснить это, включая расширенный фильтр Калмана.
Однако сегодня я расскажу о простом способе использования медианного фильтра (с помощью некоторых стандартных библиотек) для реализации медианного фильтра, помогающего удалить чрезмерный «шум» из информации датчика.
#include ‹algorithm› //это использование функции сортировки
#include ‹vector› //это использование векторов
std::vector‹double› unsorted_yaws;
unsorted_yaws.push_back(4.5); // вернуть двойные значения
unsorted_yaws.push_back(7.8);
unsorted_yaws.push_back(9.2);
unsorted_yaws.push_back(2.1);
std::sort(unsorted_yaws.begin(), unsorted_yaws.end());
//возвращаем медианное значение
если (unsorted_yaws.sizes() % 2 == 0) {
std::cout ‹‹ unsorted_yaws[unsorted_yaws.sizes() /2] + unsorted_yaws[(unsorted_yaws.sizes() /2)–1];
}еще {
std::cout ‹‹ unsorted_yaws[unsorted_yaws.sizes() /2];
}
Надеюсь, этот средний фильтр, упс, я имею в виду медианный фильтр поможет!