Гоночный робомобиль врезался в стену из-за вывода значения NaN

Робомобиль Roborace, беспилотных автогонок в рамках этапов Формулы Е, врезался в бетонную стену во время прямой трансляции в Twitch. Инженеры из Сингапурского технологического института объяснили, почему все пошло не так.


Один из четырех инженеров опубликовал комментарий на Reddit. В нем говорится, что, фактически, неисправность произошла задолго до момента аварии, на этапе инициализации, который предназначен для вывода машины из боксов на линию старта/финиша. При этом во время прохождения пробного круга машиной управляет человек. Круг инициализации является стандартной процедурой для Roborace, пояснил инженер.

По его словам, во время этого круга инициализации «что-то произошло, и это, по-видимому, привело к тому, что сигнал рулевого управления перешел на NaN, а затем рулевое управление заблокировалось на максимальном уходе вправо». И, когда робомобиль получил команду стартовать, ускорение пошло по обычному пути, но рулевое управление было заблокировано.

NaN (Not a Number) — значение, выводимое программой, которое не является действительным числом. Обычно это результат вывода бесконечного числа или выполнения невозможного вычисления (например, деления на ноль).

Инженер подтвердил, что телеметрия транспортного средства показала неверные данные, однако они не были отмечены как недействительные и были пропущены операторами транспортных средств.

«По иронии судьбы значение NaN действительно отображалось на мониторах телеметрии, но оно обнаруживалось наряду с 1,5 тыс. других значений. Обычно операторы смотрели только на индикаторы, указывающие на отсутствие сбоев, а в нашем случае на все индикаторы были зелеными», — написал инженер.

Он объяснил, что проверки внедрили для наиболее распространенных сценариев отказа, а данный сценарий впервые проявился только во время старта, и не рассматривался на этапе анализа.

Контроллер реализован на MATLAB, а это означает, что даже при выводе NaN работа системы не остановится.

Издание Consumer Reports ранее опубликовало результаты испытаний современных систем помощи водителю. Лучшим из 17 участников теста признан комплекс Super Cruise от General Motors на Cadillac CT6, а автопилот Tesla занял второе место.

Источник