Skip to content

DavoodSZ1993/MMPpp-public

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MMP++: Motion Manifold Primitives with Parametric Curve Models

The official repository for <MMP++: Motion Manifold Primitives with Parametric Curve Models> (Lee, T-RO 2024).

This paper proposes Motion Manifold Primitives++ (MMP++), which can encode and generate a manifold of trajectories, enabling the efficient generation of high-dimensional trajectories, modulation of latent values and viapoints, and online adaptation in the presence of dynamic obstacles.

Run

0. Preparation

  • Run the following commands:

    conda create python=3.8 -n MMPpp
    conda activate MMPpp
    
    # Before installing the required python packages in requirements.txt, first install a proper version of PyTorch (depedning on your CUDA version). You do not need torchvision nor torchaudio.
     
    pip install -r requirements.txt --progress-bar on
    
  • Download the pretrained models from GOOGLE DRIVE and place the "results" directory in the root folder. If you have downloaded the models, you can skip running train.py.

1. 2D Toy Experiments

  • To train MMP++:

    python train.py --base_config configs/Toy/Exp2/base_config.yml --config configs/Toy/Exp2/mmppp.yml --model.z_dim 2 --run mmppp_zdim2 --device 0
    
  • To train IMMP++:

    python train.py --base_config configs/Toy/Exp2/base_config.yml --config configs/Toy/Exp2/immppp.yml --model.z_dim 2 --model.iso_reg 10 --run immppp_zdim2_reg10 --device 0
    
  • Trained models are saved to results/toy/exp1.

  • To see the trained results, open the IPython Notebook.

2. 7-DoF Robot Arm (Manifold Example)

  • To train MMP++:

    python train.py --base_config configs/Robot/robot_manifold/base_config.yml --config configs/Robot/robot_manifold/mmppp.yml --model.z_dim 2 --run mmppp_zdim2 --device 0
    
  • To train IMMP++:

    python train.py --base_config configs/Robot/robot_manifold/base_config.yml --config configs/Robot/robot_manifold/immppp.yml --model.z_dim 2 --model.iso_reg 1 --run immppp_zdim2_reg1 --device 0
    
  • Trained models are saved to results/robot-manifold.

  • To see the trained results, open the IPython Notebook.

  • To see the modulation of the latent values and viapoints, run the following command:

    python 2-2-7D_robot_modulation.py
    
  • To see the online adpation, run the following command:

    python 2-3-7D_robot_obs_avoidance.py
    

3. SE(3) Pouring

  • To train MMP++:

    python train.py --base_config configs/SE3/mmppp/base_config.yml --config configs/SE3/mmppp/mmppp.yml --model.z_dim 2 --run mmppp_zdim2 --device 0
    
  • Trained models are saved to results/SE3/se3mmppp.

  • To see the modulation of the latent values and viapoints, run the following command:

    python 3-1-SE3_pouring_modulation.py
    

Citation

If you found this library useful in your research, please consider citing:

@article{lee2024mmp++,
  title={MMP++: Motion Manifold Primitives With Parametric Curve Models},
  author={Lee, Yonghyeon},
  journal={IEEE Transactions on Robotics},
  year={2024},
  publisher={IEEE}
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 68.7%
  • Python 31.3%