Контактно-закреплённая проприоцептивная одометрия для четвероногих роботов
Contact-Anchored Proprioceptive Odometry for Quadruped Robots
February 19, 2026
Авторы: Minxing Sun, Yao Mao
cs.AI
Аннотация
Надежная одометрия для шагающих роботов без использования камер или лидаров остается сложной задачей из-за дрейфа ИМУ и зашумленного измерения скоростей в сочленениях. В данной статье представлен чисто проприоцептивный оценщик состояния, использующий только данные ИМУ и двигателей для совместной оценки позы и скорости корпуса, с единой формулировкой, применимой к двуногим, четвероногим и шагающе-колесным роботам. Ключевая идея заключается в рассмотрении каждой контактирующей ноги как кинематического якоря: оценка усилий на стопе на основе моментов в сочленениях выбирает надежные контакты, а соответствующие позиции постановки стоп обеспечивают периодические ограничения в мировой системе координат, которые подавляют долгосрочный дрейф. Для предотвращения дрейфа по высоте при длительном перемещении мы вводим легковесную кластеризацию высот и поправку с временным затуханием, которая "привязывает" вновь регистрируемые высоты постановки стоп к ранее наблюдаемым опорным плоскостям. Для улучшения наблюдений скорости стопы при квантовании энкодеров мы применяем кубатурный фильтр Калмана с обратной кинематикой, который непосредственно фильтрует скорости концевых точек стоп из углов и скоростей сочленений. Реализация дополнительно снижает дрейф курса за счет геометрической согласованности при множественных контактах и плавно переходит к кинематической опорной курсовой информации, когда ограничения по курсу от ИМУ недоступны или ненадежны. Мы оцениваем метод на четырех четвероногих платформах (три робота Astrall и Unitree Go2 EDU) с использованием замкнутых траекторий. На роботе Astrall с точечными стопами (робот A) горизонтальная петля длиной ~200 м и вертикальная петля длиной ~15 м завершаются с ошибкой 0,1638 м и 0,219 м соответственно; на шагающе-колесном роботе B соответствующие ошибки составляют 0,2264 м и 0,199 м. На шагающе-колесном роботе C горизонтальная петля длиной ~700 м дает ошибку 7,68 м, а вертикальная петля длиной ~20 м дает ошибку 0,540 м. Unitree Go2 EDU завершает горизонтальную петлю длиной ~120 м с ошибкой 2,2138 м и вертикальную петлю длиной ~8 м с вертикальной ошибкой менее 0,1 м. 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