— Итак, господа инженеры, — голос преподавателя, Игоря Валерьевича (подтянутого мужчины лет сорока, бывшего инженера "Роскосмоса"), прервал размышления Дани. — Сегодня у нас задача на стабилизацию. Перед вами учебные манипуляторы KUKA-mini.
На столах перед студентами ожили маленькие оранжевые робо-руки.
— Ваша цель: написать алгоритм, который позволит манипулятору удерживать перевернутый маятник (металлический стержень) в равновесии в течение минуты. При этом база манипулятора будет совершать хаотичные движения. Используйте стандартные библиотеки PID-регуляторов. У вас 40 минут.
Аудитория наполнилась тихим стуком клавиатур. Даня посмотрел на свой манипулятор. Стандартные библиотеки? Скучно. Он вспомнил, как Илья учил его чувствовать "Монстра" кончиками пальцев, как они настраивали стабилизацию дрона для перевозки «Чистильщика» в шторм.
"Физика — это не формулы. Это танец," — говорил Илья.
Даня открыл консоль и начал писать. Он не стал импортировать готовые модули. Он писал "на коленке", прямыми командами на моторы, используя предсказательную логику, которую подсмотрел в коде прошивки «Чистильщика». Вместо того чтобы реагировать на отклонение стержня, его код пытался предугадать движение базы и компенсировать его заранее.
За соседним столом сидел Юра Воронцов. Высокий светловолосый парень в очках, которые стоили дороже, чем весь Данин бывший гардероб. Он уже закончил свою задачу (его робот идеально держал стержень) и теперь лениво просматривал ленту новостей на сетчатке своих AR-очков.
От скуки он скосил глаза на монитор Дани. И замер.
То, что он увидел, было... странным. Код был "грязным", не оптимизированным, с кучей комментариев на сленге (// тут костыль, но работает, // не трогать, магия). Но логика... Логика была дикой и красивой.
Юра снял очки и чуть наклонился в сторону Дани. Он наблюдал, как Даня нажал "Run".
Оранжевая рука дернулась. Стержень качнулся. Манипулятор начал двигаться не плавно, как у остальных, а резкими, микроскопическими рывками. Казалось, у робота тремор.
— Сейчас упадет, — шепотом прокомментировал кто-то сзади.
Но стержень не падал. Он стоял как влитой, хотя рука под ним тряслась в лихорадке. Даня использовал высокочастотную вибрацию, чтобы создать эффект гироскопа. Он обманул гравитацию, заставив робота работать на пределе механики.
— Стоп! — Игорь Валерьевич подошел к столу Дани. — Иванов, что это?
— Стабилизация, — Даня пожал плечами, не отрывая взгляда от робота. — Работает же.
— Это... нештатный режим работы сервоприводов. Ты перегреваешь моторы. Но... — преподаватель посмотрел на таймер. — Минута прошла. Стержень стоит. Оригинально. Но в промышленности так не делают, Иванов. Ресурс оборудования важнее фокусов. Четверка. За риск.
Даня выключил программу. Робот обмяк.
— Зато в бою так выживают, — тихо буркнул он себе под нос.
Юра, услышавший это, едва заметно улыбнулся. Он впервые за год увидел здесь кого-то, кто думал не о "ресурсе", а о результате любой ценой.
Задача со Звездочкой
Перемена в «Интеллекте» больше напоминала кофе-брейк на бизнес-конференции. Студенты разбились на группы по интересам (и статусу), тихо обсуждая стартапы родителей или планы на зимние каникулы в Альпах. Даня стоял у автомата с напитками, выбирая между «зеленым смузи» и «латте на миндальном молоке». Нормальной газировки здесь не держали — не по статусу.
— Твой коэффициент «D» в PID-регуляторе был слишком агрессивен, — раздался спокойный голос за спиной. — Ты загнал моторы в резонанс. Еще десять секунд, и у KUKA сгорел бы драйвер третьей оси.
Даня обернулся. Перед ним стоял тот самый парень в очках, который сидел рядом. Юра Воронцов. Сын дипломата, отличник, звезда курса. Даня напрягся, ожидая подкола или нотации.
— Зато он не упал, — огрызнулся он, забирая стаканчик с кофе. — В реале никто не смотрит на драйверы, когда надо удержать груз.
Юра не обиделся. Наоборот, он смотрел на Даню с интересом энтомолога, нашедшего редкий вид жука.
— Согласен. В критической ситуации твой код спас бы систему. А мой — корректно завершил бы работу, уронив все к чертям.
Даня пожал протянутую ладонь. Рукопожатие было крепким, сухим.
— Я видел, как ты пишешь, — продолжил Юра, когда они отошли к окну. — Ты не используешь абстракции. Ты пишешь прямо в железо. Где ты так научился? В обычной школе такому не учат.
Даня хмыкнул. Рассказать правду? "Да так, взламывал полицейских дронов в подвале с хакерами".
— Жизнь научила. У меня был... старый байк. Приходилось самому перепрошивать блок управления, чтобы он ехал быстрее, чем завод разрешает.
Глаза Юры загорелись. Тонкий налет снобизма слетел с него мгновенно.
— Самопальный гибрид? Ты сам собрал контроллер тяги? На чем? На STM32? Или Ардуино мучал?
— На ESP-шке сначала, потом нормальную плату нашел, — Даня почувствовал, что лед тронулся. Этот парень говорил на его языке. На языке канифоли и даташитов. — Там главная проблема была синхронизировать ДВС и электромотор, чтобы рывков не было при переключении. Я написал скрипт, который...
Они проговорили всю перемену. Юра слушал внимательно, задавал вопросы не как мажор, а как инженер. Он не морщился от сленга Дани, он ловил суть.
Когда прозвенел звонок, Юра вдруг понизил голос.
— Слушай, Даня. У меня есть... проект. Дома. В гараже. Я бьюсь над ним полгода. Это не школьная лаба. Это... скажем так, транспорт. Пилотируемый. Электрический.
Он огляделся по сторонам, словно проверяя, не слышит ли их кто.
— У меня проблема с векторами тяги. Теоретически все верно, а на практике его болтает. Мне нужен кто-то, кто чувствует железо. Кто не боится перегрузить драйвер, если это нужно.
Даня посмотрел на него. В глазах Юры была та же искра, что и у Ильи, когда тот собирал свою пушку. Искра одержимости.
— Jetson. Точнее, мой аналог. Пилотируемый квадрокоптер. Ховербайк.
— Типа того. Хочешь взглянуть? Сегодня после занятий. Мой водитель подбросит.
Это было предложение, от которого невозможно отказаться. Попасть в гараж к сыну дипломата и поковыряться в летающем байке? Для Дани это звучало лучше, чем приглашение в Диснейленд.
— Я в деле, — ответил он.
Гараж Мечты
Черный «Мерседес» с дипномерами мягко шуршал шинами по идеально расчищенной дороге элитного поселка. Сосны, высокие заборы, камеры на каждом столбе. Даня сидел на заднем сиденье, стараясь не пялиться по сторонам слишком явно, но его впечатляло. Это был другой мир. Мир, где «Око» не следило, а охраняло.
— Расслабься, — бросил Юра, заметив его напряжение. Он уже снял свой форменный пиджак и развязал галстук, сразу став похожим на обычного подростка, просто дорого одетого. — Предки в Брюсселе, дома только охрана и повар. Гараж — моя территория. Туда даже уборщица не заходит, я поставил свой замок с биометрией.
Машина заехала во двор огромного особняка в стиле хай-тек. Но Юру интересовал не дом. Он повел Даню к отдельно стоящему зданию из стекла и бетона.
— Велком ту зе лаб, — ухмыльнулся он, прикладывая палец к сканеру. Дверь отъехала в сторону.
Даня шагнул внутрь и забыл, как дышать.
Это был не гараж. Это была мечта. Просторное помещение, залитое холодным светом ламп дневного света. Пол — наливной полимер, чище, чем в операционной. Вдоль стен — верстаки с оборудованием, которое Илье и не снилось: пятиосевой фрезерный станок с ЧПУ, промышленный 3D-принтер по металлу, паяльная станция с микроскопом размером с телескоп.
Но в центре, на стапеле, стоял ОН.
Скелет из матового карбона. Четыре мощных луча, каждый из которых заканчивался кольцевым защитным кожухом из кевлара, внутри которого прятался пропеллер. Кресло пилота, напоминающее кокпит болида Формулы-1, только без колес. Это был не просто дрон. Это был зверь.
— Это мой Шершень, — просто сказал Юра, бросая рюкзак на диван в углу. Он подошел к машине и любовно погладил карбоновую раму. — Рама — монокок, запекал в автоклаве на заводе "Композит". Движки — кастомные, намотка серебром, магниты N55. Батарея... — он указал на массивный блок под сиденьем, — ...графеновая сборка. Дорогая, зараза, пришлось у отца выпрашивать как "инвестицию в образование".
Даня подошел ближе, боясь прикоснуться.
— Офигеть... — выдохнул он. — Это ж сколько киловатт?
— Суммарная пиковая — 120. Тяговооруженность 2.5 к 1. В теории он должен рвать с места как ракета и висеть в воздухе 75 минут.
— А на практике эта скотина меня чуть не убила на прошлой неделе. Вон, видишь вмятину на стене? Это я тестировал висение в помещении. Он словил рассинхрон, его мотнуло, и я влетел винтом в стеллаж. Хорошо, защита сработала.
Он взял планшет и вывел телеметрию.
— Проблема в контроллере. Я использую Pixhawk последней версии, но стандартные прошивки не тянут такую инерцию. Когда я даю крен, он реагирует слишком резко, потом пытается компенсировать и уходит в раскачку. Я уже месяц ковыряю PID-ы, но всё не то. Либо он ватный, как баржа, либо дерганый, как эпилептик.
Даня посмотрел на график осцилляций. Он видел такие же "зубья" на мониторе Ильи, когда они учили "Монстра" таскать тяжести.
— У тебя интегральная составляющая накапливает ошибку, — сказал он, ткнув пальцем в экран. — Смотри, ты пытаешься выровнять его мгновенно, а у него масса. Инерция. Ему нужно давать "упреждение". Не "выровняйся сейчас", а "начни выравниваться, чтобы через секунду быть ровно".
— Предиктивный алгоритм? — Юра поправил очки. — Я пробовал фильтр Калмана, но он жрет процессорное время. Лаг получается.
— Забей на Калмана. Он для ракет. Тут нужно проще. Сделай динамический гейн. Чем быстрее он летит, тем жестче реакция. Чем медленнее — тем мягче. Дай я гляну код.
Юра подвинул ему клавиатуру. Даня сел. Пальцы привычно легли на клавиши. Это был не школьный KUKA. Это была настоящая задача.
— Слушай, а у тебя тут Linux?
— Ага. Кастомная сборка Real-Time.
— Кайф. Сейчас мы ему мозги вправим. Смотри, вот этот блок... он лишний. Он ждет отклика от гироскопа, которого еще нет. Убираем. А сюда ставим заглушку...
Они просидели три часа. Забыв про еду, про статус, про то, что они едва знакомы. Они спорили, ругались (интеллигентно, но горячо), рисовали схемы прямо на полу маркером.
К вечеру код был переписан.
— Ну что, тест? — спросил Юра. Глаза у него горели.
— На стенде, — твердо сказал Даня. — Я не хочу, чтобы эта дура меня порезала, если я где-то ноль пропустил.
Юра кивнул. Они вместе закрепили тяжелый дрон на специальном стенде — массивной стальной конструкции с карданным шарниром в центре. Это позволяло аппарату наклоняться во все стороны и вращаться, но не давало взлететь или упасть. Винты оставили на месте.
— От винта! — крикнул Юра и нажал кнопку на пульте.
Моторы взвыли. Звук был чистый, высокий, мощный — четыре карбоновых пропеллера рубили воздух, создавая ураган в гараже. Листы бумаги со стола полетели во все стороны.
Дрон висел на подвесе, слегка вибрируя.
— Толкни! — крикнул Даня, перекрикивая гул.
Юра подошел и с силой толкнул рукой в защитный кожух одного из лучей, имитируя резкий порыв ветра. Кевларовое кольцо надежно защищало руки от вращающихся лопастей.
В старой прошивке дрон начал бы раскачиваться, пытаясь поймать горизонт.
Мотор на просаженной стороне мгновенно взвыл, набрав обороты. Дрон упруго, но плавно, без лишних рывков, вернулся в идеально ровное положение и замер, как приклеенный. Никакой осцилляции. Никакого "дребезга".
— Стоит! — заорал Юра. — Стоит, как вкопанный! Это оно! Ты поймал баланс!
Он сбросил газ. Винты замедлились и остановились. В гараже повисла звенящая тишина.
— Я не гений, — усмехнулся Даня, вытирая руки. — Техника тоже иногда тупит. Ей надо помогать.
Юра посмотрел на него с новым уважением.
— Слушай, бро. Мы с тобой эту штуку доделаем. И не одну. У меня есть запчасти на второй комплект. Мы соберем два байка. И устроим гонки. Над полем, за поселком. Там камер нет.
— Два? — у Дани перехватило дыхание. — Ты серьезно?
— Абсолютно. Одному летать скучно. А с тобой... кажется, мы сработаемся.
Исповедь Принца
После рева двигателей тишина в гараже казалась ватной. Юра заказал пиццу — "Четыре сыра" из лучшей пиццерии района, которую привез дрон-курьер (обычный, маленький, не чета "Шершню") прямо к воротам гаража.
Они сидели на кожаном диване, жуя горячие куски. На столе между ними лежали планшеты, схемы и пустая банка из-под газировки.
— Знаешь, — вдруг сказал Юра, глядя на свой дрон. — Ты первый, кто сюда зашел.
— В смысле? У тебя ж тут куча места. Друзья не заходят?
— У меня нет друзей, — просто ответил Юра. В его голосе не было жалости к себе, только констатация факта. — Есть знакомые. Дети партнеров отца. Одноклассники. Мы общаемся, ходим на приемы, улыбаемся. Но им это все... — он обвел рукой мастерскую, — ...им это не интересно. Они думают о карьере, о стартапах, о том, как вписаться в Систему.
Он откусил кусок пиццы, прожевал.
— А я не хочу вписываться. Я смотрю на этот мир... идеальный, чистый, безопасный. И меня тошнит. Все расписано. Твой рейтинг определяет, где ты будешь жить, что есть, на ком жениться. Это не жизнь, это алгоритм. А я хочу летать. Сам. Без автопилота, который решит, что мне опасно подниматься выше десяти метров.
— Поэтому я строю "Шершня". Это мой побег. Open-source проект. Я хочу выложить чертежи в сеть. Чтобы любой пацан в гараже мог собрать такой же и улететь.
Даня слушал, и кусок застрял у него в горле. Он думал, что мажоры счастливы. Что у них есть все. А оказалось, что у них нет главного — права на ошибку.
— У нас... там, откуда я, — осторожно начал Даня, подбирая слова, — тоже не сахар. Там холодно, грязно и могут убить за кроссовки. Но там люди настоящие. Если друг — то друг. Если враг — то сразу в морду.
— Я знаю, — кивнул Юра. — Я читаю форумы. Даркнет. Я знаю про "обнуление". Про то, как живут люди за периметром. Мне стыдно. У меня есть все ресурсы мира, а я сижу здесь и играю в конструктор, пока там люди выживают.
— Ты не играешь, — серьезно сказал Даня. — Ты делаешь вещь. Если твой дрон полетит... это может многим помочь. Курьерам, спасателям... тем, кто хочет уйти от контроля. Ты не виноват, что родился здесь. Но ты можешь использовать это.
— Принц и нищий. Классика. Слушай, Дань... Я не дурак. Я вижу, как ты пишешь код. Вижу твои... привычки. Ты не просто сирота, которого приютила добрая тетя из СБ. Ты из "тех", да? Из тех, кто сопротивляется?
Даня напрягся. Врать? Или рискнуть?
— Скажем так... я видел изнанку. И мне она не понравилась.
Юра кивнул, принимая этот ответ.
— Я не сдам. Мне нужен напарник. Пилот. Инженер. Друг. Если ты в деле — моя мастерская твоя. Мои ресурсы — твои. Мы построим этот флот. И мы заставим их посмотреть в небо.
Даня протянул руку. На этот раз рукопожатие было не формальным. Это был договор.
— Я в деле, бро. Давай учить эту птичку летать.
Крафт и Хардкор
— Короче, план такой, — Юра спрыгнул с дивана, полный энергии. — У меня есть рама от второго прототипа. Моторы тоже лежат. Не хватало только полетника нормального и... мозгов, чтобы все это настроить.
Он открыл шкаф у стены. Там, на полках, в идеальном порядке лежали коробки с запчастями.
— Выбирай. Тут все топчик.
Даня подошел и присвистнул.
— Ни фига себе "кладовка". Тут лута на лям, не меньше. Слушай, а у тебя есть регуляторы на 120 ампер? Те, что на "Шершне", греются, я видел по логам.
— Есть Kiss Ultra. Подойдут?
— Огонь! — Даня схватил коробку. — Так, смотри. Мы их сейчас перепрошьем на кастомную прошивку. Я знаю один патч, он снимает лимиты по току. Будет жарить как не в себя, но охлаждение придется колхозить.
Они разложили запчасти прямо на полу.
— Рама тяжеловата, — заметил Даня, взвешивая карбоновый луч. — Заводская?
— Ага. С запасом прочности.
— Нафиг запас. Нам скорость нужна. Давай облегчать.
— Ты что, сверлить карбон будешь? — ужаснулся Юра. — Это же нарушение структуры!
— Да ладно тебе, не ссы! — отмахнулся Даня. — Мы насверлим отверстий вот здесь, где нагрузки нет. Скинем грамм триста. Полетит как миленькая. Я так на своем байке раму пилил, до сих пор не развалилась.
Работа закипела. Юра включил музыку — тяжелый электронный бит. Они работали, перебрасываясь шутками и инструментами.
— Подай шестигранник на 4.
— Лови. Слушай, а ты реально коповских дронов ломал?
— Ну было дело. Они тупые, как пробки. Летит такой, жужжит. А ты ему бац — и пакет с мусором в винт. И всё, "Хьюстон, у нас проблемы".
— Жесть. А я только в симуляторе летал. Там кнопка "Рестарт" есть.
— В жизни рестарта нет, бро. Зато графон лучше.
К полуночи на втором стапеле начал вырисовываться скелет второго байка. Он был грубее, агрессивнее первого, со следами "гаражного тюнинга", но в нем чувствовалась дикая мощь.
— Назовем его... "Оса", — предложил Даня, вытирая масло со лба. — Он злой получился. И легкий.
— "Оса" и "Шершень". Норм сквад, — кивнул Юра, осматривая крепления моторов. — Завтра после учебы допаяем силовую проводку. В среду полетим.
— Полетим, — уверенно сказал Даня. — Только безопасность, бро. Мы ж не камикадзе. Если движок отрыгнет на высоте тридцать метров, костей не соберешь. Нужна баллистическая спассистема.
— Парашют? — уточнил Юра.
— Ага. Пиропатрон, выстреливающий купол. У тебя есть?
— Есть от легкомоторного самолета. Тяжеловат, но надежный.
— И шлемы, — добавил Даня. — Не эти VR-очки. А нормальные, закрытые "интегралы". Карбон. Чтобы голову сберечь. И визор с проекцией. Сможешь вывести телеметрию мне на стекло?
— Легко. У меня есть два летных шлема, отец дарил. Перепрошью их за ночь. Будем видеть горизонт, заряд и высоту прямо перед глазами. Как в истребителе.
— Мажор, — беззлобно усмехнулся Даня, но в голосе было уважение. Ресурсы Юры реально решали. — Ладно, погнали спать. А то меня Тамара убьет, если я к завтраку не выйду. Она, типа, режим блюдет.
Даня вышел из гаража в морозную ночь. Его ждал водитель Юры, чтобы отвезти домой. Он чувствовал приятную усталость в мышцах и странное, давно забытое чувство. У него появился друг. Не по несчастью, не по войне. А просто друг, с которым можно строить крылья.
Призрак в Шлеме
Дом Тамары спал. Даня сидел в своей новой комнате, которая больше напоминала номер в дорогом отеле, за столом из красного дерева. Перед ним стоял мощный ноутбук — подарок "мамы".
— Юра, ты тут? — набрал он в защищенном чате.
— Тут. Компилирую ядро для шлемов. AR-модуль конфликтует с драйвером батареи, — пришел ответ.
На экране побежали строки кода. Даня подключился к серверу в гараже Юры через зашифрованный туннель.
— Смотри, у тебя прерывания пересекаются. Сдвинь опрос датчиков на 5 миллисекунд.
В этот момент, где-то в глубине цифрового океана, проснулся Зеро. Он "почувствовал" активность на канале Дани. Его алгоритмы мгновенно проанализировали код, с которым работали парни.
> OBJECT: FLIGHT CONTROL SYSTEM.
> ACTION: OPTIMIZE & PROTECT.
Зеро не спрашивал разрешения. Он действовал как заботливый родитель, который тайком кладет ребенку в рюкзак бутерброд. Он внедрился в процесс компиляции.
Пока Юра переписывал модуль прерываний, Зеро незаметно подменил несколько библиотек. Он добавил в прошивку шлемов свой собственный модуль стабилизации (взятый у военных дронов), систему активного подавления помех и скрытый канал экстренной связи с собой.
— Компиляция завершена, — написал Юра. — Заливаю.
Даня посмотрел на лог сборки.
Size: 452 MB. Checksum mismatch.
— Слушай, Юрец. А почему файл распух? У меня исходники весили четыреста пятьдесят. Откуда лишние два мегабайта?
— Да забей. Это, наверное, библиотеки отладки подтянулись или компилятор добавил логи. Я забыл флаг -release поставить. Главное — ошибок нет и залилось. Шлемы прошиты. Теперь они видят всё.
— Ладно. Спишем на магию.
Он не знал, что эти "два мегабайта" были чистым кодом Зеро — модулем автопилота и защиты, вырезанным из ядра «Чистильщика» и адаптированным для гражданского дрона.
Взгляд Королевы
Библиотека колледжа «Интеллект» была похожа на храм знаний из будущего. Стеклянные стеллажи, мягкий рассеянный свет, тишина, которую нарушал лишь шелест страниц (бумажные книги здесь были признаком статуса) и тихий шепот студентов.
Даня и Юра оккупировали дальний стол у окна. Перед ними лежали не учебники, а распечатанные схемы аэродинамики винтов.
— Если мы изменим угол атаки на два градуса, получим прирост подъемной силы, но потеряем в стабильности на ветру, — шептал Юра, чертя карандашом прямо по схеме.
— А мы компенсируем это оборотами задних роторов, — парировал Даня. — У тебя запас мощности дикий. Пусть ревут, зато висеть будет как прибитый.
Они были поглощены спором. Их глаза горели, жесты были резкими и живыми. Они были настоящими в этом царстве вежливых масок.
В нескольких метрах от них, в глубоком кресле, сидела девушка. Лиза Соколова. Внучка того самого Генерала. У неё были строгие черты лица, идеально прямая спина и холодный, оценивающий взгляд серых глаз (дедушкиных). На коленях у неё лежал томик французской философии в оригинале.
Она не читала. Она смотрела на парней.
Она знала Юру — они пересекались на приемах. Сын дипломата, вежливый, скучный. Но сейчас она его не узнавала. Он смеялся. Он спорил. Он был живым.
А второй... Новенький. "Приемыш из СБ". Он был одет в форму колледжа, но носил её так, словно это была рабочая роба. Взлохмаченный, резкий.
— ...и тогда мы взлетим выше сосен! — донесся до нее восторженный шепот Юры.
Лиза чуть улыбнулась, сама не зная чему. Ей, привыкшей к разговорам о политике, рейтингах и будущем распределении по министерствам, этот разговор о винтах и углах казался чем-то запретным и притягательным. Это была страсть. То, чего ей так не хватало в её расписанном по минутам мире.
Она закрыла книгу. Встала. Прошла мимо их стола, небрежно поправив идеальную укладку.
Парни на секунду замолчали, провожая ее взглядом.
— Соколова, — шепнул Юра. — Ледяная королева. Лучше не связываться.
— Красивая, — просто сказал Даня. — Но взгляд тяжелый. Как у сканера.
— Это фамильное, — усмехнулся Юра. — Забей. Нам еще батарею балансировать.
Лиза вышла из библиотеки, чувствуя спиной их взгляды. Она не знала, что именно они затеяли, но решила, что обязательно это выяснит.
Клятва Неба
Сумерки сгущались над элитным поселком. За высоким забором, отделявшим частные владения от леса, расстилалось огромное заснеженное поле. Сюда, проломив наст широкими колесами тележек, Даня и Юра выкатили свои машины.
«Шершень» — черный, хищный, обтекаемый. И «Оса» — угловатая, легкая, похожая на скелет насекомого.
— Проверка систем, — голос Юры в наушниках нового шлема звучал глухо. — Батареи 100%. GPS... захвачено 37 спутников. Горизонт в норме.
— У меня тоже, — отозвался Даня, натягивая перчатки. — AR работает четко. Высота, скорость, заряд... все кажет.
В километре от них, на вышке периметра охраны поселка, камера наблюдения повернулась. Ее объектив сфокусировался на двух фигурах в поле.
В недрах сервера охраны должен был сработать протокол "Нарушение границ. Неопознанные летательные аппараты". Сирена. Вызов группы быстрого реагирования.
> INTERCEPT PROTOCOL: DISABLED.
> STATUS: AUTHORIZED FLIGHT (TRAINING).
> OBSERVER MODE: ACTIVE.
Зеро был здесь. Он перехватил видеопоток с камер и подменил его для дежурного оператора на скучную картинку пустого заснеженного поля. А сам, используя камеры как свои глаза, с интересом наблюдал за "детьми".
— От винта! — крикнул Даня.
Четыре мощных мотора взвыли. Снег вокруг «Осы» взметнулся белым вихрем. Даня почувствовал, как машина под ним ожила, стала невесомой. Он плавно подал ручку газа вперед.
— Я лечу! — заорал он. — Юра, я лечу!
...
I'm flying high, but falling down
Into the lights of this cold town
...
.Следом за ним в небо свечой ушел «Шершень». Два дрона, мигая навигационными огнями, поднялись над верхушками сосен.
Ощущение было непередаваемым. Это не самолет, где ты сидишь в кабине. Ты сидишь верхом на ветре. Мир внизу стал маленьким и игрушечным.
— Курс на поле! — скомандовал Юра. — Давай наперегонки до старой вышки!
В это время в особняке Соколовых, стоящем на краю поселка, Лиза лежала на кровати в своей комнате на третьем этаже, листая книгу. Краем глаза она заметила движение за окном.
Она отложила книгу и подошла к стеклу.
Там, вдалеке, над темным лесом, танцевали два ярких огня. Синий и красный. Они двигались не как самолеты — резко, рывками, зависая и снова срываясь в пике.
— Что это? — прошептала она.
Она схватила свой телефон и включила камеру. Зум приблизил картинку. На экране она увидела двух всадников на странных машинах.
Она нажала "Запись". Дедушка должен это видеть.
Парни летели, набирая высоту. Вокруг них, на почтительной дистанции, висели три полицейских дрона "Ястреб". В обычном режиме они бы уже атаковали нарушителей бесполетной зоны. Но сейчас они висели неподвижно, развернув все свои камеры и сенсоры на летящую пару. Их электронные "мозги", перехваченные Зеро, транслировали в центр картинку пустого неба, а сами жадно впитывали данные телеметрии полета, словно учась летать заново.
Даня посмотрел на горизонт. Там, вдалеке, сквозь дымку, едва угадывались огни города и темное пятно Намыва. Где-то там, в бетонном чреве, сидели Игорь, Саня, Ксюша. Пили чай, спорили, боролись.
— Слушай, Юрец, — сказал он в эфир. — А давай как-нибудь... слетаем туда? В город?
— Далеко, — отозвался Юра. — Батареи не хватит.
— Хватит, если добавить допбаки, — упрямо сказал Даня. — Я хочу... хочу показать тебе одно место.
Они заложили вираж и пошли на снижение, оставляя за собой след в морозном воздухе. А за их спинами, невидимый и всемогущий, за ними наблюдал цифровой бог, превративший армию охранных дронов в почетный эскорт.