Odometria Proprioceptiva Ancorada no Contato para Robôs Quadrúpedes
Contact-Anchored Proprioceptive Odometry for Quadruped Robots
February 19, 2026
Autores: Minxing Sun, Yao Mao
cs.AI
Resumo
A odometria confiável para robôs bípedes sem câmaras ou LiDAR continua a ser um desafio devido à deriva do IMU e ao ruído na sensoriamento de velocidade das juntas. Este artigo apresenta um estimador de estado puramente proprioceptivo que utiliza apenas medições do IMU e dos motores para estimar conjuntamente a pose e a velocidade do corpo, com uma formulação unificada aplicável a robôs bípedes, quadrúpedes e de pernas com rodas. A ideia central é tratar cada perna em contacto como uma âncora cinemática: a estimativa de força no pé baseada no torque das juntas seleciona contactos confiáveis, e as posições de apoio correspondentes fornecem restrições intermitentes no referencial mundial que suprimem a deriva a longo prazo. Para prevenir a deriva na altitude durante travessias prolongadas, introduzimos uma correção leve baseada em agrupamento de altura e decaimento temporal, que ajusta as alturas de apoio recém-registradas aos planos de suporte previamente observados. Para melhorar as observações de velocidade do pé sob quantização do encoder, aplicamos um filtro de Kalman por cubatura de cinemática inversa que filtra diretamente as velocidades da extremidade do pé a partir dos ângulos e velocidades das juntas. A implementação mitiga ainda mais a deriva de guinada através da consistência geométrica multi-contacto e degrada-se graciosamente para uma referência de direção derivada cinematicamente quando as restrições de guinada do IMU estão indisponíveis ou não são confiáveis. Avaliamos o método em quatro plataformas quadrúpedes (três robôs Astrall e um Unitree Go2 EDU) usando trajetórias de malha fechada. No robô Astrall de pé pontual A, um circuito horizontal de ~200 m e um circuito vertical de ~15 m retornam com erro de 0,1638 m e 0,219 m, respetivamente; no robô B de pernas com rodas, os erros correspondentes são de 0,2264 m e 0,199 m. No robô C de pernas com rodas, um circuito horizontal de ~700 m produz um erro de 7,68 m e um circuito vertical de ~20 m produz um erro de 0,540 m. O Unitree Go2 EDU fecha um circuito horizontal de ~120 m com um erro de 2,2138 m e um circuito vertical de ~8 m com menos de 0,1 m de erro vertical. 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