Maniskill_gen_new / scripts /visualize_verb_object_samples.py
yqi19's picture
Add Maniskill_gen_new data collection codebase with README
7b8502a
Raw
History Blame Contribute Delete
2.23 kB
#!/usr/bin/env python3
"""
Sample a small number of VerbObjectColor-v1 trajectories (motion planning) and save short videos.
python scripts/visualize_verb_object_samples.py --verb push --color green --shape cup -n 2
python scripts/visualize_verb_object_samples.py --verb rotate --shape cube --vis
From repo root; use CPU backends if you hit Vulkan/mplib segfaults.
"""
from __future__ import annotations
import argparse
import os
import sys
script_dir = os.path.dirname(os.path.abspath(__file__))
root = os.path.dirname(script_dir)
if root not in sys.path:
sys.path.insert(0, root)
import mani_skill.envs # noqa: F401
from scripts.run_verb_color_shape_motion_planning import run_verb_color_shape_motion_planning
def main():
p = argparse.ArgumentParser(description="Few-sample MP demos for VerbObjectColor-v1")
p.add_argument("--verb", type=str, default="push")
p.add_argument("--color", type=str, default="red")
p.add_argument("--shape", type=str, default="cube")
p.add_argument("-n", type=int, default=2, help="Number of trajectories")
p.add_argument("--obj-xy", type=float, nargs=2, default=None)
p.add_argument("--record-dir", type=str, default="demos/visual_samples")
p.add_argument("--traj-name", type=str, default="viz_sample")
p.add_argument("--distractor-max", type=int, default=3)
p.add_argument("-b", "--sim-backend", type=str, default="cpu", choices=["cpu", "gpu"])
p.add_argument("--render-backend", type=str, default="cpu", choices=["cpu", "gpu"])
p.add_argument("--vis", action="store_true", help="Open viewer (slow)")
p.add_argument("--no-video", action="store_true")
args = p.parse_args()
run_verb_color_shape_motion_planning(
verb=args.verb,
color=args.color,
shape=args.shape,
obj_xy=list(args.obj_xy) if args.obj_xy is not None else None,
num_traj=args.n,
only_count_success=False,
sim_backend=args.sim_backend,
render_backend=args.render_backend,
save_video=not args.no_video,
vis=args.vis,
record_dir=args.record_dir,
traj_name=args.traj_name,
distractor_max=args.distractor_max,
)
if __name__ == "__main__":
main()