Observability Conditions and Filter Design for Visual Pose Estimation via Dual Quaternions

Nicholas B. Andrews, Kristi A. Morgansen
5/3/2026
eess.SYcs.CVcs.RO

No confident code implementation found for this paper. 1 possible match can be shown below.

Abstract

This paper presents a dual quaternion framework for 6-DOF visual target tracking that addresses key limitations of perspective-n-point (P$n$P) solvers: sensitivity to noise and outliers, and inability to propagate estimates through measurement dropouts. A nonlinear observability analysis is performed using a Lie algebraic approach, deriving sufficient conditions for local observability under two sensing modalities: relative position vector and unit vector measurements. For the unit vector case, the classical collinear feature point degeneracy of the perspective-three-point problem is recovered through rank analysis of the observability codistribution matrix, providing a control-theoretic interpretation of a previously geometric result. A dual quaternion Lie group unscented Kalman filter is then developed, directly modeling relative dynamics without assumptions about cooperative measurements or slowly-varying motion. Simulations demonstrate improved pose estimation accuracy and robustness to occlusions compared to an off-the-shelf P$n$P solver. Results are broadly applicable to visual-inertial navigation, simultaneous localization and mapping, and P$n$P solver development.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. 1 weaker match is hidden by default — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{andrews2026observability,
  title  = {Observability Conditions and Filter Design for Visual Pose Estimation via Dual Quaternions},
  author = {Nicholas B. Andrews and Kristi A. Morgansen},
  year   = {2026},
  eprint = {2605.02054},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2605.02054v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2605.02054.svg)](https://codeofpaper.com/paper/2605.02054)

Discussion