На городских соревнованиях юных робототехников было три правила.
Первое: робот должен ехать сам.
Второе: руками его не толкать.
Третье: если робот врезался в стул жюри, это считается препятствием, а не судьёй.
Последнее правило появилось после прошлогоднего финала.
В этом году команда школы № 14 привезла робота по имени Шмель. Его собирали трое: восьмилетний Костя отвечал за датчики, девятилетняя Рита — за программу, а десяилетний Арсений — за корпус и моторы.
Шмель был жёлтым, квадратным и слегка похожим на ящик для инструментов, который решил стать серьёзным.
— Победим, — сказал Арсений.
— Сначала калибровка, — сказала Рита.
— Потом победим.
Костя ничего не сказал. Он протирал передний датчик мягкой салфеткой.
Задача финала была простой на словах: проехать по полосе с поворотами, объехать три препятствия, взять маленький пластиковый кубик и положить его в круг на финише.
Шмель делал это в мастерской за сорок две секунды.
На тренировочной площадке — за сорок пять.
На соревновании в первом заезде он ехал идеально.
До последнего поворота.
Там зрители начали хлопать.
Шмель остановился.
— Что он делает? — прошептал Арсений.
Шмель постоял две секунды.
Потом медленно поехал назад.
— Нет-нет-нет!
Он объехал пустое место, словно перед ним стояла невидимая коробка, снова повернул и только после этого доехал до финиша.
Пятьдесят девять секунд.
— Что это было? — спросил тренер Павел Олегович.
Рита уже открывала ноутбук.
— Ничего в программе не менялось.
— Датчик расстояния? — спросил Костя.
— На телеметрии чисто.
Арсений посмотрел на таблицу результатов.
Они были вторыми.
— Ещё два заезда, — сказал он. — Исправим.
Во втором заезде Шмель ехал быстрее.
Кубик взял с первого раза.
На прямой перед финишем зал снова зашумел.
Кто-то крикнул:
— Давай, Шмель!
Робот резко замедлился.
Рита схватилась за голову.
— Он опять!
Шмель пропустил вперёд робота команды из лицея, хотя тот ехал по соседней дорожке и никак ему не мешал.
Потом спокойно финишировал.
Снова вторым.
— Он специально, — сказал Арсений.
— Роботы ничего не делают специально, — ответила Рита.
— Наш делает.
Павел Олегович поднял руку.
— Спорить потом. Сейчас диагностика.
До третьего, последнего заезда оставалось сорок минут.
Команда унесла Шмеля в техническую комнату.
Костя проверил ультразвуковой датчик.
Рита — программу движения.
Арсений поднял робота на подставку и осмотрел колёса.
Всё работало.
— Может, батарея проседает? — предложил Арсений.
— Напряжение нормальное.
— Помехи?
— Какие?
— Не знаю. Соревновательные.
Костя сидел на полу и смотрел журнал датчиков.
— А почему здесь есть ещё одна колонка?
Рита наклонилась.
— Какая?
— «Sound event».
Она замерла.
— Это осталось от школьной выставки.
Весной Шмелю добавили маленький микрофон. Тогда он должен был ехать к человеку, который хлопнет два раза. После выставки функцию отключили.
— Отключили? — переспросил Павел Олегович.
Рита быстро открыла настройки.
— В основном модуле — да.
— А в модуле безопасности?
Рита ничего не ответила.
Нашла строку.
Прочитала.
Потом закрыла глаза.
— Вот.
— Что?
— Если микрофон слышит резкий громкий звук, система считает это возможным столкновением и снижает скорость.
Арсений рассмеялся.
— Он боится аплодисментов!
— Он не боится, — сказала Рита. — У него нет страха.
— Тогда почему отъезжает?
— Потому что мы сами приказали ему считать хлопок опасностью.
Костя посмотрел на экран.
— Но почему он ещё и объезжает пустое место?
Оказалось, что два защитных правила работали вместе.
Громкий звук включал осторожный режим.
А в осторожном режиме Шмель сильнее доверял боковым датчикам. Когда рядом проходил человек или двигался другой робот, он строил запасной обход.
Получалось, будто Шмель вежливо уступал дорогу всему залу.
— Убираем микрофон, — сказал Арсений.
— Нельзя просто выдрать, — сказала Рита. — Тогда модуль выдаст ошибку.
— Отключим в программе.
Рита уже печатала.
Костя вдруг спросил:
— А мы имеем право менять программу между заездами?
Все остановились.
Павел Олегович взял правила соревнований.
Изменять параметры разрешалось только до первого официального старта.
Между заездами можно было чинить поломку, менять батарею, крепёж и повреждённые детали, но нельзя переписывать алгоритм.
— Значит, всё, — сказал Арсений.
— Значит, не всё, — ответил тренер. — Значит, играем по правилам.
— И снова будем вторыми.
Рита посмотрела на него.
— А если третьими?
— Отлично. Ещё лучше.
Костя молчал.
Он смотрел на Шмеля.
— Можно изменить не программу, а условия?
— Какие условия? — спросила Рита.
— Чтобы ему не хлопали.
Арсений фыркнул.
— Попросим весь зал сидеть тихо?
— Нет. Мы можем предупредить судью, что робот реагирует на громкий звук.
Павел Олегович покачал головой.
— Судья не будет менять соревнование ради нашей ошибки.
— Я не про соревнование. Просто попросить не объявлять наш финиш в микрофон, пока он не остановится.
Это было разрешено.
Судья согласился.
Но оставалась публика.
Третий заезд начался в три часа.
Перед стартом ведущий сказал:
— Следующая команда — школа номер четырнадцать, робот «Шмель»!
Зал захлопал.
Шмель ещё стоял на стартовой площадке, поэтому ничего не произошло.
— Три, два, один!
Он поехал.
Первое препятствие.
Поворот.
Кубик.
Всё точно.
Костя смотрел не на робота, а на зрителей.
Пока было тихо.
На последней прямой впереди шёл робот лицея.
Шмель его догонял.
Арсений сжал кулаки.
— Давай.
Кто-то в зале начал хлопать.
Один человек.
Потом второй.
Шмель замедлился.
— Ну всё, — прошептал Арсений.
Но Костя заметил другое.
Робот лицея тоже сбросил скорость — у него застрял кубик в захвате.
Шмель продолжал ехать медленно.
До финиша оставалось два метра.
Лицейский робот остановился совсем.
Шмель мог стать первым.
Зрители увидели это и зашумели громче.
Шмель почти замер.
Рита закрыла лицо ладонями.
Арсений сказал:
— Нет. Только не сейчас.
Костя вдруг засмеялся.
— Что смешного?
— Посмотри.
Шмель не остановился.
Он очень медленно объехал линию, которую сам счёл препятствием, подполз к кругу и положил кубик.
Судья поднял руку.
— Финиш.
На табло появилось время.
Шмель был вторым.
Первым оказался совсем другой робот, который закончил заезд раньше на соседней трассе.
Арсений уставился на таблицу.
Потом сел на пол.
— Он снова второй.
— Зато стабильно, — сказала Рита.
Костя присел рядом со Шмелём.
— Мы сами его таким сделали.
— Каким?
— Осторожным.
После награждения команда получила серебряные медали.
Арсений сначала держал свою медаль двумя пальцами, будто она была подозрительной.
Потом спросил:
— Если бы мы отключили этот модуль заранее, мы бы выиграли?
Рита пожала плечами.
— Может быть.
— Ненавижу «может быть».
— Тогда робототехника тебе не подходит.
Павел Олегович рассмеялся.
На следующей тренировке они не просто отключили микрофон.
Они переписали защиту нормально.
Шмель научился различать хлопок, голос, удар о препятствие и шум мотора.
Рита записала тесты.
Костя сделал таблицу звуков.
Арсений предложил самый важный тест:
— Кричим все вместе.
— Зачем?
— Чтобы он был готов к победе.
Они поставили Шмеля на старт.
Павел Олегович поднял руку.
— Три, два, один!
Все закричали и захлопали.
Шмель спокойно проехал прямо.
У стены остановился ровно там, где должен.
Арсений поднял медаль и сказал:
— Теперь первое место.
Костя покачал головой.
— Сначала калибровка.
Рита улыбнулась.
— Вот теперь правильно.