Odométrie proprioceptive ancrée par contact pour robots quadrupèdes
Contact-Anchored Proprioceptive Odometry for Quadruped Robots
February 19, 2026
papers.authors: Minxing Sun, Yao Mao
cs.AI
papers.abstract
L'odométrie fiable pour les robots à pattes sans caméras ni LiDAR reste difficile en raison de la dérive des IMU et du bruit des capteurs de vitesse articulaire. Cet article présente un estimateur d'état purement proprioceptif utilisant uniquement les mesures de l'IMU et des moteurs pour estimer conjointement la pose et la vitesse du corps, avec une formulation unifiée applicable aux robots bipèdes, quadrupèdes et à pattes roues. L'idée clé est de traiter chaque patte en contact comme une ancre cinématique : l'estimation des efforts au pied basée sur le couple articulaire sélectionne les contacts fiables, et les positions d'appui correspondantes fournissent des contraintes intermittentes dans le repère monde qui suppriment la dérive à long terme. Pour éviter la dérive en altitude lors de traversées prolongées, nous introduisons un regroupement de hauteurs léger et une correction à décroissance temporelle qui aligne les hauteurs d'appui nouvellement enregistrées sur les plans de support précédemment observés. Pour améliorer les observations de vitesse du pied sous quantification des encodeurs, nous appliquons un filtre de Kalman cubature à cinématique inverse qui filtre directement les vitesses de l'extrémité du pied à partir des angles et vitesses articulaires. L'implémentation atténue en outre la dérive de lacet grâce à la cohérence géométrique multi-contacts et dégrade gracieusement vers une référence de cap dérivée de la cinématique lorsque les contraintes de lacet de l'IMU sont indisponibles ou non fiables. Nous évaluons la méthode sur quatre plateformes quadrupèdes (trois robots Astrall et un Unitree Go2 EDU) en utilisant des trajectoires en boucle fermée. Sur le robot Astrall à pieds ponctuels A, une boucle horizontale de ~200 m et une boucle verticale de ~15 m reviennent avec des erreurs de 0,1638 m et 0,219 m respectivement ; sur le robot à pattes roues B, les erreurs correspondantes sont de 0,2264 m et 0,199 m. Sur le robot à pattes roues C, une boucle horizontale de ~700 m donne une erreur de 7,68 m et une boucle verticale de ~20 m donne une erreur de 0,540 m. Le Unitree Go2 EDU referme une boucle horizontale de ~120 m avec une erreur de 2,2138 m et une boucle verticale de ~8 m avec une erreur verticale inférieure à 0,1 m. github.com/ShineMinxing/Ros2Go2Estimator.git
English
Reliable odometry for legged robots without cameras or LiDAR remains challenging due to IMU drift and noisy joint velocity sensing. This paper presents a purely proprioceptive state estimator that uses only IMU and motor measurements to jointly estimate body pose and velocity, with a unified formulation applicable to biped, quadruped, and wheel-legged robots. The key idea is to treat each contacting leg as a kinematic anchor: joint-torque--based foot wrench estimation selects reliable contacts, and the corresponding footfall positions provide intermittent world-frame constraints that suppress long-term drift. To prevent elevation drift during extended traversal, we introduce a lightweight height clustering and time-decay correction that snaps newly recorded footfall heights to previously observed support planes. To improve foot velocity observations under encoder quantization, we apply an inverse-kinematics cubature Kalman filter that directly filters foot-end velocities from joint angles and velocities. The implementation further mitigates yaw drift through multi-contact geometric consistency and degrades gracefully to a kinematics-derived heading reference when IMU yaw constraints are unavailable or unreliable. We evaluate the method on four quadruped platforms (three Astrall robots and a Unitree Go2 EDU) using closed-loop trajectories. On Astrall point-foot robot~A, a sim200\,m horizontal loop and a sim15\,m vertical loop return with 0.1638\,m and 0.219\,m error, respectively; on wheel-legged robot~B, the corresponding errors are 0.2264\,m and 0.199\,m. On wheel-legged robot~C, a sim700\,m horizontal loop yields 7.68\,m error and a sim20\,m vertical loop yields 0.540\,m error. Unitree Go2 EDU closes a sim120\,m horizontal loop with 2.2138\,m error and a sim8\,m vertical loop with less than 0.1\,m vertical error. github.com/ShineMinxing/Ros2Go2Estimator.git