Стажеры Unity AI 2021: Решение проблем с помощью робототехники

AI@Unity работает над удивительными исследованиями и продуктами в области робототехники, компьютерного зрения и машинного обучения. Наши летние стажеры работали над проектами в области искусственного интеллекта с реальным воздействием на продукт.
По мере того как роботы становятся все более сложными, а задачи роботов - все более сложными, потребность в моделировании возрастает. Моделирование позволяет разработчикам масштабироваться, так как им не нужно иметь физического робота для представления каждого сценария, который необходимо протестировать. Это также позволяет разрабатывать и тестировать определенные задачи в процессе разработки, особенно те, которые невозможно выполнить до полного развертывания робота. Наша команда Unity Robotics сосредоточена на создании возможностей для моделирования робототехники, используя мощь, активы и интегрируемость движка Unity, а также создавая инструменты и пакеты для робототехники, расширяющие возможности моделирования. На сайте Unity Robotics Hub представлены демо-версии, учебные пособия и пакеты, с помощью которых вы сможете начать моделировать своего робота уже сегодня.
В течение лета 2021 года наши стажеры усердно работали, внося ценный вклад в нашу работу в Unity. Читайте об их проектах и опыте в следующих разделах.
Этим летом у меня была потрясающая возможность поработать над интеграцией инверсной кинематики и контроллеров роботов в Unity в составе команды робототехников. Когда пользователям нужно смоделировать роботов, в частности роботизированные руки, они должны управлять ими с помощью тех же или аналогичных API, которые они используют для управления настоящими роботами. Эти API называются контроллерами роботов и обеспечивают различные функции, включая перемещение робота из одного положения в другое, перемещение одного сустава (в пространстве суставов) или даже перемещение робота по кругу. Контроллеры роботов работают преимущественно в пространстве суставов - т.е. команды подаются в виде целевых углов для каждого сустава. Однако человеку важны только положение и ориентация концевого эффектора в декартовом пространстве (т.е. координаты X, Y и Z в нашем трехмерном мире). Таким образом, цель обратной кинематики - определить, какие суставные углы соответствуют заданному положению и ориентации в декартовом пространстве. Инверсная кинематика - важнейшая часть инструментария робототехника, поэтому данный пакет делает Unity еще более удобной и простой в использовании платформой для моделирования робототехники.
Интеграция этих функций в Unity оказалась сложнейшей задачей, потребовавшей от меня подтянуть знания по линейной алгебре, физике, калькуляции, информатике и даже прекалькуляции, а также разработать максимально удобное для пользователя программное обеспечение. Я также узнал о моделировании промышленных роботов в VR, создав демонстрацию, в которой пользователи могут перемещать куб в VR, за которым следует роботизированная рука. Однако вместе с трудностями приходят и большие возможности, и для меня было большой честью в одиночку разработать, создать и отправить такой фундаментальный код для робототехников в Unity. Невероятно редко случается так, что сотрудники с нетерпением ждут своей работы и ежедневно испытывают постоянный интерес к ней, и мне повезло, что я нашла такой опыт в Unity!

В промышленных приложениях для выполнения сложных задач необходимо согласованно использовать несколько роботов с различными специализированными возможностями. Этот проект демонстрирует, как с помощью редактора Unity и пакетов моделирования робототехники, а также ROS 2 можно обеспечить координацию между несколькими роботами для выполнения задачи поиска и переправки грузов на складе. Эта демонстрация также подчеркивает преимущество использования Unity по сравнению с другими инструментами моделирования робототехники, где многоагентное моделирование, подобное этому, является сложной задачей. Наша симуляция состоит из двух типов роботов, которые мы называем Findbot и Ferrybot. Несколько ботов Findbots отвечают за поиск целевых кубов на складе с помощью машинного обучения, а один бот Ferrybot перемещается к этим кубам, забирает их и отвозит в указанное место. Для этого каждый Findbot оснащен камерой для обнаружения куба, а Ferrybot - роботизированной рукой для его захвата. Этот пример проекта будет полезен разработчикам робототехники и исследователям, которые хотят использовать инструменты Unity для робототехники в своих собственных симуляторах.
В целом, это был отличный опыт, потому что мы смогли использовать и интегрировать в наш проект широкий спектр пакетов Unity. Например, мы использовали пакет Computer Vision Perception Package для сбора данных, чтобы обучить нашу модель оценки позы. Мы также использовали пакет инверсной кинематики (упомянутый в проекте Джейкоба выше) на Ferrybot для сбора кубиков. Принять участие в проекте, который разрабатывался параллельно с нашим, тоже было непросто, но это была отличная возможность научиться сотрудничеству и общению. Также очень приятно осознавать, что наш проект будет использован для подготовки семинара ROSCon 2021.
Если вы хотите получить реальный опыт, работая с Unity над сложными проектами в области искусственного интеллекта, загляните на страницу карьеры в нашем университете. Вы можете начать создавать свои опыты дома, просмотрев наши демонстрационные ролики и учебные пособия на сайте Unity Robotics Hub.
