ContactFlowFilter
Mixture of Flow Matching and Particle Filter for Proprioception-Based Online Contact Estimation (IEEE T-RO 2026)
Mixture of Flow Matching and Particle Filter for Proprioception-Based Online Contact Estimation
Abstract
In this article, we propose ContactFlowFilter, a novel approach for contact estimation that determines the number of active contacts, their locations, and the associated force vectors. We consider a robot manipulator equipped with joint torque sensors and a base force/torque sensor; such a proprioceptive-only setup presents a challenging inverse problem characterized by (i) multi-modality from non-unique solutions, (ii) temporal dependencies in state evolution, and (iii) discrete contact events involving contact addition/removal. Existing approaches, such as particle filters (PFs) and learning-based methods, often struggle to address these challenges simultaneously. To overcome this, ContactFlowFilter integrates a generative model into the PF framework. The recursive structure of the PF captures temporal dependencies, while the flow matching model serves as an auxiliary proposal distribution to track multi-modal beliefs and detect contact events. Extensive validation in both simulation and real-world experiments confirms the effectiveness of the proposed method. In real-world settings, ContactFlowFilter achieves the lowest dissimilarity from the target distribution, with errors of only 0.36 cm and 0.88 cm for single- and dual-contact scenarios, respectively, while operating at 0.69 ms and 2.69 ms.
Challenges
The objective is to estimate the contact state, which includes the contact locations on distinct links ($\mathbf{r}_i \in \mathbb{R}^3$), the corresponding 3D force vectors ($\mathbf{F}_i \in \mathbb{R}^3$), and the number of contacts (up to two), using proprioceptive sensors. This is an inverse problem characterized by:
- Multi-modality (singularity): while the forward mapping (from contact to sensor reading) is deterministic, the inverse mapping is ambiguous; distinct contact states may correspond to identical sensor measurements, so the probability distribution of possible solutions becomes multi-modal.
- Temporal dependency: leveraging past estimates provides a prior context for inferring the current state, for both discrete evolution (e.g., a new contact occurs) and continuous evolution (e.g., a contact slides).
- Contact event detection: determining the number of active contacts requires identifying discrete transitions, specifically the addition or removal of contacts.
Limitations of existing approaches
While PF-based approaches are well-suited for addressing temporal dependency through recursive belief updates, they often fail to handle multi-modality due to particle starvation. In contrast, learning-based approaches excel at estimating multi-modal distributions; however, these feed-forward approaches are typically non-recursive and trained on temporally independent samples, thus lacking a native mechanism for leveraging temporal dependency. As for contact event detection, PFs rely on hard-to-tune thresholds to identify discrete transitions.
| Particle filter | Diffusion model | Ours | |
|---|---|---|---|
| Contact Number Support | ≥2 | 2 | 2 |
| Multi-Modal Distribution | × | ○ | ○ |
| Temporal Reasoning | ○ | △ | ○ |
| Contact Force Estimation | ○ | × | ○ |
Key idea: mixture of flow matching and particle filter
To formally implement the mixture of two proposal distributions, we adopt the dual-sampling concept. The output of the flow matching model serves as a sample from the dual-proposal distribution, $\hat{\mathbf{X}}_t \sim p_\theta(\mathbf{X}_t \mid \mathbf{O}_t) \approx \bar{q}(\mathbf{r}_t)$. The weight of a dual particle is computed by evaluating the Gaussian probability density of the motion model:
Intuitively, dual particles that are more consistent with the previous step's particle set receive higher weights. By preserving the PF's recursive structure, the proposed method captures temporal dependency, while the dual-sampling step enables the direct generation of samples in high-belief regions, even where the particles fail to populate.
Technical components
1. Data representation and transformer-based architecture
2. Flow matching with few-step inference
2-step Flow Matching achieves M-RMSE values of 0.17 cm (single-contact) and 0.72 cm (dual-contact), competitively matching or even surpassing methods utilizing 16 ODE steps, while being eight times faster (2.57 ms). The flow matching inference is executed asynchronously on a dedicated thread, separate from the main algorithm.
3. Motion model with pre-computed geodesic distances
4. Flow-guided particle set management
For robust contact event detection, the conventional QP-based criterion is augmented by integrating generative estimates from the dual-proposal distribution. Increasing condition: satisfied only when the QP condition is met and the dual particles are widely spread, i.e., when their standard deviation within a set exceeds that of the motion model. Decreasing condition: a particle set is a candidate for removal if it is not assigned any dual particles during sample allocation, and it is removed if the QP-based condition supports this removal.
Results
Contact event detection (Experiment B)
| Method | Suc. Rate (%) ↑ | Adj. Delay (ms) ↓ | Fau. Rate (%) ↓ | ||
|---|---|---|---|---|---|
| Phase 1 | Phase 2 | Phase 1 | Phase 2 | Overall | |
| Proposed | 99.60 | 99.65 | 3.21 | 26.74 | 0.75 |
| Baseline | 97.30 | 91.55 | 2.89 | 51.46 | 16.50 |
Real-world experiment (Experiment D)
For dual-sampling, the flow matching model trained in simulation was directly transferred to the physical robot. A dedicated evaluation dataset was collected using a specialized tool to acquire ground-truth contact locations and forces (a 6-axis F/T sensor for force tracking and OptiTrack markers for pose tracking). A total of 200 trials were conducted across 20 distinct robot configurations.
| Method | Single-Contact ($n_c = 1$) | Dual-Contact ($n_c = 2$) | ||||
|---|---|---|---|---|---|---|
| M-RMSE (cm) ↓ | PLS ↓ | EMD ↓ | M-RMSE (cm) ↓ | PLS ↓ | EMD ↓ | |
| ContactFlowFilter (Ours) | 0.36 | 8.85 | 1.14 | 0.88 | 12.52 | 3.18 |
| CPF | 1.36 | 12.36 | 2.62 | 5.49 | 34.89 | 7.93 |
| MCP-EP | 0.77 | 30.10 | 3.14 | 2.44 | 19.96 | 4.75 |
| Dual-Particle only | 0.51 | 16.76 | 2.15 | 1.04 | 17.11 | 3.42 |
Additional real-world scenarios
Full video
BibTeX
@article{han2026mixture,
author={Han, Seo Wook and Kim, Min Jun},
journal={IEEE Transactions on Robotics},
title={Mixture of Flow Matching and Particle Filter for Proprioception-Based Online Contact Estimation},
year={2026},
pages={1--20},
doi={10.1109/TRO.2026.3723975}
}