[Project page] [Paper] [Video]
Yimeng Qin*, Xiaomeng Xu*, William Heap, Aditi Oak, Shuran Song†, Allison Okamura†
*Equal Contribution, †Equal Advising
Stanford University
Clone this repo:
git clone https://github.com/xxm19/panovine.git
cd panovineCreate the mamba environment (We recommend Mambaforge over the standard Anaconda distribution for a faster environment solve):
mamba env create -f conda_environment.yaml
conda activate panovineOn-robot data collection and inference (
unified_data_logger.py,policy_inference.py) additionally require a ROS Noetic installation providingrospy/std_msgs, plus the vine robot motor and sensor drivers. These are not needed for offline data processing or policy training, which run from the conda environment alone.
python unified_data_logger.pysaved file structure:
robot_logs/baseStation/<id>/*_sensors.npz(base encoder, pressure, torque)robot_logs/controller2/<id>/*_sensors.npz(imu_id, encoder1/2, roll/pitch/yaw)robot_logs/camera/<id>/cam_*.{mp4,avi}+ timestamp csv/json
python process_data_parallel.py \
--log-root robot_logs \
--output-path dataset.zarr.zip \
--num-workers 16 \
--action-repr angleThe training config is:
diffusion_policy/config/train_diffusion_transformer_free_space_vine_workspace.yaml
Run training:
python train.py \
--config-name train_diffusion_transformer_free_space_vine_workspace \
task.dataset_path=dataset.zarr.zipmulti-gpu
accelerate launch --num_processes 4 \
train.py --config-name train_diffusion_transformer_free_space_vine_workspace \
task.dataset_path=dataset.zarr.zippython policy_inference.py \
--config-name train_diffusion_transformer_free_space_vine_workspace \
input=/path/to/ckpt.ckpt@article{qin2026panovine,
title={PanoVine: Whole-Body Visuomotor Control for Soft Growing Vine Robot},
author={Qin, Yimeng and Xu, Xiaomeng and Heap, William and Oak, Aditi and Song, Shuran and Okamura, Allison},
journal={arXiv preprint arXiv:2606.22923},
year={2026}
}This repository is released under the MIT license. See LICENSE for more details.
- Our policy implementation is adapted from RoboPanoptes and UMI.
