At a glance
- Problem: coding agents mostly rely on vision and proprioception, which leaves geometry, mass, friction and contact uncertain in contact-rich manipulation. Source
- Idea: the agent writes a complete Python task program that probes contact, runs force feedback loops, and is revised from recorded force traces after each rollout. Source
- Evidence: on hand-held vase wiping, FORCA removed 93% of the marker versus 21% for the vision-only agent, averaged over 10 trials. Source
Evaluation scope Every comparison is against a vision-only agent that uses the same foundation model, instructions and basic skills but receives no force data in program generation, revision or execution. Source
How it works
- The agent writes the force-dependent logic for each task from the wrist wrench exposed by the robot interface, for example when an approach should stop or how motion responds to a force error. Source
- During a rollout the program can probe a surface and use the robot pose at contact to update its estimate of surface height or grasp position before acting. Source
- For sustained contact, a host-side 100 Hz loop reads the wrench and adjusts Cartesian velocity, for example pausing forward motion until contact is restored. Source
- After each rollout the agent inspects visual observations with force and robot-state traces, can write analysis code, and revises parameters, contact conditions or control logic. Source
Evidence & results
- Over 10 trials, drawer and door-handle success rose from 40% and 10% for the vision-only agent to 100% for FORCA, with lower grasp translation and rotation errors. Evidence
- Peeling a hand-held cucumber over 10 trials, contact loss fell from 40.6% to 2.2% and the peeling ratio rose from 37.4% to 81.1% compared with the vision-only agent. Evidence
- After developing a knocking program for a cube on a whiteboard, each of three new object or surface configurations reached the target band within a few extra iterations. Evidence
Limitations & boundaries
- Each iteration takes several minutes, mostly agent reasoning, and refinement still depends on real-robot rollouts. Source
- Wrist wrench sensing does not reveal where contact occurs or how forces are spread across the fingers. Source
- For longer action sequences or tighter force constraints, the agent may fail to produce a working program even after repeated attempts. Source
- Wiping and peeling used the full budget of 20 development iterations, with agent reasoning taking 4–10 minutes of each iteration. Source
Takeaway
Our reading: the paper's main point is that contact experience can live in inspectable code, since a program refined with force feedback could be reused and revised when the object or surface changed. Source
Resources
Figures: the paper's authors. Editorial source and image review: 2026-10-26. Findings are author-reported, not independently reproduced by Robotics Research Hub.
Original abstract
Coding agents can translate language instructions into robot programs. For contact-rich manipulation, a key challenge is to generate and refine control logic that responds to physical interaction. We present FORCA, a coding agent that takes visual observations and wrist force/torque (F/T) measurements as input to write Python programs for contact probing and force-responsive motion. Between executions, the agent inspects force records alongside visual outcomes to diagnose failures and revise both motion and force-feedback control logic. FORCA requires no demonstrations, task-specific training, or simulation. Across five real-robot tasks, we demonstrate its effectiveness in three forms of contact-rich manipulation: improving manipulation accuracy, adapting to changes in object or surface properties, and regulating contact under surface variation and object motion. Compared with a vision-only variant of the same agent, FORCA improves grasp accuracy and task success and reduces contact loss in wiping and peeling.
Citation
@article{Tan2026_261031841,
title = {FORCA: A Force-Aware Coding Agent for Contact-Rich Robot Manipulation},
author = {Xiao Tan and Yixuan Wang and Zhexi Wang and Wenzhen Yuan},
year = {2026},
eprint = {2610.31841},
archivePrefix = {arXiv},
primaryClass = {cs.RO},
url = {https://arxiv.org/abs/2610.31841}
}