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