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 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.
-
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.
-
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
-
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
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}
}