gitwtfhub

wtf is forcepolicy?

force-policy/forcepolicy — explained in plain English

Analysis updated 2026-05-18

27PythonAudience · researcherComplexity · 5/5Setup · hard

TL;DR

A research robotics project that teaches a robot arm to handle contact tasks like pushing and flipping by blending vision-based motion with real-time force control.

Mindmap

mindmap
  root((Force Policy))
    What it does
      Contact rich manipulation
      Vision plus force control
      Robot arm tasks
    Tech stack
      PyTorch
      CUDA
      RISE-2 vision backbone
    Use cases
      Robot pushing and flipping
      Research reproduction
    Audience
      Robotics researchers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Reproduce the Force Policy research results on the provided Push and Flip dataset

REASON 2

Train a robot control policy that switches between vision guidance and force feedback on contact

REASON 3

Study how interaction-frame estimation works for contact-rich robot manipulation

REASON 4

Deploy the trained policy on a Flexiv Rizon robot arm with a force and torque sensor

What's in the stack?

PythonPyTorchCUDAMinkowskiEnginePyTorch3DDINOv2

How it stacks up

force-policy/forcepolicyavbiswas/sam2-mlxchanthruu/wind_energy_monitor
Stars272727
LanguagePythonPythonPython
Setup difficultyhardmoderatemoderate
Complexity5/54/53/5
Audienceresearcherresearcherdata

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1day+

Needs a patched MinkowskiEngine build, specific CUDA/PyTorch versions, pretrained DINO weights, and for real robots a Flexiv Rizon arm and force sensor.

Wtf does this do

Force Policy is the code release for a robotics research paper accepted at Robotics: Science and Systems 2026. It teaches a robot arm how to complete tasks that involve actually touching and pushing things, such as pressing, flipping, or sliding an object, rather than only tasks where the arm moves through open air. The core idea is to combine two separate control systems and switch between them automatically. A first system, built on an existing project called RISE-2, watches the scene with cameras and guides the arm while it is moving freely through open space toward the object. Once the arm actually makes contact with something, a second, faster system takes over. That second system reads the direction and strength of the forces the arm is feeling at the moment of contact and adjusts both position and force together, so the arm can, for example, keep pressing with the right amount of force while also moving in the correct direction. A scheduler decides moment to moment which of the two systems should be in charge. The repository is organized into clear pieces: code for figuring out the forces and directions at the moment of contact, the two control policies themselves, tools for preparing training data, a training loop, and a separate runner used to actually operate a real robot arm. Training this system requires real demonstration data, which the authors collected using two robot arms working together, one controlled by a human and one following it, with force feedback so the human operator can feel what the following arm feels. Camera images are recorded at 15 times per second while the arm's own position and force readings are recorded 1000 times per second. Getting this running is not a lightweight task. It expects Python, a specific version of PyTorch, a patched build of a 3D vision library, and pretrained vision model weights, all installed in particular versions to match the paper's setup. Actually running it on real hardware additionally requires a specific commercial robot arm from Flexiv, a compatible gripper, a force and torque sensor, and two depth cameras. The authors do provide a sample dataset and pretrained checkpoints for one example task, called Push and Flip, so a reader without the exact hardware can still inspect the data and trained models.

Yoink these prompts

Prompt 1
Explain how the dual-policy scheduler in Force Policy decides when to switch from vision to force control
Prompt 2
Walk me through setting up the RISE-2 vision backbone and CUDA environment for this project
Prompt 3
Help me understand the expected data directory layout for training a new task in this repo
Prompt 4
What robot hardware would I need to actually run run_eval.py from this project

Frequently asked questions

wtf is forcepolicy?

A research robotics project that teaches a robot arm to handle contact tasks like pushing and flipping by blending vision-based motion with real-time force control.

What language is forcepolicy written in?

Mainly Python. The stack also includes Python, PyTorch, CUDA.

How hard is forcepolicy to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is forcepolicy for?

Mainly researcher.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.