Intégration profonde de la vision et de l'apprentissage robot.
Lorsque deux mains de robot travaillent ensemble en douceur pour plier des vêtements, verser du thé et emballer des chaussures, ainsi que le robot humanoïde 1X NEO qui a fait la une des journaux récemment, vous pouvez y avoir un sentiment que nous commençons à entrer dans l’ère des robots.
En fait, ces mouvements soyeux sont le produit d'une technologie robotique avancée + d'une conception de cadre exquise + de grands modèles multimodaux.
Nous savons que les robots utiles nécessitent souvent des interactions complexes et exquises avec l'environnement, et que l'environnement peut être exprimé sous forme de contraintes dans les domaines spatial et temporel.
Par exemple, si vous voulez qu'un robot verse du thé, le robot doit d'abord saisir la poignée de la théière et la maintenir verticalement sans renverser le thé, puis le déplacer doucement jusqu'à ce que l'embouchure du pot soit aligné avec l’embouchure de la tasse. Inclinez ensuite la théière en biais. Ici, les contraintes incluent non seulement des objectifs intermédiaires (tels que l'alignement de l'embouchure du pot avec l'embouchure de la tasse), mais également des états de transition (tels que maintenir la théière verticale). Ensemble, ils déterminent les exigences spatiales, temporelles et autres combinaisons de ; les actions du robot par rapport à l'environnement.
Cependant, le monde réel est complexe et la manière de construire ces contraintes est un problème très difficile.
Récemment, l'équipe de Li Feifei a fait une percée dans cette direction de recherche et a proposé ReKep/Relational Keypoint Constraints. En termes simples, cette méthode représente la tâche comme une séquence de points clés de relation. De plus, ce framework peut également être bien intégré à de grands modèles multimodaux tels que GPT-4o. À en juger par la vidéo de démonstration, cette méthode fonctionne plutôt bien. L'équipe a également publié le code pertinent. Cet article est rédigé par Wenlong Huang.
Titre de l'article : ReKep : Raisonnement spatio-temporel des contraintes relationnelles de points clés pour la manipulation robotique
Article Adresse : https://rekep-robot.github.io/rekep.pdf
Site Web du projet : https://rekep-robot.github.io
Adresse du code : https://github.com/huangwl18/ReKep
Li Feifei a déclaré que ce travail démontre une intégration plus profonde de la vision et de l'apprentissage des robots ! Bien que le document ne mentionne pas World Labs, une société d'IA axée sur l'intelligence spatiale fondée par Li Feifei au début de l'année 5, ReKep a clairement un grand potentiel en matière d'intelligence spatiale.
Méthode
Contrainte de point clé de relation (ReKep)
Tout d'abord, regardons une instance ReKep. On suppose ici qu’un ensemble de K points clés a été spécifié. Plus précisément, chaque point clé k_i ∈ ℝ^3 est un point 3D sur la surface de la scène avec des coordonnées cartésiennes.
Une instance ReKep est une fonction comme celle-ci : ? : ℝ^{K×3}→ℝ ; elle peut mapper un ensemble de points clés (notés ?) en un coût illimité, quand ?(?) ≤ 0, la contrainte est satisfaite. En ce qui concerne l'implémentation spécifique, l'équipe a implémenté la fonction ? en tant que fonction Python sans état qui contient des opérations NumPy sur des points clés, qui peuvent être non linéaires et non convexes. Essentiellement, une instance ReKep code une relation spatiale souhaitée entre les points clés.
Cependant, une tâche opérationnelle implique généralement plusieurs relations spatiales et peut comporter plusieurs phases liées au temps, chacune nécessitant des relations spatiales différentes. Pour cela, l'approche de l'équipe consiste à décomposer une tâche en N étapes et à utiliser ReKep pour spécifier deux types de contraintes pour chaque étape i ∈ {1, ..., N} :
Un ensemble de contraintes de sous-objectifs
Un ensemble de contraintes de chemin
où code une relation de points clés à atteindre à la fin de l'étape i, et code une relation de points clés à satisfaire pour chaque état de l'étape i. Prenons comme exemple la tâche de verser le thé de la figure 2, qui comprend trois étapes : saisir, aligner et verser le thé.
La contrainte du sous-objectif de la phase 1 est d'atteindre l'effecteur final vers la poignée de la théière. La contrainte du sous-objectif de l'étape 2 est de maintenir l'embouchure de la théière au-dessus de l'embouchure de la tasse. De plus, la contrainte de cheminement de l'étape 2 est de maintenir la théière verticale pour éviter de renverser le thé. La dernière contrainte du sous-objectif de l’étape 3 est d’atteindre l’angle de versement du thé spécifié.
Utilisez ReKep pour définir la tâche d'opération comme un problème d'optimisation contraint
Utilisez ReKep pour convertir la tâche d'opération du robot en un problème d'optimisation contraint impliquant des sous-objectifs et des chemins. La pose de l’effecteur final est notée ici ? ∈ SE (3). Afin d'effectuer la tâche d'opération, l'objectif ici est d'obtenir la trajectoire globale en temps discret ?_{1:T} :
Autrement dit, pour chaque étape i , l'optimisation Le but du problème est le suivant : étant donné un ensemble donné de contraintes ReKep et de coûts auxiliaires, trouver une pose d'effecteur final comme prochain sous-objectif (et son temps associé), et la séquence de poses qui atteint ce sous-objectif. Cette formule peut être considérée comme du tir direct en optimisation de trajectoire.
Décomposition et instanciation d'algorithme
Afin de résoudre la formule 1 ci-dessus en temps réel, l'équipe a choisi de décomposer le problème global et de se concentrer uniquement sur le sous- objectif et atteindre l'objectif Le chemin correspondant du sous-objectif est optimisé. L'algorithme 1 donne le pseudocode de ce processus.
La formule de solution pour le problème du sous-objectif est :
La formule de solution pour le problème du chemin est :
Retour en arrière
L'environnement réel est complexe et changeant Parfois au cours de la tâche, les contraintes de sous-objectifs de l'étape précédente peuvent ne plus tenir (par exemple). Par exemple, lorsque la tasse de thé est versée) retirée), cette fois, vous devez repenser. L'approche de l'équipe consiste à vérifier le chemin pour déceler les problèmes. Si des problèmes sont détectés, revenez itérativement à l’étape précédente.
Modèle avancé des points clés
Afin de résoudre les équations 2 et 3, l'équipe a utilisé un modèle avancé h, qui peut être utilisé lors de l'optimisation processus Estimer Δ? sur la base de Δ?. Plus précisément, étant donné un changement dans la pose de l'effecteur final Δ?, le changement de position du point clé est calculé en appliquant la même transformation de rigidité relative ?′[saisi] = T_{Δ?}・?[saisi], tout en supposant que d'autres clés Le point demeure.
Proposition de points clés et génération ReKep
Afin de permettre au système d'effectuer librement diverses tâches dans des situations réelles, l'équipe a également utilisé de grands modèles ! Plus précisément, ils ont conçu un pipeline utilisant de grands modèles visuels et des modèles visuo-linguistiques pour mettre en œuvre la proposition de points clés et la génération ReKep.
Proposition de point clé
Étant donné une image RVB, DINOv2 est d'abord utilisé pour extraire les fonctionnalités au niveau du patch F_patch. Une interpolation bilinéaire est ensuite effectuée pour suréchantillonner les caractéristiques à la taille de l'image d'origine, F_interp. Pour garantir que les propositions couvrent tous les objets pertinents de la scène, ils ont utilisé Segment Anything (SAM) pour extraire tous les masques M = {m_1, m_2, ... , m_n} de la scène.
Pour chaque masque j, regroupez les caractéristiques du masque F_interp[m_j] en utilisant les k-moyennes (k = 5) et la mesure de similarité cosinus. Les centroïdes des clusters sont utilisés comme points clés candidats, qui sont ensuite projetés aux coordonnées mondiales ℝ^3 à l'aide d'une caméra RVB-D calibrée. Les autres candidats à moins de 8 cm du point clé du candidat seront filtrés. Dans l’ensemble, l’équipe a constaté que ce processus peut identifier un grand nombre de régions d’objets à granularité fine et sémantiquement significatives.
Génération ReKep
Après avoir obtenu les points clés candidats, ils sont ensuite superposés à l'image RVB originale et étiquetés avec des numéros. Combiné avec les instructions linguistiques de la tâche spécifique, GPT-4o est ensuite interrogé pour générer le nombre d'étapes requises ainsi que les contraintes de sous-objectif et les contraintes de chemin correspondant à chaque étape i.
Expérience
L'équipe a vérifié la conception des contraintes à travers des expériences et a essayé de répondre aux trois questions suivantes :
1. Dans quelle mesure le framework fonctionne-t-il. les opérations automatisées de construction et de composition se comportent-elles ?
2. Dans quelle mesure le système se généralise-t-il à de nouveaux objets et stratégies de manipulation ?
3. Comment divers composants peuvent-ils contribuer à une défaillance du système ?
Utilisation de ReKep pour faire fonctionner deux bras robotiques
Ils ont examiné le système à travers une série de tâches pour des scénarios à plusieurs étapes (m), sur le terrain/pratiques (w), comportement à deux mains (b) et réaction (r). Ces tâches comprennent le versement du thé (m, w, r), le rangement des livres (w), le recyclage des canettes (w), l'enregistrement des boîtes (w, r), le pliage du linge (b), l'emballage des chaussures (b) et le pliage collaboratif (b, r).
Les résultats sont présentés dans le tableau 1, où les données sur le taux de réussite sont rapportées.
Dans l'ensemble, le système nouvellement proposé est capable de construire les contraintes correctes et de s'exécuter dans un environnement non structuré même si des données ou des modèles d'environnement spécifiques à une tâche ne sont pas fournis. Notamment, ReKep gère efficacement le puzzle principal de chaque tâche.
Voici quelques animations du processus d'exécution proprement dit :
Généralisation de la stratégie opérationnelle
L'équipe a exploré les performances de généralisation de la nouvelle stratégie basée sur la tâche de pliage du linge. En bref, il s’agit de voir si le système peut plier différents types de vêtements – ce qui nécessite de la géométrie et un raisonnement de bon sens.
GPT-4o est utilisé ici, et l'invite ne contient que des instructions génériques sans exemples contextuels. Le « succès de la stratégie » signifie que le ReKep généré est réalisable, et le « succès de l'exécution » mesure le taux de réussite du système d'une stratégie réalisable donnée pour chaque type de vêtement.
Les résultats sont intéressants. On peut voir que le système utilise différentes stratégies pour différents vêtements, et certaines des méthodes de pliage des vêtements sont les mêmes que celles couramment utilisées par les humains.
Analyse des erreurs du système
La conception du framework est modulaire et donc facile à Pratique pour analyser les erreurs du système. L'équipe a inspecté manuellement les cas de défaillance rencontrés dans les expériences du tableau 1, puis a calculé sur cette base la probabilité que les modules aient provoqué l'erreur, en tenant compte de leurs dépendances temporelles dans le processus de pipeline. Les résultats sont présentés dans la figure 5.
On peut voir que parmi les différents modules, le suivi des points clés produit le plus d'erreurs car des occlusions fréquentes et intermittentes rendent difficile un suivi précis du système.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!