Резервирование датчиков
Один датчик — это одна точка отказа. Пока он исправен, всё хорошо; стоит ему соврать или отвалиться — робот слепнет и делает глупости. Инженерный ответ прост и стар как мир: не полагайся на единственный источник. Несколько датчиков вместо одного — и робот перестаёт зависеть от исправности каждого в отдельности.
Почему один датчик — это плохо
Робот едет по линии с помощью одного инфракрасного датчика. Датчик поймал блик, ошибся на мгновение — и робот свернул в стену. Никакой ошибки в программе нет, просто мы доверили важное решение единственному прибору, а он на секунду ошибся. С единственным датчиком любая его осечка мгновенно становится осечкой всего робота.
Больше датчиков — и берём медиану
Поставим не один датчик, а несколько и будем смотреть на них вместе. Простой и надёжный приём — взять медиану, то есть среднее по «серединке». Если три датчика показывают 20, 21 и 200, то медиана — 21: явный выброс в 200 просто не попадает в середину и не влияет на решение.
Голосование: правило большинства
Когда датчиков несколько, можно устроить голосование. Если из пяти датчиков линии четыре говорят «линия справа», а один — «слева», робот верит большинству. Один сбойный датчик оказывается в меньшинстве и не сбивает робота с курса. Так же поступают в ответственной технике: ставят три одинаковых узла и верят тем двум, что согласны между собой.
Запасной датчик другого типа
Ещё надёжнее — дублировать датчик прибором другого типа, который ошибается по-другим причинам. Например, основное расстояние робот меряет ультразвуком, но держит про запас инфракрасный дальномер. Ультразвук плохо видит мягкие ткани, инфракрасный — блестящие поверхности; вместе они закрывают слабости друг друга. Два одинаковых датчика ошибутся одинаково, два разных — подстрахуют.
Итог для нашего робота
Разведчик берёт медиану по нескольким передним дальномерам, чтобы случайный выброс не заставил его резко тормозить на пустом месте, и держит датчик другого типа про запас на случай неудобной поверхности. Стоимость — немного лишнего тока и проводов; выгода — робот, который не слепнет от одной осечки.