Licheng Yang1,2, Lingfeng Qian2, Fei Zheng2, Yonghao He2†, Wei Sui2, Shuangshuang Li1, Hu Su1*
1State Key Laboratory of Multimodal Artificial Intelligence Systems (MAIS),
Institute of Automation, Chinese Academy of Sciences
2D-Robotics
*Corresponding author †Project lead
- 2026.06.16: Our paper was accepted by the 2026 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).
Information-Standardized Trajectory Resampling (ISR) is an offline preprocessing method for robotic imitation learning and a practical form of Trajectory Standardization. It resamples teleoperated demonstration trajectories into compact, information-consistent sequences by reducing low-motion redundancy while preserving high-curvature transitions and fine-manipulation phases.
Option A — pip (venv)
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e .Option B — conda
conda env create -f environment.yml
conda activate isrBoth options register three command-line tools after installation:
isr-resample, isr-batch, and isr-visualize.
The example below uses our episode JSON schema where every frame is valid.
isr-resample extracts end-effector 3D coordinates, timestamps, and an optional gripper value by calling load_episode_arrays in src/isr/io.py (the gripper value is optional; if provided, it is used to detect state transitions—like opening or closing—and force the inclusion of those critical manipulation keyframes in the output). If your dataset uses a different JSON schema, you can customize the parsing logic inside load_episode_arrays in src/isr/io.py to match your format so that the CLI commands still work out-of-the-box.
isr-resample \
--data data/example_1.json \
--output_json outputs/example_1/data.json \
--d_target 0.05 \
--lambda_dist 1.0 \
--lambda_acc 0.01isr-batch \
--input_dir datasets/task1 \
--output_dir outputs/task1_isr \
--d_target 0.05 \
--lambda_dist 1.0 \
--lambda_acc 0.01 \
--log_path outputs/logs/task1/scale.json \
--verbose--verbose: (Optional) Enable detailed printouts of the resampling process (such as gripper change points and final selected indices) for each episode. If omitted, the tool outputs a single-line progress summary per episode to keep the terminal output clean.
Dataset directory structure under datasets/:
datasets/task1/
├── episode_0000/
│ ├── data.json
│ ├── colors/
│ │ ├── head_camera/
│ │ └── wrist_camera/
│ ├── depths/
│ └── audios/
├── episode_0001/
│ ├── data.json
│ └── ...
├── ...
Open an interactive window:
isr-visualize \
--original data/example_1.json \
--resampled outputs/example_1/data.jsonSave the visualization as an image:
isr-visualize \
--original data/example_1.json \
--resampled outputs/example_1/data.json \
--save outputs/example_1/traj_compare.pngISR resampling is applied to the robot state trajectory stored in the
states field of each episode data.json. After resampling, the selected
frames define the standardized trajectory used for downstream training.
For VLA/VA model fine-tuning in this work, the action targets are explicitly
synchronized with the resampled state representation: the per-frame actions
field is overwritten with the corresponding states field.
The proposed ISR method is validated with pi0.5 and VO-DP. We thank the authors for their open-source contributions.
This project is released under the Apache License 2.0.
If you use this code in your research, please cite our project:
@inproceedings{yang2026isr,
title={Improving Robotic Imitation Learning via Trajectory Standardization},
author={Licheng Yang and Lingfeng Qian and Fei Zheng and Yonghao He and Wei Sui and Shuangshuang Li and Hu Su},
booktitle={arXiv:2606.22907},
year={2026}
}