We consider the case where objects are linked by a series of segments, connected by multiple joints. Our task is to estimate the most likely configuration of the articulated structure, given some observations and a description of the mechanical chain of segments and joints. This ability is useful when a robot must interact with a moving, articulated object, or for tracking the robot's own manipulators. Our technique is not specific to any particular structure and we focus on the common situation where the observations are more accurate than the predictive model. The method is shown to achieve higher tracking accuracy than competing techniques. 
We use a particle filter to track the articulated object's configuration. The particle filter maintains a discrete set of hypotheses. When new observations arrive, the particles are propagated primarily using the observation model (instead of the typical state transition model). If the observation model is degenerate, the state transition model is used secondarily. We maintain a discrete approximation to the Optimal Importance Function (OIF), which allows us to easily verify joint limits and calculate particle weights. 
The particle filter formulation also requires a diffusion step, where random perturbations are added to the particle's hypothesis. Adding this random noise in the state space, as called for in the typical particle filter implementation, results in a filter whose performance depends on the state parametrization. We wish to reduce this dependence because the parametrization is provided as input to our system (and, thus, not under our control). Instead, we add perturbation noise in the observation space to avoid this dependency. This observation space is an overparametrization of the state space, so we employ related ideas from the calibration work. 

This video shows a constructionsite excavator being tracked. An Unscented Kalman Filter ("UKF"), "Baseline" particle filter, and a particle filter using "Our Method" are compared. Notice that the UKF exhibits higher tracking error and the Baseline method fails during the sequence. 
MATLAB source code is available of our articulated object tracker. It implements Our Method and a UKF method for comparison. The author need simply implement the .mex or .m interface as described here. 