Экспертиза · Системы для роботов
Программное обеспечение для роботов: слой, который решает движение, модуль зрения и модуль слуха. Сегодня у нас есть офлайн-проверка и симуляция — у нас нет ничего, что управляет реальным мотором.
Мы пишем кинематику, проверку траектории и воспроизводимую физическую симуляцию, с воротами, которые блокируются, когда доказательства нет. Для зрения у нас есть прототип на стационарной камере, не на роботе. Для аудио на роботе у нас ничего не построено, и страница говорит об этом вместо того, чтобы заимствовать доказательства у телефонии. Мы не работаем с ROS.
Предложение с условиямиСегодня я прогнал всё, что можно прогнать. Контур управления существует и он серьёзный, но он офлайн: собственный модуль кинематики для шестикоординатной руки, который решил 8.400 из 8.400 точек траектории, и валидатор физики на MuJoCo 3.10.0 с 34 пройденными тестами, плюс 14 тестов по части визуализации. Оба в собственном исходном коде заявляют, что у них нет передачи на hardware и они не могут управлять реальным роботом. На виду у нас собственный прототип — детекция и отслеживание людей на фиксированной IP-камере — с одним коммитом и пустой директорией тестов. По аудио на роботе у нас ноль: всё, что есть на диске, — это голос колл-центра или сторонняя телефонная библиотека, а единственная собственная акустическая работа завершилась отрицательным результатом, записанным в приложении. ROS: ноль установлено, ноль написано. Правило требует минимум двух собственных реализаций для «сделал»; по контролю они у меня есть, но ни одна не касается hardware, а два других слоя услуги — ниже порога. Значит: предложение с условиями, с проведёнными границами.
Программное обеспечение робота имеет три слоя, которые ломаются по-разному: то, что видит и слышит, то, что решает, и то, что отправляется к моторам. По первым двум у нас есть собственные работы с тестами, которые запускаются. По третьему — мосту к hardware — у нас ничего нет, и это граница услуги, а не деталь реализации. Два наших кода говорят об этом в собственном заголовке, по-английски, именно для того, чтобы их нельзя было прочитать неправильно: модуль кинематики не имеет передачи на hardware и не может управлять реальным роботом.
То, что есть по части движения, — это проверка до движения. Собственный модуль вычисляет прямую кинематику, якобиан и обратную кинематику для шестикоординатной руки, с принудительным запасом относительно пределов каждой оси, и был использован для проверки целой траектории: 8.400 запрошенных точек, 8.400 решены, при этом максимальная скорость по оси осталась ниже 8% от каталожного предела. Отдельно валидатор физики работает на MuJoCo 3.10.0 на процессоре, с шагом расчета в одну миллисекунду, в шести сценариях, каждый по два раза, с одной и той же seed — и два прогона дают одинаковые отпечатки. Детерминизм — это не утверждение, а сравнение контрольных сумм.
В части зрения есть меньше, и честно сказать, сколько именно. Собственный прототип делает детекцию и отслеживание людей на потоках IP-камеры, с небольшим детектором из семейства YOLO, мультиобъектным трекером, оценкой позы для пяти состояний и управлением поворотом-наклоном-трансфокацией камеры. У него один коммит и пустой каталог тестов. И разница между этим и зрением робота реальна, а не формальна: камера на роботе движется вместе с ним, сцена близко, экспозиция меняется на каждом шаге, а бюджет задержки другой, потому что изображение должно дойти до решения о движении, а не до экрана. У нас нет камеры глубины, нет калибровки камеры, нет визуальной одометрии.
В части аудио для роботов у нас ничего не построено, и мы не будем заимствовать доказательства из другого места. У нас есть реальные работы по голосу для телефонии и для разговорных ассистентов, но у микрофона на роботе другие проблемы: собственный шум машины, вентиляторы и сервомоторы, которые включаются именно в момент движения робота, направление, с которого приходит голос, эхо в помещении и переменная дистанция. Единственная собственная акустическая работа, которая у нас есть, закончилась отрицательным результатом, записанным в заявке, и мы публикуем его как есть — потому что измеренный отрицательный результат полезнее, чем обещание.