| |
| """ |
| 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 |
|
|
| 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() |
|
|