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