Stagiaires Unity AI 2021 : Relever les défis grâce à la robotique

AI@Unity travaille sur des recherches et des produits étonnants dans les domaines de la robotique, de la vision par ordinateur et de l'apprentissage automatique. Nos stagiaires d'été ont travaillé sur des projets d'IA ayant un impact réel sur les produits.
Les robots étant de plus en plus sophistiqués et leurs tâches de plus en plus complexes, le besoin de simulation se fait de plus en plus sentir. La simulation permet aux développeurs de s'adapter, car ils n'ont pas besoin d'avoir un robot physique pour représenter tous les scénarios qu'ils doivent tester. Il permet également de développer et de tester certaines tâches au cours du développement, en particulier celles qui ne peuvent pas être effectuées tant que le robot n'est pas entièrement déployé. Notre équipe Unity Robotics se concentre sur la simulation robotique en exploitant la puissance, les atouts et l'intégrabilité du moteur Unity tout en développant des outils et des packages spécifiques à la robotique qui étendent les capacités de simulation. Le Hub Unity Robotics propose des démonstrations, des tutoriels et des packages pour vous permettre de commencer à simuler votre robot dès aujourd'hui.
Au cours de l'été 2021, nos stagiaires ont travaillé avec diligence pour apporter une contribution précieuse à notre travail au sein d'Unity. Découvrez leurs projets et leurs expériences dans les sections suivantes.
Cet été, j'ai eu la chance de travailler sur l'intégration de la cinématique inverse et des contrôleurs de robots dans Unity au sein de l'équipe de robotique. Lorsque les utilisateurs ont besoin de simuler des robots, en particulier des bras robotiques, ils doivent contrôler le robot à l'aide d'API identiques ou similaires à celles qu'ils utiliseraient pour contrôler les vrais robots. Ces API sont connues sous le nom de contrôleurs de robot, et elles fournissent une variété de fonctionnalités, y compris le déplacement du robot d'une position à une autre, le déplacement d'une seule articulation (dans l'espace des articulations), ou même le déplacement du robot dans un cercle. Les contrôleurs de robots travaillent principalement dans l'espace articulaire, c'est-à-dire que les commandes sont données sous forme d'angles cibles pour chaque articulation. Les humains, eux, ne s'intéressent qu'à la position et à l'orientation de l'effecteur dans l'espace cartésien (c'est-à-dire les coordonnées X, Y et Z dans notre monde en 3D). L'objectif de la cinématique inverse est donc de déterminer quels angles d'articulation correspondent à une position et à une orientation données dans l'espace cartésien. La cinématique inverse est un élément essentiel de la boîte à outils d'un roboticien, c'est pourquoi ce paquet rend Unity encore plus performant et plus facile à utiliser comme plateforme de simulation robotique.
L'intégration de ces fonctionnalités dans Unity s'est avérée être un immense défi qui m'a obligé à réviser mes connaissances en algèbre linéaire, en physique, en calcul, en informatique et même en pré-calcul, tout en concevant le logiciel de la manière la plus conviviale possible. J'ai également appris à simuler des robots industriels dans la RV en créant une démo où les utilisateurs peuvent déplacer un cube dans la RV que le bras robotique suit. Cependant, les défis s'accompagnent de grandes opportunités, et le fait d'avoir conçu, construit et expédié tout seul un morceau de code aussi fondamental pour permettre aux roboticiens de travailler dans Unity a vraiment été un honneur. Il est incroyablement rare qu'un employé se réjouisse de son travail et soit constamment stimulé par celui-ci au quotidien, et j'ai la chance de pouvoir dire que j'ai trouvé cette expérience chez Unity !

Dans les applications industrielles, plusieurs robots dotés de capacités spécialisées différentes doivent travailler de concert pour accomplir des tâches complexes. Ce projet montre comment la coordination entre plusieurs robots peut être réalisée via l'éditeur Unity et des paquets de simulation robotique, ainsi que ROS 2, pour effectuer une tâche de recherche et de transport dans un entrepôt. Cette démonstration met également en évidence l'avantage d'utiliser Unity par rapport à d'autres outils de simulation robotique lorsque des simulations multi-agents comme celle-ci sont difficiles à réaliser. Notre simulation se compose de deux types de robots, que nous appelons Findbot et Ferrybot. Plusieurs Findbots sont chargés de trouver des cubes cibles dans un entrepôt grâce à l'apprentissage automatique, et un Ferrybot unique navigue jusqu'à ces cubes, les ramasse et les dépose à un endroit désigné. Pour ce faire, chaque Findbot est équipé d'une caméra pour détecter le cube, tandis que le Ferrybot dispose d'un bras robotisé pour le ramasser. Cet exemple de projet sera utile aux développeurs et aux chercheurs en robotique qui souhaitent utiliser les outils robotiques d'Unity dans leurs propres simulations.
Dans l'ensemble, cette expérience a été très enrichissante, car nous avons pu utiliser et intégrer un large éventail de logiciels Unity dans notre projet. Par exemple, nous avons utilisé le Computer Vision Perception Package pour la collecte de données afin d'entraîner notre modèle d'estimation de la pose. Nous avons également utilisé un logiciel de cinématique inverse (mentionné dans le projet de Jacob ci-dessus) sur Ferrybot pour ramasser les cubes. Le fait d'être dépendant d'un projet développé parallèlement au nôtre a également constitué un défi majeur, mais cela a été une excellente occasion d'apprendre la collaboration et la communication. Il est également très gratifiant de savoir que notre projet sera utilisé pour préparer un atelier ROSCon 2021.
Si vous souhaitez acquérir une expérience concrète en travaillant avec Unity sur des projets d'intelligence artificielle ambitieux, consultez notre page sur les carrières universitaires. Vous pouvez commencer à construire votre expérience à la maison en parcourant nos démonstrations et nos tutoriels sur le Unity Robotics Hub.
