Authors: Zihao He*, Hongjie Fang*, Jingjing Chen, Hao-Shu Fang, Cewu Lu
We use RISE as our real robot baseline, Please following the installation guide to install the foar conda environments and the dependencies, as well as the real robot environments. Also, remember to adjust the constant parameters in dataset/constants.py and utils/constants.py according to your own environment.
Please calibrate the camera(s) with the robot before data collection and evaluation to ensure correct spatial transformations between camera(s) and the robot. Please refer to calibration guide for more details.
We apply the data collection process in the RH20T paper. You may need to adjust dataset/realworld.py to accommodate different data formats. The sample data of peeling and wiping tasks can be found here, which have the format of
peel
|-- calib/
| |-- [calib timestamp 1]/
| | |-- extrinsics.npy # extrinsics (camera to marker)
| | |-- intrinsics.npy # intrinsics
| | `-- tcp.npy # tcp pose of calibration
| `-- [calib timestamp 2]/ # similar calib structure
`-- train/
|-- [episode identifier 1]
| |-- metadata.json # metadata
| |-- timestamp.txt # calib timestamp
| |-- high_freq_data/ # high frequency data
| | `-- force_torque_tcp_joint_timestamp.npy
| | # force/torque, tcp, joint, timestamp data
| |-- cam_[serial_number 1]/
| | |-- color # RGB
| | | |-- [timestamp 1].png
| | | |-- [timestamp 2].png
| | | |-- ...
| | | `-- [timestamp T].png
| | |-- depth # depth
| | | |-- [timestamp 1].png
| | | |-- [timestamp 2].png
| | | |-- ...
| | | `-- [timestamp T].png
| | |-- tcp # tcp
| | | |-- [timestamp 1].npy
| | | |-- [timestamp 2].npy
| | | |-- ...
| | | `-- [timestamp T].npy
| | `-- gripper_command # gripper command
| | |-- [timestamp 1].npy
| | |-- [timestamp 2].npy
| | |-- ...
| | `-- [timestamp T].npy
| `-- cam_[serial_number 2]/ # similar camera structure
`-- [episode identifier 2] # similar episode structure
The training scripts are saved in script.
conda activate foar
bash script/command_train.sh # Train Foar policyPlease follow the deployment guide to modify the evaluation script.
Modify the arguments in script/command_eval.sh, then
conda activate foar
bash script/command_eval.sh@ARTICLE{10964857,
author={He, Zihao and Fang, Hongjie and Chen, Jingjing and Fang, Hao-Shu and Lu, Cewu},
journal={IEEE Robotics and Automation Letters},
title={FoAR: Force-Aware Reactive Policy for Contact-Rich Robotic Manipulation},
year={2025},
volume={10},
number={6},
pages={5625-5632},
keywords={Robots;Robot sensing systems;Force;Point cloud compression;Dynamics;Sensors;Visualization;Transformers;Noise measurement;Training;Force and tactile sensing;imitation learning;perception for grasping and manipulation},
doi={10.1109/LRA.2025.3560871}}