Robotic manipulation requires policies that are smooth and responsive to evolving observations. However, synchronous inference in the raw action space introduces several challenges, including intra-chunk jitter, inter-chunk discontinuities, and stop-and-go execution. These issues undermine a policy's smoothness and its responsiveness to environmental changes. We propose ABPolicy, an asynchronous flow-matching policy that operates in a B-spline control-point action space. First, the B-spline representation ensures intra-chunk smoothness. Second, we introduce bidirectional action prediction coupled with refitting optimization to enforce inter-chunk continuity. Finally, by leveraging asynchronous inference, ABPolicy delivers real-time, continuous updates. We evaluate ABPolicy across seven tasks encompassing both static settings and dynamic settings with moving objects. Empirical results indicate that ABPolicy reduces trajectory jerk, leading to smoother motion and improved performance. Project website: https://teee000.github.io/ABPolicy/.
Figures & tables
Fig. 2: Overview of ABPolicy. A policy trained for Bidirectional Action Prediction (BiAP) asynchronously generates future B-spline control points at inference time. These are then optimized by our Continuity-Constrained Refitting (CCR) module to guarantee smooth continuity with the executed trajectory.
Fig. 3: Asynchronous inference overview. During inference delay, the robot executes the prior cycle’s actions. Gray shaded regions denote the inference-delay window, whereas orange shaded regions indicate the actions being executed.
Fig. 4: Manipulation tasks in static and dynamic settings, where dynamic tasks involve an object on a platform rotating at a constant velocity (approximately 10 seconds per revolution).
Dynamic Tasks
Static Tasks
Stack Block
Push Block
Hang Cup
Stack Block
Fold Towel
Hang Cup
Drawer Operation
Success ↑
Success ↑
Success ↑
Success ↑
Time ↓
Success ↑
Time ↓
Success ↑
Time ↓
Success ↑
Time ↓
DP [ 4 ]
40
75
35
25
10.2
25
12.2
85
10.8
100
18.9
Sync
30
75
40
85
8.7
55
10.2
90
10.1
100
17.5
Async
55
85
60
80
7.5
60
8.4
85
8.2
100
15.8
TABLE I: Comparison of synchronous and asynchronous inference performance across dynamic and static tasks.
Action Representation Method
Mean Error ↓
SNR (dB) ↑
256 Discrete Bins [ 34 ]
0.0020
41.9
DCT Low-Frequency Coeffs [ 10 ]
0.0010
44.6
B-spline (Discrete) [ 14 ]
0.0025
37.7
B-spline (Continuous) (Ours)
0.00031
50.7
TABLE II: Comparison of reconstruction accuracy for different action representation methods.
Fig. 5: Acceleration comparison between raw actions and our proposed method. The raw action representation produces large accelerations at the boundaries of action chunks, which leads to jitter. In contrast, our B-spline representation with refitting reduces boundary spikes and improves smoothness.
Joint
Average ZCR of Velocity ↓
Acc p95 ↓
B-spline
Raw
B-spline
Raw
j0
0.1535
0.2748
2.34
8.73
j1
0.1063
0.1615
3.63
8.04
j2
0.1321
0.1334
3.06
7.44
j3
0.1422
0.1356
3.09
6.29
j4
0.1387
0.2201
2.35
4.23
TABLE III: Comparison of action representations with trajectory jitter.
Fig. 6: Comparison of action-chunk boundary smoothing methods: our B‑spline refitting versus the weighted fusion. The y‑axis shows acceleration magnitude, and the x‑axis represents the smoothing time window.
Success Rate (%) ↑
Initial Jitter ↓
Refitted Jitter ↓
w/o BiAP
60
0.0220
0.0180
w/ BiAP
85
0.0170
0.0097
TABLE IV: Ablation study on the effectiveness of BiAP, comparing success rate against the discontinuity metric at action boundaries, measured before and after refitting.